{"version":3,"file":"stimulsoft-forms.mjs","sources":["../../../projects/stimulsoft-forms/src/lib/system/Color.ts","../../../projects/stimulsoft-forms/src/lib/system/UnicodeCategory.ts","../../../projects/stimulsoft-forms/src/lib/system/Chars.ts","../../../projects/stimulsoft-forms/src/lib/system/Char.ts","../../../projects/stimulsoft-forms/src/lib/system/Enum.ts","../../../projects/stimulsoft-forms/src/lib/system/enums.ts","../../../projects/stimulsoft-forms/src/lib/system/TimeSpan.ts","../../../projects/stimulsoft-forms/src/lib/system/DateTime.ts","../../../projects/stimulsoft-forms/src/lib/system/StiObject.ts","../../../projects/stimulsoft-forms/src/lib/system/Hashtable.ts","../../../projects/stimulsoft-forms/src/lib/system/Dictionary.ts","../../../projects/stimulsoft-forms/src/lib/system/List.ts","../../../projects/stimulsoft-forms/src/lib/system/StiJson.ts","../../../projects/stimulsoft-forms/src/lib/system/Font.ts","../../../projects/stimulsoft-forms/src/lib/elements/text/StiTextItem.ts","../../../projects/stimulsoft-forms/src/lib/helper/StiInputTextItem.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiRectangleGeometry.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-localization.service.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiPadding.ts","../../../projects/stimulsoft-forms/src/lib/system/Guid.ts","../../../projects/stimulsoft-forms/src/lib/elements/base/StiFormObject.ts","../../../projects/stimulsoft-forms/src/lib/elements/text/StiLabelItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/base/StiFormElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiComboBoxElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/text/StiAddressLabelItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiAddressElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiBarcodeElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/text/StiBackgroundedTextItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiButtonElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiCheckBoxElement.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-static-helper.service.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiDateTimeBoxElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/settings/StiDescriptionSettings.ts","../../../projects/stimulsoft-forms/src/lib/elements/settings/StiInnerTextSettings.ts","../../../projects/stimulsoft-forms/src/lib/elements/settings/StiLabelSettings.ts","../../../projects/stimulsoft-forms/src/lib/elements/settings/StiFormSettings.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiPagePaperKind.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiPen.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiBorder.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiImageElement.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiExceedMargins.ts","../../../projects/stimulsoft-forms/src/lib/elements/text/StiBackgroundedAlignedTextItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiLabelElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiLineElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiListBoxElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/text/StiOptionItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiMultipleSelectionElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiNumberBoxElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiPDFSignatureElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/signature/StiImageEditorResult.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiSignatureElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiSingleSelectionElement.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiInnerBorder.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/cells/StiCheckBoxCellItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/StiColumnItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/columns/StiCheckBoxColumnItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/cells/StiComboBoxCellItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/columns/StiComboBoxColumnItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/columns/StiLabelColumnItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/cells/StiNumberBoxCellItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/columns/StiNumberBoxColumnItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/cells/StiRadioButtonCellItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/columns/StiRadioButtonColumnItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/cells/StiTextBoxCellItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/columns/StiTextBoxColumnItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/StiRowLabel.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/StiTotalsFieldItem.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/StiTotalsRowHeaderEditableContent.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiTableElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiTextBoxElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiTextElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiPanelElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiFormPageElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiAdditionalFieldItem.ts","../../../projects/stimulsoft-forms/src/lib/services/model.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-name.service.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiForm.ts","../../../projects/stimulsoft-forms/src/lib/stimulsoft-forms.service.ts","../../../projects/stimulsoft-forms/src/lib/computed/StiRectangleGeometryLayout.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-editable-content.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-user-service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-signature.service.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-dropdown-component/sti-dropdown-service.ts","../../../projects/stimulsoft-forms/src/lib/services/mouse.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-helper.service.ts","../../../projects/stimulsoft-forms/src/lib/services/http-client.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-undo-service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-barcode.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-component-resizer.service.ts","../../../projects/stimulsoft-forms/src/lib/elements/StiDragPreviewElement.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-draggable.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-toolbar-resizer.service.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-component-resizer.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-corner-radius.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-editable-content.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-input-text.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-tooltip/sti-tooltip.service.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-tooltip/sti-tooltip.directive.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-text-box/sti-text-box.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-number.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-number-box/sti-number-box.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-combo-box/sti-combo-box.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-list-box/sti-list-box.component.ts","../../../projects/stimulsoft-forms/src/lib/components/svg.components/svg.radiobutton.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-single-selection/sti-single-selection.component.ts","../../../projects/stimulsoft-forms/src/lib/components/svg.components/svg.checkbox.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-multiple-selection/sti-multiple-selection.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-check-box/sti-check-box.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-line/sti-line.component.ts","../../../projects/stimulsoft-forms/src/lib/services/objects.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-font.service.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-signature/sti-signature.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-date-time-box/sti-date-time-box.component.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-column-draggable.service.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table/sti-table-totals-field/sti-table-totals-field.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table-column-resizer.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table/sti-table-text-input/sti-table-text-input.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table/sti-table-radiobutton/sti-table-radiobutton.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table/sti-table-combobox/sti-table-combobox.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table/sti-table-checkbox/sti-table-checkbox.component.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-expression.service.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table/sti-table-label/sti-table-label.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table/sti-table-column/sti-table-column.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-table/sti-table.component.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiBorderArea.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-image/sti-image.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-button/sti-button.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-progress.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-barcode/sti-barcode.component.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-rich-text.service.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-text/sti-text.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-label/sti-label.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-address/sti-address.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-pdf-signature/sti-pdf-signature.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-drag-preview-adorner/sti-drag-preview-adorner.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-components-holder.component.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-toolbox.service.ts","../../../projects/stimulsoft-forms/src/lib/services/theme.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-local-storage.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-export.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-controller.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-changes-service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-form-events-service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-color-dialog.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-tabindex.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-form-checker.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-draggable-modal-window.service.ts","../../../projects/stimulsoft-forms/src/lib/services/sti-clipboard-sevice.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-dropdown-component/sti-dropdown-component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-select-button/sti-select-button.component.ts","../../../projects/stimulsoft-forms/src/lib/components/navbar.component/navbar.home-ribbon.component.ts","../../../projects/stimulsoft-forms/src/lib/components/navbar.component/navbar.file-ribbon.component.ts","../../../projects/stimulsoft-forms/src/lib/toolbox/sti-toolbox-element.component.ts","../../../projects/stimulsoft-forms/src/lib/components/navbar.component/navbar.insert-ribbon.component.ts","../../../projects/stimulsoft-forms/src/lib/components/navbar.component/navbar.component.ts","../../../projects/stimulsoft-forms/src/lib/components/navbar.component/navbar.component.html","../../../projects/stimulsoft-forms/src/lib/components/sti-page-grid-overlay.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-pages-navigation.component.ts","../../../projects/stimulsoft-forms/src/lib/components/page.component/page.component.ts","../../../projects/stimulsoft-forms/src/lib/components/page.component/page.component.html","../../../projects/stimulsoft-forms/src/lib/components/workspace.component/sti-workspace.component.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/sti-property-grid-navigation/sti-property-grid-navigation.component.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/sti-forms-tree/sti-forms-tree-item.component.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/sti-forms-tree/sti-forms-tree.component.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiElementCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiAddressCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiBarcodeCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiButtonCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiCheckBoxCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiComboBoxCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiDateTimeBoxCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiFormPageCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiImageCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiLabelCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiLineCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiListBoxCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiMultipleSelectionCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiNumberBoxEditor.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiPDFSignatureCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiPanelCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiSettingsCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiSignatureCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiSingleSelectionCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiTableCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiTextBoxCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/creators/StiTextCreator.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-universal-checkbox/sti-universal-checkbox.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-bool-editor/sti-bool-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-color-editor/sti-color-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-dropdown-editor/sti-dropdown-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-enum-editor/sti-enum-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-font-editor/sti-font-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-image-editor/sti-image-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/directives/sti-input-text.directive.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-padding-editor/sti-padding-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/directives/sti-input-text-area.directive.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-multiline-string-editor/sti-multiline-string-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-number-editor/sti-number-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/computed/RenderComponentsGeometry.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-paper-kind-editor/sti-paper-kind-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-vertical-alignment-editor/sti-vertical-alignment-editor.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-text-editor/sti-text-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-name-editor/sti-name-editor.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-horizontal-alignment-editor/sti-horizontal-alignment-editor.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-label-alignment-editor/sti-label-alignment-editor.ts","../../../projects/stimulsoft-forms/src/lib/components/animations/animations.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/table/border-sides-editor/border-sides-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/table/table-border-editor/table-border-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-simple-enum-editor/sti-simple-enum-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-barcode-shape-editor/sti-barcode-shape-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/boolean-with-arrow-editor/boolean-with-arrow-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/table/table-item-editor/table-item-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-select-button-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-divider/sti-divider.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/table/table-column-editor/table-column-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/table/table-columns-editor/table-columns-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-exceed-margins/sti-exceed-margins.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-barcode-style-editor/sti-svg-image.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-barcode-style-editor/sti-barcode-style-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/table/table-navigation/table-navigation.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-component-height-editor/sti-component-height-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-autocomplete/sti-autocomplete.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/auto-complete-editor/auto-complete-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/sti-forms-elements-dropdown/sti-forms-elements-dropdown.component.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/sti-property-grid/sti-property-grid.component.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/properties.component.ts","../../../projects/stimulsoft-forms/src/lib/toolbox/sti-draggable-element-container.component.ts","../../../projects/stimulsoft-forms/src/lib/toolbox/sti-toolbox.component.ts","../../../projects/stimulsoft-forms/src/lib/components/footer.component/footer.component.ts","../../../projects/stimulsoft-forms/src/lib/components/footer.component/footer.component.html","../../../projects/stimulsoft-forms/src/lib/toolbox/sti-clone-element-container.component.ts","../../../projects/stimulsoft-forms/src/lib/components/modal-agree-window/modal-agree-window.component.ts","../../../projects/stimulsoft-forms/src/lib/toolbox/sti-draggable-column-container.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-about-window/sti-about-window.component.ts","../../../projects/stimulsoft-forms/src/lib/components/propertyGrid/editors/sti-barcode-style-editor/sti-barcodes-styles-preview.component.ts","../../../projects/stimulsoft-forms/src/lib/components/workspace.component/sti-pdf-preview.component.ts","../../../projects/stimulsoft-forms/src/lib/components/navbar.component/navbar.group-preview.component.ts","../../../projects/stimulsoft-forms/src/lib/toolbox/sti-setup-toolbox.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-localization-preview.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-user-info.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-trial-alerts/sti-trial-bar.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-trial-alerts/sti-trial-modal-window.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-file-menu/sti-file-new-content.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-file-menu/sti-file-open-content.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-file-menu/sti-file-save-content.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-file-menu/sti-file-menu-content.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-file-menu/sti-file-menu.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-file-menu/sti-file-menu-navigation.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-file-menu/sti-file-save-dialog.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-button/sti-button-message-window.component.ts","../../../projects/stimulsoft-forms/src/lib/components/navbar.component/sti-cloud-navbar.component.ts","../../../projects/stimulsoft-forms/src/lib/components/context-menu.component/context-menu-window.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-expression-editor/sti-expression-help-window.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-login.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-expression-editor/sti-cells-preview.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-expression-editor/sti-columns-preview.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-expression-editor/sti-expression-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-color-dialog/sti-color-dialog.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-color-dialog/sti-color-options-dialog.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-expression-editor/sti-expression-draggable-container.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-dropdown-component/sti-dropdown-list.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-form-checker/sti-form-checker-item.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-form-checker/sti-form-checker.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-signature/sti-electronic-signature-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-embed-editors/sti-embed-text-editor.components.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-embed-editors/sti-embed-image-editor.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-draggable-modal-window/sti-draggable-modal-window.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-tooltip/sti-tooltip.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-trial-alerts/sti-trial-timer-window.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-tiered-menu/sti-tiered-menu.component.ts","../../../projects/stimulsoft-forms/src/lib/components/properties.component/sti-forms-tree/sti-form-tree-warning-window.component.ts","../../../projects/stimulsoft-forms/src/lib/stimulsoft-forms.component.ts","../../../projects/stimulsoft-forms/src/lib/components/navbar.component/navbar.preview-ribbon.component.ts","../../../projects/stimulsoft-forms/src/lib/components/sti-toolbar-resizer.component.ts","../../../projects/stimulsoft-forms/src/lib/stimulsoft-forms.module.ts","../../../projects/stimulsoft-forms/src/lib/elements/base/StiMultipleText.ts","../../../projects/stimulsoft-forms/src/lib/elements/base/StiSelectionElement.ts","../../../projects/stimulsoft-forms/src/lib/elements/table/StiCalculationAlgorithm.ts","../../../projects/stimulsoft-forms/src/lib/properties/StiCategories.ts","../../../projects/stimulsoft-forms/src/public-api.ts","../../../projects/stimulsoft-forms/src/stimulsoft-forms.ts"],"sourcesContent":["/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\nimport { StiChangesInterceptor } from \"./interfaces\";\r\n\r\nexport default class Color {\r\n  static aliceBlue(): Color {\r\n    let color: Color = Color.fromArgb(0xf0, 0xf8, 0xff);\r\n    color.name = \"Alice Blue\";\r\n    return color;\r\n  }\r\n\r\n  static antiqueWhite(): Color {\r\n    let color: Color = Color.fromArgb(0xfa, 0xeb, 0xd7);\r\n    color.name = \"Antique White\";\r\n    return color;\r\n  }\r\n\r\n  static aqua(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xff, 0xff);\r\n    color.name = \"Aqua\";\r\n    return color;\r\n  }\r\n\r\n  static aquamarine(): Color {\r\n    let color: Color = Color.fromArgb(0x7f, 0xff, 0xd4);\r\n    color.name = \"Aquamarine\";\r\n    return color;\r\n  }\r\n\r\n  static azure(): Color {\r\n    let color: Color = Color.fromArgb(0xf0, 0xff, 0xff);\r\n    color.name = \"Azure\";\r\n    return color;\r\n  }\r\n\r\n  static beige(): Color {\r\n    let color: Color = Color.fromArgb(0xf5, 0xf5, 0xdc);\r\n    color.name = \"Beige\";\r\n    return color;\r\n  }\r\n\r\n  static bisque(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xe4, 0xc4);\r\n    color.name = \"Bisque\";\r\n    return color;\r\n  }\r\n\r\n  static black(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x00, 0x00);\r\n    color.name = \"Black\";\r\n    return color;\r\n  }\r\n\r\n  static blanchedAlmond(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xeb, 0xcd);\r\n    color.name = \"Blanched Almond\";\r\n    return color;\r\n  }\r\n\r\n  static blue(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x00, 0xff);\r\n    color.name = \"Blue\";\r\n    return color;\r\n  }\r\n\r\n  static blueViolet(): Color {\r\n    let color: Color = Color.fromArgb(0x8a, 0x2b, 0xe2);\r\n    color.name = \"Blue Violet\";\r\n    return color;\r\n  }\r\n\r\n  static brown(): Color {\r\n    let color: Color = Color.fromArgb(0xa5, 0x2a, 0x2a);\r\n    color.name = \"Brown\";\r\n    return color;\r\n  }\r\n\r\n  static burlyWood(): Color {\r\n    let color: Color = Color.fromArgb(0xde, 0xb8, 0x87);\r\n    color.name = \"Burly Wood\";\r\n    return color;\r\n  }\r\n\r\n  static cadetBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x5f, 0x9e, 0xa0);\r\n    color.name = \"Cadet Blue\";\r\n    return color;\r\n  }\r\n\r\n  static chartreuse(): Color {\r\n    let color: Color = Color.fromArgb(0x7f, 0xff, 0x00);\r\n    color.name = \"Chartreuse\";\r\n    return color;\r\n  }\r\n\r\n  static chocolate(): Color {\r\n    let color: Color = Color.fromArgb(0xd2, 0x69, 0x1e);\r\n    color.name = \"Chocolate\";\r\n    return color;\r\n  }\r\n\r\n  static coral(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x7f, 0x50);\r\n    color.name = \"Coral\";\r\n    return color;\r\n  }\r\n\r\n  static cornflowerBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x64, 0x95, 0xed);\r\n    color.name = \"Cornflower Blue\";\r\n    return color;\r\n  }\r\n\r\n  static cornsilk(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xf8, 0xdc);\r\n    color.name = \"Cornsilk\";\r\n    return color;\r\n  }\r\n\r\n  static crimson(): Color {\r\n    let color: Color = Color.fromArgb(0xdc, 0x14, 0x3c);\r\n    color.name = \"Crimson\";\r\n    return color;\r\n  }\r\n\r\n  static cyan(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xff, 0xff);\r\n    color.name = \"Cyan\";\r\n    return color;\r\n  }\r\n\r\n  static darkBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x00, 0x8b);\r\n    color.name = \"Dark Blue\";\r\n    return color;\r\n  }\r\n\r\n  static darkCyan(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x8b, 0x8b);\r\n    color.name = \"Dark Cyan\";\r\n    return color;\r\n  }\r\n\r\n  static darkGoldenrod(): Color {\r\n    let color: Color = Color.fromArgb(0xb8, 0x86, 0x0b);\r\n    color.name = \"Dark Goldenrod\";\r\n    return color;\r\n  }\r\n\r\n  static darkGray(): Color {\r\n    let color: Color = Color.fromArgb(0xa9, 0xa9, 0xa9);\r\n    color.name = \"Dark Gray\";\r\n    return color;\r\n  }\r\n\r\n  static darkGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x64, 0x00);\r\n    color.name = \"Dark Green\";\r\n    return color;\r\n  }\r\n\r\n  static darkKhaki(): Color {\r\n    let color: Color = Color.fromArgb(0xbd, 0xb7, 0x6b);\r\n    color.name = \"Dark Khaki\";\r\n    return color;\r\n  }\r\n\r\n  static darkMagenta(): Color {\r\n    let color: Color = Color.fromArgb(0x8b, 0x00, 0x8b);\r\n    color.name = \"Dark Magenta\";\r\n    return color;\r\n  }\r\n\r\n  static darkOliveGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x55, 0x6b, 0x2f);\r\n    color.name = \"Dark Olive Green\";\r\n    return color;\r\n  }\r\n\r\n  static darkOrange(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x8c, 0x00);\r\n    color.name = \"Dark Orange\";\r\n    return color;\r\n  }\r\n\r\n  static darkOrchid(): Color {\r\n    let color: Color = Color.fromArgb(0x99, 0x32, 0xcc);\r\n    color.name = \"Dark Orchid\";\r\n    return color;\r\n  }\r\n\r\n  static darkRed(): Color {\r\n    let color: Color = Color.fromArgb(0x8b, 0x00, 0x00);\r\n    color.name = \"Dark Red\";\r\n    return color;\r\n  }\r\n\r\n  static darkSalmon(): Color {\r\n    let color: Color = Color.fromArgb(0xe9, 0x96, 0x7a);\r\n    color.name = \"Dark Salmon\";\r\n    return color;\r\n  }\r\n\r\n  static darkSeaGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x8f, 0xbc, 0x8f);\r\n    color.name = \"Dark Sea Green\";\r\n    return color;\r\n  }\r\n\r\n  static darkSlateBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x48, 0x3d, 0x8b);\r\n    color.name = \"Dark Slate Blue\";\r\n    return color;\r\n  }\r\n\r\n  static darkSlateGray(): Color {\r\n    let color: Color = Color.fromArgb(0x2f, 0x4f, 0x4f);\r\n    color.name = \"Dark Slate Gray\";\r\n    return color;\r\n  }\r\n\r\n  static darkTurquoise(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xce, 0xd1);\r\n    color.name = \"Dark Turquoise\";\r\n    return color;\r\n  }\r\n\r\n  static darkViolet(): Color {\r\n    let color: Color = Color.fromArgb(0x94, 0x00, 0xd3);\r\n    color.name = \"Dark Violet\";\r\n    return color;\r\n  }\r\n\r\n  static deepPink(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x14, 0x93);\r\n    color.name = \"Deep Pink\";\r\n    return color;\r\n  }\r\n\r\n  static deepSkyBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xbf, 0xff);\r\n    color.name = \"Deep Sky Blue\";\r\n    return color;\r\n  }\r\n\r\n  static dimGray(): Color {\r\n    let color: Color = Color.fromArgb(0x69, 0x69, 0x69);\r\n    color.name = \"Dim Gray\";\r\n    return color;\r\n  }\r\n\r\n  static dodgerBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x1e, 0x90, 0xff);\r\n    color.name = \"Dodger Blue\";\r\n    return color;\r\n  }\r\n\r\n  static firebrick(): Color {\r\n    let color: Color = Color.fromArgb(0xb2, 0x22, 0x22);\r\n    color.name = \"Firebrick\";\r\n    return color;\r\n  }\r\n\r\n  static floralWhite(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xfa, 0xf0);\r\n    color.name = \"Floral White\";\r\n    return color;\r\n  }\r\n\r\n  static forestGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x22, 0x8b, 0x22);\r\n    color.name = \"Forest Green\";\r\n    return color;\r\n  }\r\n\r\n  static fuchsia(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x00, 0xff);\r\n    color.name = \"Fuchsia\";\r\n    return color;\r\n  }\r\n\r\n  static gainsboro(): Color {\r\n    let color: Color = Color.fromArgb(0xdc, 0xdc, 0xdc);\r\n    color.name = \"Gainsboro\";\r\n    return color;\r\n  }\r\n\r\n  static ghostWhite(): Color {\r\n    let color: Color = Color.fromArgb(0xf8, 0xf8, 0xff);\r\n    color.name = \"Ghost White\";\r\n    return color;\r\n  }\r\n\r\n  static gold(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xd7, 0x00);\r\n    color.name = \"Gold\";\r\n    return color;\r\n  }\r\n\r\n  static goldenrod(): Color {\r\n    let color: Color = Color.fromArgb(0xda, 0xa5, 0x20);\r\n    color.name = \"Goldenrod\";\r\n    return color;\r\n  }\r\n\r\n  static gray(): Color {\r\n    let color: Color = Color.fromArgb(0x80, 0x80, 0x80);\r\n    color.name = \"Gray\";\r\n    return color;\r\n  }\r\n\r\n  static green(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x80, 0x00);\r\n    color.name = \"Green\";\r\n    return color;\r\n  }\r\n\r\n  static greenYellow(): Color {\r\n    let color: Color = Color.fromArgb(0xad, 0xff, 0x2f);\r\n    color.name = \"Green Yellow\";\r\n    return color;\r\n  }\r\n\r\n  static honeydew(): Color {\r\n    let color: Color = Color.fromArgb(0xf0, 0xff, 0xf0);\r\n    color.name = \"Honeydew\";\r\n    return color;\r\n  }\r\n\r\n  static hotPink(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x69, 0xb4);\r\n    color.name = \"Hot Pink\";\r\n    return color;\r\n  }\r\n\r\n  static indianRed(): Color {\r\n    let color: Color = Color.fromArgb(0xcd, 0x5c, 0x5c);\r\n    color.name = \"Indian Red\";\r\n    return color;\r\n  }\r\n\r\n  static indigo(): Color {\r\n    let color: Color = Color.fromArgb(0x4b, 0x00, 0x82);\r\n    color.name = \"Indigo\";\r\n    return color;\r\n  }\r\n\r\n  static ivory(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xff, 0xf0);\r\n    color.name = \"Ivory\";\r\n    return color;\r\n  }\r\n\r\n  static khaki(): Color {\r\n    let color: Color = Color.fromArgb(0xf0, 0xe6, 0x8c);\r\n    color.name = \"Khaki\";\r\n    return color;\r\n  }\r\n\r\n  static lavender(): Color {\r\n    let color: Color = Color.fromArgb(0xe6, 0xe6, 0xfa);\r\n    color.name = \"Lavender\";\r\n    return color;\r\n  }\r\n\r\n  static lavenderBlush(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xf0, 0xf5);\r\n    color.name = \"Lavender Blush\";\r\n    return color;\r\n  }\r\n\r\n  static lawnGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x7c, 0xfc, 0x00);\r\n    color.name = \"Lawn Green\";\r\n    return color;\r\n  }\r\n\r\n  static lemonChiffon(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xfa, 0xcd);\r\n    color.name = \"Lemon Chiffon\";\r\n    return color;\r\n  }\r\n\r\n  static lightBlue(): Color {\r\n    let color: Color = Color.fromArgb(0xad, 0xd8, 0xe6);\r\n    color.name = \"Light Blue\";\r\n    return color;\r\n  }\r\n\r\n  static lightCoral(): Color {\r\n    let color: Color = Color.fromArgb(0xf0, 0x80, 0x80);\r\n    color.name = \"Light Coral\";\r\n    return color;\r\n  }\r\n\r\n  static lightCyan(): Color {\r\n    let color: Color = Color.fromArgb(0xe0, 0xff, 0xff);\r\n    color.name = \"Light Cyan\";\r\n    return color;\r\n  }\r\n\r\n  static lightGoldenrodYellow(): Color {\r\n    let color: Color = Color.fromArgb(0xfa, 0xfa, 0xd2);\r\n    color.name = \"Light Goldenrod Yellow\";\r\n    return color;\r\n  }\r\n\r\n  static lightGray(): Color {\r\n    let color: Color = Color.fromArgb(0xd3, 0xd3, 0xd3);\r\n    color.name = \"Light Gray\";\r\n    return color;\r\n  }\r\n\r\n  static lightGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x90, 0xee, 0x90);\r\n    color.name = \"Light Green\";\r\n    return color;\r\n  }\r\n\r\n  static lightPink(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xb6, 0xc1);\r\n    color.name = \"Light Pink\";\r\n    return color;\r\n  }\r\n\r\n  static lightSalmon(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xa0, 0x7a);\r\n    color.name = \"Light Salmon\";\r\n    return color;\r\n  }\r\n\r\n  static lightSeaGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x20, 0xb2, 0xaa);\r\n    color.name = \"Light Sea Green\";\r\n    return color;\r\n  }\r\n\r\n  static lightSkyBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x87, 0xce, 0xfa);\r\n    color.name = \"Light Sky Blue\";\r\n    return color;\r\n  }\r\n\r\n  static lightSlateGray(): Color {\r\n    let color: Color = Color.fromArgb(0x77, 0x88, 0x99);\r\n    color.name = \"Light Slate Gray\";\r\n    return color;\r\n  }\r\n\r\n  static lightSteelBlue(): Color {\r\n    let color: Color = Color.fromArgb(0xb0, 0xc4, 0xde);\r\n    color.name = \"Light Steel Blue\";\r\n    return color;\r\n  }\r\n\r\n  static lightYellow(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xff, 0xe0);\r\n    color.name = \"Light Yellow\";\r\n    return color;\r\n  }\r\n\r\n  static lime(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xff, 0x00);\r\n    color.name = \"Lime\";\r\n    return color;\r\n  }\r\n\r\n  static limeGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x32, 0xcd, 0x32);\r\n    color.name = \"Lime Green\";\r\n    return color;\r\n  }\r\n\r\n  static linen(): Color {\r\n    let color: Color = Color.fromArgb(0xfa, 0xf0, 0xe6);\r\n    color.name = \"Linen\";\r\n    return color;\r\n  }\r\n\r\n  static magenta(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x00, 0xff);\r\n    color.name = \"Magenta\";\r\n    return color;\r\n  }\r\n\r\n  static maroon(): Color {\r\n    let color: Color = Color.fromArgb(0x80, 0x00, 0x00);\r\n    color.name = \"Maroon\";\r\n    return color;\r\n  }\r\n\r\n  static mediumAquamarine(): Color {\r\n    let color: Color = Color.fromArgb(0x66, 0xcd, 0xaa);\r\n    color.name = \"Medium Aquamarine\";\r\n    return color;\r\n  }\r\n\r\n  static mediumBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x00, 0xcd);\r\n    color.name = \"Medium Blue\";\r\n    return color;\r\n  }\r\n\r\n  static mediumOrchid(): Color {\r\n    let color: Color = Color.fromArgb(0xba, 0x55, 0xd3);\r\n    color.name = \"Medium Orchid\";\r\n    return color;\r\n  }\r\n\r\n  static mediumPurple(): Color {\r\n    let color: Color = Color.fromArgb(0x93, 0x70, 0xdb);\r\n    color.name = \"Medium Purple\";\r\n    return color;\r\n  }\r\n\r\n  static mediumSeaGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x3c, 0xb3, 0x71);\r\n    color.name = \"Medium Sea Green\";\r\n    return color;\r\n  }\r\n\r\n  static mediumSlateBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x7b, 0x68, 0xee);\r\n    color.name = \"Medium Slate Blue\";\r\n    return color;\r\n  }\r\n\r\n  static mediumSpringGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xfa, 0x9a);\r\n    color.name = \"Medium Spring Green\";\r\n    return color;\r\n  }\r\n\r\n  static mediumTurquoise(): Color {\r\n    let color: Color = Color.fromArgb(0x48, 0xd1, 0xcc);\r\n    color.name = \"Medium Turquoise\";\r\n    return color;\r\n  }\r\n\r\n  static mediumVioletRed(): Color {\r\n    let color: Color = Color.fromArgb(0xc7, 0x15, 0x85);\r\n    color.name = \"Medium Violet Red\";\r\n    return color;\r\n  }\r\n\r\n  static midnightBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x19, 0x19, 0x70);\r\n    color.name = \"Midnight Blue\";\r\n    return color;\r\n  }\r\n\r\n  static mintCream(): Color {\r\n    let color: Color = Color.fromArgb(0xf5, 0xff, 0xfa);\r\n    color.name = \"Mint Cream\";\r\n    return color;\r\n  }\r\n\r\n  static mistyRose(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xe4, 0xe1);\r\n    color.name = \"Misty Rose\";\r\n    return color;\r\n  }\r\n\r\n  static moccasin(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xe4, 0xb5);\r\n    color.name = \"Moccasin\";\r\n    return color;\r\n  }\r\n\r\n  static navajoWhite(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xde, 0xad);\r\n    color.name = \"Navajo White\";\r\n    return color;\r\n  }\r\n\r\n  static navy(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x00, 0x80);\r\n    color.name = \"Navy\";\r\n    return color;\r\n  }\r\n\r\n  static oldLace(): Color {\r\n    let color: Color = Color.fromArgb(0xfd, 0xf5, 0xe6);\r\n    color.name = \"Old Lace\";\r\n    return color;\r\n  }\r\n\r\n  static olive(): Color {\r\n    let color: Color = Color.fromArgb(0x80, 0x80, 0x00);\r\n    color.name = \"Olive\";\r\n    return color;\r\n  }\r\n\r\n  static oliveDrab(): Color {\r\n    let color: Color = Color.fromArgb(0x6b, 0x8e, 0x23);\r\n    color.name = \"Olive Drab\";\r\n    return color;\r\n  }\r\n\r\n  static orange(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xa5, 0x00);\r\n    color.name = \"Orange\";\r\n    return color;\r\n  }\r\n\r\n  static orangeRed(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x45, 0x00);\r\n    color.name = \"Orange Red\";\r\n    return color;\r\n  }\r\n\r\n  static orchid(): Color {\r\n    let color: Color = Color.fromArgb(0xda, 0x70, 0xd6);\r\n    color.name = \"Orchid\";\r\n    return color;\r\n  }\r\n\r\n  static paleGoldenrod(): Color {\r\n    let color: Color = Color.fromArgb(0xee, 0xe8, 0xaa);\r\n    color.name = \"Pale Goldenrod\";\r\n    return color;\r\n  }\r\n\r\n  static paleGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x98, 0xfb, 0x98);\r\n    color.name = \"Pale Green\";\r\n    return color;\r\n  }\r\n\r\n  static paleTurquoise(): Color {\r\n    let color: Color = Color.fromArgb(0xaf, 0xee, 0xee);\r\n    color.name = \"Pale Turquoise\";\r\n    return color;\r\n  }\r\n\r\n  static paleVioletRed(): Color {\r\n    let color: Color = Color.fromArgb(0xdb, 0x70, 0x93);\r\n    color.name = \"Pale Violet Red\";\r\n    return color;\r\n  }\r\n\r\n  static papayaWhip(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xef, 0xd5);\r\n    color.name = \"Papaya Whip\";\r\n    return color;\r\n  }\r\n\r\n  static peachPuff(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xda, 0xb9);\r\n    color.name = \"Peach Puff\";\r\n    return color;\r\n  }\r\n\r\n  static peru(): Color {\r\n    let color: Color = Color.fromArgb(0xcd, 0x85, 0x3f);\r\n    color.name = \"Peru\";\r\n    return color;\r\n  }\r\n\r\n  static pink(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xc0, 0xcb);\r\n    color.name = \"Pink\";\r\n    return color;\r\n  }\r\n\r\n  static plum(): Color {\r\n    let color: Color = Color.fromArgb(0xdd, 0xa0, 0xdd);\r\n    color.name = \"Plum\";\r\n    return color;\r\n  }\r\n\r\n  static powderBlue(): Color {\r\n    let color: Color = Color.fromArgb(0xb0, 0xe0, 0xe6);\r\n    color.name = \"Powder Blue\";\r\n    return color;\r\n  }\r\n\r\n  static purple(): Color {\r\n    let color: Color = Color.fromArgb(0x80, 0x00, 0x80);\r\n    color.name = \"Purple\";\r\n    return color;\r\n  }\r\n\r\n  static red(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x00, 0x00);\r\n    color.name = \"Red\";\r\n    return color;\r\n  }\r\n\r\n  static rosyBrown(): Color {\r\n    let color: Color = Color.fromArgb(0xbc, 0x8f, 0x8f);\r\n    color.name = \"Rosy Brown\";\r\n    return color;\r\n  }\r\n\r\n  static royalBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x41, 0x69, 0xe1);\r\n    color.name = \"Royal Blue\";\r\n    return color;\r\n  }\r\n\r\n  static saddleBrown(): Color {\r\n    let color: Color = Color.fromArgb(0x8b, 0x45, 0x13);\r\n    color.name = \"Saddle Brown\";\r\n    return color;\r\n  }\r\n\r\n  static salmon(): Color {\r\n    let color: Color = Color.fromArgb(0xfa, 0x80, 0x72);\r\n    color.name = \"Salmon\";\r\n    return color;\r\n  }\r\n\r\n  static sandyBrown(): Color {\r\n    let color: Color = Color.fromArgb(0xf4, 0xa4, 0x60);\r\n    color.name = \"Sandy Brown\";\r\n    return color;\r\n  }\r\n\r\n  static seaGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x2e, 0x8b, 0x57);\r\n    color.name = \"Sea Green\";\r\n    return color;\r\n  }\r\n\r\n  static seaShell(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xf5, 0xee);\r\n    color.name = \"Sea Shell\";\r\n    return color;\r\n  }\r\n\r\n  static sienna(): Color {\r\n    let color: Color = Color.fromArgb(0xa0, 0x52, 0x2d);\r\n    color.name = \"Sienna\";\r\n    return color;\r\n  }\r\n\r\n  static silver(): Color {\r\n    let color: Color = Color.fromArgb(0xc0, 0xc0, 0xc0);\r\n    color.name = \"Silver\";\r\n    return color;\r\n  }\r\n\r\n  static skyBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x87, 0xce, 0xeb);\r\n    color.name = \"Sky Blue\";\r\n    return color;\r\n  }\r\n\r\n  static slateBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x6a, 0x5a, 0xcd);\r\n    color.name = \"Slate Blue\";\r\n    return color;\r\n  }\r\n\r\n  static slateGray(): Color {\r\n    let color: Color = Color.fromArgb(0x70, 0x80, 0x90);\r\n    color.name = \"Slate Gray\";\r\n    return color;\r\n  }\r\n\r\n  static snow(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xfa, 0xfa);\r\n    color.name = \"Snow\";\r\n    return color;\r\n  }\r\n\r\n  static springGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xff, 0x7f);\r\n    color.name = \"Spring Green\";\r\n    return color;\r\n  }\r\n\r\n  static steelBlue(): Color {\r\n    let color: Color = Color.fromArgb(0x46, 0x82, 0xb4);\r\n    color.name = \"Steel Blue\";\r\n    return color;\r\n  }\r\n\r\n  static tan(): Color {\r\n    let color: Color = Color.fromArgb(0xd2, 0xb4, 0x8c);\r\n    color.name = \"Tan\";\r\n    return color;\r\n  }\r\n\r\n  static teal(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0x80, 0x80);\r\n    color.name = \"Teal\";\r\n    return color;\r\n  }\r\n\r\n  static thistle(): Color {\r\n    let color: Color = Color.fromArgb(0xd8, 0xbf, 0xd8);\r\n    color.name = \"Thistle\";\r\n    return color;\r\n  }\r\n\r\n  static tomato(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0x63, 0x47);\r\n    color.name = \"Tomato\";\r\n    return color;\r\n  }\r\n\r\n  static turquoise(): Color {\r\n    let color: Color = Color.fromArgb(0x40, 0xe0, 0xd0);\r\n    color.name = \"Turquoise\";\r\n    return color;\r\n  }\r\n\r\n  static violet(): Color {\r\n    let color: Color = Color.fromArgb(0xee, 0x82, 0xee);\r\n    color.name = \"Violet\";\r\n    return color;\r\n  }\r\n\r\n  static wheat(): Color {\r\n    let color: Color = Color.fromArgb(0xf5, 0xde, 0xb3);\r\n    color.name = \"Wheat\";\r\n    return color;\r\n  }\r\n\r\n  static white(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xff, 0xff);\r\n    color.name = \"White\";\r\n    return color;\r\n  }\r\n\r\n  static whiteSmoke(): Color {\r\n    let color: Color = Color.fromArgb(0xf5, 0xf5, 0xf5);\r\n    color.name = \"White Smoke\";\r\n    return color;\r\n  }\r\n\r\n  static yellow(): Color {\r\n    let color: Color = Color.fromArgb(0xff, 0xff, 0x00);\r\n    color.name = \"Yellow\";\r\n    return color;\r\n  }\r\n\r\n  static yellowGreen(): Color {\r\n    let color: Color = Color.fromArgb(0x9a, 0xcd, 0x32);\r\n    color.name = \"Yellow Green\";\r\n    return color;\r\n  }\r\n\r\n  static transparent(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xff, 0xff, 0xff);\r\n    color.name = \"Transparent\";\r\n    return color;\r\n  }\r\n\r\n  static empty(): Color {\r\n    let color: Color = Color.fromArgb(0x00, 0xff, 0xff, 0xff);\r\n    color.name = \"Empty\";\r\n    return color;\r\n  }\r\n\r\n  static fromName(name: string): Color {\r\n    name = name.replace(/ /gi, \"\");\r\n    if (this.isNullOrEmpty(name)) {\r\n      return null; // Color.empty;\r\n    }\r\n    name = name.charAt(0).toLowerCase() + name.substr(1);\r\n    let color = Color[name as keyof typeof Color] as any;\r\n\r\n    if (color && typeof color == \"function\") {\r\n      return color();\r\n    }\r\n\r\n    return null; //Color.empty;\r\n  }\r\n\r\n  static isNullOrEmpty(value: string): boolean {\r\n    return value == null || value === \"\" || value === undefined;\r\n  }\r\n\r\n  public clone(): Color {\r\n    let color = new Color();\r\n    color.r = this.r;\r\n    color.g = this.g;\r\n    color.b = this.b;\r\n    color.a = this._a;\r\n    color.name = this.name;\r\n    return color;\r\n  }\r\n\r\n  private savedColor: Color;\r\n  public changesInterceptor: StiChangesInterceptor;\r\n  public propertyName = \"color\";\r\n\r\n  public isChanged(): boolean {\r\n    return this.savedColor == null || !this.savedColor.equals(this);\r\n  }\r\n\r\n  public resetChanged() {\r\n    this.savedColor = this.clone();\r\n  }\r\n\r\n  private _a: number;\r\n  get a(): number {\r\n    return this._a;\r\n  }\r\n  set a(value: number) {\r\n    this._a = value;\r\n    this.name = Color.customName;\r\n  }\r\n\r\n  private _r: number;\r\n  get r(): number {\r\n    return this._r;\r\n  }\r\n  set r(value: number) {\r\n    this._r = value;\r\n    this.name = Color.customName;\r\n  }\r\n\r\n  private _g: number;\r\n  get g(): number {\r\n    return this._g;\r\n  }\r\n  set g(value: number) {\r\n    this._g = value;\r\n    this.name = Color.customName;\r\n  }\r\n\r\n  private _b: number;\r\n  get b(): number {\r\n    return this._b;\r\n  }\r\n  set b(value: number) {\r\n    this._b = value;\r\n    this.name = Color.customName;\r\n  }\r\n\r\n  private static customName = \"Custom\";\r\n\r\n  name: string = Color.customName;\r\n\r\n  get isNamedColor(): boolean {\r\n    return this.name != Color.customName;\r\n  }\r\n\r\n  equals(color: Color): boolean {\r\n    if (color != null) {\r\n      if (\r\n        (color._a == 0x00 && color._r == 0xff && color._g == 0xff && color._b == 0xff) ||\r\n        (this._a == 0x00 && this._r == 0xff && this._g == 0xff && this._b == 0xff)\r\n      )\r\n        return this._a == color._a;\r\n      else return this._a == color._a && this._r == color._r && this._g == color._g && this._b == color._b;\r\n    }\r\n    return false;\r\n  }\r\n\r\n  static fromArgb(alpha: number, red?: any, green?: number, blue?: number): Color {\r\n    if (typeof red == \"undefined\") {\r\n      blue = alpha & 0xff;\r\n      green = (alpha >> 8) & 0xff;\r\n      red = (alpha >> 16) & 0xff;\r\n      alpha = (alpha >> 24) & 0xff;\r\n    } else if (typeof green == \"undefined\") {\r\n      blue = red._b;\r\n      green = red._g;\r\n      red = red._r;\r\n    } else if (typeof blue == \"undefined\") {\r\n      blue = green;\r\n      green = red;\r\n      red = alpha;\r\n      alpha = 255;\r\n    }\r\n\r\n    let color: Color = new Color();\r\n    color._a = alpha;\r\n    color._r = red;\r\n    color._g = green;\r\n    color._b = blue;\r\n    color.name = Color.customName;\r\n\r\n    return color;\r\n  }\r\n\r\n  toArgb(): number {\r\n    let argb: number = this._a << 24;\r\n    argb += this._r << 16;\r\n    argb += this._g << 8;\r\n    argb += this._b;\r\n\r\n    return argb;\r\n  }\r\n\r\n  componentToHex(c: number): string {\r\n    let hex = c.toString(16);\r\n    return hex.length == 1 ? \"0\" + hex : hex;\r\n  }\r\n\r\n  getHashCode(): number {\r\n    return this.toArgb();\r\n  }\r\n\r\n  toHtmlColor(): string {\r\n    return `rgba(${this.r}, ${this.g}, ${this.b}, ${Math.round((100 * this.a) / 255) / 100})`;\r\n  }\r\n\r\n  toHexColor(): string {\r\n    return \"#\" + this.componentToHex(this.r) + this.componentToHex(this.g) + this.componentToHex(this.b);\r\n  }\r\n\r\n  get hexColor(): string {\r\n    return this.toHtmlColor();\r\n  }\r\n  public getStringName() {\r\n    if (this.a == 0) {\r\n      return \"Transparent\";\r\n    } else {\r\n      return `${this.a != 255 ? this.a + \",\" : \"\"}${this.r + \",\"}${this.g + \",\"}${this.b}`;\r\n    }\r\n  }\r\n\r\n  set hexColor(value: string) {\r\n    let oldColor = this.changesInterceptor ? this.clone() : null;\r\n\r\n    let num = parseInt(value.substring(1), 16);\r\n    if (num || num == 0) {\r\n      this.b = num & 0xff;\r\n      this.g = (num >> 8) & 0xff;\r\n      this.r = (num >> 16) & 0xff;\r\n      this.a = 255;\r\n    } else {\r\n      let num = value.replace(\"rgba(\", \"\").replace(\")\", \"\");\r\n      let array = num.split(\",\");\r\n      this.r = isNaN(Number(array[0])) ? 0 : Number(array[0]);\r\n      this.g = isNaN(Number(array[1])) ? 0 : Number(array[1]);\r\n      this.b = isNaN(Number(array[2])) ? 0 : Number(array[2]);\r\n      this.a = isNaN(Math.round(255 * Number(array[3]))) ? 255 : Math.round(255 * Number(array[3]));\r\n    }\r\n    this.name = Color.customName;\r\n    if (this.changesInterceptor) {\r\n      this.changesInterceptor.propertyChanged(this.propertyName, this.clone(), oldColor);\r\n    }\r\n  }\r\n\r\n  public toString(): string {\r\n    return this.name != Color.customName ? this.name : this.hexColor;\r\n  }\r\n\r\n  public deserializeFromString(value: string) {\r\n    let result: Color;\r\n    if (value.indexOf(\",\") != -1) {\r\n      let strs: string[] = value.split(\",\");\r\n      if (strs.length == 4) {\r\n        result = Color.fromArgb(\r\n          parseFloat(strs[0].trim()),\r\n          parseFloat(strs[1].trim()),\r\n          parseFloat(strs[2].trim()),\r\n          parseFloat(strs[3].trim())\r\n        );\r\n      } else {\r\n        result = Color.fromArgb(parseFloat(strs[0].trim()), parseFloat(strs[1].trim()), parseFloat(strs[2].trim()));\r\n      }\r\n    } else if (value.indexOf(\"[\") == 0 && value.indexOf(\"]\") == value.length - 1 && value.indexOf(\":\") != -1) {\r\n      let strs: string[] = value.substring(1, value.length - 1).split(\":\");\r\n      if (strs.length == 4) {\r\n        result = Color.fromArgb(\r\n          parseFloat(strs[0].trim()),\r\n          parseFloat(strs[1].trim()),\r\n          parseFloat(strs[2].trim()),\r\n          parseFloat(strs[3].trim())\r\n        );\r\n      } else {\r\n        result = Color.fromArgb(parseFloat(strs[0].trim()), parseFloat(strs[1].trim()), parseFloat(strs[2].trim()));\r\n      }\r\n    } else {\r\n      result = Color.fromName(value);\r\n    }\r\n\r\n    this._r = result._r;\r\n    this._b = result._b;\r\n    this._g = result._g;\r\n    this._a = result._a;\r\n    this.name = result.name;\r\n  }\r\n}\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\n\r\nexport enum UnicodeCategory {\r\n  /**\r\n   * Uppercase letter. Signified by the Unicode designation \"Lu\" (letter, uppercase).\r\n   * The value is 0.\r\n   */\r\n  UppercaseLetter = 0,\r\n\r\n  /**\r\n   * Lowercase letter. Signified by the Unicode designation \"Ll\" (letter, lowercase).\r\n   * The value is 1.\r\n   */\r\n  LowercaseLetter = 1,\r\n\r\n  /**\r\n   * Titlecase letter. Signified by the Unicode designation \"Lt\" (letter, titlecase).\r\n   * The value is 2.\r\n   */\r\n  TitlecaseLetter = 2,\r\n\r\n  /**\r\n   * Modifier letter character, which is free-standing spacing character that\r\n   * indicates modifications of a preceding letter. Signified by the Unicode designation\r\n   * \"Lm\" (letter, modifier). The value is 3.\r\n   */\r\n  ModifierLetter = 3,\r\n\r\n  /**\r\n   * Letter that is not an uppercase letter, a lowercase letter, a titlecase letter,\r\n   * or a modifier letter. Signified by the Unicode designation \"Lo\" (letter,\r\n   * other). The value is 4.\r\n   */\r\n  OtherLetter = 4,\r\n\r\n  /**\r\n   * Nonspacing character that indicates modifications of a base character. Signified\r\n   * by the Unicode designation \"Mn\" (mark, nonspacing). The value is 5.\r\n   */\r\n  NonSpacingMark = 5,\r\n\r\n  /**\r\n   * Spacing character that indicates modifications of a base character and affects\r\n   * the width of the glyph for that base character. Signified by the Unicode\r\n   * designation \"Mc\" (mark, spacing combining). The value is 6.\r\n   */\r\n  SpacingCombiningMark = 6,\r\n\r\n  /**\r\n   * Enclosing mark character, which is a nonspacing combining character that\r\n   * surrounds all previous characters up to and including a base character. Signified\r\n   * by the Unicode designation \"Me\" (mark, enclosing). The value is 7.\r\n   */\r\n  EnclosingMark = 7,\r\n\r\n  /**\r\n   * Decimal digit character, that is, a character in the range 0 through 9. Signified\r\n   * by the Unicode designation \"Nd\" (number, decimal digit). The value is 8.\r\n   */\r\n  DecimalDigitNumber = 8,\r\n\r\n  /**\r\n   * Number represented by a letter, instead of a decimal digit, for example,\r\n   * the Roman numeral for five, which is \"V\". The indicator is signified by the\r\n   * Unicode designation \"Nl\" (number, letter). The value is 9.\r\n   */\r\n  LetterNumber = 9,\r\n\r\n  /**\r\n   * Number that is neither a decimal digit nor a letter number, for example,\r\n   * the fraction 1/2. The indicator is signified by the Unicode designation \"No\"\r\n   * (number, other). The value is 10.\r\n   */\r\n  OtherNumber = 10,\r\n\r\n  /**\r\n   * Space character, which has no glyph but is not a control or format character.\r\n   * Signified by the Unicode designation \"Zs\" (separator, space). The value is 11.\r\n   */\r\n  SpaceSeparator = 11,\r\n\r\n  /**\r\n   * Character that is used to separate lines of text. Signified by the Unicode\r\n   * designation \"Zl\" (separator, line). The value is 12.\r\n   */\r\n  LineSeparator = 12,\r\n\r\n  /**\r\n   * Character used to separate paragraphs. Signified by the Unicode designation\r\n   * \"Zp\" (separator, paragraph). The value is 13.\r\n   */\r\n  ParagraphSeparator = 13,\r\n\r\n  /**\r\n   * Control code character, with a Unicode value of U+007F or in the range U+0000\r\n   * through U+001F or U+0080 through U+009F. Signified by the Unicode designation\r\n   * \"Cc\" (other, control). The value is 14.\r\n   */\r\n  Control = 14,\r\n\r\n  /**\r\n   * Format character that affects the layout of text or the operation of text\r\n   * processes, but is not normally rendered. Signified by the Unicode designation\r\n   * \"Cf\" (other, format). The value is 15.\r\n   */\r\n  Format = 15,\r\n\r\n  /**\r\n   * High surrogate or a low surrogate character. Surrogate code values are in\r\n   * the range U+D800 through U+DFFF. Signified by the Unicode designation \"Cs\"\r\n   * (other, surrogate). The value is 16.\r\n   */\r\n  Surrogate = 16,\r\n\r\n  /**\r\n   * Private-use character, with a Unicode value in the range U+E000 through U+F8FF.\r\n   * Signified by the Unicode designation \"Co\" (other, private use). The value is 17.\r\n   */\r\n  PrivateUse = 17,\r\n\r\n  /**\r\n   * Connector punctuation character that connects two characters. Signified by\r\n   * the Unicode designation \"Pc\" (punctuation, connector). The value is 18.\r\n   */\r\n  ConnectorPunctuation = 18,\r\n\r\n  /**\r\n   * Dash or hyphen character. Signified by the Unicode designation \"Pd\" (punctuation,\r\n   * dash). The value is 19.\r\n   */\r\n  DashPunctuation = 19,\r\n\r\n  /**\r\n   * Opening character of one of the paired punctuation marks, such as parentheses,\r\n   * square brackets, and braces. Signified by the Unicode designation \"Ps\" (punctuation,\r\n   * open). The value is 20.\r\n   */\r\n  OpenPunctuation = 20,\r\n\r\n  /**\r\n   * Closing character of one of the paired punctuation marks, such as parentheses,\r\n   * square brackets, and braces. Signified by the Unicode designation \"Pe\" (punctuation,\r\n   * close). The value is 21.\r\n   */\r\n  ClosePunctuation = 21,\r\n\r\n  /**\r\n   * Opening or initial quotation mark character. Signified by the Unicode designation\r\n   * \"Pi\" (punctuation, initial quote). The value is 22.\r\n   */\r\n  InitialQuotePunctuation = 22,\r\n\r\n  /**\r\n   * Closing or final quotation mark character. Signified by the Unicode designation\r\n   * \"Pf\" (punctuation, final quote). The value is 23.\r\n   */\r\n  FinalQuotePunctuation = 23,\r\n\r\n  /**\r\n   * Punctuation character that is not a connector, a dash, open punctuation,\r\n   * close punctuation, an initial quote, or a final quote. Signified by the Unicode\r\n   * designation \"Po\" (punctuation, other). The value is 24.\r\n   */\r\n  OtherPunctuation = 24,\r\n\r\n  /**\r\n   * Mathematical symbol character, such as \"+\" or \"= \". Signified by the Unicode\r\n   * designation \"Sm\" (symbol, math). The value is 25.\r\n   */\r\n  MathSymbol = 25,\r\n\r\n  /**\r\n   * Currency symbol character. Signified by the Unicode designation \"Sc\" (symbol,\r\n   * currency). The value is 26.\r\n   */\r\n  CurrencySymbol = 26,\r\n\r\n  /**\r\n   * Modifier symbol character, which indicates modifications of surrounding characters.\r\n   * For example, the fraction slash indicates that the number to the left is\r\n   * the numerator and the number to the right is the denominator. The indicator\r\n   * is signified by the Unicode designation \"Sk\" (symbol, modifier). The value is 27.\r\n   */\r\n  ModifierSymbol = 27,\r\n\r\n  /**\r\n   * Symbol character that is not a mathematical symbol, a currency symbol or\r\n   * a modifier symbol. Signified by the Unicode designation \"So\" (symbol, other).\r\n   * The value is 28.\r\n   */\r\n  OtherSymbol = 28,\r\n\r\n  /**\r\n   * Character that is not assigned to any Unicode category. Signified by the\r\n   * Unicode designation \"Cn\" (other, not assigned). The value is 29.\r\n   */\r\n  OtherNotAssigned = 29\r\n}\r\n\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\nimport { UnicodeCategory } from \"./UnicodeCategory\";\r\n\r\nexport class Chars {\r\n\r\n  static getUnicodeCategory(char: number): number {\r\n    if (char < 0x3400) return this._table_0[char];\r\n    if (char < 0x4db6) return UnicodeCategory.OtherLetter;\r\n    if (char < 0x4dc0) return UnicodeCategory.OtherNotAssigned;\r\n    if (char < 0x4e00) return UnicodeCategory.OtherSymbol;\r\n    if (char < 0x9fc0) return UnicodeCategory.OtherLetter;\r\n    if (char < 0xac00) return this._table_9fc0[char - 0x9fc0];\r\n    if (char < 0xd780) return UnicodeCategory.OtherLetter;\r\n    if (char < 0xd800) return this._table_d780[char - 0xd780];\r\n    if (char < 0xe000) return UnicodeCategory.Surrogate;\r\n    if (char < 0xf900) return UnicodeCategory.PrivateUse;\r\n    if (char < 0xfa40) return UnicodeCategory.OtherLetter;\r\n    if (char < 0x10000) return this._table_fa40[char - 0xfa40];\r\n    return UnicodeCategory.OtherNotAssigned;\r\n  }\r\n\r\n  private static _table_0 = [\r\n    14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 11, 24, 24, 24, 26, 24, 24, 24, 20, 21, 24, 25, 24, 19, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 25, 25, 25, 24,\r\n    24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 24, 21, 27, 18, 27, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 25, 21, 25, 14,\r\n    14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 11, 24, 26, 26, 26, 26, 28, 28, 27, 28, 1, 22, 25, 19, 28, 27, 28, 25, 10, 10, 27, 1, 28, 24, 27, 10, 1, 23, 10, 10, 10, 24,\r\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 25, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0,\r\n    1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1,\r\n    1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 4, 0, 1, 1, 1,\r\n    4, 4, 4, 4, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 2, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1,\r\n    1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\r\n    3, 3, 27, 27, 27, 27, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 3, 3, 3, 3, 3, 27, 27, 27, 27, 27, 27, 27, 3, 27, 3, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,\r\n    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0, 1, 0, 1, 3, 27, 0, 1, 29, 29, 3, 1, 1, 1, 24, 0,\r\n    29, 29, 29, 29, 27, 27, 0, 24, 0, 0, 0, 29, 0, 29, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 25, 0, 1, 0, 0, 1, 1, 0, 0, 0,\r\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 1, 28, 5, 5, 5, 5, 5, 7, 7, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 3, 24, 24, 24, 24, 24, 24, 29, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 29, 24, 19, 29, 29, 28, 28, 26, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 19, 5,\r\n    24, 5, 5, 24, 5, 5, 24, 5, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 4, 4, 4, 24, 24, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    15, 15, 15, 15, 15, 15, 25, 25, 25, 24, 24, 26, 24, 24, 28, 28, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 24, 15, 29, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 24, 4, 5, 5, 5, 5, 5, 5, 5, 15, 28, 5, 5, 5, 5, 5, 5, 3, 3, 5, 5, 28, 5, 5, 5, 5, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 28, 28, 4,\r\n    24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 29, 15, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 3, 28, 24, 24, 24, 3, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 3, 5, 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5, 5, 3, 5, 5, 5, 5, 5, 29, 29, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 29, 29, 24, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n    5, 5, 5, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 5, 4, 6, 6,\r\n    6, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 5, 6, 6, 4, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 5, 6, 6, 29, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 29, 29, 29, 4, 4, 4, 4, 29, 29, 5, 4, 6, 6,\r\n    6, 5, 5, 5, 5, 29, 29, 6, 6, 29, 29, 6, 6, 5, 4, 29, 29, 29, 29, 29, 29, 29, 29, 6, 29, 29, 29, 29, 4, 4, 29, 4, 4, 4, 5, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 26, 26, 10, 10, 10, 10, 10, 10, 28, 26, 29, 29, 29, 29,\r\n    29, 5, 5, 6, 29, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 29, 4, 4, 29, 4, 4, 29, 29, 5, 29, 6, 6,\r\n    6, 5, 5, 29, 29, 29, 29, 5, 5, 29, 29, 5, 5, 5, 29, 29, 29, 5, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 29, 4, 29, 29, 29, 29, 29, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 5, 4, 4, 4, 5, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 5, 5, 6, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 29, 4, 4, 4, 4, 4, 29, 29, 5, 4, 6, 6,\r\n    6, 5, 5, 5, 5, 5, 29, 5, 5, 6, 29, 6, 6, 5, 29, 29, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 5, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 26, 29, 29, 29, 29, 29, 29, 29, 4, 29, 29, 29, 29, 29, 29,\r\n    29, 5, 6, 6, 29, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 29, 4, 4, 4, 4, 4, 29, 29, 5, 4, 6, 5,\r\n    6, 5, 5, 5, 5, 29, 29, 6, 6, 29, 29, 6, 6, 5, 29, 29, 29, 29, 29, 29, 29, 29, 5, 6, 29, 29, 29, 29, 4, 4, 29, 4, 4, 4, 5, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 28, 4, 10, 10, 10, 10, 10, 10, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 29, 5, 4, 29, 4, 4, 4, 4, 4, 4, 29, 29, 29, 4, 4, 4, 29, 4, 4, 4, 4, 29, 29, 29, 4, 4, 29, 4, 29, 4, 4, 29, 29, 29, 4, 4, 29, 29, 29, 4, 4, 4, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 6, 6,\r\n    5, 6, 6, 29, 29, 29, 6, 6, 6, 29, 6, 6, 6, 5, 29, 29, 4, 29, 29, 29, 29, 29, 29, 6, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 28, 28, 28, 28, 28, 28, 26, 28, 29, 29, 29, 29, 29,\r\n    5, 6, 6, 6, 29, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 4, 5, 5,\r\n    5, 6, 6, 6, 6, 29, 5, 5, 5, 29, 5, 5, 5, 5, 29, 29, 29, 29, 29, 29, 29, 5, 5, 29, 4, 4, 4, 29, 29, 29, 29, 29, 4, 4, 5, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 29, 29, 29, 29, 29, 10, 10, 10, 10, 10, 10, 10, 28,\r\n    29, 5, 6, 6, 29, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 29, 29, 5, 4, 6, 5,\r\n    6, 6, 6, 6, 6, 29, 5, 6, 6, 29, 6, 6, 5, 5, 29, 29, 29, 29, 29, 29, 29, 6, 6, 29, 29, 29, 29, 29, 29, 29, 4, 29, 4, 4, 5, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 5, 6, 6, 29, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 4, 6, 6,\r\n    6, 5, 5, 5, 5, 29, 6, 6, 6, 29, 6, 6, 6, 5, 4, 29, 29, 29, 29, 29, 29, 29, 29, 6, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 5, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 29, 29, 29, 28, 4, 4, 4, 4, 4, 4,\r\n    29, 29, 6, 6, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 5, 29, 29, 29, 29, 6, 6, 6, 5, 5, 5, 29, 5, 29, 6, 6, 6, 6, 6, 6, 6, 6, 29, 29, 29, 29, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 6, 6, 24, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5, 29, 29, 29, 29, 26,\r\n    4, 4, 4, 4, 4, 4, 3, 5, 5, 5, 5, 5, 5, 5, 5, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 4, 4, 29, 4, 29, 29, 4, 4, 29, 4, 29, 29, 4, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 29, 4, 29, 4, 29, 29, 4, 4, 29, 4, 4, 4, 4, 5, 4, 4, 5, 5, 5, 5, 5, 5, 29, 5, 5, 4, 29, 29,\r\n    4, 4, 4, 4, 4, 29, 3, 29, 5, 5, 5, 5, 5, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 28, 28, 28, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 28, 24, 28, 28, 28, 5, 5, 28, 28, 28, 28, 28, 28, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 28, 5, 28, 5, 28, 5, 20, 21, 20, 21, 6, 6,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6,\r\n    5, 5, 5, 5, 5, 24, 5, 5, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 29, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 5, 28, 28, 28, 28, 28, 28, 29, 28, 28, 24, 24, 24, 24, 24, 28, 28, 28, 28, 24, 24, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 6, 5, 5, 6, 6, 5, 5, 4,\r\n    8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 4, 4, 4, 4, 4, 4, 6, 6, 5, 5, 4, 4, 4, 4, 5, 5, 5, 4, 6, 6, 6, 4, 4, 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 5, 6, 6, 5, 5, 6, 6, 6, 6, 6, 6, 5, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 6, 6, 5, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n    0, 0, 0, 0, 0, 0, 29, 0, 29, 29, 29, 29, 29, 0, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 24, 3, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 29, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 29,\r\n    4, 29, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 5, 5, 5, 24, 24, 24, 24, 24, 24, 24, 24, 24, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 1, 1, 1, 1, 1, 1, 29, 29,\r\n    19, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 20, 21, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 24, 24, 24, 9, 9, 9, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 5, 5, 5, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 24, 24, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 29, 5, 5, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 6, 6,\r\n    6, 6, 6, 6, 6, 6, 5, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 24, 24, 24, 3, 24, 24, 24, 26, 4, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 29, 29, 29, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 29, 29, 29, 29, 29, 29,\r\n    24, 24, 24, 24, 24, 24, 19, 24, 24, 24, 24, 5, 5, 5, 15, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 5, 5, 5, 6, 6, 6, 6, 5, 5, 6, 6, 6, 29, 29, 29, 29, 6, 6, 5, 6, 6, 6, 6, 6, 6, 5, 5, 5, 29, 29, 29, 29,\r\n    28, 29, 29, 29, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 6, 6, 5, 29, 29, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 5, 6, 5, 5, 5, 5, 5, 5, 5, 29, 5, 6, 5, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 29, 29, 5,\r\n    8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 29, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 29, 29, 29, 24, 24, 24, 24, 24, 24, 24, 3, 24, 24, 24, 24, 24, 24, 29, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 29,\r\n    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    5, 5, 5, 5, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 5, 5, 5, 5, 5, 6, 5, 6, 6, 6,\r\n    6, 6, 5, 6, 6, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 24, 24, 24, 24, 24, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 5, 5, 5, 5, 5, 5, 5, 5, 5, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29,\r\n    5, 5, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 5, 5, 5, 5, 6, 6, 5, 5, 6, 5, 5, 5, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 5, 5, 6, 6, 6, 5, 6, 5, 5, 5, 6, 6, 29, 29, 29, 29, 29, 29, 29, 29, 24, 24, 24, 24,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 5, 5, 29, 29, 29, 24, 24, 24, 24, 24,\r\n    8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 24, 24,\r\n    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    24, 24, 24, 24, 24, 24, 24, 24, 29, 29, 29, 29, 29, 29, 29, 29, 5, 5, 5, 24, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 5, 4, 4, 4, 4, 6, 6, 5, 4, 4, 29, 5, 5, 29, 29, 29, 29, 29, 29,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\r\n    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\r\n    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 29, 29, 29, 29, 29, 29, 5, 5, 5, 5,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 29, 29, 0, 0, 0, 0, 0, 0, 29, 29, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,\r\n    1, 1, 1, 1, 1, 1, 29, 29, 0, 0, 0, 0, 0, 0, 29, 29, 1, 1, 1, 1, 1, 1, 1, 1, 29, 0, 29, 0, 29, 0, 29, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 29, 29,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 29, 1, 1, 0, 0, 0, 0, 2, 27, 1, 27,\r\n    27, 27, 1, 1, 1, 29, 1, 1, 0, 0, 0, 0, 2, 27, 27, 27, 1, 1, 1, 1, 29, 29, 1, 1, 0, 0, 0, 0, 29, 27, 27, 27, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 27, 27, 27, 29, 29, 1, 1, 1, 29, 1, 1, 0, 0, 0, 0, 2, 27, 27, 29,\r\n    11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 15, 15, 15, 15, 15, 19, 19, 19, 19, 19, 19, 24, 24, 22, 23, 20, 22, 22, 23, 20, 22, 24, 24, 24, 24, 24, 24, 24, 24, 12, 13, 15, 15, 15, 15, 15, 11, 24, 24, 24, 24, 24, 24, 24, 24, 24, 22, 23, 24, 24, 24, 24, 18,\r\n    18, 24, 24, 24, 25, 20, 21, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 24, 18, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 11, 15, 15, 15, 15, 15, 29, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 10, 3, 29, 29, 10, 10, 10, 10, 10, 10, 25, 25, 25, 20, 21, 3,\r\n    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 25, 25, 25, 20, 21, 29, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 29, 29, 29, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 29,\r\n    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, 7, 7, 7, 5, 7, 7, 7, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    28, 28, 0, 28, 28, 28, 28, 0, 28, 28, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 28, 0, 28, 28, 25, 0, 0, 0, 0, 0, 28, 28, 28, 28, 28, 28, 0, 28, 0, 28, 0, 28, 0, 0, 0, 0, 28, 1, 0, 0, 0, 0, 1, 4, 4, 4, 4, 1, 28, 28, 1, 1, 0, 0,\r\n    25, 25, 25, 25, 25, 0, 1, 1, 1, 1, 28, 25, 28, 28, 1, 28, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,\r\n    9, 9, 9, 0, 1, 9, 9, 9, 9, 10, 28, 28, 29, 29, 29, 29, 25, 25, 25, 25, 25, 28, 28, 28, 28, 28, 25, 25, 28, 28, 28, 28, 25, 28, 28, 25, 28, 28, 25, 28, 28, 28, 28, 28, 28, 28, 25, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 25, 28, 28, 25, 28, 25, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 20, 21, 20, 21, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 25, 28, 28, 28, 28, 28, 28, 28, 20, 21, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 25, 25, 25, 25, 25, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\r\n    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 25, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\r\n    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    25, 25, 25, 25, 25, 20, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 20, 21, 20, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 20, 21, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n    25, 25, 25, 25, 25, 28, 28, 25, 25, 25, 25, 25, 25, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 29, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 3, 3, 0, 0,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 28, 28, 28, 28, 28, 28, 0, 1, 0, 1, 5, 5, 5, 0, 1, 29, 29, 29, 29, 29, 24, 24, 24, 24, 10, 24, 24,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 29, 1, 29, 29, 29, 29, 29, 1, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 3, 24, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 5,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n    24, 24, 22, 23, 22, 23, 24, 24, 24, 22, 23, 24, 22, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 19, 24, 24, 19, 24, 22, 23, 24, 24, 22, 23, 20, 21, 20, 21, 20, 21, 20, 21, 24, 24, 24, 24, 24, 3, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 19, 19, 24, 24, 24, 24,\r\n    19, 24, 20, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29,\r\n    11, 24, 24, 24, 28, 3, 4, 9, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 28, 28, 20, 21, 20, 21, 20, 21, 20, 21, 19, 20, 21, 21, 28, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 5, 5, 5, 6, 6, 19, 3, 3, 3, 3, 3, 28, 28, 9, 9, 9, 3, 4, 24, 28, 28,\r\n    29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 5, 5, 27, 27, 3, 3, 4, 19, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 24, 3, 3, 3, 4,\r\n    29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 28, 28, 10, 10, 10, 10, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 10, 10, 10, 10, 10, 10, 10, 10, 28, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28];\r\n\r\n  private static _table_9fc0 = [\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,\r\n    28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 24, 24,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 24, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 4, 5, 7, 7, 7, 24, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 24, 3,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 3, 3, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 5, 24, 24, 24, 24, 24, 24, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 3, 3, 3, 3, 3, 3, 3, 3, 3, 27, 27, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1,\r\n    0, 1, 0, 1, 0, 1, 0, 1, 3, 27, 27, 0, 1, 0, 1, 4, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 29, 29, 0, 0, 0, 0, 0, 1, 0, 1, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 3, 3, 1, 4, 4, 4, 4, 4,\r\n    4, 4, 5, 4, 4, 4, 5, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 5, 5, 6, 28, 28, 28, 28, 29, 29, 29, 29, 10, 10, 10, 10, 10, 10, 28, 28, 26, 28, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 24, 24, 24, 24, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    6, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,\r\n    6, 6, 6, 6, 5, 29, 29, 29, 29, 29, 29, 29, 29, 29, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 29, 29, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 24, 24, 24, 4, 24, 4, 29, 29,\r\n    8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29,\r\n    5, 5, 5, 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 6, 5, 5, 5, 5, 6, 6, 5, 6, 6, 6,\r\n    6, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 29, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 29, 24, 24, 4, 4, 4, 4, 4, 5, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 4, 29,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 5, 5, 6, 6, 5, 5, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 5, 6, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 24, 24, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 28, 28, 28, 4, 6, 5, 6, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 5, 5, 4, 4, 5, 5, 4, 4, 4, 4, 4, 5, 5,\r\n    4, 5, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 3, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 5, 5, 6, 6, 24, 24, 4, 3, 3, 6, 5, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    29, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 29, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 5, 6, 6, 5, 6, 6, 24, 6, 5, 29, 29, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 29, 29, 29, 29, 29, 29];\r\n\r\n  private static _table_d780 = [\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29];\r\n\r\n  private static _table_fa40 = [\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,\r\n    1, 1, 1, 1, 1, 1, 1, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 1, 1, 1, 1, 1, 29, 29, 29, 29, 29, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 25, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 29, 4, 29,\r\n    4, 4, 29, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,\r\n    27, 27, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 21, 20,\r\n    29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 26, 28, 29, 29,\r\n    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 24, 24, 24, 24, 24, 24, 24, 20, 21, 24, 29, 29, 29, 29, 29, 29, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 24, 19, 19, 18, 18, 20, 21, 20, 21, 20, 21, 20, 21, 20, 21, 20,\r\n    21, 20, 21, 20, 21, 24, 24, 20, 21, 24, 24, 24, 24, 18, 18, 18, 24, 24, 24, 29, 24, 24, 24, 24, 19, 20, 21, 20, 21, 20, 21, 24, 24, 24, 25, 19, 25, 25, 25, 29, 24, 26, 24, 24, 29, 29, 29, 29, 4, 4, 4, 4, 4, 29, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29, 29, 15,\r\n    29, 24, 24, 24, 26, 24, 24, 24, 20, 21, 24, 25, 24, 19, 24, 24, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 24, 24, 25, 25, 25, 24, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 24, 21, 27, 18,\r\n    27, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 25, 21, 25, 20, 21, 24, 20, 21, 24, 24, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r\n    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 29,\r\n    29, 29, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 4, 4, 4, 4, 29, 29, 4, 4, 4, 29, 29, 29, 26, 26, 25, 27, 28, 26, 26, 29, 28, 25, 25, 25, 25, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 15, 15, 15, 28, 28, 29, 29];\r\n\r\n}\r\n\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\n\r\nimport { Chars } from \"./Chars\";\r\nimport { UnicodeCategory } from \"./UnicodeCategory\";\r\n\r\nexport class Char {\r\n\r\n  static isUpper(char: string, index = 0): boolean {\r\n    let cat: number = this.getUnicodeCategory(char, index);\r\n    return (cat == UnicodeCategory.UppercaseLetter);\r\n  }\r\n\r\n  static isLower(char: string, index = 0): boolean {\r\n    let cat: number = this.getUnicodeCategory(char, index);\r\n    return (cat == UnicodeCategory.LowercaseLetter);\r\n  }\r\n\r\n  static isLetter(char: string, index = 0): boolean {\r\n    let cat: number = this.getUnicodeCategory(char, index);\r\n    return this.checkLetter(cat);\r\n  }\r\n\r\n  static isDigit(char: string | number, index = 0): boolean {\r\n    if (char != null && typeof char == \"number\") {\r\n      let cat: number = Chars.getUnicodeCategory(char);\r\n      return (cat == UnicodeCategory.DecimalDigitNumber);\r\n    }\r\n    let cat: number = this.getUnicodeCategory(<string>char, index);\r\n    return (cat == UnicodeCategory.DecimalDigitNumber);\r\n  }\r\n\r\n  static isLetterOrDigit(char: string, index = 0): boolean {\r\n    let cat: number = this.getUnicodeCategory(char, index);\r\n    return this.checkLetter(cat) || cat == UnicodeCategory.DecimalDigitNumber;\r\n  }\r\n\r\n  static toLower(char: string): string {\r\n    return char.toLocaleLowerCase();\r\n  }\r\n\r\n  static toUpper(char: string): string {\r\n    return char.toLocaleUpperCase();\r\n  }\r\n\r\n  static isWhitespace(char: string, index = 0, allowNbsp = true): boolean {\r\n    if (char == null || char.length < index + 1) return false;\r\n    let code: number = char.charCodeAt(index);\r\n    if ((code == 0x20) || (code >= 0x09 && code <= 0x0d) || (code == 0xa0 && allowNbsp) || code == 0x85) return true;\r\n    let cat: number = Chars.getUnicodeCategory(code);\r\n    return cat == UnicodeCategory.SpaceSeparator ||\r\n      cat == UnicodeCategory.LineSeparator ||\r\n      cat == UnicodeCategory.ParagraphSeparator;\r\n  }\r\n\r\n  private static checkLetter(uc: UnicodeCategory) {\r\n    return uc == UnicodeCategory.UppercaseLetter ||\r\n      uc == UnicodeCategory.LowercaseLetter ||\r\n      uc == UnicodeCategory.TitlecaseLetter ||\r\n      uc == UnicodeCategory.ModifierLetter ||\r\n      uc == UnicodeCategory.OtherLetter;\r\n  }\r\n\r\n  static getUnicodeCategory(char: string, index = 0): number {\r\n    if (char == null || char.length < index + 1) return UnicodeCategory.OtherNotAssigned;\r\n    let code: number = char.charCodeAt(index);\r\n    return Chars.getUnicodeCategory(code);\r\n  }\r\n\r\n  static isControl(char: string, index = 0): boolean {\r\n    return Char.getUnicodeCategory(char, index) == UnicodeCategory.Control;\r\n  }\r\n\r\n  // private static isLatin(char: number): boolean {\r\n  //    return char <= 0x00FF;\r\n  // }\r\n\r\n}\r\n\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\nimport { Char } from \"./Char\";\r\n\r\n\r\nexport class Enum {\r\n  static getName(enumType: any, value: number): string {\r\n    let values = \"\";\r\n    if (enumType[value] == undefined) {\r\n      // eslint-disable-next-line @typescript-eslint/no-for-in-array\r\n      for (let enumValue in enumType) {\r\n        let enumValueNumber: number = +enumValue;\r\n        if (enumValueNumber != 0 && (value & enumValueNumber) == enumValueNumber) {\r\n          value -= enumValueNumber;\r\n          // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n          values += (values.length > 0 ? \", \" : \"\") + enumType[enumValueNumber];\r\n        }\r\n      }\r\n      if (values.length == 0) values = enumType[0];\r\n      return values;\r\n    }\r\n    return enumType[value];\r\n  }\r\n\r\n  static parse(enumType: any, value: string | number, upperFirstChar = true): number {\r\n    if (value == null) return null;\r\n    if (typeof value == \"number\" || Char.isDigit(value)) value = Enum.getName(enumType, +value);\r\n    let values: string[] = value.toString().split(\",\");\r\n    let enumValue: number;\r\n    // tslint:disable-next-line: prefer-for-of\r\n    for (let index = 0; index < values.length; index++) {\r\n      let strValue = upperFirstChar ? this.upperFirstChar(values[index]) : values[index];\r\n      if (typeof enumValue == \"undefined\") enumValue = enumType[strValue];\r\n      else enumValue += enumType[strValue];\r\n    }\r\n    return enumValue;\r\n  }\r\n\r\n  private static upperFirstChar(str: string): string {\r\n    str = str.trim();\r\n    return str.length > 0 ? str.charAt(0).toUpperCase() + str.slice(1) : str;\r\n  }\r\n\r\n  static getNames(enumType: any): string[] {\r\n    let names: string[] = [];\r\n    for (let enumValue in enumType) {\r\n      if (typeof enumType[enumValue] != \"number\") names.push(enumType[enumValue]);\r\n    }\r\n    return names;\r\n  }\r\n\r\n  static getValues(enumType: any): number[] {\r\n    let values: number[] = [];\r\n    for (let enumValue in enumType) {\r\n      if (typeof enumType[enumValue] != \"number\") values.push(+enumValue);\r\n    }\r\n\r\n    return values;\r\n  }\r\n\r\n  public name: string;\r\n  public value: number;\r\n\r\n  toString(): string {\r\n    return this.name;\r\n  }\r\n\r\n  /*compareTo(value: Enum): number {\r\n    if (this.value != null)\r\n      return this.value.compareTo(value.value);\r\n\r\n    return this.name.compareTo(value.name);\r\n  }*/\r\n\r\n  constructor(name: string, value: number = null) {\r\n    this.name = name;\r\n    this.value = value;\r\n  }\r\n}\r\n\r\n","export enum StiElements {\r\n  StiTextBox = \"app-sti-text-box\",\r\n  StiCheckBox = \"sti-checkbox-component\",\r\n  StiComboBox = \"app-sti-combo-box\",\r\n  StiListBox = \"app-sti-list-box\",\r\n  StiNumberBox = \"app-sti-number-box\",\r\n  StiDateTimeBox = \"app-sti-date-time-box\",\r\n  StiDescription = \"app-sti-description\",\r\n  StiMultipleSelection = \"app-sti-multiple-selection\",\r\n  StiPanel = \"app-sti-panel\",\r\n  StiSignature = \"app-sti-signature\",\r\n  StiSingleSelection = \"app-sti-single-selection\",\r\n  StiTable = \"app-sti-table\",\r\n}\r\nexport enum StiLabelAlignment {\r\n  Left = 1,\r\n  Right = 2,\r\n  Top = 3,\r\n}\r\n\r\nexport enum StiLineWeight {\r\n  Thin = 1,\r\n  Normal = 2,\r\n  Thick = 3,\r\n}\r\n\r\nexport enum StiTextHorAlignment {\r\n  Left,\r\n  Center,\r\n  Right,\r\n  Width,\r\n}\r\n\r\nexport enum StiTextRangeFormat {\r\n  Characters,\r\n}\r\nexport enum StiNumberRangeFormat {\r\n  Digits,\r\n  Values,\r\n}\r\nexport enum StiDisplayCurrencyAs {\r\n  Symbol = 1,\r\n  Code = 2,\r\n}\r\n\r\nexport enum StiBarcodeType {\r\n  AustraliaPost4State,\r\n  Aztec,\r\n  Codabar,\r\n  Code11,\r\n  Code128a,\r\n  Code128Auto,\r\n  Code128b,\r\n  Code128c,\r\n  Code39,\r\n  Code39Ext,\r\n  Code93,\r\n  Code93Ext,\r\n  DataMatrix,\r\n  DutchKIX,\r\n  EAN128a,\r\n  EAN128Auto,\r\n  EAN128b,\r\n  EAN128c,\r\n  EAN13,\r\n  EAN8,\r\n  FIM,\r\n  GS1_128,\r\n  IntelligentMail4State,\r\n  Interleaved2of5,\r\n  Isbn10,\r\n  Isbn13,\r\n  ITF14,\r\n  Jan13,\r\n  Jan8,\r\n  Maxicode,\r\n  Msi,\r\n  Pdf417,\r\n  Pharmacode,\r\n  Plessey,\r\n  Postnet,\r\n  QRCode,\r\n  RoyalMail4State,\r\n  SSCC18,\r\n  Standard2of5,\r\n  UpcA,\r\n  UpcE,\r\n  UpcSup2,\r\n  UpcSup5,\r\n}\r\n\r\nexport enum StiThousandSeparator {\r\n  None,\r\n  Comma,\r\n  Dot,\r\n  NoneComma,\r\n  Apostrophe,\r\n}\r\nexport enum StiNumberType {\r\n  Decimal,\r\n  Currency,\r\n}\r\n\r\nexport enum StiButtonType {\r\n  ClearForm,\r\n  SendForm,\r\n  AttachFiles,\r\n}\r\n\r\nexport enum StiAngle {\r\n  Angle0 = 0,\r\n  Angle90 = 90,\r\n  Angle180 = 180,\r\n  Angle270 = 270,\r\n}\r\n\r\nexport enum StiQRCodeErrorCorrectionLevel {\r\n  Level1,\r\n  Level2,\r\n  Level3,\r\n  Level4,\r\n}\r\nexport enum HatchStyle {\r\n  Horizontal = 0,\r\n  Vertical = 1,\r\n  ForwardDiagonal = 2,\r\n  BackwardDiagonal = 3,\r\n  Cross = 4,\r\n  DiagonalCross = 5,\r\n  Percent05 = 6,\r\n  Percent10 = 7,\r\n  Percent20 = 8,\r\n  Percent25 = 9,\r\n  Percent30 = 10,\r\n  Percent40 = 11,\r\n  Percent50 = 12,\r\n  Percent60 = 13,\r\n  Percent70 = 14,\r\n  Percent75 = 0xf,\r\n  Percent80 = 0x10,\r\n  Percent90 = 17,\r\n  LightDownwardDiagonal = 18,\r\n  LightUpwardDiagonal = 19,\r\n  DarkDownwardDiagonal = 20,\r\n  DarkUpwardDiagonal = 21,\r\n  WideDownwardDiagonal = 22,\r\n  WideUpwardDiagonal = 23,\r\n  LightVertical = 24,\r\n  LightHorizontal = 25,\r\n  NarrowVertical = 26,\r\n  NarrowHorizontal = 27,\r\n  DarkVertical = 28,\r\n  DarkHorizontal = 29,\r\n  DashedDownwardDiagonal = 30,\r\n  DashedUpwardDiagonal = 0x1f,\r\n  DashedHorizontal = 0x20,\r\n  DashedVertical = 33,\r\n  SmallConfetti = 34,\r\n  LargeConfetti = 35,\r\n  ZigZag = 36,\r\n  Wave = 37,\r\n  DiagonalBrick = 38,\r\n  HorizontalBrick = 39,\r\n  Weave = 40,\r\n  Plaid = 41,\r\n  Divot = 42,\r\n  DottedGrid = 43,\r\n  DottedDiamond = 44,\r\n  Shingle = 45,\r\n  Trellis = 46,\r\n  Sphere = 47,\r\n  SmallGrid = 48,\r\n  SmallCheckerBoard = 49,\r\n  LargeCheckerBoard = 50,\r\n  OutlinedDiamond = 51,\r\n  SolidDiamond = 52,\r\n  LargeGrid = 4,\r\n  Min = 0,\r\n  Max = 4,\r\n}\r\n\r\nexport enum StiQRCodeSize {\r\n  Automatic = 0,\r\n  v1,\r\n  v2,\r\n  v3,\r\n  v4,\r\n  v5,\r\n  v6,\r\n  v7,\r\n  v8,\r\n  v9,\r\n  v10,\r\n  v11,\r\n  v12,\r\n  v13,\r\n  v14,\r\n  v15,\r\n  v16,\r\n  v17,\r\n  v18,\r\n  v19,\r\n  v20,\r\n  v21,\r\n  v22,\r\n  v23,\r\n  v24,\r\n  v25,\r\n  v26,\r\n  v27,\r\n  v28,\r\n  v29,\r\n  v30,\r\n  v31,\r\n  v32,\r\n  v33,\r\n  v34,\r\n  v35,\r\n  v36,\r\n  v37,\r\n  v38,\r\n  v39,\r\n  v40,\r\n}\r\nexport enum StiQRCodeBodyShapeType {\r\n  Square,\r\n  RoundedSquare,\r\n  Dot,\r\n  Circle,\r\n  Diamond,\r\n  Star,\r\n  ZebraHorizontal,\r\n  ZebraVertical,\r\n  ZebraCross1,\r\n  ZebraCross2,\r\n  Circular,\r\n  DockedDiamonds,\r\n}\r\n\r\nexport enum StiQRCodeEyeFrameShapeType {\r\n  Square,\r\n  Dots,\r\n  Circle,\r\n  Round,\r\n  Round1,\r\n  Round3,\r\n}\r\n\r\nexport enum StiQRCodeEyeBallShapeType {\r\n  Square,\r\n  Dots,\r\n  Circle,\r\n  Round,\r\n  Round1,\r\n  Round3,\r\n  Star,\r\n  ZebraHorizontal,\r\n  ZebraVertical,\r\n}\r\nexport enum StiBrushIdent {\r\n  Empty = 1,\r\n  Solid,\r\n  Gradient,\r\n  Glare,\r\n  Glass,\r\n  Hatch,\r\n  Default,\r\n  Style,\r\n}\r\nexport enum StiBodyBrush {\r\n  Empty = 1,\r\n  Solid,\r\n  Hatch,\r\n  Gradient,\r\n  Glare,\r\n  Glass,\r\n}\r\nexport enum StiButtonSendType {\r\n  FDF,\r\n  HTML,\r\n  XFDF,\r\n  PDF,\r\n}\r\n\r\nexport enum StiUnitAlignment {\r\n  Prefix = 1,\r\n  Suffix = 2,\r\n  PrefixInside = 3,\r\n  PrefixInsideSpace = 4,\r\n  SuffixInside = 5,\r\n  SuffixInsideSpace = 6,\r\n}\r\n\r\nexport enum StiSignatureType {\r\n  Signature = 1,\r\n  DigitalSignature = 2,\r\n}\r\nexport enum ImageType {\r\n  png,\r\n  jpg,\r\n}\r\nexport enum StiPageOrientation {\r\n  Portrait = 1,\r\n  Landscape = 2,\r\n}\r\nexport enum StiDateBoxAlignment {\r\n  Left = 1,\r\n  Right = 2,\r\n  Inside = 3,\r\n}\r\nexport enum StiDateTimeBoxType {\r\n  Date = 1,\r\n  Time = 2,\r\n  DateTime = 3,\r\n}\r\nexport enum StiDateTimeBoxValueChoise {\r\n  Current = 1,\r\n  Custom = 2,\r\n  Null = 3,\r\n}\r\nexport enum StiImageSize {\r\n  Normal,\r\n  OneHalf,\r\n  Double,\r\n}\r\nexport enum SystemScaleID {\r\n  x1 = 0,\r\n  x2 = 1,\r\n  x3 = 2,\r\n  x4 = 3,\r\n}\r\nexport enum SystemScaleIconID {\r\n  x100,\r\n  x125,\r\n  x150,\r\n  x175,\r\n  x200,\r\n  x225,\r\n  x250,\r\n  x275,\r\n  x300,\r\n  x325,\r\n  x350,\r\n  x375,\r\n  x400,\r\n}\r\nexport enum StiColumnType {\r\n  CheckBox,\r\n  ComboBox,\r\n  RadioButton,\r\n  TextBox,\r\n  NumberBox,\r\n}\r\nexport enum StiVerticalAlignment {\r\n  Top = 1,\r\n  Center = 2,\r\n  Bottom = 3,\r\n}\r\nexport enum StiHorizontalAlignment {\r\n  Left = 1,\r\n  Center = 2,\r\n  Right = 3,\r\n}\r\nexport enum StiPenStyle {\r\n  Solid,\r\n  Dash,\r\n  Dot,\r\n}\r\nexport enum StiCategories {\r\n  General,\r\n  options,\r\n  Validation,\r\n  Visibility,\r\n  Appearance,\r\n}\r\n\r\nexport enum StiAlgorithmExpression {\r\n  NumberCellValue,\r\n  NumberColumnMax,\r\n  NumberColumnSum,\r\n  Constant,\r\n}\r\n\r\nexport enum PaperKind {\r\n  Custom = 0,\r\n  Letter = 1,\r\n  LetterSmall = 2,\r\n  Tabloid = 3,\r\n  Ledger = 4,\r\n  Legal = 5,\r\n  Statement = 6,\r\n  Executive = 7,\r\n  A3 = 8,\r\n  A4 = 9,\r\n  A4Small = 10,\r\n  A5 = 11,\r\n  B4 = 12,\r\n  B5 = 13,\r\n  Folio = 14,\r\n  Quarto = 15,\r\n  Standard10x14 = 16,\r\n  Standard11x17 = 17,\r\n  Note = 18,\r\n  Number9Envelope = 19,\r\n  Number10Envelope = 20,\r\n  Number11Envelope = 21,\r\n  Number12Envelope = 22,\r\n  Number14Envelope = 23,\r\n  CSheet = 24,\r\n  DSheet = 25,\r\n  ESheet = 26,\r\n  DLEnvelope = 27,\r\n  C5Envelope = 28,\r\n  C3Envelope = 29,\r\n  C4Envelope = 30,\r\n  C6Envelope = 31,\r\n  C65Envelope = 32,\r\n  B4Envelope = 33,\r\n  B5Envelope = 34,\r\n  B6Envelope = 35,\r\n  ItalyEnvelope = 36,\r\n  MonarchEnvelope = 37,\r\n  PersonalEnvelope = 38,\r\n  USStandardFanfold = 39,\r\n  GermanStandardFanfold = 40,\r\n  GermanLegalFanfold = 41,\r\n  IsoB4 = 42,\r\n  JapanesePostcard = 43,\r\n  Standard9x11 = 44,\r\n  Standard10x11 = 45,\r\n  Standard15x11 = 46,\r\n  InviteEnvelope = 47,\r\n  LetterExtra = 50,\r\n  LegalExtra = 51,\r\n  TabloidExtra = 52,\r\n  A4Extra = 53,\r\n  LetterTransverse = 54,\r\n  A4Transverse = 55,\r\n  LetterExtraTransverse = 56,\r\n  APlus = 57,\r\n  BPlus = 58,\r\n  LetterPlus = 59,\r\n  A4Plus = 60,\r\n  A5Transverse = 61,\r\n  B5Transverse = 62,\r\n  A3Extra = 63,\r\n  A5Extra = 64,\r\n  B5Extra = 65,\r\n  A2 = 66,\r\n  A3Transverse = 67,\r\n  A3ExtraTransverse = 68,\r\n  JapaneseDoublePostcard = 69,\r\n  A6 = 70,\r\n  JapaneseEnvelopeKakuNumber2 = 71,\r\n  JapaneseEnvelopeKakuNumber3 = 72,\r\n  JapaneseEnvelopeChouNumber3 = 73,\r\n  JapaneseEnvelopeChouNumber4 = 74,\r\n  LetterRotated = 75,\r\n  A3Rotated = 76,\r\n  A4Rotated = 77,\r\n  A5Rotated = 78,\r\n  B4JisRotated = 79,\r\n  B5JisRotated = 80,\r\n  JapanesePostcardRotated = 81,\r\n  JapaneseDoublePostcardRotated = 82,\r\n  A6Rotated = 83,\r\n  JapaneseEnvelopeKakuNumber2Rotated = 84,\r\n  JapaneseEnvelopeKakuNumber3Rotated = 85,\r\n  JapaneseEnvelopeChouNumber3Rotated = 86,\r\n  JapaneseEnvelopeChouNumber4Rotated = 87,\r\n  B6Jis = 88,\r\n  B6JisRotated = 89,\r\n  Standard12x11 = 90,\r\n  JapaneseEnvelopeYouNumber4 = 91,\r\n  JapaneseEnvelopeYouNumber4Rotated = 92,\r\n  Prc16K = 93,\r\n  Prc32K = 94,\r\n  Prc32KBig = 95,\r\n  PrcEnvelopeNumber1 = 96,\r\n  PrcEnvelopeNumber2 = 97,\r\n  PrcEnvelopeNumber3 = 98,\r\n  PrcEnvelopeNumber4 = 99,\r\n  PrcEnvelopeNumber5 = 100,\r\n  PrcEnvelopeNumber6 = 101,\r\n  PrcEnvelopeNumber7 = 102,\r\n  PrcEnvelopeNumber8 = 103,\r\n  PrcEnvelopeNumber9 = 104,\r\n  PrcEnvelopeNumber10 = 105,\r\n  Prc16KRotated = 106,\r\n  Prc32KRotated = 107,\r\n  Prc32KBigRotated = 108,\r\n  PrcEnvelopeNumber1Rotated = 109,\r\n  PrcEnvelopeNumber2Rotated = 110,\r\n  PrcEnvelopeNumber3Rotated = 111,\r\n  PrcEnvelopeNumber4Rotated = 112,\r\n  PrcEnvelopeNumber5Rotated = 113,\r\n  PrcEnvelopeNumber6Rotated = 114,\r\n  PrcEnvelopeNumber7Rotated = 115,\r\n  PrcEnvelopeNumber8Rotated = 116,\r\n  PrcEnvelopeNumber9Rotated = 117,\r\n  PrcEnvelopeNumber10Rotated = 118,\r\n}\r\n\r\nexport enum DayOfWeek {\r\n  Sunday = 0,\r\n  Monday = 1,\r\n  Tuesday = 2,\r\n  Wednesday = 3,\r\n  Thursday = 4,\r\n  Friday = 5,\r\n  Saturday = 6,\r\n}\r\n\r\nexport enum StiFormSaveMode {\r\n  Automatic,\r\n  Manual,\r\n}\r\n","import { Char } from \"./Char\";\r\n\r\nexport class TimeSpan {\r\n\r\n  static ticksPerMillisecond = 1;\r\n  private static millisecondsPerTick = 1 / TimeSpan.ticksPerMillisecond;\r\n\r\n  static ticksPerSecond: number = TimeSpan.ticksPerMillisecond * 1000;\r\n  private static secondsPerTick = 1 / TimeSpan.ticksPerSecond;\r\n\r\n  static ticksPerMinute: number = TimeSpan.ticksPerSecond * 60;\r\n  private static minutesPerTick = 1 / TimeSpan.ticksPerMinute;\r\n\r\n  static ticksPerHour: number = TimeSpan.ticksPerMinute * 60;\r\n  private static hoursPerTick = 1 / TimeSpan.ticksPerHour;\r\n\r\n  static ticksPerDay: number = TimeSpan.ticksPerHour * 24;\r\n  private static daysPerTick = 1 / TimeSpan.ticksPerDay;\r\n\r\n  private static millisPerSecond = 1000;\r\n  private static millisPerMinute: number = TimeSpan.millisPerSecond * 60;\r\n  private static millisPerHour: number = TimeSpan.millisPerMinute * 60;\r\n  private static millisPerDay: number = TimeSpan.millisPerHour * 24;\r\n\r\n  static maxSeconds: number = Number.MAX_VALUE / TimeSpan.ticksPerSecond;\r\n  static minSeconds: number = Number.MIN_VALUE / TimeSpan.ticksPerSecond;\r\n\r\n  static maxMilliSeconds: number = Number.MAX_VALUE / TimeSpan.ticksPerMillisecond;\r\n  static minMilliSeconds: number = Number.MIN_VALUE / TimeSpan.ticksPerMillisecond;\r\n\r\n  static ticksPerTenthSecond: number = TimeSpan.ticksPerMillisecond * 100;\r\n\r\n  get zero(): TimeSpan {\r\n    return new TimeSpan();\r\n  }\r\n\r\n  static getNetTypeName(): string {\r\n    return \"System.TimeSpan\";\r\n  }\r\n\r\n  private static _minValue: TimeSpan = null;\r\n  static minValue(): TimeSpan {\r\n    if (this._minValue == null)\r\n      this._minValue = new TimeSpan(0, 0, Number.MIN_VALUE);\r\n    return this._minValue;\r\n  }\r\n\r\n  private static _maxValue: any = null;\r\n  static maxValue(): any {\r\n    if (this._maxValue == null)\r\n      this._maxValue = new TimeSpan(0, 0, Number.MAX_VALUE);\r\n    return this._maxValue;\r\n  }\r\n\r\n  private _minus = false;\r\n\r\n  ticks: number;\r\n\r\n  get days(): number {\r\n    return Math.floor(this.ticks / TimeSpan.ticksPerDay);\r\n  }\r\n\r\n  get hours(): number {\r\n    return Math.floor(this.ticks / TimeSpan.ticksPerHour) % 24;\r\n  }\r\n\r\n  get milliseconds(): number {\r\n    return Math.floor(this.ticks / TimeSpan.ticksPerMillisecond) % 1000;\r\n  }\r\n\r\n  get minutes(): number {\r\n    return Math.floor(this.ticks / TimeSpan.ticksPerMinute) % 60;\r\n  }\r\n\r\n  get seconds(): number {\r\n    return Math.floor(this.ticks / TimeSpan.ticksPerSecond) % 60;\r\n  }\r\n\r\n  get totalDays(): number {\r\n    return this.ticks * TimeSpan.daysPerTick;\r\n  }\r\n\r\n  get totalHours(): number {\r\n    return this.ticks * TimeSpan.hoursPerTick;\r\n  }\r\n\r\n  get totalMilliseconds(): number {\r\n    let temp: number = this.ticks * TimeSpan.millisecondsPerTick;\r\n    if (temp > TimeSpan.maxMilliSeconds)\r\n      return TimeSpan.maxMilliSeconds;\r\n\r\n    if (temp < TimeSpan.minMilliSeconds)\r\n      return TimeSpan.minMilliSeconds;\r\n\r\n    return temp;\r\n  }\r\n\r\n  get totalMinutes(): number {\r\n    return this.ticks * TimeSpan.minutesPerTick;\r\n  }\r\n\r\n  get totalSeconds(): number {\r\n    return this.ticks * TimeSpan.secondsPerTick;\r\n  }\r\n\r\n  static fromString(value: string, format: string = null): TimeSpan {\r\n    if (value == null) return null;\r\n\r\n    let isDefaultFormat = false;\r\n    if (format == null || format.length == 0) {\r\n      format = \"hh:mm:ss\";\r\n      isDefaultFormat = true;\r\n    }\r\n\r\n    let days = 0;\r\n    let hours = 0;\r\n    let minutes = 0;\r\n    let seconds = 0;\r\n    let milliseconds = 0;\r\n\r\n    let char: string;\r\n    let pos = 0;\r\n    let values: number[] = [];\r\n    let stringValues: string[] = [];\r\n    let minus = false;\r\n\r\n    // Parse time into separate numeric values\r\n    while (pos < value.length) {\r\n      char = value.charAt(pos);\r\n\r\n      if (Char.isDigit(char)) {\r\n        stringValues.push(char);\r\n        pos++;\r\n\r\n        while (pos < value.length && Char.isDigit(char = value.charAt(pos))) {\r\n          stringValues[stringValues.length - 1] += value.charAt(pos);\r\n          pos++;\r\n        }\r\n\r\n        values.push(+(stringValues[stringValues.length - 1]));\r\n      }\r\n      else if (char == \"-\") minus = true;\r\n\r\n      if (isDefaultFormat && char === \".\") {\r\n        if (values.length === 1) format = \"d.hh:mm:ss\";\r\n        else format += \".f\";\r\n      }\r\n\r\n      pos++;\r\n    }\r\n\r\n    pos = 0;\r\n    let index = -1;\r\n\r\n    // Parsing format and replacement of appropriate values of time\r\n    while (pos < format.length && index + 1 < values.length) {\r\n      char = format.charAt(pos);\r\n\r\n      if (char === \"d\" || char === \"h\" || char === \"H\" || char === \"m\" || char === \"s\" || char === \"f\" || char === \"F\") {\r\n        index++;\r\n        while (pos < format.length && format.charAt(pos) === char) pos++;\r\n      }\r\n\r\n      switch (char) {\r\n        case \"d\": // days\r\n          days = values[index];\r\n          break;\r\n\r\n        case \"h\":\r\n        case \"H\": // hours\r\n          hours = values[index];\r\n          break;\r\n\r\n        case \"m\": // minutes\r\n          minutes = values[index];\r\n          break;\r\n\r\n        case \"s\": // seconds\r\n          seconds = values[index];\r\n          break;\r\n\r\n        case \"f\":\r\n        case \"F\": // seconds fraction\r\n          milliseconds = values[index];\r\n          break;\r\n\r\n        default:\r\n          pos++;\r\n          break;\r\n      }\r\n    }\r\n\r\n    let timeSpan = TimeSpan.create(days, hours, minutes, seconds, milliseconds);\r\n    timeSpan._minus = minus;\r\n    return timeSpan\r\n  }\r\n\r\n  private static interval(value: number, scale: number): TimeSpan {\r\n    let tmp: number = value * scale;\r\n    let millis: number = tmp + (value >= 0 ? 0.5 : -0.5);\r\n    return new TimeSpan(millis * TimeSpan.ticksPerMillisecond);\r\n  }\r\n\r\n  /* static fromTicks(value: number): TimeSpan {\r\n     return new TimeSpan(value);\r\n   }\r\n\r\n   static fromSeconds(value: number): TimeSpan {\r\n     return this.interval(value, this.millisPerSecond);\r\n   }\r\n\r\n   static fromMilliseconds(value: number): TimeSpan {\r\n     return this.interval(value, 1);\r\n   }\r\n\r\n   add(value: number): TimeSpan {\r\n     return new TimeSpan(this.ticks + value);\r\n   }\r\n\r\n   add2(value: TimeSpan): TimeSpan {\r\n     return new TimeSpan(this.ticks + value.ticks);\r\n   }*/\r\n\r\n  toString(format?: string): string {\r\n    if (format == null || format.length == 0) {\r\n      format = \"hh:mm:ss\";\r\n      if (this.days != 0) {\r\n        format = \"d.hh:mm:ss\";\r\n      }\r\n    }\r\n\r\n    /*switch (format) {\r\n      case \"t\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.shortTimePattern;\r\n        break;\r\n      case \"T\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.longTimePattern;\r\n        break;\r\n    }\r\n\r\n    format = format.replace(/H/gm, \"h\");\r\n*/\r\n    let result = \"\";\r\n    let pos = 0;\r\n    let isDays = false;\r\n\r\n    /*  while (pos < format.length) {\r\n        let f = format.charAt(pos);\r\n\r\n        if (!Char.isLetter(f)) {\r\n          result += f;\r\n          pos++;\r\n          continue;\r\n        }\r\n\r\n        while (pos + 1 < format.length && Char.isLetter(format.charAt(pos + 1))) {\r\n          pos++;\r\n          f += format.charAt(pos);\r\n        }\r\n\r\n        switch (f[0]) {\r\n          case \"d\":\r\n            isDays = true;\r\n            result += Math.abs(this.days).toString().ss.padLeft(f.length, \"0\");\r\n            break;\r\n          case \"h\":\r\n            result += Math.abs(isDays ? this.hours : StiMath.trunc(StiMath.round2(this.totalHours, 2))).toString().ss.padLeft(f.length, \"0\");\r\n            break;\r\n          case \"m\":\r\n            result += Math.abs(this.minutes).toString().ss.padLeft(f.length, \"0\");\r\n            break;\r\n          case \"s\":\r\n            result += Math.abs(this.seconds).toString().ss.padLeft(f.length, \"0\");\r\n            break;\r\n          case \"f\":\r\n            result += Math.abs(this.milliseconds).toString().ss.padLeft(f.length, \"0\");\r\n            break\r\n          case \"F\":\r\n            if (this.milliseconds != 0)\r\n              result += Math.abs(this.milliseconds).toString().ss.padLeft(f.length, \"0\");\r\n            break;\r\n        }\r\n        pos++;\r\n      }\r\n\r\n      if (this._minus) return \"-\" + result;*/\r\n    return result;\r\n  }\r\n\r\n  negate(): TimeSpan {\r\n    if (this.ticks == TimeSpan.minValue().ticks)\r\n      throw new Error(\"Overflow_NegateTwosCompNum\");\r\n    return new TimeSpan(-this.ticks);\r\n  }\r\n\r\n  private static timeToTicks(day: number, hour: number, minute: number, second: number, milliseconds: number): number {\r\n    let totalSeconds: number = day * 86400 + hour * 3600 + minute * 60 + second;\r\n    return totalSeconds * TimeSpan.ticksPerSecond;\r\n  }\r\n\r\n  static create(days = 0, hours = 0, minutes = 0, seconds = 0, milliseconds = 0): TimeSpan {\r\n    return null;// new TimeSpan(TimeSpan.timeToTicks(days, hours, minutes, seconds, milliseconds));\r\n  }\r\n\r\n  constructor(param1 = 0, minutes: number = null, seconds: number = null, milliseconds: number = null) {\r\n    if (minutes == null) {\r\n      this.ticks = param1;\r\n    }\r\n    else {\r\n      let hours1: number = param1;\r\n      if (milliseconds == null) milliseconds = 0;\r\n\r\n      this.ticks = TimeSpan.timeToTicks(0, hours1, minutes, seconds, milliseconds);\r\n    }\r\n  }\r\n}\r\n","import { DayOfWeek } from \"./enums\";\r\nimport { TimeSpan } from \"./TimeSpan\";\r\n\r\nexport class DateTime {\r\n  // Number of 100ns ticks per time unit\r\n  private static ticksPerMillisecond = 1000;\r\n  private static ticksPerSecond: number = DateTime.ticksPerMillisecond * 1000;\r\n  private static ticksPerMinute: number = DateTime.ticksPerSecond * 60;\r\n  private static ticksPerHour: number = DateTime.ticksPerMinute * 60;\r\n  private static ticksPerDay: number = DateTime.ticksPerHour * 24;\r\n\r\n  // Number of milliseconds per time unit\r\n  private static millisPerSecond = 1000;\r\n  private static millisPerMinute: number = DateTime.millisPerSecond * 60;\r\n  private static millisPerHour: number = DateTime.millisPerMinute * 60;\r\n  private static millisPerDay: number = DateTime.millisPerHour * 24;\r\n\r\n  // Number of days in a non-leap year\r\n  private static daysPerYear = 365;\r\n  // Number of days in 4 years\r\n  private static daysPer4Years: number = DateTime.daysPerYear * 4 + 1;\r\n  // Number of days in 100 years\r\n  private static daysPer100Years: number = DateTime.daysPer4Years * 25 - 1;\r\n  // Number of days in 400 years\r\n  private static daysPer400Years: number = DateTime.daysPer100Years * 4 + 1;\r\n\r\n  // Number of days from 1/1/0001 to 12/31/1600\r\n  private static daysTo1601: number = DateTime.daysPer400Years * 4;\r\n  // Number of days from 1/1/0001 to 12/30/1899\r\n  private static daysTo1899: number = DateTime.daysPer400Years * 4 + DateTime.daysPer100Years * 3 - 367;\r\n  // Number of days from 1/1/0001 to 12/31/9999\r\n  private static daysTo10000: number = DateTime.daysPer400Years * 25 - 366;\r\n\r\n  private static minTicks = 0;\r\n  private static maxTicks: number = DateTime.daysTo10000 * DateTime.ticksPerDay - 1;\r\n  private static maxMillis: number = DateTime.daysTo10000 * DateTime.millisPerDay;\r\n\r\n  private static fileTimeOffset: number = DateTime.daysTo1601 * DateTime.ticksPerDay;\r\n  private static doubleDateOffset: number = DateTime.daysTo1899 * DateTime.ticksPerDay;\r\n  // The minimum OA date is 0100/01/01 (Note it's year 100).\r\n  // The maximum OA date is 9999/12/31\r\n  private static oADateMinAsTicks: number = (DateTime.daysPer100Years - DateTime.daysPerYear) * DateTime.ticksPerDay;\r\n  // All OA dates must be greater than (not >=) OADateMinAsDouble\r\n  private static oADateMinAsDouble = -657435;\r\n  // All OA dates must be less than (not <=) OADateMaxAsDouble\r\n  private static oADateMaxAsDouble = 2958466;\r\n\r\n  private static datePartYear = 0;\r\n  private static datePartDayOfYear = 1;\r\n  private static datePartMonth = 2;\r\n  private static DatePartDay = 3;\r\n\r\n  private static daysToMonth365: number[] = [\r\n    0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\r\n  private static daysToMonth366: number[] = [\r\n    0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366];\r\n\r\n  static minValue: DateTime = new DateTime(DateTime.minTicks);\r\n  static maxValue: DateTime = new DateTime(DateTime.maxTicks);\r\n\r\n  static getNetTypeName(): string {\r\n    return \"System.DateTime\";\r\n  }\r\n\r\n  DateTimeOffset = \"\";\r\n\r\n  private innerDate: Date;\r\n\r\n  get year(): number {\r\n    return this.innerDate.getFullYear();\r\n  }\r\n\r\n  get month(): number {\r\n    return this.innerDate.getMonth() + 1;\r\n  }\r\n\r\n  /*get monthName(): string {\r\n    return CultureInfo.currentCulture.dateTimeFormat.monthNames[this.month - 1];\r\n  }\r\n\r\n  get monthGenitiveName(): string {\r\n    return CultureInfo.currentCulture.dateTimeFormat.monthGenitiveNames[this.month - 1];\r\n  }\r\n\r\n  get monthShortName(): string {\r\n    return CultureInfo.currentCulture.dateTimeFormat.abbreviatedMonthNames[this.month - 1];\r\n  }*/\r\n\r\n  get day(): number {\r\n    return this.innerDate.getDate();\r\n  }\r\n\r\n  /** 0 – Sunday, 1 – Monday etc */\r\n  get dayOfWeek(): DayOfWeek {\r\n    return this.innerDate.getDay();\r\n  }\r\n\r\n  /*get dayName(): string {\r\n    return CultureInfo.currentCulture.dateTimeFormat.dayNames[this.dayOfWeek];\r\n  }\r\n\r\n  get dayShortName(): string {\r\n    return CultureInfo.currentCulture.dateTimeFormat.shortestDayNames[this.dayOfWeek];\r\n  }*/\r\n\r\n  get hour(): number {\r\n    return this.innerDate.getHours();\r\n  }\r\n\r\n  get minute(): number {\r\n    return this.innerDate.getMinutes();\r\n  }\r\n\r\n  get second(): number {\r\n    return this.innerDate.getSeconds();\r\n  }\r\n\r\n  get millisecond(): number {\r\n    return this.innerDate.getMilliseconds();\r\n  }\r\n\r\n  get ticks(): number {\r\n    return this.innerDate.getTime();\r\n  }\r\n\r\n  get dayOfYear(): number {\r\n    let oneJan: Date = new Date(this.innerDate.getFullYear(), 0, 1);\r\n    let diff = this.innerDate.getTime() - oneJan.getTime();\r\n    return Math.ceil(diff / 86400000) + 1;\r\n  }\r\n\r\n  /*firstDayOfWeek(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.startOf(\"week\").toDate());\r\n  }\r\n\r\n  lastDayOfWeek(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.endOf(\"week\").toDate());\r\n  }\r\n\r\n  firstDayOfMonth(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.startOf(\"month\").toDate());\r\n  }\r\n\r\n  lastDayOfMonth(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.endOf(\"month\").toDate());\r\n  }\r\n\r\n  firstDayOfQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.startOf(\"quarter\").toDate());\r\n  }\r\n\r\n  lastDayOfQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.endOf(\"quarter\").toDate());\r\n  }\r\n\r\n  firstDayOfFirthQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs().month(0);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.startOf(\"quarter\").toDate());\r\n  }\r\n\r\n  lastDayOfFirthQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs().month(0);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.endOf(\"quarter\").toDate());\r\n  }\r\n\r\n  firstDayOfSecondQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs().month(3);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.startOf(\"quarter\").toDate());\r\n  }\r\n\r\n  lastDayOfSecondQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs().month(3);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.endOf(\"quarter\").toDate());\r\n  }\r\n\r\n  firstDayOfThirdQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs().month(6);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.startOf(\"quarter\").toDate());\r\n  }\r\n\r\n  lastDayOfThirdQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs().month(6);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.endOf(\"quarter\").toDate());\r\n  }\r\n\r\n  firstDayOfFourthQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs().month(9);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.startOf(\"quarter\").toDate());\r\n  }\r\n\r\n  lastDayOfFourthQuarter(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs().month(9);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.endOf(\"quarter\").toDate());\r\n  }\r\n\r\n  firstDayOfYear(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.startOf(\"year\").toDate());\r\n  }\r\n\r\n  lastDayOfYear(): DateTime {\r\n    let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n    return new DateTime(dayjsDate.endOf(\"year\").toDate());\r\n  }\r\n\r\n  toShortDateString(): string {\r\n    return this.toString(CultureInfo.currentCulture.dateTimeFormat.shortDatePattern);\r\n  }\r\n\r\n  toShortTimeString(): string {\r\n    return this.toString(CultureInfo.currentCulture.dateTimeFormat.shortTimePattern);\r\n  }*/\r\n\r\n  static now(): DateTime {\r\n    return new DateTime(new Date());\r\n  }\r\n\r\n  static today(): DateTime {\r\n    let today: DateTime = new DateTime(new Date());\r\n\r\n    return new DateTime(today.year, today.month, today.day, 0, 0, 0, 0);\r\n  }\r\n\r\n  static isLeapYear(year: number): boolean {\r\n    return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\r\n  }\r\n\r\n  /** The month number ranging from 1 to 12. JS calculate month from 0. This will even work for December. */\r\n  static daysInMonth(year: number, month: number): number {\r\n    return 33 - new Date(year, month - 1, 33).getDate();\r\n  }\r\n\r\n  static compare(t1: DateTime, t2: DateTime): number {\r\n    if (t1.ticks < t2.ticks) return -1;\r\n    if (t1.ticks > t2.ticks) return 1;\r\n    return 0;\r\n  }\r\n\r\n  private static doubleDateToTicks(value: number): number {\r\n    if (value >= this.oADateMaxAsDouble || value <= this.oADateMinAsDouble)\r\n      return null;\r\n    let millis: number = (value * this.millisPerDay + (value >= 0 ? 0.5 : -0.5));\r\n    // The interesting thing here is when you have a value like 12.5 it all positive 12 days and 12 hours from 01/01/1899\r\n    // However if you a value of -12.25 it is minus 12 days but still positive 6 hours, almost as though you meant -11.75 all negative\r\n    // This line below fixes up the millis in the negative case\r\n    if (millis < 0) {\r\n      millis -= (millis % this.millisPerDay) * 2;\r\n    }\r\n\r\n    millis += this.doubleDateOffset / this.ticksPerMillisecond;\r\n\r\n    if (millis < 0 || millis >= this.maxMillis) return null;\r\n    return millis * this.ticksPerMillisecond;\r\n  }\r\n\r\n  // private static ticksToOADate(value: number): number {\r\n  //     //The time value for the date 1899-12-30 is -2209197600000 milliseconds\r\n  //     let millis: number = (value + 2209197600000) / this.ticksPerMillisecond;\r\n  //     if (millis < 0) {\r\n  //         let frac: number = millis % this.millisPerDay;\r\n  //         if (frac != 0) millis -= (this.millisPerDay + frac) * 2;\r\n  //     }\r\n  //     return millis / this.millisPerDay * 1000;\r\n  // }\r\n\r\n  toString(format = \"G\"): string {\r\n    /*let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(this.innerDate);\r\n    if (!dayjsDate.isValid()) return \"\";\r\n    dayjsDate = dayjsDate.locale(`sti_${CultureInfo.currentCulture.name}`);\r\n\r\n\r\n    LT: culture.dateTimeFormat.shortTimePattern,\r\n    LTS: culture.dateTimeFormat.longTimePattern,\r\n    L: culture.dateTimeFormat.shortDatePattern,\r\n    LLL: culture.dateTimeFormat.longDatePattern,\r\n    LLLL: culture.dateTimeFormat.fullDateTimePattern\r\n\r\n    t\tShortTimePattern\th:mm tt       LT: \"h:mm A\",\r\n    T\tLongTimePattern\t    h:mm:ss tt    LTS: \"h:mm:ss A\",\r\n\r\n    d\tShortDatePattern\tM/d/yyyy                L: \"M/D/YYYY\",\r\n    D\tLongDatePattern\t    dddd, MMMM dd, yyyy     LLL: \"MMMM Do YYYY\",\r\n\r\n    f\t(combination of D and t)\tdddd, MMMM dd, yyyy h:mm tt\r\n    F\tFullDateTimePattern\t        dddd, MMMM dd, yyyy h:mm:ss tt LLLL: \"dddd, MMMM Do YYYY LT\",\r\n\r\n    g\t(combination of d and t)\tM/d/yyyy h:mm tt\r\n    G\t(combination of d and T)\tM/d/yyyy h:mm:ss tt\r\n    */\r\n\r\n    /*switch (format) {\r\n      case \"t\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.shortTimePattern;\r\n        break;\r\n      case \"T\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.longTimePattern;\r\n        break;\r\n      case \"d\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.shortDatePattern;\r\n        break;\r\n      case \"D\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.longDatePattern;\r\n        break;\r\n      case \"f\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.longDatePattern + \" \" + CultureInfo.currentCulture.dateTimeFormat.shortTimePattern;\r\n        break;\r\n      case \"F\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.fullDateTimePattern;\r\n        break;\r\n      case \"g\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.shortDatePattern + \" \" + CultureInfo.currentCulture.dateTimeFormat.shortTimePattern;\r\n        break;\r\n      case \"G\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.shortDatePattern + \" \" + CultureInfo.currentCulture.dateTimeFormat.longTimePattern;\r\n        break;\r\n      case \"y\":\r\n      case \"Y\":\r\n        format = CultureInfo.currentCulture.dateTimeFormat.yearMonthPattern;\r\n        break;\r\n      case \"s\":\r\n        format = \"yyyy-MM-dd\\\\THH:mm:ss\";\r\n        break;// ISO\r\n      case \"u\":\r\n        format = \"yyyy-MM-dd HH:mm:ss\\\\Z\";\r\n        break;// ISO\r\n      case \"m\":\r\n      case \"M\":   // MonthDayPattern;\r\n        format = CultureInfo.currentCulture.name.ss.contains(\"en\") || CultureInfo.currentCulture.name.ss.contains(\"us\") ? \"MMMM d\" : \"d MMMM\";\r\n        break;\r\n      case \"r\":\r\n      case \"R\":   // The RFC1123 Format Specifier\r\n        format = \"ddd, dd MMM yyyy HH\\\\:mm\\\\:ss \\\\G\\\\M\\\\T\";\r\n        break;\r\n    }*/\r\n\r\n    format = format.replace(/d/gm, \"D\").replace(/DDDD/gm, \"dddd\").replace(/DDD/gm, \"ddd\");\r\n    format = format.replace(/y/gm, \"Y\");\r\n    format = format.replace(/f/gm, \"S\").replace(/F/gm, \"S\");\r\n    format = format.replace(/tt/gm, \"A\").replace(/t/gm, \"A\");\r\n    format = format.replace(/zzz/gm, \"Z\").replace(/zz/gm, \"Z\").replace(/z/gm, \"Z\");\r\n\r\n    return format + this.DateTimeOffset;\r\n  }\r\n\r\n\r\n  static ticksNetToTicksJs(ticks: number): number {\r\n    // ticks are in nanotime; convert to microtime\r\n    let ticksToMicrotime = ticks / 10000;\r\n\r\n    // ticks are recorded from 1/1/1; get microtime difference from 1/1/1/ to 1/1/1970\r\n    let epochMicrotimeDiff = 62135607600000;    // Math.abs(new Date(0, 0, 1).setFullYear(1))\r\n\r\n    return ticksToMicrotime - epochMicrotimeDiff;\r\n  }\r\n\r\n  negate(): DateTime {\r\n    if (this.ticks == TimeSpan.minValue().ticks)\r\n      throw new Error(\"Overflow_NegateTwosCompNum\");\r\n    return new DateTime(-this.ticks);\r\n  }\r\n\r\n  addYears(value: number): DateTime {\r\n    return new DateTime(this.year + value, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\r\n  }\r\n\r\n  addMonths(value: number): DateTime {\r\n    let newMonth = this.month + value;\r\n    let newYear: number = this.year;\r\n    if (newMonth < 1) {\r\n      newYear--;\r\n      newMonth = 12 + newMonth;\r\n    }\r\n    return new DateTime(newYear, newMonth, this.day, this.hour, this.minute, this.second, this.millisecond);\r\n  }\r\n\r\n  /*addDays(value: number): DateTime {\r\n    let newDate: DateTime = new DateTime(this.innerDate.getTime());\r\n    let newDay = newDate.day + value;\r\n    if (newDay < 1) {\r\n      newDate = newDate.addMonths(-1);\r\n      newDay = newDate.lastDayOfMonth().day + newDay;\r\n    }\r\n    return new DateTime(newDate.year, newDate.month, newDay, newDate.hour, newDate.minute, newDate.second, newDate.millisecond);\r\n  }*/\r\n\r\n  addHours(value: number): DateTime {\r\n    return new DateTime(this.year, this.month, this.day, this.hour + value, this.minute, this.second, this.millisecond);\r\n  }\r\n\r\n  addMinutes(value: number): DateTime {\r\n    return new DateTime(this.year, this.month, this.day, this.hour, this.minute + value, this.second, this.millisecond);\r\n  }\r\n\r\n  addSeconds(value: number): DateTime {\r\n    return new DateTime(this.year, this.month, this.day, this.hour, this.minute, this.second + value, this.millisecond);\r\n  }\r\n\r\n  addMilliseconds(value: number): DateTime {\r\n    return new DateTime(this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond + value);\r\n  }\r\n\r\n  addTicks(value: number): DateTime {\r\n    return new DateTime(this.ticks + value);\r\n  }\r\n\r\n  compareTo(value: DateTime): number {\r\n    if (this.ticks < value.ticks) return -1;\r\n    if (this.ticks > value.ticks) return 1;\r\n    return 0;\r\n  }\r\n\r\n  subtract(value: DateTime): TimeSpan {\r\n    return new TimeSpan(this.ticks - value.ticks);\r\n  }\r\n\r\n  get date(): Date {\r\n    return this.innerDate;\r\n  }\r\n\r\n\r\n  static oaDateToTicks0(oaDate: number): number {\r\n    let ticks = ((oaDate - 25569) * 86400000);\r\n    if (oaDate < 0) {\r\n      const frac = (oaDate - Math.trunc(oaDate)) * 86400000;\r\n      if (frac !== 0) {\r\n        ticks -= frac * 2;\r\n      }\r\n    }\r\n    return ticks;\r\n  }\r\n\r\n  static ticksToOADate0(ticks: number): number {\r\n    let oad = (ticks / 86400000) + 25569;\r\n    if (oad < 0) {\r\n      const frac = oad - Math.trunc(oad);\r\n      if (frac !== 0) {\r\n        oad = Math.ceil(oad) - frac - 2;\r\n      }\r\n    }\r\n    return oad;\r\n  }\r\n\r\n  toOADate(): number {\r\n    //return (this.ticks / 86400000) + 25569;\r\n\r\n    return DateTime.ticksToOADate0(this.ticks);\r\n  }\r\n\r\n  toOADate2(round: boolean): number {\r\n    let ticks = DateTime.ticksToOADate0(this.ticks);\r\n    //let ticks = DateTime.ticksToOADate(this.ticks);\r\n    if (round)\r\n      return Math.round(ticks);\r\n\r\n    return ticks;\r\n  }\r\n\r\n  toNetJsonString(): string {\r\n    return \"\\\\/Date(\" + this.ticks.toString() + \")\\\\/\";\r\n  }\r\n\r\n\r\n\r\n  static fromNetJsonString(jsonDate: string): DateTime {\r\n    let m = /-?\\d+/.exec(jsonDate);\r\n    let date: Date = new Date(parseInt(m[0]));\r\n\r\n    return new DateTime(date);\r\n  }\r\n\r\n  static fromOADate(oadate: number): DateTime {\r\n\r\n    return new DateTime(DateTime.oaDateToTicks0(oadate));\r\n\r\n    //return new DateTime(((oadate - 25569) * 86400000));\r\n    // return new DateTime(this.doubleDateToTicks(d));\r\n  }\r\n\r\n  static fromString(d = \"2015-12-31\", logError = true): DateTime {\r\n    try {\r\n      d = d.trim();\r\n      let date = d.split(\".\").join(\"-\").split(\"\\\\\").join(\"-\").split(\" \").join(\"-\");\r\n      return new DateTime(new Date());\r\n      let dayjsDate;\r\n\r\n      /*if (date.indexOf(\"/\") >= 0) {\r\n        // Date\r\n        dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"M/D/YYYY\", true);\r\n        if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n        dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"M/D/YY\", true);\r\n        if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n        // DateTime\r\n        dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"M/D/YYYY-H:m\", true);\r\n        if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n        dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"M/D/YYYY-H:m:s\", true);\r\n        if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n        dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"M/D/YYYY-h:m:s-a\", true);\r\n        if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n        dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"M/D/YY-H:m\", true);\r\n        if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n        dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"M/D/YY-H:m:s\", true);\r\n        if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n        dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"M/D/YY-h:m:s-a\", true);\r\n        if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n        date = d.split(\"/\").join(\"-\");\r\n      }\r\n\r\n      // Date\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-M-D\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"D-M-YYYY\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"D-M-YY\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      // DateTime\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-M-D-H:m\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-M-D-H:m:s\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-M-D-H:m:s-SSS\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-M-D-H:m:s-SSSSSSS\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-M-D-h:m:s-a\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"D-M-YYYY-H:m\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"D-M-YYYY-H:m:s\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"D-M-YYYY-h:m:s-a\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"D-M-YY-H:m\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"D-M-YY-H:m:s\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"D-M-YY-h:m:s-a\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      // Time\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"H:m\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"H:m:s\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"h:m:s-a\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      // ISO\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-MM-DD\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-MM-DDTHH:m:sZ\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-MM-DDTHH:m:s-SSSZ\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-MM-DDTHH:m:s-SSSSSSSZ\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-MM-DDTHH:m:s\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-MM-DDTHH:m:s-SSS\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      dayjsDate = Stimulsoft.ExternalLibrary.dayjs(date, \"YYYY-MM-DDTHH:m:s-SSSSSSS\", true);\r\n      if (dayjsDate.isValid()) return new DateTime(dayjsDate.toDate());\r\n\r\n      if (logError) StiError.showError(\"Parse DateTime Error (\" + d + \")\", false);*/\r\n      return null;\r\n    }\r\n    catch (e) {\r\n      return null;\r\n    }\r\n  }\r\n  /*\r\n      static fromString2(format = \"2015-12-31\", value: string, logError = true): DateTime {\r\n        try {\r\n          let dayjsDate = Stimulsoft.ExternalLibrary.dayjs(value, [format], true);\r\n          if (dayjsDate.isValid() == false) {\r\n            if (logError) StiError.showError(\"Parse DateTime Error (\" + value + \")\", false);\r\n            return null;\r\n          }\r\n\r\n          return new DateTime(dayjsDate.toDate());\r\n        }\r\n        catch (e) {\r\n        }\r\n        return null;\r\n      }\r\n\r\n      static isISO8601String(d: string): boolean {\r\n        try {\r\n          d = d.trim();\r\n\r\n          let dayjsDate;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DD\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DDTHH:mm\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DDTHH:mmZ\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DDTHH:mm:ss\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DDTHH:mm:ss.SSS\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DDTHH:mm:ss.SSSSSS\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DDTHH:mm:ssZ\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DDTHH:mm:ss.SSSZ\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n\r\n          dayjsDate = Stimulsoft.ExternalLibrary.dayjs(d, \"YYYY-MM-DDTHH:mm:ss.SSSSSSZ\", true);\r\n          if (dayjsDate.isValid()) return true;\r\n        }\r\n        catch (e) {\r\n        }\r\n\r\n        return false;\r\n      }*/\r\n\r\n  get timeOfDay(): TimeSpan {\r\n    return new TimeSpan(this.ticks - new DateTime(this.year, this.month, this.day, 0, 0, 0, 0).ticks);\r\n  }\r\n\r\n  get date2(): DateTime {\r\n    return new DateTime(this.year, this.month, this.day, 0, 0, 0, 0);\r\n  }\r\n\r\n  constructor(param1: Date | number, month?: number, day?: number, hour?: number, minute?: number, second?: number, millisecond?: number) {\r\n    if (typeof param1 == \"undefined\") {\r\n      this.innerDate = new Date();\r\n    }\r\n    else if (typeof param1 != \"number\" && param1 instanceof Date) {\r\n      this.innerDate = param1; // set date\r\n    } else {\r\n      if (!month) {\r\n        this.innerDate = new Date();\r\n        this.innerDate.setTime(param1); // set ticks\r\n      } else {\r\n        this.innerDate = new Date();\r\n        this.innerDate.setFullYear(param1);\r\n        this.innerDate.setMonth(month - 1);\r\n        this.innerDate.setDate(day || 1);\r\n        this.innerDate.setHours(hour || 0);\r\n        this.innerDate.setMinutes(minute || 0);\r\n        this.innerDate.setSeconds(second || 0);\r\n        this.innerDate.setMilliseconds(millisecond || 0);\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\nexport class StiObject {\r\n\r\n    static keys(obj: any): string[] {\r\n        // if (Object.keys) return Object.keys(obj);\r\n        let keys: string[] = [];\r\n\r\n        // eslint-disable-next-line @typescript-eslint/no-for-in-array\r\n        for (let i in obj) {\r\n            if (Object.prototype.hasOwnProperty.call(obj, i)) {\r\n                keys.push(i);\r\n            }\r\n        }\r\n\r\n        // eslint-disable-next-line @typescript-eslint/no-for-in-array\r\n        for (let i in obj.__proto__) {\r\n            if (Object.prototype.hasOwnProperty.call(obj, i)) {\r\n                keys.push(i);\r\n            }\r\n        }\r\n\r\n        return keys;\r\n    }\r\n\r\n    static disableAllEnumerable(prototype, obj) {\r\n        // eslint-disable-next-line @typescript-eslint/no-for-in-array\r\n        for (let name in obj) {\r\n            Object.defineProperty(prototype, name, { enumerable: false });\r\n        }\r\n    }\r\n}\r\n\r\nexport class StiString extends StiObject {\r\n\r\n    static isNullOrEmpty(value: string): boolean {\r\n        return value == null || value === \"\" || value === undefined;\r\n    }\r\n}\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\nimport List from \"./List\";\r\nimport { StiObject } from \"./StiObject\";\r\nexport default class Hashtable<K = any, V = any> {\r\n    private ignoreCase = false;\r\n    private isSimpleKeys = false;\r\n\r\n    keys = new List<K>();\r\n    values = new List<V>();\r\n\r\n    private indexObject: any = {};\r\n\r\n    constructor(options = { ignoreCase: false }) {\r\n        this.ignoreCase = options.ignoreCase;\r\n        if (this.ignoreCase) this.isSimpleKeys = true;\r\n    }\r\n\r\n    get(key: K): V {\r\n        if (this.isSimpleKeys) {\r\n            if (this.ignoreCase) key = (<any>key).toLowerCase();\r\n            return this.values[this.indexObject[key]];\r\n        }\r\n        return this.values[this.keys.indexOf(key)];\r\n    }\r\n\r\n    set(key: K, value: V) {\r\n        if (this.isSimpleKeys) {\r\n            let type: string = typeof key;\r\n            if (type != \"string\" && type != \"number\") {\r\n                this.isSimpleKeys = false;\r\n                this.indexObject = {};\r\n            }\r\n        }\r\n        else if (this.keys.length == 0) {\r\n            let type: string = typeof key;\r\n            if (type == \"string\" || type == \"number\") this.isSimpleKeys = true;\r\n        }\r\n        let index = -1;\r\n        if (this.isSimpleKeys) {\r\n            if (this.ignoreCase) key = (<any>key).toLowerCase();\r\n            index = this.indexObject[key];\r\n        }\r\n        else index = this.keys.indexOf(key);\r\n\r\n        if (index >= 0) this.values[index] = value;\r\n        else {\r\n            if (this.isSimpleKeys) {\r\n                if (this.ignoreCase) key = (<any>key).toLowerCase();\r\n                this.indexObject[key] = this.keys.length;\r\n            }\r\n            this.keys.push(key);\r\n            this.values.push(value);\r\n        }\r\n    }\r\n\r\n    /** Adds an element with the specified key and value into the Hashtable. */\r\n    add(key: K, value: V) {\r\n        this.set(key, value);\r\n    }\r\n\r\n    /** Determines whether the Hashtable contains a specific key. */\r\n    contains(key: K): boolean {\r\n        if (this.isSimpleKeys) {\r\n            if (this.ignoreCase) key = (<any>key).toLowerCase();\r\n            return this.indexObject[key] != undefined;\r\n        }\r\n        return this.keys.contains(key);\r\n    }\r\n\r\n    /** Determines whether the Hashtable contains a specific key. */\r\n    containsKey(key: K): boolean {\r\n        if (this.isSimpleKeys) {\r\n            if (this.ignoreCase) key = (<any>key).toLowerCase();\r\n            return this.indexObject[key] != undefined;\r\n        }\r\n        return this.keys.contains(key);\r\n    }\r\n\r\n    /** Determines whether the Hashtable contains a specific value. */\r\n    containsValue(value: V): boolean {\r\n        return this.values.contains(value);\r\n    }\r\n\r\n    /** Removes the element with the specified key from the Hashtable. */\r\n    remove(key: K) {\r\n        let index: number;\r\n        if (this.isSimpleKeys) {\r\n            if (this.ignoreCase) key = (<any>key).toLowerCase();\r\n            index = this.indexObject[key];\r\n        }\r\n        else index = this.keys.indexOf(key);\r\n        if (index >= 0) {\r\n            this.keys.removeAt(index);\r\n            this.values.removeAt(index);\r\n\r\n            if (this.isSimpleKeys) {\r\n                this.indexObject = {};\r\n                for (let index = 0; index < this.keys.length; index++) {\r\n                    this.indexObject[this.ignoreCase ? (<any>this.keys[index]).toLowerCase() : this.keys[index]] = index;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    /** Removes all elements from the Hashtable. */\r\n    clear() {\r\n        this.keys = new List<K>();\r\n        this.values = new List<V>();\r\n        this.indexObject = {};\r\n        this.isSimpleKeys = false;\r\n    }\r\n\r\n    /** Copies the Hashtable elements to a one-dimensional Array instance at the specified index. */\r\n    copyTo(array: V[], arrayIndex: number) {\r\n        while (array.length < arrayIndex) {\r\n            array.push(null);\r\n        }\r\n        for (let value of this.values) {\r\n            if (array.length > arrayIndex) array[arrayIndex] = value;\r\n            else array.push(value);\r\n            arrayIndex++;\r\n        }\r\n    }\r\n\r\n    /** Gets the number of key/value pairs contained in the Hashtable. */\r\n    get count(): number {\r\n        return this.keys.length;\r\n    }\r\n\r\n    clone(): Hashtable<K, V> {\r\n        let newHashtable: Hashtable = new Hashtable();\r\n        this.keys.copyTo(newHashtable.keys);\r\n        this.values.copyTo(newHashtable.values);\r\n\r\n        if (this.isSimpleKeys)\r\n            for (let key of StiObject.keys(this.indexObject)) {\r\n                newHashtable.indexObject[key] = this.indexObject[key];\r\n            }\r\n\r\n        newHashtable.ignoreCase = this.ignoreCase;\r\n        newHashtable.isSimpleKeys = this.isSimpleKeys;\r\n\r\n        return newHashtable;\r\n    }\r\n}\r\n\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\n/// <reference path=\"Hashtable.ts\" />\r\n\r\nimport Hashtable from \"./Hashtable\";\r\nexport default class Dictionary<K, V> extends Hashtable<K, V> {\r\n    get pairs(): Array<{ key: K, value: V }> {\r\n        return this.keys.map((value, index) => ({ key: value, value: this.values[index] }));\r\n    }\r\n\r\n    tryGetValue(key: K, out: { ref: V }): boolean {\r\n        let index = this.keys.indexOf(key);\r\n        if (index >= 0) out.ref = this.values[index];\r\n        else out.ref = null;\r\n\r\n        return index >= 0;\r\n    }\r\n\r\n}\r\n\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\nimport Hashtable from './Hashtable';\r\nimport Dictionary from './Dictionary';\r\nimport { StiObject } from './StiObject';\r\n\r\nexport default class List<T> extends Array<T> {\r\n    constructor(items?: T[] | number) {\r\n        super();\r\n        if (typeof items == \"number\") {\r\n\r\n        }\r\n        else if (items) items.forEach(item => this.push(item));\r\n\r\n        try {\r\n            (<any>this).__proto__ = List.prototype;\r\n            Object.defineProperty(this, \"__proto__\", { enumerable: false });\r\n        }\r\n        catch (e) {\r\n            Object.defineProperty(this, \"__proto__\", { enumerable: false, writable: true });\r\n            (<any>this).__proto__ = List.prototype;\r\n        }\r\n    }\r\n\r\n    /*static create<T>(t: Type, ...values: any[]): List<T> {\r\n        let isStructure = false;\r\n        if (typeof values[values.length - 1] == \"boolean\") isStructure = !!values.pop();\r\n\r\n        if (values.length == 0) {\r\n            if (t == Number) return <any>0;\r\n            if (t == Boolean) return <any>false;\r\n            if (isStructure) return new (<any>t);\r\n            else return null;\r\n        }\r\n\r\n        let newList = new List<T>();\r\n        let count: number = values.shift();\r\n        for (let i = 0; i < count; i++) {\r\n            let value: any = List.create.apply(this, (<any[]>[t]).concat(values, [isStructure]));\r\n            newList.push(value);\r\n        }\r\n\r\n        return newList;\r\n    }*/\r\n\r\n    get countItems(): number {\r\n        let properties: string[] = StiObject.keys(this);\r\n        return properties.length;\r\n    }\r\n\r\n    //#region Range\r\n    addRange(items: List<T> | T[]) {\r\n        for (let item of items) this.push(item);\r\n    }\r\n\r\n    removeRange(index: number, count: number) {\r\n        this.splice(index, count);\r\n    }\r\n\r\n    getRange(index: number, count: number): List<T> {\r\n        if (index == null || index < 0) index = 0;\r\n        if (index + count > this.length) count = this.length - index;\r\n        return new List(this.slice(index, index + count));\r\n    }\r\n    //#endregion\r\n\r\n    add(item: T) {\r\n        this.push(item);\r\n    }\r\n\r\n    insert(index: number, item: T) {\r\n        this.splice(index, 0, item);\r\n    }\r\n\r\n    getKeys(): string[] {\r\n        return StiObject.keys(this).sort((a, b) => {\r\n            if (a < b) return -1;\r\n            else if (a > b) return 1;\r\n            else return 0;\r\n        });\r\n    }\r\n\r\n    getByIndex(index: number, keys: string[] = null): T {\r\n        if (keys == null) keys = this.getKeys();\r\n        return this[keys[index]];\r\n    }\r\n\r\n    setByIndex(index: number, item: T) {\r\n        let properties: string[] = StiObject.keys(this);\r\n        this[properties[index]] = item;\r\n    }\r\n\r\n    removeByIndex(index: number): List<T> {\r\n        let removeIndex: number = this.indexOf(this.getByIndex(index, null));\r\n        delete this[removeIndex];\r\n        return this;\r\n    }\r\n\r\n    copyTo(array: any[], index = 0) {\r\n        let destIndex: number = index;\r\n        for (let sourceIndex = 0; sourceIndex < this.length; sourceIndex++) {\r\n            array[destIndex] = this[sourceIndex];\r\n            destIndex++;\r\n        }\r\n    }\r\n\r\n    /** Removes all elements from the List. */\r\n    clear() {\r\n        this.splice(0, this.length);\r\n    }\r\n\r\n    peek(): T {\r\n        return this[this.length - 1];\r\n    }\r\n\r\n    remove(item: T) {\r\n        let index = this.indexOf(item);\r\n        if (index >= 0) this.removeAt(index);\r\n    }\r\n\r\n    /** Removes the element at the specified index of the Lis.\r\n     * @param index The zero-based index of the element to remove.\r\n     * @throw index is less than 0. -or- index is equal to or greater than Count.\r\n     */\r\n    removeAt(index: number) {\r\n        this.splice(index, 1);\r\n    }\r\n\r\n    exists(predicate: (value: T) => boolean): boolean {\r\n        for (let value of this) {\r\n            if (predicate(value)) return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    fullOuterJoin<K>(\r\n        inner: List<T>,\r\n        outerKeySelector: (value: T) => K,\r\n        innerKeySelector: (value: T) => K,\r\n        resultSelector: (value1: T, value2: T) => T,\r\n        __this?: any\r\n    ): List<T> {\r\n        let innerLookup: Hashtable = inner.toLookup(innerKeySelector, __this);\r\n        let outerLookup: Hashtable = this.toLookup(outerKeySelector, __this);\r\n\r\n        let innerJoinItems = inner\r\n            .where(innerItem => !outerLookup.contains(innerKeySelector.apply(__this, [innerItem])))\r\n            .select(innerItem => resultSelector.apply(__this, [null, innerItem]));\r\n\r\n        return this\r\n            .selectMany2(outerItem => {\r\n                let innerItems: List<T> = innerLookup.get(outerKeySelector.apply(__this, [outerItem]));\r\n\r\n                return innerItems.any() ? innerItems : new List<T>();\r\n            }, resultSelector, __this)\r\n            .concat(innerJoinItems);\r\n    }\r\n\r\n    toList(): List<T> {\r\n        return new List<T>(this);\r\n    }\r\n\r\n    findIndex2(match: (value: T) => boolean): number {\r\n        for (let index = 0; index < this.length; index++) {\r\n            if (match(this[index])) return index;\r\n        }\r\n        return -1;\r\n    }\r\n\r\n    findLastIndex2(match: (value: T) => boolean): number {\r\n        let lastIndex = -1;\r\n        for (let index = 0; index < this.length; index++) {\r\n            if (match(this[index])) lastIndex = index;\r\n        }\r\n        return lastIndex;\r\n    }\r\n\r\n    zip<S, R>(second: List<S>, resultSelector: (first: T, second: S) => R): List<R> {\r\n        let result = new List<R>();\r\n        for (let index = 0; index < this.length; index++) {\r\n            result.add(resultSelector(this[index], second[index]));\r\n        }\r\n        return result;\r\n    }\r\n\r\n    static repeat<T>(element: T, count: number): List<T> {\r\n        let list = new List<T>();\r\n        for (let i = 0; i < count; i++) {\r\n            list.push(element);\r\n        }\r\n        return list;\r\n    }\r\n\r\n    //#region Filtering\r\n    /** Filters a sequence of values based on a predicate.\r\n     * @param predicate A function to test each element for a condition.\r\n     * @returns An List that contains elements from the input sequence that satisfy the condition.\r\n     */\r\n    where(predicate: (value: T, index: number) => boolean, __this?: any): List<T> {\r\n        let filter = new List<T>();\r\n        for (let index = 0; index < this.length; index++) {\r\n            let value = this[index];\r\n            predicate.apply(__this, [value, index]) ? filter.push(value) : null;\r\n        }\r\n        return filter;\r\n    }\r\n    //#endregion\r\n\r\n    //#region Join\r\n    /** Correlates the elements of two sequences based on matching keys. The default\r\n     * equality comparer is used to compare keys.\r\n     * @param inner The sequence to join to the first sequence.\r\n     * @param outerKeySelector A function to extract the join key from each element of the first sequence.\r\n     * @param innerKeySelector A function to extract the join key from each element of the second sequence.\r\n     * @param resultSelector A function to create a result element from two matching elements.\r\n     * @returns An List that has elements of type V\r\n     * that are obtained by performing an inner join on two sequences.\r\n     */\r\n    join2<U, K, V>(\r\n        inner: List<U>,\r\n        outerKeySelector: (value: T) => K,\r\n        innerKeySelector: (value: U) => K,\r\n        resultSelector: (value1: T, value2: U) => V,\r\n        __this?: any\r\n    ): List<V> {\r\n        let result: List<V> = new List<V>();\r\n        let innerKeys = new Hashtable();\r\n        for (let i of inner) {\r\n            let innerKey = innerKeySelector.apply(__this, [i]);\r\n            innerKeys.set(innerKey, i);\r\n        }\r\n\r\n        for (let o of this) {\r\n            let outerKey = outerKeySelector.apply(__this, [o]);\r\n            let i: U = innerKeys.get(outerKey);\r\n\r\n            if (i != null) result.push(resultSelector.apply(__this, [o, i]));\r\n        }\r\n\r\n        return result;\r\n    }\r\n\r\n    /** Correlates the elements of two sequences based on equality of keys and groups\r\n     * the results. The default equality comparer is used to compare keys.\r\n     * @param inner The sequence to join to the first sequence.\r\n     * @param outerKeySelector A function to extract the join key from each element of the first sequence.\r\n     * @param innerKeySelector A function to extract the join key from each element of the second sequence.\r\n     * @param resultSelector A function to create a result element from an element from the first sequence\r\n     * and a collection of matching elements from the second sequence.\r\n     * @returns An List that contains elements of type V\r\n     * that are obtained by performing a grouped join on two sequences.\r\n     */\r\n    groupJoin<U, K, V>(\r\n        inner: List<U>,\r\n        outerKeySelector: (value: T) => K,\r\n        innerKeySelector: (value: U) => K,\r\n        resultSelector: (value1: T, value2: List<U>) => V,\r\n        __this?: any\r\n    ): List<V> {\r\n        let result: List<V> = new List<V>();\r\n\r\n        let innerKeys = new Hashtable();\r\n        for (let i of inner) {\r\n            let key = innerKeySelector.apply(__this, [i]);\r\n            let innerResult: List<U> = innerKeys.get(key);\r\n            if (innerResult == null) {\r\n                innerResult = new List<U>();\r\n                innerKeys.set(key, innerResult);\r\n            }\r\n            innerResult.push(i);\r\n        }\r\n\r\n        for (let o of this) {\r\n            let key = outerKeySelector.apply(__this, [o]);\r\n            let innerResult: List<U> = innerKeys.get(key);\r\n            if (innerResult == null) innerResult = new List<U>();\r\n            result.push(resultSelector.apply(__this, [o, innerResult]));\r\n        }\r\n\r\n        return result;\r\n    }\r\n    //#endregion\r\n\r\n    //#region Projection\r\n    /**\r\n     * Projects each element of a sequence into a new form.\r\n     * @param selector A transform function to apply to each element.\r\n     * @returns An List whose elements are the result of invoking the transform function on each element of source.\r\n     */\r\n    select<S>(selector: (value: T) => S, __this?: any): List<S> {\r\n        let filter = new List<S>();\r\n        this.forEach(value => filter.push(selector.apply(__this, [value])));\r\n        return filter;\r\n    }\r\n\r\n    selectMany<S>(selector: (value: T) => List<S>, __this?: any): List<S> {\r\n        let filter = new List<S>();\r\n        this.forEach(value => {\r\n            let result = selector.apply(__this, [value]);\r\n            if (result != null) result.forEach(item => filter.push(item))\r\n        });\r\n        return filter;\r\n    }\r\n\r\n    selectMany2<C>(collectionSelector: (value: T) => List<C>, resultSelector: (value1: T, value2: C) => C, __this?: any): List<C> {\r\n        let filter = new List<C>();\r\n        this.forEach(value => {\r\n            let result = collectionSelector.apply(__this, [value]);\r\n            if (result != null) result.forEach(item => filter.push(resultSelector.apply(__this, [value, item])))\r\n        });\r\n        return filter;\r\n    }\r\n    //#endregion\r\n\r\n    //#region Sorting\r\n    /** Sorts the elements of a sequence in ascending order according to a key or by using a specified comparer.\r\n     * @param keySelector A function to extract a key from an element.\r\n     * @param comparer An System.Collections.Generic.IComparer`1 to compare keys.\r\n     * @returns An System.Linq.IOrderedEnumerable`1 whose elements are sorted according to a key.\r\n     */\r\n    /*orderBy<K>(keySelector: (value: T) => K, comparer?: IComparer<K>): List<T> {\r\n         let sort: T[] = this.ss.toArray();\r\n         if (comparer == null) comparer = {\r\n             compare: (x: K, y: K) => {\r\n                 if (x != null && y == null) return 1;\r\n                 if (x == null && y != null) return -1;\r\n                 if (x == null && y == null) return 0;\r\n\r\n                 return x.ss.compareTo(y);\r\n             }\r\n         };\r\n\r\n         sort.sort((a: T, b: T) => comparer.compare(keySelector(a), keySelector(b)));\r\n\r\n         return new List<T>(sort);\r\n     }\r\n\r\n     orderByDescending<K>(keySelector: (value: T) => K, comparer?: IComparer<K>): List<T> {\r\n         let sort: T[] = this.ss.toArray();\r\n         if (comparer == null) comparer = {\r\n             compare: (x: K, y: K) => {\r\n                 if (x != null && y == null) return -1;\r\n                 if (x == null && y != null) return 1;\r\n                 if (x == null && y == null) return 0;\r\n\r\n                 return y.ss.compareTo(x);\r\n             }\r\n         };\r\n\r\n         sort.sort((a: T, b: T) => comparer.compare(keySelector(a), keySelector(b)));\r\n\r\n         return new List<T>(sort);\r\n     }*/\r\n    //#endregion\r\n\r\n    //#region Grouping\r\n    /** Groups the elements of a sequence according to a specified key selector function\r\n     * and compares the keys by using a specified comparer.\r\n     * @param keySelector A function to extract the key for each element.\r\n     * @param comparer An System.Collections.Generic.IEqualityComparer`1 to compare keys.\r\n     * @returns An IEnumerable<IGrouping<TKey, TSource>> in C# or IEnumerable(Of IGrouping(Of\r\n     * TKey, TSource)) in Visual Basic where each System.Linq.IGrouping`2 object contains\r\n     * a collection of objects and a key.\r\n     */\r\n    /*-groupBy<K>(keySelector: (value: T) => K, comparer?: IEqualityComparer<K>, __this?: any): List<Grouping<K, T>> {\r\n        let result = new List<Grouping<K, T>>();\r\n        if (comparer == null) comparer = {\r\n            equals: (x: K, y: K) => {\r\n                if (x == y) return true;\r\n                return false;\r\n            },\r\n            getHashCode: () => 0\r\n        };\r\n\r\n        for (let item of this) {\r\n            let key = keySelector.apply(__this, [item]);\r\n            let group = result.firstOrDefault(g => comparer.equals(g.key, key));\r\n            if (group == null) {\r\n                group = new Grouping(new List<T>([]));\r\n                group.key = key;\r\n                result.push(group);\r\n            }\r\n            group.push(item);\r\n        }\r\n\r\n        return result;\r\n    }*/\r\n    //#endregion\r\n\r\n    //#region Conversions\r\n    /** Converts the elements of an List to the specified type.\r\n     * @returns An List that contains each element of the source sequence converted to the specified type.\r\n     */\r\n    cast<S>(): List<S> {\r\n        let cast = new List<S>();\r\n        let castFunction: (value: T) => any;\r\n\r\n            /*if (typeof <S>{} == \"string\") castFunction = (value: T) => value.s.toString();\r\n            else if (typeof <S>{} == \"number\") castFunction = (value: T) => value.s.ss.toNumber();\r\n            else if (typeof <S>{} == \"boolean\") castFunction = (value: T) => value.s.ss.toBoolean();\r\n            else*/ castFunction = (value: T) => (value as any) as S;\r\n\r\n        this.forEach(value => cast.push(castFunction(value)));\r\n        return cast;\r\n    }\r\n\r\n    toDictionary<K, V>(keySelector: (item: T) => K, elementSelector: (item: T) => V): Dictionary<K, V> {\r\n        let dictionary = new Dictionary<K, V>();\r\n        for (let index = 0; index < this.length; index++) {\r\n            dictionary.add(keySelector(this[index]), elementSelector(this[index]));\r\n        }\r\n        return dictionary;\r\n    }\r\n\r\n    /** Creates a Lookup from an List\r\n     * according to a specified key selector function.\r\n     * @param keySelector A function to extract a key from each element.\r\n     * @returns A Lookup that contains keys and values.\r\n     */\r\n    toLookup<K>(keySelector: (value: T) => K, __this?: any): Hashtable {\r\n        let hashtable = new Hashtable();\r\n        for (let item of this) {\r\n            let key = keySelector.apply(__this, [item]);\r\n            let lookup: List<T> = hashtable.get(key);\r\n            if (lookup == null) {\r\n                lookup = new List<T>();\r\n                hashtable.set(key, lookup);\r\n            }\r\n            lookup.push(item);\r\n        }\r\n\r\n        return hashtable;\r\n    }\r\n    //#endregion\r\n\r\n    //#region Concatenation\r\n    /** Concatenates two sequences.\r\n     * @param second The sequence to concatenate to the first sequence.\r\n     * @returns An List that contains the concatenated elements\r\n     * of the two input sequences.\r\n     */\r\n    concat(second: List<T>): List<T> {\r\n        let concatedList = new List<T>();\r\n        for (let item of this) concatedList.push(item);\r\n        for (let item of second) concatedList.push(item);\r\n        return concatedList;\r\n    }\r\n    //#endregion\r\n\r\n    //#region Aggregation\r\n    /**\r\n     * Applies an accumulator function over a sequence.\r\n     * @param func An accumulator function to be invoked on each element.\r\n     * @returns The final accumulator value.\r\n     */\r\n    aggregate(func: (av: T, e: T) => T): T {\r\n        let seed = this[0];\r\n        for (let index = 1; index < this.length; index++) {\r\n            seed = func(seed, this[index]);\r\n        }\r\n\r\n        return seed;\r\n    }\r\n\r\n    aggregate2(seed: T, func: (av: T, e: T) => T): T {\r\n        for (let index = 0; index < this.length; index++) {\r\n            seed = func(seed, this[index]);\r\n        }\r\n\r\n        return seed;\r\n    }\r\n\r\n    count2(selector?: (value: T) => boolean, __this?: any): number {\r\n        if (selector == null) selector = (value: T) => true;\r\n        let count = 0;\r\n        this.forEach(item => selector.apply(__this, [item]) ? count++ : null);\r\n        return count;\r\n    }\r\n\r\n    /** Invokes a transform function on each element of a sequence and returns the maximum value.\r\n     * @param selector A transform function to apply to each element.\r\n     * @returns The maximum value in the sequence.\r\n     */\r\n    /*max<S>(selector?: (value: T) => S): S {\r\n        if (selector == null) selector = (value: T) => <S><any>value;\r\n        if (this.length == 0) return null;\r\n        let max = selector(this[0]);\r\n        let maxFunc: Function;\r\n        if (typeof max == \"string\") maxFunc = function (strA: string, strB: string): string { return strA.ss.compareTo(strB) >= 0 ? strA : strB; };\r\n        if (typeof max == \"number\") maxFunc = Math.max;\r\n        if (max instanceof DateTime) maxFunc = function (dateA: DateTime, dateB: DateTime): DateTime { return DateTime.compare(dateA, dateB) >= 0 ? dateA : dateB; };\r\n\r\n        for (let index = 1; index < this.length; index++) {\r\n            max = maxFunc(selector(this[index]), max);\r\n        }\r\n\r\n        return max;\r\n    }*/\r\n\r\n    /** Invokes a transform function on each element of a sequence and returns the minimum value.\r\n     * @parm selector A transform function to apply to each element.\r\n     * @returns The minimum value in the sequence.\r\n     */\r\n    /*min<S>(selector?: (value: T) => S): S {\r\n        if (selector == null) selector = (value: T) => <S><any>value;\r\n        if (this.length == 0) return null;\r\n        let min = selector(this[0]);\r\n        let minFunc: Function;\r\n        if (typeof min == \"string\") minFunc = function (strA: string, strB: string): string { return strA.ss.compareTo(strB) <= 0 ? strA : strB; };\r\n        if (typeof min == \"number\") minFunc = Math.min;\r\n        if (min instanceof DateTime) minFunc = function (dateA: DateTime, dateB: DateTime): DateTime { return DateTime.compare(dateA, dateB) <= 0 ? dateA : dateB; };\r\n\r\n        for (let index = 1; index < this.length; index++) {\r\n            min = minFunc(selector(this[index]), min);\r\n        }\r\n\r\n        return min;\r\n    }*/\r\n\r\n    /** Computes the sum of the sequence of System.Decimal values that are obtained by\r\n     * invoking a transform function on each element of the input sequence.\r\n     * @param selector A transform function to apply to each element.\r\n     * @returns The sum of the projected values.\r\n     */\r\n    /*sum(selector?: (value: T) => number): number {\r\n        if (selector == null) selector = (value: T) => value.ss.toNumber();\r\n        let sum = 0;\r\n        this.forEach(value => sum += selector(value));\r\n        return sum;\r\n    }*/\r\n    //#endregion\r\n\r\n    //#region Quantifier Operations\r\n    all(predicate?: (value: T) => boolean, __this?: any): boolean {\r\n        if (predicate == null) predicate = (value: T) => true;\r\n        for (let value of this) if (!predicate.apply(__this, [value])) return false;\r\n        return true;\r\n    }\r\n\r\n    /** Determines whether any element of a sequence satisfies a condition.\r\n     * @param predicate A function to test each element for a condition.\r\n     * @returns true if any elements in the source sequence pass the test in the specified predicate; otherwise, false.\r\n     */\r\n    any(predicate?: (value: T) => boolean, __this?: any): boolean {\r\n        if (predicate == null) predicate = (value: T) => true;\r\n        for (let value of this) if (predicate.apply(__this, [value])) return true;\r\n        return false;\r\n    }\r\n\r\n    /** Determines whether an element is in the List.\r\n     * @param item The object to locate in the List. The value can be null for reference types.\r\n     * @returns true if item is found in the List otherwise, false.\r\n     */\r\n    contains(item: T): boolean {\r\n        return this.indexOf(item) >= 0;\r\n    }\r\n    //#endregion\r\n\r\n    //#region Partition Operations\r\n    skip(count: number): List<T> {\r\n        let result = new List<T>();\r\n        for (let index = count; index < this.length; index++) {\r\n            result.add(this[index]);\r\n        }\r\n        return result;\r\n    }\r\n\r\n    take(count: number): List<T> {\r\n        let result = new List<T>();\r\n        if (count > this.length) count = this.length;\r\n        for (let index = 0; index < count; index++) {\r\n            result.add(this[index]);\r\n        }\r\n        return result;\r\n    }\r\n    //#endregion\r\n\r\n    //#region Generation Operations\r\n    defaultIfEmpty(): List<T> {\r\n        if (this.length > 0) return this;\r\n        return new List<T>([null]);\r\n    }\r\n    //#endregion\r\n\r\n    //#region Set Operations\r\n    /** Returns distinct elements from a sequence by using the default equality comparer to compare values.\r\n     * @returns An List that contains distinct elements from the source sequence.\r\n     */\r\n    distinct(): List<T> {\r\n        let filter = new List<T>();\r\n        this.forEach(value => filter.indexOf(value) < 0 ? filter.push(value) : null);\r\n        return filter;\r\n    }\r\n\r\n    except(second: List<T>): List<T> {\r\n        let result = new List<T>();\r\n        for (let item of this) {\r\n            if (second.indexOf(item) == -1) result.add(item);\r\n        }\r\n        return result;\r\n    }\r\n\r\n    union(second: List<T>): List<T> {\r\n        let union = new List<T>();\r\n        this.forEach(element => union.add(element));\r\n        second.forEach(element => union.add(element));\r\n        return union.distinct();\r\n    }\r\n    //#endregion\r\n\r\n    //#region Equality\r\n    sequenceEqual(second: List<T>): boolean {\r\n        if (this.length != second.length) return false;\r\n        for (let index = 0; index < this.length; index++) {\r\n            if (this[index] != second[index]) return false;\r\n        }\r\n        return true;\r\n    }\r\n    //#endregion\r\n\r\n    //#region Element\r\n    first(selector?: (value: T) => boolean, __this?: any): T {\r\n        if (selector == null) selector = (value: T) => true;\r\n        for (let item of this) {\r\n            if (selector.apply(__this, [item])) return item;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    /** Returns the first element of the sequence that satisfies a condition or a default value if no such element is found.\r\n     * @param predicate A function to test each element for a condition.\r\n     * @returns if source is empty or if no element passes the test specified by predicate;\r\n     * otherwise, the first element in source that passes the test specified by predicate.\r\n     */\r\n    firstOrDefault(predicate?: (value: T) => boolean): T {\r\n        for (let value of this) {\r\n            if (predicate == null) return value;\r\n            if (predicate(value)) return value;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    lastOrDefault(): T {\r\n        let item;\r\n        for (let value of this) {\r\n            item = value;\r\n        }\r\n        return item;\r\n    }\r\n    //#endregion\r\n\r\n    // forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any) {\r\n    //     for (let index = 0; index < this.length; index++) {\r\n    //         callbackfn.bind(thisArg, [this[index], index, this]);\r\n    //     }\r\n    // }\r\n\r\n}\r\n\r\nStiObject.disableAllEnumerable(List.prototype, new List());\r\n\r\n","import Color from \"./Color\";\r\nimport { DateTime } from \"./DateTime\";\r\nimport { Enum } from \"./Enum\";\r\nimport List from \"./List\";\r\nimport { StiString } from \"./StiObject\";\r\n\r\nexport default class StiJson {\r\n  static prettyPrint = true;\r\n  options: any;\r\n\r\n  static dateToJsonDate(date: DateTime): string {\r\n    let offset: number = date.date.getTimezoneOffset() * -1;\r\n    let hoursOffset: string = Math.abs(Math.floor(offset / 60)).toString();\r\n    let minutesOffset: string = Math.abs(offset % 60).toString();\r\n    if (hoursOffset.length == 1) hoursOffset = \"0\" + hoursOffset;\r\n    if (minutesOffset.length == 1) minutesOffset = \"0\" + minutesOffset;\r\n\r\n    return (\r\n      /* \"/Date(\" +*/ Date.parse(date.date.toString()).toString() +\r\n      (offset >= 0 ? \"+\" : \"-\") +\r\n      hoursOffset +\r\n      minutesOffset /*+ \")/\"*/\r\n    );\r\n  }\r\n\r\n  static jsonDateFormatToDate(jsonDate: string): DateTime {\r\n    let dateStr = jsonDate.split(\"/Date(\").join(\"\").split(\")/\").join(\"\");\r\n    let date = new DateTime(new Date(parseInt(dateStr)));\r\n\r\n    let startOffsetIndex: number = dateStr.indexOf(\"+\");\r\n    if (startOffsetIndex == -1) startOffsetIndex = dateStr.indexOf(\"-\");\r\n\r\n    let localOffset: number = date.date.getTimezoneOffset();\r\n    if (startOffsetIndex != -1) localOffset = 0;\r\n    let localHoursOffset: number = Math.floor(localOffset / 60);\r\n    let localMinutesOffset: number = localOffset % 60;\r\n    let localHoursOffsetString: string =\r\n      (Math.abs(localHoursOffset) < 10 ? \"0\" : \"\") + Math.abs(localHoursOffset).toString();\r\n    let localMinutesOffsetString: string =\r\n      (Math.abs(localMinutesOffset) < 10 ? \"0\" : \"\") + Math.abs(localMinutesOffset).toString();\r\n\r\n    let offset: string = (localOffset >= 0 ? \"+\" : \"-\") + localHoursOffsetString + localMinutesOffsetString;\r\n    let multiple = 1;\r\n\r\n    if (startOffsetIndex != -1) offset = dateStr.substring(startOffsetIndex);\r\n    if (offset.substr(0, 1) == \"-\") multiple = -1;\r\n\r\n    date.addHours(localHoursOffset + parseInt(offset.substr(1, 2)) * multiple);\r\n    date.addMinutes(localMinutesOffset + parseInt(offset.substr(3, 2)) * multiple);\r\n\r\n    return date;\r\n  }\r\n\r\n  public name: string;\r\n  value: any;\r\n  private isProperty = false;\r\n  private isArray = false;\r\n\r\n  properties(): List<StiJson> {\r\n    if (!this.isProperty) {\r\n      if (this.value instanceof List) return this.value;\r\n      else return this.value.value;\r\n    }\r\n    return new List<StiJson>();\r\n  }\r\n\r\n  removeProperty(propertyName: string) {\r\n    if (propertyName != null || propertyName != \"\") {\r\n      let elements: StiJson[] = this.value.value.filter((x) => x.name == propertyName);\r\n      if (elements.length > 0) {\r\n        this.value.value.remove(elements[0]);\r\n      }\r\n    }\r\n  }\r\n\r\n  addPropertyNumber(propertyName: string, value: number) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.removeProperty(propertyName);\r\n\r\n    this.value.value.push(new StiJson(propertyName, value, true));\r\n  }\r\n\r\n  addPropertyNumberNotNull(propertyName: string, value: number) {\r\n    if (value) {\r\n      this.addPropertyNumber(propertyName, value);\r\n    }\r\n  }\r\n\r\n  addPropertyNumberNoDefaultValue(propertyName: string, value: number) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.removeProperty(propertyName);\r\n\r\n    this.value.value.push(new StiJson(propertyName, value, true));\r\n  }\r\n\r\n  addPropertyJObject(propertyName: string, value: StiJson) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.removeProperty(propertyName);\r\n\r\n    if (value == null || value.count == 0) return;\r\n\r\n    this.value.value.push(new StiJson(propertyName, value));\r\n  }\r\n\r\n  addPropertyArray(propertyName: string, elements: any[]) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.removeProperty(propertyName);\r\n\r\n    if (elements == null) return;\r\n    let values = [];\r\n\r\n    elements.forEach((e) =>\r\n      values.push(\r\n        e?.saveToJsonObject != null\r\n          ? e.saveToJsonObject(this.options)\r\n          : typeof e == \"string\"\r\n          ? `\"${e\r\n              .replace(/[\\\\]/g, \"\\\\\\\\\")\r\n              .replace(/[\\\"]/g, '\\\\\"')\r\n              // .replace(/[\\/]/g, '\\\\/')\r\n              .replace(/[\\b]/g, \"\\\\b\")\r\n              .replace(/[\\f]/g, \"\\\\f\")\r\n              .replace(/\\r\\n/g, \"\\n\")\r\n              .replace(/[\\r]/g, \"\\n\")\r\n              .replace(/[\\r\\n]/g, \"\\\\r\\\\n\")\r\n              .replace(/[\\t]/g, \"\\\\t\")\r\n              // eslint-disable-next-line no-control-regex\r\n              .replace(/[\\u0001-\\u001F]/g, (chr) => \"\\\\u\" + (\"0000\" + chr.charCodeAt(0).toString(16)).substr(-4))}\"`\r\n          : e\r\n      )\r\n    );\r\n\r\n    let json: StiJson = new StiJson(propertyName, values);\r\n    json.isArray = true;\r\n    this.value.value.push(json);\r\n  }\r\n\r\n  addPropertyIdent(propertyName: string, value: string) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.value.value.push(new StiJson(propertyName, value, true));\r\n  }\r\n\r\n  addPropertyBool(propertyName: string, value: boolean) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.removeProperty(propertyName);\r\n\r\n    this.value.value.push(new StiJson(propertyName, value, true));\r\n  }\r\n\r\n  /*addPropertyDateTime(propertyName: string, value: DateTime) {\r\n      if (this.value == null) this.value = new StiJson(\"\", new List());\r\n      this.removeProperty(propertyName);\r\n\r\n      this.value.value.push(new StiJson(propertyName, StiJson.dateToJsonDate(value), true));\r\n  }*/\r\n\r\n  addPropertyEnum(propertyName: string, enumType: any, value: any, defaultValue: any = null) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.removeProperty(propertyName);\r\n\r\n    if (typeof defaultValue != \"undefined\" && value == defaultValue) return;\r\n\r\n    this.value.value.push(new StiJson(propertyName, Enum.getName(enumType, value), true));\r\n  }\r\n\r\n  addPropertyColor(propertyName: string, color: Color, defColor: Color = null) {\r\n    if (color == null || color.equals(defColor)) return;\r\n\r\n    let value = color.isNamedColor ? color.name.replace(\" \", \"\") : `${color.a},${color.r},${color.g},${color.b}`;\r\n\r\n    this.addPropertyString(propertyName, value);\r\n  }\r\n\r\n  addPropertyString(propertyName: string, value: string, defaultValue?: string) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.removeProperty(propertyName);\r\n\r\n    if (value == defaultValue) return;\r\n\r\n    this.value.value.push(new StiJson(propertyName, value, true));\r\n  }\r\n\r\n  addPropertyStringNullOrEmpty(propertyName: string, value: string) {\r\n    if (this.value == null) this.value = new StiJson(\"\", new List());\r\n    this.removeProperty(propertyName);\r\n\r\n    if (StiString.isNullOrEmpty(value)) return;\r\n\r\n    this.value.value.push(new StiJson(propertyName, value, true));\r\n  }\r\n\r\n  get count(): number {\r\n    let count = 0;\r\n    if (!this.isProperty && this.value != null) {\r\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n      for (let propertyName of this.value.value) {\r\n        count++;\r\n      }\r\n    }\r\n\r\n    return count;\r\n  }\r\n\r\n  getArray(): any[] {\r\n    let result = [];\r\n    this.value.forEach((e) => result.push(e.value));\r\n    return result;\r\n  }\r\n\r\n  serialize(indent = 0): string {\r\n    let jsonString = \"\";\r\n    let tabs = StiJson.prettyPrint ? Array(indent + 1).join(\" \") : \"\";\r\n    for (let property of this.value.properties()) {\r\n      let valueString = \"\";\r\n      if (property.isProperty) {\r\n        if (property.value != null && typeof property.value == \"string\")\r\n          valueString =\r\n            '\"' +\r\n            (<string>property.value)\r\n              .replace(/[\\\\]/g, \"\\\\\\\\\")\r\n              .replace(/[\\\"]/g, '\\\\\"')\r\n              // .replace(/[\\/]/g, '\\\\/')\r\n              .replace(/[\\b]/g, \"\\\\b\")\r\n              .replace(/[\\f]/g, \"\\\\f\")\r\n              .replace(/\\r\\n/g, \"\\n\")\r\n              .replace(/[\\r]/g, \"\\n\")\r\n              .replace(/[\\r\\n]/g, \"\\\\r\\\\n\")\r\n              .replace(/[\\t]/g, \"\\\\t\")\r\n              // eslint-disable-next-line no-control-regex\r\n              .replace(/[\\u0001-\\u001F]/g, (chr) => \"\\\\u\" + (\"0000\" + chr.charCodeAt(0).toString(16)).substr(-4)) +\r\n            '\"';\r\n        // \"\\\"\" + property.value.replace(/\\\"/gi, \"\\\\\\\"\").replace(/\\r\\n/gi, \"\\n\").replace(/\\r/gi, \"\\n\").replace(/\\n/gi, \"\\\\r\\\\n\").replace(/\\\\/gi, \"\\\\\\\\\") + \"\\\"\";\r\n        else valueString = property.value;\r\n      } else if (property.isArray) {\r\n        if (property.value.length == 0) {\r\n          valueString += \"[\";\r\n        }\r\n        for (let element of property.value) {\r\n          if (valueString) valueString += \",\";\r\n          else valueString += \"[\";\r\n          valueString += element?.serialize != null ? element.serialize(indent + 4) : element;\r\n        }\r\n        valueString += \"]\";\r\n      } else {\r\n        valueString = property.value.serialize(indent + 2);\r\n      }\r\n\r\n      if (jsonString) jsonString += \",\";\r\n      if (StiJson.prettyPrint) jsonString += \"\\n\" + tabs + \"  \";\r\n      jsonString += '\"' + <string>property.name + '\":';\r\n      if (StiJson.prettyPrint) jsonString += \" \";\r\n      jsonString += valueString;\r\n    }\r\n\r\n    if (!jsonString) return \"\";\r\n    if (StiJson.prettyPrint) return \"{\" + jsonString + \"\\n\" + tabs + \"}\";\r\n    return \"{\" + jsonString + \"}\";\r\n  }\r\n\r\n  deserialize(text: any) {\r\n    if (typeof text == \"string\") {\r\n      let pos = 0;\r\n      let start = -1;\r\n      while (pos < text.length) {\r\n        if (\r\n          text[pos] == '\"' &&\r\n          (pos > 0 && text[pos - 1] != \"\\\\\"\r\n            ? true\r\n            : pos > 1 && text[pos - 2] == \"\\\\\" && pos > 2 && text[pos - 3] != \"\\\\\")\r\n        ) {\r\n          if (start > -1) {\r\n            let subText: string = text.substring(start, pos);\r\n            let modText: string = subText\r\n              .replace(/\\\\\\\\/gi, \"#!!#\")\r\n              .replace(/\\\\t/gi, \"#!t#\")\r\n              .replace(/\\\\\\\"/gi, \"#!q#\")\r\n              .replace(/\\\\r\\\\n/gi, \"#!rn#\")\r\n              .replace(/\\\\r/gi, \"#!rn#\")\r\n              .replace(/\\\\n/gi, \"#!rn#\");\r\n            if (modText.length != subText.length) {\r\n              // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\r\n              text = text.substring(0, start) + modText + text.substring(pos);\r\n              pos += modText.length - subText.length;\r\n            }\r\n            start = -1;\r\n          } else start = pos + 1;\r\n        }\r\n        pos++;\r\n      }\r\n    }\r\n    let reportObject = typeof text == \"object\" ? text : JSON.parse(text);\r\n    this.deserializeFromObject(reportObject);\r\n    this.value = this.value.value;\r\n  }\r\n\r\n  private deserializeFromObject(child: any) {\r\n    for (let propertyName in child) {\r\n      if (typeof child[propertyName] == \"object\") {\r\n        let jObject: StiJson = new StiJson(propertyName);\r\n        if (this.value == null) this.value = new StiJson(null, new List());\r\n        this.value.value.push(jObject);\r\n        jObject.deserializeFromObject(child[propertyName]);\r\n      } else if (typeof child[propertyName] != \"function\") {\r\n        let jObject: StiJson = new StiJson(propertyName, child[propertyName], true);\r\n        if (this.value == null) this.value = new StiJson(null, new List());\r\n        this.value.value.push(jObject);\r\n      }\r\n    }\r\n    if (child && Array.isArray(child) && child.length == 0) {\r\n      this.value = new StiJson(null, new List());\r\n    }\r\n  }\r\n\r\n  toString(): string {\r\n    return this.name;\r\n  }\r\n\r\n  constructor(name: string = null, value: any = null, isProperty = false, options: any = {}) {\r\n    this.name = name;\r\n    if (value != null && typeof value == \"string\")\r\n      value = value.replace(/#!rn#/gi, \"\\r\\n\").replace(/#!q#/gi, '\"').replace(/#!t#/gi, \"\\t\").replace(/#!!#/gi, \"\\\\\");\r\n    this.value = value;\r\n    this.isProperty = isProperty;\r\n    this.options = options;\r\n  }\r\n}\r\n","import { StiModelService } from \"../services/model.service\";\r\nimport { StiChangesInterceptor, StiSetProperty } from \"./interfaces\";\r\nimport StiJson from \"./StiJson\";\r\n\r\nexport class Font implements StiSetProperty {\r\n  private fontSizeScale = 0.75;\r\n\r\n  public _family: string;\r\n  public _size: number;\r\n  private _style: string[];\r\n  public isChanged = true;\r\n\r\n  constructor(family?: string, size?: number, style: string[] = [], public changesInterceptor?: StiChangesInterceptor) {\r\n    this._family = family;\r\n    this._size = size;\r\n    this._style = style;\r\n  }\r\n\r\n  setProperty(propName: string, value: any) {\r\n    switch (propName) {\r\n      case \"family\":\r\n        this.family = value;\r\n        break;\r\n      case \"style\":\r\n        this.style = value;\r\n        break;\r\n      case \"size\":\r\n        this.size = value;\r\n        break;\r\n    }\r\n  }\r\n\r\n  public set style(value: string[]) {\r\n    let this_ = this;\r\n    let font = this.changesInterceptor ? this_.clone() : null;\r\n    this._style = new Proxy(value, {\r\n      deleteProperty: function (target, property) {\r\n        let font = this.changesInterceptor ? this_.clone() : null;\r\n        setTimeout(() => {\r\n          if (this.changesInterceptor) {\r\n            this.changesInterceptor.propertyChanged(\"font.style\", this_.cloneStyle, font);\r\n          }\r\n          this_.isChanged = true;\r\n        }, 0);\r\n        return true;\r\n      },\r\n      set: function (target, property, value, receiver) {\r\n        let font = this.changesInterceptor ? this_.clone() : null;\r\n        target[property] = value;\r\n        if (this.changesInterceptor) {\r\n          this.changesInterceptor.propertyChanged(\"font.style\", this_.cloneStyle, font);\r\n        }\r\n        this_.isChanged = true;\r\n        return true;\r\n      },\r\n    });\r\n    if (this.changesInterceptor) {\r\n      this.changesInterceptor.propertyChanged(\"font.style\", this_.cloneStyle, font);\r\n    }\r\n    this_.isChanged = true;\r\n  }\r\n\r\n  get cloneStyle() {\r\n    return this.style.map((s) => s);\r\n  }\r\n\r\n  public get style(): string[] {\r\n    return this._style;\r\n  }\r\n\r\n  public resetChanged() {\r\n    this.isChanged = false;\r\n  }\r\n\r\n  public get family(): string {\r\n    return this._family;\r\n  }\r\n\r\n  public set family(value: string) {\r\n    let font = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._family;\r\n    this._family = value;\r\n    this.isChanged = true;\r\n    if (this.changesInterceptor && oldValue != this._family) {\r\n      this.changesInterceptor.propertyChanged(\"font.family\", value, font);\r\n    }\r\n  }\r\n\r\n  public get size(): number {\r\n    return this._size;\r\n  }\r\n\r\n  public set size(value: number) {\r\n    let font = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._size;\r\n    this._size = value;\r\n    this.isChanged = true;\r\n    if (this.changesInterceptor && oldValue != this._size) {\r\n      this.changesInterceptor.propertyChanged(\"font.size\", value, font);\r\n    }\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyStringNullOrEmpty(\"Family\", this.family);\r\n    json.addPropertyNumber(\"Size\", this.size);\r\n    let style = this.style.filter((s) => s && s != \"\").join(\",\");\r\n    json.addPropertyString(\"Style\", style.length != 0 ? style : \"Regular\");\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Family\":\r\n          this._family = property.value;\r\n          break;\r\n        case \"Size\":\r\n          this._size = property.value;\r\n          break;\r\n        case \"Style\":\r\n          this._style = property.value.replace(\"Regular\", \"\").split(\",\");\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  isBold(): boolean {\r\n    return this.style.indexOf(\"Bold\") >= 0;\r\n  }\r\n\r\n  isItalic(): boolean {\r\n    return this.style.indexOf(\"Italic\") >= 0;\r\n  }\r\n\r\n  isUnderline(): boolean {\r\n    return this.style.indexOf(\"Underline\") >= 0;\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return `font-weight:${this.isBold() ? \"bold\" : \"normal\"};font-style:${\r\n      this.isItalic() ? \"italic\" : \"normal\"\r\n    }; text-decoration:${this.isUnderline() ? \"underline\" : \"\"};font-family:\"${this.family}\";font-size:${this.size}pt`;\r\n  }\r\n\r\n  equals(font: Font) {\r\n    return this.htmlStyle() == font?.htmlStyle();\r\n  }\r\n\r\n  public clone(): Font {\r\n    return new Font(this._family, this.size, this.cloneStyle);\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiHorizontalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiEditableContent, StiSetProperty } from \"../../system/interfaces\";\r\nimport StiJson from \"../../system/StiJson\";\r\n\r\nexport class StiTextItem implements StiEditableContent, StiSetProperty {\r\n  protected _isChanged = true;\r\n  private _value: string;\r\n  public element: any;\r\n  constructor(\r\n    value: string = \"\",\r\n    public font: Font = new Font(\"Segoe UI\", 9),\r\n    public color: Color = Color.black(),\r\n    public backgroundColor?: Color,\r\n    public horizontalAlignment?: StiHorizontalAlignment\r\n  ) {\r\n    this._value = value;\r\n  }\r\n\r\n  get eValue(): string {\r\n    return this.value;\r\n  }\r\n\r\n  set eValue(value: string) {\r\n    this.value = value;\r\n  }\r\n\r\n  get eFont(): Font {\r\n    return this.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.font = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.color;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.color = value;\r\n  }\r\n\r\n  get eBackgroundColor(): Color {\r\n    return this.backgroundColor;\r\n  }\r\n\r\n  set eBackgroundColor(value: Color) {\r\n    this.backgroundColor = value;\r\n  }\r\n\r\n  public get value(): string {\r\n    return this._value;\r\n  }\r\n\r\n  public set value(value: string) {\r\n    this._value = value;\r\n    this._isChanged = true;\r\n  }\r\n\r\n  public isChanged(): boolean {\r\n    return this._isChanged || this.font?.isChanged || this.color?.isChanged() || this.backgroundColor?.isChanged();\r\n  }\r\n\r\n  setProperty(propName: string, value: any, oldObject: any) {\r\n    if (propName.startsWith(\"font\") && (oldObject === null || this.font.equals(oldObject))) {\r\n      this.font.setProperty(propName.replace(\"font.\", \"\"), value);\r\n    } else if (propName == \"color\" && (oldObject === null || this.color.equals(oldObject))) {\r\n      this.color = value.clone();\r\n    }\r\n  }\r\n\r\n  public resetChanged() {\r\n    this._isChanged = false;\r\n    this.font?.resetChanged();\r\n    this.color?.resetChanged();\r\n    this.backgroundColor?.resetChanged();\r\n  }\r\n\r\n  haveBackgoundColor(): boolean {\r\n    return this.backgroundColor ? true : false;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.horizontalAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.horizontalAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return this.horizontalAlignment ? true : false;\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyStringNullOrEmpty(\"Value\", this.value);\r\n    json.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    json.addPropertyColor(\"Color\", this.color);\r\n    if (this.horizontalAlignment) {\r\n      json.addPropertyEnum(\"HorizontalAlignment\", StiHorizontalAlignment, this.horizontalAlignment);\r\n    }\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Value\":\r\n          this.value = property.value;\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Color\":\r\n          this.color = new Color();\r\n          this.color.deserializeFromString(property.value);\r\n          break;\r\n        case \"HorizontalAlignment\":\r\n          this.horizontalAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  public htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.color.toHtmlColor()}`;\r\n  }\r\n}\r\n","import { StiTextItem } from \"../elements/text/StiTextItem\";\r\nimport { StiHorizontalAlignment } from \"../system/enums\";\r\n\r\nexport class StiInputTextItem extends StiTextItem {\r\n\r\n  public element: any;\r\n\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.element.contentAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.element.contentAlignment = value;\r\n  }\r\n\r\n}\r\n","import { StiChangesInterceptor } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\n\r\nexport default class StiRectangleGeometry {\r\n  public static DELTA = 1;\r\n\r\n  private _x: number = 0;\r\n  private _y: number = 0;\r\n  private _width: number;\r\n  private _height: number;\r\n  public _minWidth: number = 0;\r\n  public _minHeight: number = 0;\r\n  public _maxWidth: number = 10000000;\r\n  public _maxHeight: number = 10000000;\r\n  public changesInterceptor: StiChangesInterceptor;\r\n\r\n  private savedGeometry: StiRectangleGeometry;\r\n\r\n  public isChanged(): boolean {\r\n    return this.savedGeometry == null || !this.savedGeometry.equals(this);\r\n  }\r\n\r\n  public resetChanged() {\r\n    this.savedGeometry = this.clone();\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyNumber(\"X\", this.x);\r\n    json.addPropertyNumber(\"Y\", this.y);\r\n    json.addPropertyNumber(\"Width\", this.width);\r\n    json.addPropertyNumber(\"Height\", this.height);\r\n    json.addPropertyNumber(\"MinWidth\", this.minWidth);\r\n    json.addPropertyNumber(\"MinHeight\", this.minHeight);\r\n    json.addPropertyNumber(\"MaxWidth\", this.width);\r\n    json.addPropertyNumber(\"MaxHeight\", this.height);\r\n    return json;\r\n  }\r\n\r\n  public equals(geometry: StiRectangleGeometry): boolean {\r\n    return (\r\n      this.x == geometry.x &&\r\n      this.y == geometry.y &&\r\n      this.width == geometry.width &&\r\n      this.height == geometry.height &&\r\n      this.minHeight == geometry.minHeight &&\r\n      this.minWidth == geometry.minWidth\r\n    );\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"X\":\r\n          this._x = property.value;\r\n          break;\r\n        case \"Y\":\r\n          this._y = property.value;\r\n          break;\r\n        case \"Width\":\r\n          this._width = property.value;\r\n          break;\r\n        case \"Height\":\r\n          this._height = property.value;\r\n          break;\r\n        case \"MinWidth\":\r\n          this._minWidth = property.value;\r\n          break;\r\n        case \"MinHeight\":\r\n          this._minHeight = property.value;\r\n          break;\r\n        case \"MaxWidth\":\r\n          this._maxWidth = property.value;\r\n          break;\r\n        case \"MaxHeight\":\r\n          //this._minHeight = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  public clone(): StiRectangleGeometry {\r\n    let result = new StiRectangleGeometry(this.width, this.height);\r\n    result._x = this.x;\r\n    result._y = this.y;\r\n    result._minWidth = this.minWidth;\r\n    result._minHeight = this.minHeight;\r\n    return result;\r\n  }\r\n\r\n  public get x() {\r\n    return this._x;\r\n  }\r\n\r\n  public set x(value: number) {\r\n    this._x = value;\r\n  }\r\n\r\n  public get y() {\r\n    return this._y;\r\n  }\r\n\r\n  public set y(value: number) {\r\n    this._y = value;\r\n  }\r\n\r\n  public get width() {\r\n    return this._width;\r\n  }\r\n\r\n  public set width(value: number) {\r\n    let oldGeometry = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._width;\r\n    this._width = Math.max(value, this._minWidth);\r\n    if (this.changesInterceptor && oldValue != this._width) {\r\n      this.changesInterceptor.propertyChanged(\"geometry.width\", value, oldGeometry);\r\n    }\r\n  }\r\n\r\n  public get height() {\r\n    return this._height;\r\n  }\r\n\r\n  public set height(value: number) {\r\n    let oldGeometry = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._height;\r\n    this._height = Math.max(value, this.minHeight);\r\n    if (this.changesInterceptor && oldValue != this._height) {\r\n      this.changesInterceptor.propertyChanged(\"geometry.height\", value, oldGeometry);\r\n    }\r\n  }\r\n\r\n  public get minWidth(): number {\r\n    return this._minWidth;\r\n  }\r\n\r\n  public set minWidth(value: number) {\r\n    let oldGeometry = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._minWidth;\r\n    this._minWidth = Math.min(value, this._maxWidth);\r\n    this._width = Math.max(this._minWidth, this._width);\r\n    if (this.changesInterceptor && oldValue != this._minWidth) {\r\n      this.changesInterceptor.propertyChanged(\"geometry.minWidth\", value, oldGeometry);\r\n    }\r\n  }\r\n\r\n  public get minHeight(): number {\r\n    return this._minHeight;\r\n  }\r\n\r\n  public set minHeight(value: number) {\r\n    let oldValue = this._minHeight;\r\n    let oldGeometry = this.changesInterceptor ? this.clone() : null;\r\n    this._minHeight = Math.min(value, this._maxHeight);\r\n    this._height = Math.max(this._minHeight, this._height);\r\n    if (this.changesInterceptor && oldValue != this._minHeight) {\r\n      this.changesInterceptor.propertyChanged(\"geometry.minHeight\", value, oldGeometry);\r\n    }\r\n  }\r\n\r\n  /*public get maxWidth(): number {\r\n    return this._maxWidth;\r\n  }\r\n\r\n  public set maxWidth(value: number) {\r\n    let oldValue = this._maxWidth;\r\n    this._maxWidth = Math.max(value, this._minWidth);\r\n    this._width = Math.min(this._maxWidth, this.width);\r\n    if (this.changesInterceptor && oldValue != this._maxWidth) {\r\n      this.changesInterceptor.propertyChanged(\"geometry.maxWidth\", value);\r\n    }\r\n  }\r\n\r\n  public get maxHeight(): number {\r\n    return this._maxHeight;\r\n  }\r\n\r\n  public set maxHeight(value: number) {\r\n    let oldValue = this._maxHeight;\r\n    this._maxHeight = Math.max(value, this._minHeight);\r\n    this._height = Math.min(this._maxHeight, this.height);\r\n    if (this.changesInterceptor && oldValue != this._maxHeight) {\r\n      this.changesInterceptor.propertyChanged(\"geometry.maxHeight\", value);\r\n    }\r\n  }*/\r\n\r\n  public get right(): number {\r\n    return this._x + this._width;\r\n  }\r\n\r\n  public get bottom(): number {\r\n    return this._y + this._height;\r\n  }\r\n\r\n  public get centerX(): number {\r\n    return this._x + this._width / 2;\r\n  }\r\n\r\n  public get centerY(): number {\r\n    return this._y + this._height / 2;\r\n  }\r\n\r\n  constructor(width: number = 0, height: number = 0, changesInterceptor?: StiChangesInterceptor) {\r\n    this.width = width;\r\n    this.height = height;\r\n    this._minWidth = 5;\r\n    this._minHeight = height;\r\n    this.changesInterceptor = changesInterceptor;\r\n  }\r\n\r\n  public withY(newY: number): StiRectangleGeometry {\r\n    let copy = this.clone();\r\n    copy.y = newY;\r\n    return copy;\r\n  }\r\n\r\n  public xProjectionIntersectsWith(other: StiRectangleGeometry): boolean {\r\n    return (\r\n      this.x < other.right &&\r\n      this.right > other.x &&\r\n      Math.abs(this.right - other.x) > StiRectangleGeometry.DELTA &&\r\n      Math.abs(this.x - other.right) > StiRectangleGeometry.DELTA\r\n    );\r\n  }\r\n\r\n  public intersectWith(geometry: StiRectangleGeometry) {\r\n    let aLeftOfB = geometry.right - StiRectangleGeometry.DELTA < this.x;\r\n    let aRightOfB = geometry.x > this.right - StiRectangleGeometry.DELTA;\r\n    let aAboveB = geometry.y > this.bottom - StiRectangleGeometry.DELTA;\r\n    let aBelowB = geometry.bottom - StiRectangleGeometry.DELTA < this.y;\r\n\r\n    return !(aLeftOfB || aRightOfB || aAboveB || aBelowB);\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport * as _ from \"lodash\";\r\nimport { StiLocalizationObject } from \"./objects\";\r\nimport { camelCase } from \"lodash\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class StiLocalizationService {\r\n  public currentLocalization: StiLocalizationObject;\r\n  public defaultLocalization: StiLocalizationObject;\r\n  private _localizationList: StiLocalizationObject[] = [];\r\n  public get localizationList(): StiLocalizationObject[] {\r\n    return this._localizationList;\r\n  }\r\n  public set localizationList(array: StiLocalizationObject[]) {\r\n    let locList = this.toCamelCase(array);\r\n    this._localizationList = locList;\r\n  }\r\n  private static localization: any = {};\r\n  private static deflocalization = JSON.parse(\r\n    '{\"Localization\":{\"@language\":\"English\",\"@description\":\"English\",\"@cultureName\":\"en\",\"A_WebViewer\":{\"AbbreviatedDayFriday\":\"Fr\",\"AbbreviatedDayMonday\":\"Mo\",\"AbbreviatedDaySaturday\":\"Sa\",\"AbbreviatedDaySunday\":\"Su\",\"AbbreviatedDayThursday\":\"Th\",\"AbbreviatedDayTuesday\":\"Tu\",\"AbbreviatedDayWednesday\":\"We\",\"Attachment\":\"Attachment:\",\"ButtonNext\":\"Next\",\"ButtonPrev\":\"Previous\",\"ButtonSend\":\"Send\",\"CategoryAlreadyExists\":\"The category with that name already exists!\",\"DayFriday\":\"Friday\",\"DayMonday\":\"Monday\",\"Days\":\"Days\",\"DaySaturday\":\"Saturday\",\"DaySunday\":\"Sunday\",\"DayThursday\":\"Thursday\",\"DayTuesday\":\"Tuesday\",\"DayWednesday\":\"Wednesday\",\"Email\":\"Email:\",\"EmailOptions\":\"Email Options\",\"FirstPage\":\"First Page\",\"Hours\":\"Hours\",\"LabelFrom\":\"From:\",\"LabelSelectExportFormat\":\"Select the format to which you want to save the report:\",\"LabelTo\":\"To:\",\"LastPage\":\"Last Page\",\"Loading\":\"Loading...\",\"Message\":\"Message:\",\"Minutes\":\"Minutes\",\"MonthApril\":\"April\",\"MonthAugust\":\"August\",\"MonthDecember\":\"December\",\"MonthFebruary\":\"February\",\"MonthJanuary\":\"January\",\"MonthJuly\":\"July\",\"MonthJune\":\"June\",\"MonthMarch\":\"March\",\"MonthMay\":\"May\",\"MonthNovember\":\"November\",\"MonthOctober\":\"October\",\"MonthSeptember\":\"September\",\"NextPage\":\"Next Page\",\"OnePage\":\"One Page\",\"Page\":\"Page\",\"PageOf\":\"of\",\"PreviousPage\":\"Previous Page\",\"PrintContinue\":\"Click Print to continue\",\"PrintReport\":\"Print\",\"PrintToPdf\":\"PDF\",\"PrintToXps\":\"Microsoft XPS\",\"PrintWithoutPreview\":\"Print\",\"PrintWithPreview\":\"Preview\",\"SaveReport\":\"Save\",\"Subject\":\"Subject:\",\"TabItemContacts\":\"Contacts\",\"TextComputer\":\"Computer\",\"TextItemsRoot\":\"Root\",\"TodayDate\":\"Today\",\"WholeReport\":\"Whole Report\"},\"Adapters\":{\"AdapterBusinessObjects\":\"Data from Business Objects\",\"AdapterConnection\":\"Data from {0}\",\"AdapterCrossTabDataSource\":\"Data from Cross-Tab\",\"AdapterCsvFiles\":\"Data from CSV Files\",\"AdapterDataTables\":\"Data from DataSet, DataTables\",\"AdapterDataViews\":\"Data from DataViews\",\"AdapterDB2Connection\":\"Data from IBM DB2 Connection\",\"AdapterDBaseFiles\":\"Data from dBase Files\",\"AdapterFirebirdConnection\":\"Data from Firebird Connection\",\"AdapterInformixConnection\":\"Data from Informix Connection\",\"AdapterMySQLConnection\":\"Data from MySQL Connection\",\"AdapterOdbcConnection\":\"Data from ODBC Connection\",\"AdapterOleDbConnection\":\"Data from OLE DB Connection\",\"AdapterOracleConnection\":\"Data from Oracle Connection\",\"AdapterOracleODPConnection\":\"Data from Oracle ODP.NET Connection\",\"AdapterPostgreSQLConnection\":\"Data from PostgreSQL Connection\",\"AdapterSqlCeConnection\":\"Data from SQL CE Connection\",\"AdapterSqlConnection\":\"Data from SQL Connection\",\"AdapterSQLiteConnection\":\"Data from SQLite Connection\",\"AdapterTeradataConnection\":\"Data from Teradata Connection\",\"AdapterUniDirectConnection\":\"Data from Uni Direct Connection\",\"AdapterUserSources\":\"Data from User Sources\",\"AdapterVirtualSource\":\"Data from other Data Source\",\"AdapterVistaDBConnection\":\"Data from VistaDB Connection\"},\"BarCode\":{\"Post\":\"Post\",\"TwoDimensional\":\"Two-Dimensional\"},\"Buttons\":{\"Add\":\"Add\",\"AddAllColumns\":\"Add All Columns\",\"Attach\":\"Attach\",\"Build\":\"Build...\",\"Buttons\":\"Buttons\",\"Cancel\":\"&amp;Cancel\",\"Check\":\"Check\",\"Close\":\"Close\",\"Delete\":\"Delete\",\"Design\":\"Design\",\"Down\":\"Down\",\"Duplicate\":\"Duplicate\",\"Export\":\"Export\",\"ForceDelete\":\"Force Delete\",\"Help\":\"Help\",\"Install\":\"Install\",\"LessOptions\":\"Less Options\",\"LoadDataSet\":\"Load DataSet (*.data)\",\"More\":\"More\",\"MoreApps\":\"More Apps\",\"MoreOptions\":\"More Options\",\"MoveLeft\":\"Move Left\",\"MoveRight\":\"Move Right\",\"MoveToResource\":\"Move to Resource\",\"No\":\"&amp;No\",\"Ok\":\"&amp;OK\",\"Open\":\"Open\",\"OpenContainingFolder\":\"Open Containing Folder\",\"Print\":\"Print\",\"Publish\":\"Publish\",\"QuickPrint\":\"Quick Print\",\"Remove\":\"Remove\",\"RemoveAll\":\"Remove All\",\"Rename\":\"Rename\",\"RestoreDefaults\":\"Restore Defaults\",\"Reverse\":\"Reverse\",\"Save\":\"Save\",\"SaveCopy\":\"Save a Copy\",\"SetAll\":\"Set All\",\"ShowLess\":\"Show Less\",\"ShowMore\":\"Show More\",\"ShowSpecific\":\"Show \\'{0}\\'\",\"Sign\":\"Sign\",\"Submit\":\"Submit\",\"SwitchTo\":\"Switch to {0}\",\"Test\":\"Test\",\"Up\":\"Up\",\"Upgrade\":\"Upgrade\",\"UpgradeNow\":\"Upgrade Now\",\"Upload\":\"Upload\",\"Waiting\":\"Waiting\",\"Yes\":\"&amp;Yes\"},\"Chart\":{\"AddCondition\":\"&amp;Add Condition\",\"AddConstantLine\":\"Add Constant Line\",\"AddFilter\":\"&amp;Add Filter\",\"AddSeries\":\"&amp;Add Series\",\"AddStrip\":\"Add Strip\",\"AddTrendLine\":\"Add Trend Line\",\"Area\":\"Area\",\"Axes\":\"Axes\",\"AxisReverse\":\"Reverse\",\"AxisX\":\"Axis X\",\"AxisY\":\"Axis Y\",\"BoxAndWhisker\":\"Box and Whisker\",\"Bubble\":\"Bubble\",\"Candlestick\":\"Candlestick\",\"ChartConditionsCollectionForm\":\"Conditions\",\"ChartEditorForm\":\"Chart Editor\",\"ChartFiltersCollectionForm\":\"Filters\",\"ChartType\":\"Chart Type\",\"CheckBoxAutoRotation\":\"Auto Rotation\",\"ClusteredBar\":\"Clustered Bar\",\"ClusteredColumn\":\"Clustered Column\",\"Common\":\"Common\",\"ConstantLine\":\"Constant Line\",\"ConstantLinesEditorForm\":\"Constant Lines Editor\",\"DataColumns\":\"Data Columns\",\"Doughnut\":\"Doughnut\",\"Financial\":\"Financial\",\"FullStackedArea\":\"Full-Stacked Area\",\"FullStackedBar\":\"Full-Stacked Bar\",\"FullStackedColumn\":\"Full-Stacked Column\",\"FullStackedLine\":\"Full-Stacked Line\",\"FullStackedSpline\":\"Full-Stacked Spline\",\"FullStackedSplineArea\":\"Full-Stacked Spline Area\",\"Funnel\":\"Funnel\",\"FunnelWeightedSlices\":\"Funnel Weighted Slices\",\"Gantt\":\"Gantt\",\"GridInterlaced\":\"Interlaced\",\"GridLines\":\"Grid Lines\",\"Histogram\":\"Histogram\",\"LabelAlignment\":\"Alignment:\",\"LabelAlignmentHorizontal\":\"Horizontal:\",\"LabelAlignmentVertical\":\"Vertical:\",\"LabelAngle\":\"Angle:\",\"LabelArgumentDataColumn\":\"Argument Data Column:\",\"LabelAutoRotation\":\"Auto Rotation:\",\"LabelCloseValueDataColumn\":\"Close Value Data Column:\",\"LabelEndValueDataColumn\":\"End Value Data Column:\",\"LabelHighValueDataColumn\":\"High Value Data Column:\",\"LabelHorizontal\":\"Horizontal:\",\"LabelLowValueDataColumn\":\"Low Value Data Column:\",\"LabelMinorCount\":\"Minor Count:\",\"LabelOpenValueDataColumn\":\"Open Value Data Column:\",\"Labels\":\"Labels\",\"LabelsCenter\":\"Center\",\"LabelSeriesName\":\"Series Name:\",\"LabelsInside\":\"Inside\",\"LabelsInsideBase\":\"Inside Base\",\"LabelsInsideEnd\":\"Inside End\",\"LabelsNone\":\"None\",\"LabelsOutside\":\"Outside\",\"LabelsOutsideBase\":\"Outside Base\",\"LabelsOutsideEnd\":\"Outside End\",\"LabelsOverlay\":\"Overlay\",\"LabelsStyleCategory\":\"Category\",\"LabelsStyleCategoryPercentOfTotal\":\"Category - Percent Of Total\",\"LabelsStyleCategoryValue\":\"Category - Value\",\"LabelsStylePercentOfTotal\":\"Percent Of Total\",\"LabelsStyleValue\":\"Value\",\"LabelsTwoColumns\":\"Two Columns\",\"LabelTextAfter\":\"Text After:\",\"LabelTextBefore\":\"Text Before:\",\"LabelTitleAlignment\":\"Alignment:\",\"LabelValueDataColumn\":\"Value Data Column:\",\"LabelValueType\":\"Value Type:\",\"LabelVertical\":\"Vertical:\",\"LabelVisible\":\"Visible:\",\"Legend\":\"Legend\",\"LegendSpacing\":\"Spacing\",\"Line\":\"Line\",\"ListOfValues\":\"List of Values\",\"Marker\":\"Marker\",\"MoveConstantLineDown\":\"Move Constant Line Down\",\"MoveConstantLineUp\":\"Move Constant Line Up\",\"MoveSeriesDown\":\"Move Series Down\",\"MoveSeriesUp\":\"Move Series Up\",\"MoveStripDown\":\"Move Strip Down\",\"MoveStripUp\":\"Move Strip Up\",\"NoConditions\":\"No Conditions\",\"NoFilters\":\"No Filters\",\"Pareto\":\"Pareto\",\"Pictorial\":\"Pictorial\",\"PictorialStacked\":\"Pictorial Stacked\",\"Pie\":\"Pie\",\"Radar\":\"Radar\",\"RadarArea\":\"Radar Area\",\"RadarColumn\":\"Radar Column\",\"RadarLine\":\"Radar Line\",\"RadarPoint\":\"Radar Point\",\"Range\":\"Range\",\"RangeBar\":\"Range Bar\",\"RemoveCondition\":\"&amp;Remove Condition\",\"RemoveConstantLine\":\"Remove Constant Line\",\"RemoveFilter\":\"&amp;Remove Filter\",\"RemoveSeries\":\"&amp;Remove Series\",\"RemoveStrip\":\"Remove Strip\",\"Ribbon\":\"Ribbon\",\"RunChartWizard\":\"Run Chart &amp;Wizard\",\"Scatter\":\"Scatter\",\"ScatterLine\":\"Scatter Line\",\"ScatterSpline\":\"Scatter Spline\",\"Series\":\"Series\",\"SeriesColorsCollectionForm\":\"Series Colors\",\"SeriesEditorForm\":\"Series Editor\",\"Serieses\":\"Series\",\"SparklinesArea\":\"Area\",\"SparklinesColumn\":\"Column\",\"SparklinesLine\":\"Line\",\"SparklinesWinLoss\":\"Win / Loss\",\"Spline\":\"Spline\",\"SplineArea\":\"Spline Area\",\"SplineRange\":\"Spline Range\",\"StackedArea\":\"Stacked Area\",\"StackedBar\":\"Stacked Bar\",\"StackedColumn\":\"Stacked Column\",\"StackedLine\":\"Stacked Line\",\"StackedSpline\":\"Stacked Spline\",\"StackedSplineArea\":\"Stacked Spline Area\",\"SteppedArea\":\"Stepped Area\",\"SteppedLine\":\"Stepped Line\",\"SteppedRange\":\"Stepped Range\",\"Stock\":\"Stock\",\"Strip\":\"Strip\",\"StripsEditorForm\":\"Strips Editor Form\",\"Style\":\"Style\",\"Sunburst\":\"Sunburst\",\"Treemap\":\"Treemap\",\"TrendLinesEditorForm\":\"Trend Lines Editor\",\"Waterfall\":\"Waterfall\"},\"CharterMapEditor\":{\"Characters\":\"Characters\"},\"ChartRibbon\":{\"Axes\":\"Axes\",\"AxesArrowStyle\":\"Arrow Style\",\"AxesArrowStyleLines\":\"Lines\",\"AxesArrowStyleNone\":\"None\",\"AxesArrowStyleTriangle\":\"Triangle\",\"AxesLabel\":\"Label Placement\",\"AxesLabelsNone\":\"None\",\"AxesLabelsOneLine\":\"One Line\",\"AxesLabelsTwoLines\":\"Two Lines\",\"AxesReverseHorizontal\":\"Reverse Horizontal\",\"AxesReverseVertical\":\"Reverse Vertical\",\"AxesTicks\":\"Ticks\",\"AxesTicksMajor\":\"Major\",\"AxesTicksMinor\":\"Minor\",\"AxesTicksNone\":\"None\",\"AxesVisible\":\"Visible\",\"AxesXAxis\":\"X Axis\",\"AxesXTopAxis\":\"X Top Axis\",\"AxesYAxis\":\"Y Axis\",\"AxesYRightAxis\":\"Y Right Axis\",\"CenterLabels\":\"Center\",\"ChangeType\":\"Change Type\",\"GridLines\":\"Grid Lines\",\"GridLinesHorizontal\":\"Grid Lines Horizontal\",\"GridLinesVertical\":\"Grid Lines Vertical\",\"HorAlCenter\":\"&lt;b&gt;Overlay Legend at Center&lt;/b&gt;&lt;br&gt;Show Legend at center of the chart&lt;/br&gt;&lt;br&gt;without resizing&lt;/br&gt;\",\"HorAlLeft\":\"&lt;b&gt;Overlay Legend at Left&lt;/b&gt;&lt;br&gt;Show Legend at left of the chart&lt;/br&gt;&lt;br&gt;without resizing&lt;/br&gt;\",\"HorAlLeftOutside\":\"&lt;b&gt;Show Legend at Left&lt;/b&gt;&lt;br&gt;Show Legend and align left&lt;/br&gt;\",\"HorAlRight\":\"&lt;b&gt;Overlay Legend at Right&lt;/b&gt;&lt;br&gt;Show Legend at right of the chart&lt;/br&gt;&lt;br&gt;without resizing&lt;/br&gt;\",\"HorAlRightOutside\":\"&lt;b&gt;Show Legend at Right&lt;/b&gt;&lt;br&gt;Show Legend and align right&lt;/br&gt;\",\"HorizontalMajor\":\"&lt;b&gt;Major&lt;/b&gt;&lt;br&gt;Display Horizontal Gridlines for Major units&lt;/br&gt;\",\"HorizontalMajorMinor\":\"&lt;b&gt;Major &amp;&amp; Minor Gridlines&lt;/b&gt;&lt;br&gt;Display Horizontal Gridlines for Major and Minor units&lt;/br&gt;\",\"HorizontalMinor\":\"&lt;b&gt;Minor&lt;/b&gt;&lt;br&gt;Display Horizontal Gridlines for Minor units&lt;/br&gt;\",\"HorizontalNone\":\"&lt;b&gt;None&lt;/b&gt;&lt;br&gt;Do not display Horizontal Grirdlines&lt;/br&gt;\",\"InsideBaseLabels\":\"Inside Base\",\"InsideEndLabels\":\"Inside End\",\"Labels\":\"Series Labels\",\"Legend\":\"Legend\",\"LegendHorizontalAlignment\":\"Horizontal Alignment\",\"LegendMarker\":\"Marker\",\"LegendMarkerAlignmentLeft\":\"Left\",\"LegendMarkerAlignmentRight\":\"Right\",\"LegendMarkerVisible\":\"Visible\",\"LegendVerticalAlignment\":\"Vertical Alignment\",\"LegendVisible\":\"Visible\",\"NoneLabels\":\"None\",\"OutsideBaseLabels\":\"Outside Base\",\"OutsideEndLabels\":\"Outside End\",\"OutsideLabels\":\"Outside\",\"ribbonBarAxis\":\"Axes\",\"ribbonBarChartStyles\":\"Chart Styles\",\"ribbonBarChartType\":\"Chart Type\",\"ribbonBarLabels\":\"Labels\",\"ribbonBarLegend\":\"Legend\",\"Style\":\"Change Style\",\"TwoColumnsPieLabels\":\"Two Columns\",\"VertAlBottom\":\"&lt;b&gt;Overlay Legend at Bottom&lt;/b&gt;&lt;br&gt;Show Legend at bottom of the chart&lt;/br&gt;&lt;br&gt;without resizing&lt;/br&gt;\",\"VertAlBottomOutside\":\"&lt;b&gt;Show Legend at Bottom&lt;/b&gt;&lt;br&gt;Show Legend and align bottom&lt;/br&gt;\",\"VertAlCenter\":\"&lt;b&gt;Overlay Legend at Center&lt;/b&gt;&lt;br&gt;Show Legend at center of the chart&lt;/br&gt;&lt;br&gt;without resizing&lt;/br&gt;\",\"VertAlTop\":\"&lt;b&gt;Overlay Legend at Top&lt;/b&gt;&lt;br&gt;Show Legend at top of the chart&lt;/br&gt;&lt;br&gt;without resizing&lt;/br&gt;\",\"VertAlTopOutside\":\"&lt;b&gt;Show Legend at Top&lt;/b&gt;&lt;br&gt;Show Legend and align top&lt;/br&gt;\",\"VerticalMajor\":\"&lt;b&gt;Major&lt;/b&gt;&lt;br&gt;Display Vertical Gridlines for Major units&lt;/br&gt;\",\"VerticalMajorMinor\":\"&lt;b&gt;Major &amp;&amp; Minor Gridlines&lt;/b&gt;&lt;br&gt;Display Vertical Gridlines for Major and Minor units&lt;/br&gt;\",\"VerticalMinor\":\"&lt;b&gt;Minor&lt;/b&gt;&lt;br&gt;Display Vertical Gridlines for Minor units&lt;/br&gt;\",\"VerticalNone\":\"&lt;b&gt;None&lt;/b&gt;&lt;br&gt;Do not display Vertical Gridlines&lt;/br&gt;\"},\"Cloud\":{\"AcceptTermsAndPrivacyPolicy\":\"I read and accept the {0} and {1}\",\"Account\":\"Account\",\"AccountSettings\":\"Account Settings\",\"AddAPlace\":\"Add a Place\",\"AreYouSureYouWantDeleteReport\":\"Are you sure you want to delete \\\\\"{0}\\\\\" report from disk?\",\"Authorize\":\"Authorize\",\"AuthorizeWithLicenseKey\":\"Authorize with License Key\",\"ButtonChangePassword\":\"Change Password\",\"ButtonDeleteAll\":\"Delete All\",\"ButtonDesign\":\"Design Report\",\"ButtonLater\":\"Later\",\"ButtonLogInWith\":\"Log In with {0}\",\"ButtonLogout\":\"Logout\",\"ButtonPublish\":\"Publish\",\"ButtonPurchase\":\"Purchase\",\"ButtonRecover\":\"Recover\",\"ButtonRenew\":\"Renew\",\"ButtonResendEmail\":\"Resend Email\",\"ButtonResetPassword\":\"Reset Password\",\"ButtonRun\":\"Run\",\"ButtonScheduler\":\"Scheduler\",\"ButtonShare\":\"Share\",\"ButtonSignUp\":\"Sign Up\",\"ButtonSignUpWith\":\"Sign Up with {0}\",\"ButtonSkip\":\"Skip\",\"ButtonView\":\"View\",\"ButtonWhereUsed\":\"Where is it used?\",\"Cancel\":\"Cancel\",\"CheckBoxMoveToRecycleBin\":\"Move to Recycle Bin\",\"CheckBoxRememberMe\":\"Remember Me\",\"CheckForUpdate\":\"Check for Update\",\"Cloud\":\"Cloud\",\"Collection\":\"Collection\",\"Create\":\"Create\",\"CreateError\":\"Error while creating report!\",\"CreateNewCollection\":\"Create New Collection\",\"CreateYourTeam\":\"Create your team\",\"CreatingReport\":\"Creating report...\",\"DashboardWindowTitleNew\":\"New Dashboard\",\"DeleteFile\":\"Delete File\",\"DoNotAskMe\":\"Do not ask me again\",\"EnterUserNameToLogin\":\"Enter User Name (email) to log in.\",\"ExecutionError\":\"Execution error\",\"ExpiredDate\":\"Expired Date\",\"FileStorageWindowTitleEdit\":\"Edit File Storage\",\"FileStorageWindowTitleNew\":\"New File Storage\",\"FolderWindowTitleEdit\":\"Edit Folder\",\"FolderWindowTitleNew\":\"New Folder\",\"ForExample\":\"For example\",\"GroupBoxAttachedItems\":\"Attached Items\",\"HyperlinkAgreeToTerms\":\"By registering you agree to Terms.\",\"HyperlinkAlreadyHaveAccount\":\"Already have account\",\"HyperlinkForgotPassword\":\"Forgot password\",\"HyperlinkHavePassword\":\"Have password\",\"HyperlinkRegisterAccount\":\"Register FREE account\",\"InstallSamples\":\"Install Samples\",\"Invitations\":\"Invitations\",\"Invite\":\"Invite\",\"LabelAddCloudFolder\":\"Connect your Stimulsoft Cloud folder with reports and dashboards.\",\"LabelAddFolder\":\"Add your local folder with reports and dashboards.\",\"labelCollectionName\":\"Collection Name:\",\"LabelCreated\":\"Created:\",\"LabelCreateFolder\":\"Create a new category in which you can place other items.\",\"LabelCreateNewDashboard\":\"Create new dashboard.\",\"LabelCreateReportTemplate\":\"Create report template.\",\"LabelCurrentPassword\":\"Current Password:\",\"LabelDataFile\":\"Data File:\",\"LabelDataUrl\":\"Data URL:\",\"LabelEndDate\":\"End Date:\",\"labelFileName\":\"File Name:\",\"LabelForeground\":\"Foreground:\",\"LabelFromReport\":\"From Report\",\"LabelFromReportCode\":\"From Report (define in code)\",\"LabelInviteUser\":\"Invite new users to your team. Send invitations to their emails.\",\"LabelLastLogin\":\"Last Log In:\",\"LabelLastTime\":\"Last Time:\",\"LabelModified\":\"Modified:\",\"LabelNewPassword\":\"New Password:\",\"LabelNextTime\":\"Next Time:\",\"labelPassword\":\"Password:\",\"LabelPermission\":\"Permission:\",\"LabelPicture\":\"Picture:\",\"LabelRenderedReport\":\"Rendered report\",\"LabelResponseAsFile\":\"Response as File\",\"LabelResultType\":\"Result Type:\",\"LabelSeparateReport\":\"Separate report (and scripts) file\",\"LabelShowReport\":\"Show report:\",\"LabelStartDate\":\"Start Date:\",\"labelUserName\":\"User Name:\",\"License\":\"License\",\"LicenseInformation\":\"License Information\",\"LicenseKey\":\"License Key\",\"Login\":\"Log In\",\"MyTeam\":\"My Team\",\"NofM\":\"{0}: {1} of {2}\",\"Open\":\"Open\",\"OpenFile\":\"Open File\",\"OperationCreate\":\"Create \\'{0}\\'\",\"OperationDelete\":\"Delete \\'{0}\\' from Server\",\"OperationDownload\":\"Download from Server\",\"OperationGetList\":\"Get List of Files from Server\",\"OperationLogin\":\"Log In to Server\",\"OperationRename\":\"Rename \\'{0}\\' to \\'{1}\\'\",\"OperationUpload\":\"Upload \\'{0}\\' to Server\",\"page\":\"page\",\"Platforms\":\"Platforms\",\"Port\":\"Port\",\"PrivacyPolicy\":\"Privacy\",\"Products\":\"Products\",\"Proxy\":\"Proxy\",\"PublishMessage\":\"In order to publish this report you should submit it to our service publish.stimulsoft.com\",\"questionOpenThisFile\":\"Are you sure want to open \\'{0}\\' item?\",\"questionOverrideItem\":\"Do you really want to override \\'{0}\\' item?\",\"questionRemoveItem\":\"Do you really want to remove \\'{0}\\' item?\",\"RefreshList\":\"Refresh List\",\"ReportDocumentFormatNotRecognized\":\"Format of \\'{0}\\' item is not recognized as rendered report format!\",\"ReportTemplateFormatNotRecognized\":\"Format of \\'{0}\\' item is not recognized as report template format!\",\"RequestChangesWhenSavingToCloud\":\"Request Changes when Saving to Stimulsoft Cloud\",\"RibbonButtonAddRole\":\"Add Role\",\"RibbonButtonAddUser\":\"Add User\",\"RibbonButtonAddWorkspace\":\"Add Workspace\",\"RibbonButtonFolder\":\"Folder\",\"RibbonTabUsers\":\"Users\",\"Root\":\"Root\",\"RootFolder\":\"Root Folder\",\"Save\":\"Save\",\"SaveAccountSettings\":\"Save Account Settings\",\"SaveAsType\":\"Save as type\",\"SaveFile\":\"Save File\",\"SavingToStimulsoftCloudPleaseWait\":\"Saving the report to Stimulsoft Cloud. Please wait!\",\"SearchForOnlineTemplates\":\"Search Stimulsoft templates online\",\"ShareWindowTitleNew\":\"Share\",\"ShowAllFiles\":\"Show All Files\",\"ShowNotificationMessages\":\"Show Notification Messages\",\"Subscriptions\":\"Subscriptions\",\"TabItemEmbedCode\":\"Embed Code\",\"TabItemQRCode\":\"QR Code\",\"TabItemShare\":\"Link to Share\",\"Team\":\"Team\",\"TermsOfUse\":\"Terms\",\"TextActivated\":\"Activated\",\"TextActivationDate\":\"Activation Date\",\"TextDelete\":\"Delete\",\"TextDeletingItems\":\"Deleting items...\",\"TextDescriptionChanges\":\"Please, type a description of the changes:\",\"TextFirstName\":\"First Name\",\"TextFromTo\":\"From {0} to {1} (Total - {2})\",\"TextItemsWorkspace\":\"Workspace\",\"TextLastName\":\"Last Name\",\"TextModify\":\"Modify\",\"TextNewsLetters\":\"News Letters\",\"TextNoFavoriteFiles\":\"No favorite files\",\"TextNoFiles\":\"No files\",\"TextNoNotifications\":\"No Notifications\",\"TextNoRecentFiles\":\"No recent files\",\"TextOwner\":\"Owner\",\"TextProfile\":\"Profile\",\"TextReports\":\"Reports\",\"TextRestoringItems\":\"Restoring items...\",\"TextRole\":\"Role\",\"TextRun\":\"Run\",\"TextUser\":\"User\",\"TextUserName\":\"User Name (Email)\",\"TimeHoursAgoFive\":\"Five hours ago, {0:t}\",\"TimeHoursAgoFour\":\"Four hours ago, {0:t}\",\"TimeHoursAgoOne\":\"One hour ago, {0:t}\",\"TimeHoursAgoThree\":\"Three hours ago, {0:t}\",\"TimeHoursAgoTwo\":\"Two hours ago, {0:t}\",\"TimeMinutesAgoFive\":\"Five minutes ago, {0:t}\",\"TimeMinutesAgoFour\":\"Four minutes ago, {0:t}\",\"TimeMinutesAgoLessOne\":\"Less than a minute ago\",\"TimeMinutesAgoN\":\"{0} minutes ago, {1:t}\",\"TimeMinutesAgoOne\":\"One minute ago, {0:t}\",\"TimeMinutesAgoThree\":\"Three minutes ago, {0:t}\",\"TimeMinutesAgoTwo\":\"Two minutes ago, {0:t}\",\"TimeToday\":\"Today, {0:t}\",\"TimeYesterday\":\"Yesterday, {0:t}\",\"ToolTipAddRole\":\"Creating a new role in the workspace.\",\"ToolTipAddUser\":\"Creating a new user in the selected role.\",\"ToolTipAspNet\":\"Publish the selected report to the ASP.NET application.\",\"ToolTipAspNetMvc\":\"Publish the selected report to the ASP.NET MVC application.\",\"ToolTipAttach\":\"Attach items to the selected report.\",\"ToolTipCreate\":\"Create a new item.\",\"ToolTipDelete\":\"Delete the selected items.\",\"ToolTipDeleted\":\"Show deleted items\",\"ToolTipDownload\":\"Download the selected item.\",\"ToolTipEdit\":\"Edit the selected item.\",\"ToolTipGridMode\":\"List view\",\"ToolTipInfo\":\"View details\",\"ToolTipJs\":\"Publish the selected report as the HTML page\",\"ToolTipPublish\":\"Prepare the selected report to be deployed in your application.\",\"ToolTipRecover\":\"Recover the selected items.\",\"ToolTipRunWithoutPreview\":\"Render the selected report without preview\",\"ToolTipShare\":\"Share the selected file.\",\"ToolTipSort\":\"Sort options\",\"ToolTipThumbnailMode\":\"Thumbnail View\",\"ToolTipViewFile\":\"Show the selected file.\",\"ToolTipViewReport\":\"Show the selected report in the viewer.\",\"WeDidntFindAnything\":\"We didn\\'t find anything to show here.\",\"WindowDescriptionDelete\":\"Are you sure you want to delete the selected items?\",\"WindowDescriptionRecover\":\"Selected items will be recovered from the Recycle Bin.\",\"WindowTitleDelete\":\"Delete Items\",\"WindowTitleForgotPassword\":\"Forgot Password\",\"WindowTitleLogin\":\"Log In\",\"WindowTitleRecover\":\"Recover Items\",\"WindowTitleRoleEdit\":\"Edit Role\",\"WindowTitleRoleNew\":\"New Role\",\"WindowTitleSignUp\":\"Sign Up\",\"WindowTitleUserEdit\":\"Edit User\",\"WindowTitleUserNew\":\"New User\",\"WindowTitleWorkspaceEdit\":\"Edit Workspace\",\"WindowTitleWorkspaceNew\":\"New Workspace\",\"WizardBlankReportDescription\":\"Create a blank report\",\"WizardExcelDescription\":\"Create a report with Excel data.\",\"WizardJsonDescription\":\"Create a report with JSON data.\",\"WizardPrivateShare\":\"No Access\",\"WizardPrivateShareDescription\":\"External access to the item is restricted.\",\"WizardPublicShare\":\"Public Access\",\"WizardPublicShareDescription\":\"External access for any unauthorized user.\",\"WizardRegisteredShare\":\"Authorized Access\",\"WizardRegisteredShareDescription\":\"External access only for registered users from any workspace.\",\"WizardTeamShare\":\"Team Access\",\"WizardTeamShareDescription\":\"External access for users of one workspace only.\",\"WizardXmlDescription\":\"Create a report with XML data.\"},\"Components\":{\"StiBarCode\":\"Bar Code\",\"StiButton\":\"Button\",\"StiCards\":\"Cards\",\"StiChart\":\"Chart\",\"StiCheckBox\":\"Check Box\",\"StiChildBand\":\"Child\",\"StiClone\":\"Clone\",\"StiColumnFooterBand\":\"Column Footer\",\"StiColumnHeaderBand\":\"Column Header\",\"StiComboBox\":\"Combo Box\",\"StiComponent\":\"Component\",\"StiContainer\":\"Container\",\"StiContourText\":\"Contour Text\",\"StiCrossColumn\":\"Cross-Column\",\"StiCrossColumnTotal\":\"Cross-Column Total\",\"StiCrossDataBand\":\"Cross-Data\",\"StiCrossFooterBand\":\"Cross-Footer\",\"StiCrossGroupFooterBand\":\"Cross-Group Footer\",\"StiCrossGroupHeaderBand\":\"Cross-Group Header\",\"StiCrossHeaderBand\":\"Cross-Header\",\"StiCrossRow\":\"Cross-Row\",\"StiCrossRowTotal\":\"Cross-Row Total\",\"StiCrossSummary\":\"Cross-Summary\",\"StiCrossSummaryHeader\":\"Cross-Summary Header\",\"StiCrossTab\":\"Cross-Tab\",\"StiCrossTitle\":\"Cross-Title\",\"StiDashboard\":\"Dashboard\",\"StiDataBand\":\"Data\",\"StiDatePicker\":\"Date Picker\",\"StiElectronicSignature\":\"Electronic Signature\",\"StiEmptyBand\":\"Empty Data\",\"StiFooterBand\":\"Footer\",\"StiGauge\":\"Gauge\",\"StiGroupFooterBand\":\"Group Footer\",\"StiGroupHeaderBand\":\"Group Header\",\"StiHeaderBand\":\"Header\",\"StiHierarchicalBand\":\"Hierarchical Data\",\"StiHorizontalLinePrimitive\":\"Horizontal Line\",\"StiImage\":\"Image\",\"StiIndicator\":\"Indicator\",\"StiListBox\":\"List Box\",\"StiMap\":\"Map\",\"StiMathFormula\":\"Math Formula\",\"StiMultipleSelection\":\"Multiple Selection\",\"StiNumberBox\":\"Number Box\",\"StiOnlineMap\":\"Online Map\",\"StiOverlayBand\":\"Overlay\",\"StiPage\":\"Page\",\"StiPageFooterBand\":\"Page Footer\",\"StiPageHeaderBand\":\"Page Header\",\"StiPanel\":\"Panel\",\"StiPdfDigitalSignature\":\"PDF Digital Signature\",\"StiPivotColumn\":\"Pivot Column\",\"StiPivotRow\":\"Pivot Row\",\"StiPivotSummary\":\"Pivot Summary\",\"StiPivotTable\":\"Pivot Table\",\"StiProgress\":\"Progress\",\"StiRectanglePrimitive\":\"Rectangle\",\"StiRegionMap\":\"Region Map\",\"StiReport\":\"Report\",\"StiReportSummaryBand\":\"Report Summary\",\"StiReportTitleBand\":\"Report Title\",\"StiRichText\":\"Rich Text\",\"StiRoundedRectanglePrimitive\":\"Rounded Rectangle\",\"StiScreen\":\"Screen\",\"StiShape\":\"Shape\",\"StiSignature\":\"Signature\",\"StiSingleSelection\":\"Single Selection\",\"StiSparkline\":\"Sparkline\",\"StiSubReport\":\"Sub-Report\",\"StiSystemText\":\"System Text\",\"StiTable\":\"Table\",\"StiTableOfContents\":\"Table of Contents\",\"StiText\":\"Text\",\"StiTextInCells\":\"Text in Cells\",\"StiTreeView\":\"Tree View\",\"StiTreeViewBox\":\"Tree View Box\",\"StiVerticalLinePrimitive\":\"Vertical Line\",\"StiWinControl\":\"Win Control\",\"StiZipCode\":\"ZIP Code\"},\"CustomMapWindow\":{\"CheckedAll\":\"Checked All\",\"HideText\":\"Hide Text\",\"KeysChangePosition\":\"Keys (Left, Top, Right, Bottom) change the position of the text\",\"KeysChangeSize\":\"Shift + keys (Left, Top, Right, Bottom) change the size of the text area\",\"UncheckedAll\":\"Unchecked All\"},\"Dashboard\":{\"AddRange\":\"Add Range\",\"AfterGroupingData\":\"Apply after grouping data\",\"AfterSortingData\":\"Apply after grouping and sorting data\",\"AllowUserColumnSelection\":\"Allow User Column Selection\",\"AllowUserDrillDown\":\"Allow User Drill-Down\",\"AllowUserFiltering\":\"Allow User Filtering\",\"AllowUserSorting\":\"Allow User Sorting\",\"BeforeTransformation\":\"Apply before data transformation\",\"Blank\":\"(Blank)\",\"Blanks\":\"(Blanks)\",\"BooleanFilters\":\"Boolean Filters\",\"CannotLoadDashboard\":\"You cannot load a report with dashboards.\",\"ChangeChartType\":\"Change Chart Type\",\"ChangeMapType\":\"Change Map Type\",\"ClearAllFormatting\":\"Clear All Formatting\",\"ClearFilterFrom\":\"Clear Filter from \\'{0}\\'\",\"ColorScale\":\"Color Scale\",\"ColumnInteractions\":\"Column Interactions\",\"CustomFilter\":\"Custom &amp;Filter...\",\"DashboardsNotSupportedIntheWPFDesigner\":\"Dashboards are not supported in the WPF Designer.\",\"DataBars\":\"Data Bars\",\"DataFilterGrouping\":\"This operation is used for grouping different columns only.\",\"DataNotDefined\":\"Data is not defined\",\"DateFilters\":\"Date Filters\",\"Dimension\":\"Dimension\",\"Dimensions\":\"Dimensions\",\"DragDropBlocks\":\"Drag &amp; drop blocks from panel\",\"DragDropData\":\"Drag &amp; drop data\",\"DragDropDataFromDictionary\":\"Drag &amp; drop data from Dictionary\",\"DrillDown\":\"Drill-Down\",\"DrillDownFiltered\":\"Drill-Down Filtered\",\"DrillDownSelected\":\"Drill-Down Selected\",\"DrillUp\":\"Drill Up\",\"DuplicateField\":\"Duplicate Field\",\"EditExpression\":\"Edit Expression\",\"EditField\":\"Edit Field\",\"EmptyDashboardFooter\":\"Drag &amp; drop component from ToolBox or data from Dictionary\",\"EmptyDashboardHeader\":\"Dashboard is empty\",\"FieldInteractions\":\"Field Interactions\",\"FieldTypeRestrictionHint\":\"Only \\'{0}\\' type field can be used!\",\"FirstLastPoints\":\"First / Last Points\",\"FirstRowIndex\":\"First Row Index\",\"FullRowSelect\":\"Full Row Select\",\"HighLowPoints\":\"High / Low Points\",\"ImageNotSpecified\":\"Image not specified\",\"Indicator\":\"Indicator\",\"InitialValue\":\"Initial Value\",\"LimitRows\":\"Skip and Limit Rows\",\"Measure\":\"Measure\",\"Measures\":\"Measures\",\"Metrics\":\"Metrics\",\"NewDimension\":\"New Dimension\",\"NewField\":\"New Field\",\"NewMeasure\":\"New Measure\",\"NoRanges\":\"No Ranges\",\"NoResult\":\"No Result\",\"NSelected\":\"{0} selected\",\"Nulls\":\"(Nulls)\",\"NumberFilters\":\"Number Filters\",\"ParentElement\":\"Parent Element\",\"Priority\":\"Priority\",\"RangeMode\":\"Range Mode\",\"RangeType\":\"Range Type\",\"RemoveActions\":\"R&amp;emove Actions\",\"RemoveAllFields\":\"Remove All Fields\",\"RemoveField\":\"Remove Field\",\"RemoveMobileSurface\":\"Remove Mobile Surface\",\"ReplaceValues\":\"Replace Values\",\"ReportSnapshot\":\"Report Snapshot\",\"RowsCount\":\"Rows Count\",\"RunFieldsEditor\":\"Run Fields Editor\",\"RunFieldsEditorInfo\":\"Run the Fields Editor to change interaction of each table column.\",\"SelectAll\":\"(Select &amp;All)\",\"ShowAllValue\":\"Show (All) Value\",\"ShowAsPercentages\":\"Show as Percentages\",\"ShowBlanks\":\"Show Blanks\",\"SkipFirstRows\":\"Skip First Rows\",\"SortAZ\":\"Sort A to Z\",\"SortLargestToSmallest\":\"Sort Largest to Smallest\",\"SortNewestToOldest\":\"Sort Newest to Oldest\",\"SortOldestToNewest\":\"Sort Oldest to Newest\",\"SortSmallestToLargest\":\"Sort Smallest to Largest\",\"SortZA\":\"Sort Z to A\",\"Sparklines\":\"Sparklines\",\"StringFilters\":\"String Filters\",\"TransformationHint\":\"Click on the table header to apply sorting, filtering or change data. This transformation will be applied only to the data of this item.\",\"Trend\":\"Trend\",\"ViewEditCompilationNotice\":\"You can\\'t edit the report which has the \\'Report.CalculationMode\\' property equals to \\'Compilation\\' value. Please set that property to an \\'Interpretation\\' value.\",\"ViewModeDesktop\":\"Desktop\",\"ViewModeMobile\":\"Mobile\"},\"Database\":{\"Connection\":\"Connection\",\"Database\":\"{0} Connection\",\"DatabaseDB2\":\"IBM DB2 Connection\",\"DatabaseFirebird\":\"Firebird Connection\",\"DatabaseInformix\":\"Informix Connection\",\"DatabaseJson\":\"JSON Data\",\"DatabaseMySQL\":\"MySQL Connection\",\"DatabaseOdbc\":\"ODBC Connection\",\"DatabaseOleDb\":\"OLE DB Connection\",\"DatabaseOracle\":\"Oracle Connection\",\"DatabaseOracleODP\":\"Oracle ODP.NET Connection\",\"DatabasePostgreSQL\":\"PostgreSQL Connection\",\"DatabaseSql\":\"SQL Connection\",\"DatabaseSqlCe\":\"SQLServerCE Connection\",\"DatabaseSQLite\":\"SQLite Connection\",\"DatabaseTeradata\":\"Teradata Connection\",\"DatabaseUniDirect\":\"Uni Direct Connection\",\"DatabaseVistaDB\":\"VistaDB Connection\",\"DatabaseXml\":\"XML Data\"},\"DatePickerRanges\":{\"CurrentMonth\":\"Current Month\",\"CurrentQuarter\":\"Current Quarter\",\"CurrentWeek\":\"Current Week\",\"CurrentYear\":\"Current Year\",\"DaysAgo\":\"{0} Days Ago\",\"FirstQuarter\":\"First Quarter\",\"FourthQuarter\":\"Fourth Quarter\",\"Index\":\"Index\",\"Last14Days\":\"Last 14 Days\",\"Last30Days\":\"Last 30 Days\",\"Last7Days\":\"Last 7 Days\",\"MonthToDate\":\"Month To Date\",\"NextMonth\":\"Next Month\",\"NextQuarter\":\"Next Quarter\",\"NextWeek\":\"Next Week\",\"NextYear\":\"Next Year\",\"PreviousMonth\":\"Previous Month\",\"PreviousQuarter\":\"Previous Quarter\",\"PreviousWeek\":\"Previous Week\",\"PreviousYear\":\"Previous Year\",\"Quarter\":\"Quarter\",\"QuarterToDate\":\"Quarter To Date\",\"SecondQuarter\":\"Second Quarter\",\"ThirdQuarter\":\"Third Quarter\",\"Today\":\"Today\",\"Tomorrow\":\"Tomorrow\",\"WeekToDate\":\"Week To Date\",\"Year\":\"Year\",\"YearToDate\":\"Year To Date\",\"Yesterday\":\"Yesterday\"},\"DesignerFx\":{\"AlreadyExists\":\"\\'{0}\\' already exists.\",\"CanNotLoadThisReportTemplate\":\"Can\\'t load this report template.\",\"CloseDataSourceEditor\":\"Do you want to close data source editor?\",\"CloseEditor\":\"Do you want to close editor?\",\"CompilingReport\":\"Compiling Report\",\"Connecting\":\"Connecting to Server\",\"ConnectionError\":\"Connection error\",\"ConnectionSuccessfull\":\"Connection was successful\",\"Continue\":\"Continue\",\"DecryptionError\":\"Decryption error: Wrong password or corrupted file.\",\"EmailSuccessfullySent\":\"The Email has been successfully sent.\",\"ErrorAtSaving\":\"Error at saving\",\"ErrorCode\":\"Error at saving. Error code: {0}\",\"ErrorServer\":\"Error at saving. Server doesn\\'t respond.\",\"ExportingReport\":\"Exporting Report\",\"LoadingCode\":\"Loading Code\",\"LoadingConfiguration\":\"Loading Configuration\",\"LoadingData\":\"Loading Data\",\"LoadingDocument\":\"Loading Document\",\"LoadingImages\":\"Loading Images\",\"LoadingLanguage\":\"Loading Language\",\"LoadingReport\":\"Loading Report\",\"PreviewAs\":\"Preview as {0}\",\"RenderingReport\":\"Rendering Report\",\"ReportSuccessfullySaved\":\"Report is successfully saved.\",\"RetrieveError\":\"Retrieve columns error\",\"RetrievingColumns\":\"Retrieving Columns\",\"Saving\":\"Saving\",\"SavingConfiguration\":\"Saving Configuration\",\"SavingReport\":\"Saving Report\",\"TestConnection\":\"Test Connection\",\"TextNotFound\":\"The specified text was not found. Text : {0}\"},\"Desktop\":{\"Beginner\":\"Beginner\",\"ButtonAddCloud\":\"Add Cloud Folder\",\"ButtonAddFolder\":\"Add Folder\",\"ButtonCreateDashboard\":\"Create Dashboard\",\"ButtonCreateReport\":\"Create Report\",\"ChooseYourSkillLevel\":\"Choose your skill level\",\"Creator\":\"Creator\",\"Developer\":\"Developer\",\"DoYouWantToInstallReports\":\"Do you want to install templates of reports and dashboards?\",\"InstallSamplesDesc\":\"Let\\'s install our sample projects. They will help you learn the basics of working with our software.\",\"PleaseAnswerWhoAreYou\":\"Please, answer who you are?\",\"SkillLevel\":\"Skill Level\",\"WhoAreYou\":\"Who Are you?\",\"WhoAreYouBeginnerDescription\":\"Perfect fit if you are doing the first run of the designer.\",\"WhoAreYouCreatorDescription\":\"Perfect fit for creating reports. The necessary functionality for design is available.\",\"WhoAreYouDeveloperDescription\":\"Perfect fit for creating applications. Complete functionality for the report design and embedding components included.\"},\"Dialogs\":{\"StiButtonControl\":\"Button\",\"StiCheckBoxControl\":\"Check Box\",\"StiCheckedListBoxControl\":\"Checked List Box\",\"StiComboBoxControl\":\"Combo Box\",\"StiDateTimePickerControl\":\"Date Time Picker\",\"StiForm\":\"Form\",\"StiGridControl\":\"Grid\",\"StiGroupBoxControl\":\"Group Box\",\"StiLabelControl\":\"Label\",\"StiListBoxControl\":\"List Box\",\"StiListViewControl\":\"List View\",\"StiLookUpBoxControl\":\"LookUp Box\",\"StiNumericUpDownControl\":\"Numeric Up Down\",\"StiPanelControl\":\"Panel\",\"StiPictureBoxControl\":\"Picture Box\",\"StiRadioButtonControl\":\"Radio Button\",\"StiReportControl\":\"Report Control\",\"StiRichTextBoxControl\":\"Rich Text Box\",\"StiTextBoxControl\":\"Text Box\",\"StiTreeViewControl\":\"Tree View\"},\"Editor\":{\"AllowSQLFormatting\":\"Allow SQL Formatting\",\"BetweenMetrics\":\"Between 1 and 10 metrics can be selected.\",\"CantFind\":\"Cannot find the data you\\'re searching for.\",\"CollapseToDefinitions\":\"C&amp;ollapse to Definitions\",\"Column\":\"Column: {0}\",\"EntireScope\":\"&amp;Entire Scope\",\"Find\":\"&amp;Find\",\"FindNext\":\"&amp;Find Next\",\"FindWhat\":\"Find What:\",\"FromCursor\":\"From Cursor\",\"GotoLine\":\"Go To &amp;Line\",\"InsertLink\":\"Insert Link\",\"InsertSymbol\":\"Insert Symbol\",\"Line\":\"Line: {0}\",\"LineNumber\":\"Line Number:\",\"LineNumberIndex\":\"Line Number ({0} - {1})\",\"MarkAll\":\"&amp;Mark All\",\"MatchCase\":\"Match &amp;Case\",\"MatchWholeWord\":\"Match &amp;Whole Word\",\"MaximumDimensions\":\"Maximum 7 dimensions can be selected.\",\"Outlining\":\"Out&amp;lining\",\"PromptOnReplace\":\"Prompt on Replace\",\"Replace\":\"&amp;Replace\",\"ReplaceAll\":\"Replace &amp;All\",\"ReplaceWith\":\"Replace With:\",\"Search\":\"Search\",\"SearchHiddenText\":\"Hidden Text\",\"SearchUp\":\"Search &amp;Up\",\"SelectionOnly\":\"Selection &amp;Only\",\"ShowAutoGeneratedCode\":\"Show Auto Generated Code\",\"ShowLineNumbers\":\"Show Line Numbers\",\"StopOutlining\":\"Sto&amp;p Outlining\",\"titleFind\":\"Find\",\"titleGotoLine\":\"Go To Line\",\"titleReplace\":\"Replace\",\"ToggleAllOutlining\":\"Toggle A&amp;ll Outlining\",\"ToggleOutliningExpansion\":\"&amp;Toggle Outlining Expansion\",\"TypeToSearch\":\"Type to search\",\"UseRegularExpressions\":\"Use &amp;Regular Expressions\"},\"Errors\":{\"ComponentIsNotRelease\":\"Component is not release \\\\\"{0}\\\\\".\",\"ContainerIsNotValidForComponent\":\"Container {0} is not valid for component {1}.\",\"DataNotFound\":\"Data not found.\",\"DataNotLoaded\":\"No data loaded.\",\"Error\":\"Error!\",\"ErrorsList\":\"Errors List\",\"FieldRequire\":\"Field \\\\\"{0}\\\\\" required filling.\",\"FileNotFound\":\"File \\\\\"{0}\\\\\" not found.\",\"IdentifierIsNotValid\":\"Identifier \\'{0}\\' is not valid.\",\"ImpossibleFindDataSource\":\"Impossible to Find Data Source.\",\"NameExists\":\"There is already an object named \\'{0}\\'. Objects must have unique names.\",\"NoServices\":\"Services are not found in \\'{0}\\'\",\"NotAssign\":\"Data Source is not specified.\",\"NotCorrectFormat\":\"Input string was not in a correct format.\",\"OneTableOfContentsAllowed\":\"Only one \\'Table of Contents\\' component can be used in a report at the same time!\",\"PrimaryColumnAction\":\"Unable to apply this action to the primary column of the \\'{0}\\'.\",\"RelationsNotFound\":\"Relations not found.\",\"ReportCannotBeSaveDueToErrors\":\"Report cannot be saved due to errors!\",\"ServiceNotFound\":\"\\'{0}\\' Service not found.\"},\"ExceptionProvider\":{\"Assemblies\":\"Assemblies\",\"ClickIgnore\":\"Click \\'Ignore\\' to delete all auto-saved files.\",\"Exception\":\"Exception\",\"ExceptionReport\":\"Exception Report\",\"Framework\":\"Framework\",\"General\":\"General\",\"Message\":\"Message\",\"Number\":\"Number\",\"PleaseEnterDetailedInformation\":\"Please enter detailed information about events which cause this exception.\",\"SaveToFile\":\"Save to File\",\"SendErrorFailed\":\"Failed to deliver the error message.\",\"SendErrorSuccess\":\"The error message delivered successfully.\",\"Source\":\"Source\",\"StackTrace\":\"Stack Trace\",\"YouCanRestore\":\"You can restore unsaved changes from a backup file.\",\"YourPreviousWorkSession\":\"In your previous work session, the designer terminated unexpectedly.\"},\"Export\":{\"AddPageBreaks\":\"Add Page Breaks\",\"AllBands\":\"All bands\",\"AllowAddOrModifyTextAnnotations\":\"Allow Add or Modify Text Annotations\",\"AllowCopyTextAndGraphics\":\"Allow Copy Text and Graphics\",\"AllowEditable\":\"Allow Editable:\",\"AllowModifyContents\":\"Allow Modify Contents\",\"AllowPrintDocument\":\"Allow Print Document\",\"Auto\":\"Auto\",\"BandsFilter\":\"Bands Filter:\",\"CancelExport\":\"Cancel Export\",\"Color\":\"Color\",\"Compressed\":\"Compressed\",\"CompressToArchive\":\"Compress to Archive\",\"ContinuousPages\":\"Continuous Pages\",\"DataAndHeaders\":\"Data and Headers\",\"DataAndHeadersFooters\":\"Data and Headers/Footers\",\"DataOnly\":\"Data only\",\"DigitalSignature\":\"Digital Signature\",\"DigitalSignatureCertificateNotSelected\":\"Certificate is not selected\",\"DigitalSignatureError\":\"Digital Signature error at step\",\"DocumentSecurity\":\"Document Security\",\"DotMatrixMode\":\"Dot-Matrix Mode\",\"EmbeddedFonts\":\"Embedded Fonts\",\"EmbeddedImageData\":\"Embedded Image Data\",\"EnableAnimation\":\"Enable Animation\",\"Encoding\":\"Encoding:\",\"EncryptionError\":\"Encryption error at step\",\"EscapeCodes\":\"Escape Codes\",\"Exactly\":\"Exactly\",\"ExceptEditableFields\":\"Except Editable Fields\",\"ExportDataOnly\":\"Export Data Only\",\"ExportEachPageToSheet\":\"Export Each Page to Sheet\",\"Exporting\":\"Exporting\",\"ExportingCalculatingCoordinates\":\"Calculating Coordinates\",\"ExportingCreatingDocument\":\"Creating Document\",\"ExportingFormatingObjects\":\"Formatting Objects\",\"ExportingReport\":\"Exporting Report\",\"ExportMode\":\"Export Mode:\",\"ExportModeFrame\":\"Frame\",\"ExportModeTable\":\"Table\",\"ExportObjectFormatting\":\"Export Object Formatting\",\"ExportPageBreaks\":\"Export Page Breaks\",\"ExportRtfTextAsImage\":\"Export Rich Text as Image\",\"ExportTypeBmpFile\":\"BMP Image...\",\"ExportTypeCalcFile\":\"OpenDocument Calc File...\",\"ExportTypeCsvFile\":\"CSV File...\",\"ExportTypeDataFile\":\"Data File...\",\"ExportTypeDbfFile\":\"dBase DBF File...\",\"ExportTypeDifFile\":\"Data Interchange Format (DIF) File...\",\"ExportTypeExcel2007File\":\"Microsoft Excel 2007 File...\",\"ExportTypeExcelFile\":\"Microsoft Excel File...\",\"ExportTypeExcelXmlFile\":\"Microsoft Excel XML File...\",\"ExportTypeGifFile\":\"GIF Image...\",\"ExportTypeHtml5File\":\"HTML5 File...\",\"ExportTypeHtmlFile\":\"HTML File...\",\"ExportTypeImageFile\":\"Image File...\",\"ExportTypeJpegFile\":\"JPEG Image...\",\"ExportTypeJsonFile\":\"JSON File...\",\"ExportTypeMetafile\":\"Windows Metafile...\",\"ExportTypeMhtFile\":\"MHT Web Archive...\",\"ExportTypePcxFile\":\"PCX Image...\",\"ExportTypePdfFile\":\"Adobe PDF File...\",\"ExportTypePngFile\":\"PNG Image...\",\"ExportTypePpt2007File\":\"Microsoft PowerPoint File...\",\"ExportTypeRtfFile\":\"Rich Text File...\",\"ExportTypeSvgFile\":\"Scalable Vector Graphics (SVG) File...\",\"ExportTypeSvgzFile\":\"Compressed SVG (SVGZ) File...\",\"ExportTypeSylkFile\":\"Symbolic Link (SYLK) File...\",\"ExportTypeTiffFile\":\"TIFF Image...\",\"ExportTypeTxtFile\":\"Text File...\",\"ExportTypeWord2007File\":\"Microsoft Word File...\",\"ExportTypeWriterFile\":\"OpenDocument Writer File...\",\"ExportTypeXmlFile\":\"XML File...\",\"ExportTypeXpsFile\":\"Microsoft XPS File...\",\"GetCertificateFromCryptoUI\":\"Get Certificate from Crypto UI\",\"ImageCompressionMethod\":\"Image Compression Method:\",\"ImageCutEdges\":\"Cut Edges\",\"ImageFormat\":\"Image Format:\",\"ImageGrayscale\":\"Grayscale\",\"ImageMonochrome\":\"Monochrome\",\"ImageQuality\":\"Image Quality:\",\"ImageResolution\":\"Image Resolution:\",\"ImageResolutionMode\":\"Image Resolution Mode:\",\"ImageType\":\"Image Type\",\"labelEncryptionKeyLength\":\"Encryption Key Length:\",\"labelOwnerPassword\":\"Owner Password:\",\"labelSubjectNameString\":\"Subject Name String:\",\"labelUserPassword\":\"User Password:\",\"MonochromeDitheringType\":\"Monochrome Dithering Type:\",\"MoreSettings\":\"More Settings\",\"MultipleFiles\":\"Multiple Files\",\"NoMoreThan\":\"No More Than\",\"OpenAfterExport\":\"Open After Export\",\"PdfACompliance\":\"PDF/A Compliance\",\"PrintingReport\":\"Printing Report\",\"RemoveEmptySpaceAtBottom\":\"Remove Empty Space at Bottom of Page\",\"RestrictEditing\":\"Restrict Editing:\",\"Scale\":\"Scale:\",\"Separator\":\"Separator:\",\"Settings\":\"Settings\",\"SkipColumnHeaders\":\"Skip Column Headers\",\"StandardPDFFonts\":\"Standard PDF Fonts\",\"TiffCompressionScheme\":\"TIFF Compression Scheme:\",\"title\":\"Export Settings\",\"TxtBorderType\":\"Border Type\",\"TxtBorderTypeDouble\":\"Unicode-Double\",\"TxtBorderTypeSimple\":\"Simple\",\"TxtBorderTypeSingle\":\"Unicode-Single\",\"TxtCutLongLines\":\"Cut Long Lines\",\"TxtDrawBorder\":\"Draw Border\",\"TxtKillSpaceGraphLines\":\"Kill Space Graph Lines\",\"TxtKillSpaceLines\":\"Kill Space Lines\",\"TxtPutFeedPageCode\":\"Put Feed Page Code\",\"Type\":\"Type:\",\"UseDefaultSystemEncoding\":\"Use Default System Encoding\",\"UseDigitalSignature\":\"Use Digital Signature\",\"UseEscapeCodes\":\"Use Escape Codes\",\"UseOnePageHeaderAndFooter\":\"Use One Page Header and Footer\",\"UsePageHeadersAndFooters\":\"Use Page Headers and Footers\",\"UseUnicode\":\"Use Unicode\",\"X\":\"X:\",\"Y\":\"Y:\",\"Zoom\":\"Zoom:\"},\"FileFilters\":{\"AllFiles\":\"All Files\",\"AllImageFiles\":\"All Image Files\",\"BitmapFiles\":\"Bitmap Files\",\"BmpFiles\":\"BMP Images (*.bmp)|*.bmp\",\"CalcFiles\":\"OpenDocument Calc Files (*.ods)|*.ods\",\"CsvFiles\":\"CSV Files (*.csv)|*.csv\",\"DashboardTemplates\":\"Dashboard Templates (*.sbi)|*.sbi\",\"DataSetXmlData\":\"DataSet XML Data (*.xml)|*.xml\",\"DataSetXmlSchema\":\"DataSet XML Schema (*.xsd)|*.xsd\",\"DbfFiles\":\"DBF Files (*.dbf)|*.dbf\",\"DictionaryFiles\":\"Report Dictionaries (*.dct)|*.dct\",\"DifFiles\":\"DIF Files (*.dif)|*.dif\",\"DllFiles\":\"DLL Files (*.dll)|*.dll\",\"DocumentFiles\":\"Report Documents (*.mdc)|*.mdc\",\"EmfFiles\":\"Metafiles (*.emf)|*.emf\",\"EncryptedDocumentFiles\":\"Encrypted Report Documents (*.mdx)|*.mdx\",\"EncryptedReportFiles\":\"Encrypted Report Templates (*.mrx)|*.mrx\",\"Excel2007Files\":\"Microsoft Excel files (*.xlsx)|*.xlsx\",\"ExcelAllFiles\":\"Microsoft Excel files (*.xlsx;*.xls)|*.xlsx;*.xls\",\"ExcelFiles\":\"Microsoft Excel 97-2003 files (*.xls)|*.xls\",\"ExcelXmlFiles\":\"Microsoft Excel XML files (*.xml)|*.xml\",\"ExeFiles\":\"EXE Files (*.exe)|*.exe\",\"GifFiles\":\"GIF Image (*.gif)|*.gif\",\"HtmlFiles\":\"HTML Files (*.html)|*.html\",\"InheritedLanguageFiles\":\"{0} Classes for Inherited Reports (*.{1})|*.{2}\",\"JpegFiles\":\"JPEG image (*.jpg;*.jpeg)|*.jpg;*.jpeg\",\"JsonDocumentFiles\":\"JSON Report Documents (*.mdc)|*.mdc\",\"JsonFiles\":\"JSON Files (*.json)|*.json\",\"JsonReportFiles\":\"JSON Report Templates (*.mrt)|*.mrt\",\"LanguageFiles\":\"{0} Classes (*.{1})|*.{2}\",\"LanguageForSilverlightFiles\":\"{0} Classes for Silverlight Reports (*.{1})|*.{2}\",\"MetaFiles\":\"Metafiles\",\"MhtFiles\":\"MHT Web Archives (*.mht)|*.mht\",\"PackedDocumentFiles\":\"Packed Report Documents (*.mdz)|*.mdz\",\"PackedReportFiles\":\"Packed Report Templates (*.mrz)|*.mrz\",\"PageFiles\":\"Report Pages (*.pg)|*.pg\",\"PcxFiles\":\"PCX Images (*.pcx)|*.pcx\",\"PdfFiles\":\"Adobe PDF Files (*.pdf)|*.pdf\",\"PngFiles\":\"PNG Images (*.png)|*.png\",\"Ppt2007Files\":\"Microsoft PowerPoint 2007/2013 Files (*.pptx)|*.pptx\",\"ReportEmbededDataFiles\":\"Report Templates with Embedded Data (*.mrt)|*.mrt\",\"ReportFiles\":\"Report Templates (*.mrt)|*.mrt\",\"RtfFiles\":\"Rich Text (*.rtf)|*.rtf\",\"StandaloneReportFiles\":\"Standalone Reports (*.exe)|*.exe\",\"StylesFiles\":\"Report Styles (*.sts)|*.sts\",\"SvgFiles\":\"SVG Images (*.svg)|*.svg\",\"SvgzFiles\":\"Compressed SVG Images (*.svgz)|*.svgz\",\"SylkFiles\":\"SYLK Files (*.slk)|*.slk\",\"TiffFiles\":\"TIFF Images (*.tiff)|*.tiff\",\"TxtFiles\":\"Plain Text Files (*.txt)|*.txt\",\"Word2007Files\":\"Microsoft Word 2007-2016 Files (*.docx)|*.docx\",\"WordFiles\":\"Microsoft Word 97-2003 Files (*.doc)|*.doc\",\"WriterFiles\":\"OpenDocument Writer Files (*.odt)|*.odt\",\"XmlFiles\":\"XML Files (*.xml)|*.xml\",\"XpsFiles\":\"Microsoft XPS Files (*.xps)|*.xps\",\"ZipArchives\":\"ZIP Archives (*.zip)|*.zip\"},\"Formats\":{\"custom01\":\"d\",\"custom02\":\"D\",\"custom03\":\"f\",\"custom04\":\"F\",\"custom05\":\"yy/MM/dd\",\"custom06\":\"yyyy/MM/dd\",\"custom07\":\"G\",\"custom08\":\"$0.00\",\"custom09\":\"$0\",\"custom10\":\"c\",\"custom11\":\"c1\",\"custom12\":\"c2\",\"custom13\":\"#.00\",\"custom14\":\"#.#\",\"custom15\":\"n\",\"custom16\":\"n1\",\"custom17\":\"n2\",\"custom18\":\"(###) ### - ####\",\"date01\":\"*d\",\"date02\":\"*D\",\"date03\":\"M.dd\",\"date04\":\"yy.M.dd\",\"date05\":\"yy.MM.dd\",\"date06\":\"MMM.dd\",\"date07\":\"yy.MMM.dd\",\"date08\":\"yyyy, MMMM\",\"date09\":\"*f\",\"date10\":\"*F\",\"date11\":\"MM.dd.yyyy\",\"date12\":\"dd/MM/yyyy\",\"date13\":\"*g\",\"date14\":\"*G\",\"date15\":\"*y\",\"date16\":\"*m\",\"date17\":\"s\",\"date18\":\"u\",\"date19\":\"*Q\",\"date20\":\"*YQ\",\"date21\":\"QI\",\"date22\":\"YQI\",\"time01\":\"*t\",\"time02\":\"*T\",\"time03\":\"HH:mm\",\"time04\":\"H:mm\",\"time06\":\"HH:mm:ss\"},\"FormBand\":{\"AddFilter\":\"&amp;Add Filter\",\"AddGroup\":\"&amp;Add Group\",\"AddResult\":\"&amp;Add Result\",\"AddSort\":\"&amp;Add Sort\",\"And\":\"and\",\"Ascending\":\"Ascending\",\"Descending\":\"Descending\",\"NoFilters\":\"No Filters\",\"NoSort\":\"No Sorting\",\"RemoveFilter\":\"&amp;Remove Filter\",\"RemoveGroup\":\"&amp;Remove Group\",\"RemoveResult\":\"&amp;Remove Result\",\"RemoveSort\":\"&amp;Remove Sort\",\"SortBy\":\"Sort by\",\"ThenBy\":\"Then by\",\"title\":\"Data Setup\"},\"FormColorBoxPopup\":{\"Color\":\"Color\",\"Custom\":\"Custom\",\"NoColor\":\"No Color\",\"Others\":\"Others...\",\"System\":\"System\",\"Web\":\"Web\"},\"FormConditions\":{\"AaBbCcYyZz\":\"AaBbCcYyZz\",\"AddCondition\":\"&amp;Add Condition\",\"AddLevel\":\"Add Level\",\"AssignExpression\":\"Assign Expression\",\"BreakIfTrue\":\"Break if True\",\"BreakIfTrueToolTip\":\"Breaks condition processing if current one is fulfilled\",\"ChangeBorder\":\"Change Border...\",\"ChangeFont\":\"Change Font...\",\"ComponentIsEnabled\":\"Component is Enabled\",\"NoConditions\":\"No Conditions\",\"RemoveCondition\":\"&amp;Remove Condition\",\"SelectStyle\":\"Select Style\",\"title\":\"Conditions\"},\"FormCrossTabDesigner\":{\"Columns\":\"Columns:\",\"DataSource\":\"Data Source:\",\"Properties\":\"Properties:\",\"Rows\":\"Rows:\",\"Summary\":\"Summary:\",\"Swap\":\"Swap Rows / Columns\",\"title\":\"Cross-Tab Designer\"},\"FormDatabaseEdit\":{\"AccessToken\":\"Access token\",\"AccountKey\":\"Account Key\",\"AccountName\":\"Account Name\",\"AuthorizationCode\":\"Authorization Code\",\"BlobContentType\":\"Blob Content Type\",\"BlobName\":\"Blob Name\",\"ClientId\":\"Client Id\",\"ClientSecret\":\"Client Secret\",\"ConnectionString\":\"Connection String:\",\"ContainerName\":\"Container Name\",\"DashboardConnections\":\"Dashboard Connections\",\"DatabaseSecret\":\"Database Secret\",\"DatasetId\":\"Dataset Id\",\"DB2Edit\":\"Edit IBM DB2 Connection\",\"DB2New\":\"New IBM DB2 Connection\",\"EditConnection\":\"Edit {0} Connection\",\"Favorites\":\"Favorites\",\"FirebirdEdit\":\"Edit Firebird Connection\",\"FirebirdNew\":\"New Firebird Connection\",\"FirstRowIsHeader\":\"First Row is Header\",\"GetAuthorizationCode\":\"Get authorization code\",\"GetTokens\":\"Get tokens\",\"GisEdit\":\"Edit GIS Data\",\"GisNew\":\"New GIS Data\",\"ImportData\":\"Import Data\",\"InformixEdit\":\"Edit Informix Connection\",\"InformixNew\":\"New Informix Connection\",\"InitialCatalog\":\"Initial Catalog:\",\"JsonEdit\":\"Edit JSON Data\",\"JsonNew\":\"New JSON Data\",\"MySQLEdit\":\"Edit MySQL Connection\",\"MySQLNew\":\"New MySQL Connection\",\"NewConnection\":\"New {0} Connection\",\"OdbcEdit\":\"Edit ODBC Connection\",\"OdbcNew\":\"New ODBC Connection\",\"OleDbEdit\":\"Edit OLE DB Connection\",\"OleDbNew\":\"New OLE DB Connection\",\"OracleEdit\":\"Edit Oracle Connection\",\"OracleNew\":\"New Oracle Connection\",\"OracleODPEdit\":\"Edit Oracle ODP.NET Connection\",\"OracleODPNew\":\"New Oracle ODP.NET Connection\",\"PathData\":\"Path to XML Data:\",\"PathGisData\":\"Path to Gis Data:\",\"PathJsonData\":\"Path to JSON Data:\",\"PathSchema\":\"Path to XSD Schema:\",\"PathToData\":\"Path to Data:\",\"Pin\":\"Pin\",\"PostgreSQLEdit\":\"Edit PostgreSQL Connection\",\"PostgreSQLNew\":\"New PostgreSQL Connection\",\"ProjectId\":\"Project Id\",\"PromptUserNameAndPassword\":\"Prompt User Name and Password\",\"RecentConnections\":\"Recent\",\"RedirectUrl\":\"Redirect URL\",\"RefreshAccessToken\":\"Refresh access token\",\"RefreshToken\":\"Refresh token\",\"RelationDirection\":\"Relation Direction:\",\"ReportConnections\":\"Report Connections\",\"SelectData\":\"Select Data\",\"ServiceAccountKeyFile\":\"Service Account Key File\",\"SpreadsheetId\":\"Spreadsheet Id\",\"SqlCeEdit\":\"Edit SQLServerCE Connection\",\"SqlCeNew\":\"New SQLServerCE Connection\",\"SqlEdit\":\"Edit SQL Connection\",\"SQLiteEdit\":\"Edit SQLite Connection\",\"SQLiteNew\":\"New SQLite Connection\",\"SqlNew\":\"New SQL Connection\",\"TeradataEdit\":\"Edit Teradata Connection\",\"TeradataNew\":\"New Teradata Connection\",\"Token\":\"Token\",\"UniDirectEdit\":\"Edit Uni Direct Connection\",\"UniDirectNew\":\"New Uni Direct Connection\",\"Unpin\":\"Unpin\",\"UseBearerAuthentication\":\"Use Bearer Authentication\",\"UseOwnClientID\":\"Use own \\\\\"Client ID\\\\\" and \\\\\"Client Secret\\\\\"\",\"UseToken\":\"Use Token\",\"VistaDBEdit\":\"Edit VistaDB Connection\",\"VistaDBNew\":\"New VistaDB Connection\",\"XmlEdit\":\"Edit XML Data\",\"XmlNew\":\"New XML Data\",\"XmlType\":\"XML Type:\"},\"FormDesigner\":{\"Code\":\"Code\",\"ColumnsOne\":\"One\",\"ColumnsThree\":\"Three\",\"ColumnsTwo\":\"Two\",\"CompilingReport\":\"Compiling Report\",\"CopyPropertyName\":\"Copy Property Name\",\"DockingPanels\":\"Panels\",\"HtmlPreview\":\"HTML Preview\",\"JsPreview\":\"JS Preview\",\"labelPleaseSelectTypeOfInterface\":\"Please, select type of interface\",\"LoadImage\":\"Load Image...\",\"LocalizePropertyGrid\":\"Localize Property Grid\",\"MarginsNarrow\":\"Narrow\",\"MarginsNormal\":\"Normal\",\"MarginsWide\":\"Wide\",\"OrderToolbars\":\"Order Toolbars\",\"Others\":\"Others\",\"Pages\":\"Pages\",\"Preview\":\"Preview\",\"PropertyChange\":\"Change of property \\'{0}\\'\",\"RTPreview\":\"WinRT Preview\",\"SetupToolbox\":\"Setup Toolbox\",\"ShowDescription\":\"Show Description\",\"SLPreview\":\"Silverlight Preview\",\"title\":\"Designer\",\"WebPreview\":\"Flash Preview\"},\"FormDictionaryDesigner\":{\"Actions\":\"Actions\",\"AutoSort\":\"Auto Sort\",\"BusinessObjectEdit\":\"Edit Business Object\",\"CalcColumnEdit\":\"Edit Calculated Column\",\"CalcColumnNew\":\"New Calculated Column\",\"CategoryEdit\":\"Edit Category\",\"CategoryNew\":\"New Category\",\"Child\":\"Child\",\"ChildOfBusinessObject\":\"Child of Business Object\",\"ChildSource\":\"Child Data Source:\",\"ClickHere\":\"Click here\",\"ColumnEdit\":\"Edit Column\",\"ColumnNew\":\"New Column\",\"CreateNewDataSource\":\"to create the new data source\",\"CreateNewReport\":\"to create the new report\",\"CsvSeparatorComma\":\"Comma\",\"CsvSeparatorOther\":\"Other\",\"CsvSeparatorSemicolon\":\"Semicolon\",\"CsvSeparatorSpace\":\"Space\",\"CsvSeparatorSystem\":\"System\",\"CsvSeparatorTab\":\"Tab\",\"DatabaseEdit\":\"Edit Database\",\"DatabaseNew\":\"New Database\",\"DataMonitor\":\"Data Monitor\",\"DataParameterEdit\":\"Edit Parameter\",\"DataParameterNew\":\"New Parameter\",\"DataSetToBusinessObjects\":\"DataSet To Business Objects\",\"DataSourceEdit\":\"Edit Data Source\",\"DataSourceNew\":\"New Data Source\",\"DataSourcesNew\":\"New Data Sources\",\"DataTransformationEdit\":\"Edit Data Transformation\",\"DataTransformationNew\":\"New Data Transformation\",\"Delete\":\"Delete\",\"DesignTimeQueryText\":\"Design-Time Query Text\",\"DictionaryMerge\":\"Merge Dictionary...\",\"DictionaryNew\":\"New Dictionary...\",\"DictionaryOpen\":\"Open Dictionary...\",\"DictionarySaveAs\":\"Save Dictionary As...\",\"DragNewDataSource\":\"drag your data directly to this panel\",\"DragNewReport\":\"drag your report directly to this panel\",\"EditQuery\":\"Edit Query\",\"EnableDataMonitor\":\"Enable Data Monitor\",\"ExecutedSQLStatementSuccessfully\":\"SQL statement executed successfully\",\"ExpressionNew\":\"New Expression\",\"GetColumnsFromAssembly\":\"Get Columns from Assembly\",\"HideUnsupportedDatabases\":\"Hide Unsupported Data Sources\",\"ImportRelations\":\"Import Relations\",\"LabelSeparator\":\"Separator:\",\"MarkUsedItems\":\"Mark Used Items\",\"NewBusinessObject\":\"New Business Object\",\"NewItem\":\"New Item\",\"OpenAssembly\":\"Open Assembly\",\"Parent\":\"Parent\",\"ParentSource\":\"Parent Source:\",\"Queries\":\"Queries\",\"QueryNew\":\"New Query\",\"QueryText\":\"Query Text\",\"QueryTimeout\":\"Query Timeout\",\"RelationEdit\":\"Edit Relation\",\"RelationNew\":\"New Relation\",\"ResourceEdit\":\"Edit Resource\",\"ResourceNew\":\"New Resource\",\"RetrieveColumns\":\"Retrieve Columns\",\"RetrieveColumnsAllowRun\":\"Allow Run StoredProc\",\"RetrieveColumnsAndParameters\":\"Retrieve Columns and Parameters\",\"RetrieveParameters\":\"Retrieve Parameters\",\"RetrievingDatabaseInformation\":\"Retrieving database information...\",\"Run\":\"Run\",\"SelectTypeOfBusinessObject\":\"Select Type of Business Object\",\"SkipSchemaWizard\":\"Skip Schema Wizard\",\"SortItems\":\"Sort Items\",\"Synchronize\":\"Synchronize\",\"SynchronizeHint\":\"Synchronizes contents of the Data Store and contents of the Dictionary\",\"TextDropDataFileHere\":\"Drop Data File Here\",\"TextDropFileHere\":\"Drop File Here\",\"TextDropImageHere\":\"Drop Image File Here\",\"title\":\"Dictionary Designer\",\"ValueNew\":\"New Value\",\"VariableEdit\":\"Edit Variable\",\"VariableNew\":\"New Variable\",\"ViewData\":\"View Data\",\"ViewQuery\":\"View Query\"},\"FormFormatEditor\":{\"Boolean\":\"Boolean\",\"BooleanDisplay\":\"Display:\",\"BooleanValue\":\"Value:\",\"Currency\":\"Currency\",\"CurrencySymbol\":\"Currency Symbol:\",\"Custom\":\"Custom\",\"Date\":\"Date\",\"DateTimeFormat\":\"Date Time Format\",\"DecimalDigits\":\"Decimal Digits:\",\"DecimalSeparator\":\"Decimal Separator:\",\"FormatMask\":\"Format Mask:\",\"Formats\":\"Formats\",\"General\":\"General\",\"GroupSeparator\":\"Group Separator:\",\"GroupSize\":\"Group Size:\",\"nameFalse\":\"False\",\"nameNo\":\"No\",\"nameOff\":\"Off\",\"nameOn\":\"On\",\"nameTrue\":\"True\",\"nameYes\":\"Yes\",\"NegativeInRed\":\"Negative in Red\",\"NegativePattern\":\"Negative Pattern:\",\"Number\":\"Number\",\"Percentage\":\"Percentage\",\"PercentageSymbol\":\"Percentage Symbol:\",\"PositivePattern\":\"Positive Pattern:\",\"Properties\":\"Properties\",\"Sample\":\"Sample\",\"SampleText\":\"Sample Text\",\"TextFormat\":\"Text Format\",\"Time\":\"Time\",\"title\":\"Format\",\"UseAbbreviation\":\"Use Abbreviation\",\"UseGroupSeparator\":\"Use Group Separator\",\"UseLocalSetting\":\"Use Local Setting\"},\"FormGlobalizationEditor\":{\"AddCulture\":\"&amp;Add Culture\",\"AutoLocalizeReportOnRun\":\"Auto Localize Report on Run\",\"CreateNewCulture\":\"to create the new culture\",\"GetCulture\":\"Get Culture Settings from Report\",\"qnGetCulture\":\"Do you really want to get culture settings from report and override current culture settings?\",\"qnSetCulture\":\"Do you really want to set culture settings to report components?\",\"RemoveCulture\":\"&amp;Remove Culture\",\"SetCulture\":\"Set Culture Settings to Report\",\"title\":\"Globalization Editor\"},\"FormInteraction\":{\"HyperlinkExternalDocuments\":\"Hyperlink to External Document\",\"HyperlinkUsingInteractionBookmark\":\"Hyperlink using Bookmark\",\"HyperlinkUsingInteractionTag\":\"Hyperlink using Tag\"},\"FormOptions\":{\"AutoSave\":\"Auto Save\",\"AutoSaveReportToReportClass\":\"Auto Save Report to C# or VB.NET File\",\"BlankDashboard\":\"Blank Dashboard\",\"BlankForm\":\"Blank Form\",\"BlankReport\":\"Blank Report\",\"BlankScreen\":\"Blank Screen\",\"Default\":\"Default\",\"DefaultScriptMode\":\"Default Script Mode\",\"Drawing\":\"Drawing\",\"DrawMarkersWhenMoving\":\"Draw Markers When Moving\",\"EditAfterInsert\":\"Edit After Insert\",\"EnableAutoSaveMode\":\"Enable Auto Save Mode\",\"FillBands\":\"Fill Bands\",\"FillComponents\":\"Fill Components\",\"FillContainers\":\"Fill Containers\",\"FillCrossBands\":\"Fill Cross Bands\",\"GenerateLocalizedName\":\"Generate Localized Name\",\"Grid\":\"Grid\",\"GridDots\":\"Dots\",\"GridLines\":\"Lines\",\"GridMode\":\"Grid Mode\",\"GridSize\":\"Grid Size\",\"groupAutoSaveOptions\":\"Auto save options\",\"groupColorScheme\":\"Please select color scheme of GUI\",\"groupGridDrawingOptions\":\"Grid drawing options\",\"groupGridOptions\":\"Grid options\",\"groupGridSize\":\"Grid size\",\"groupMainOptions\":\"Main options for working with designer\",\"groupMarkersStyle\":\"Marker style\",\"groupOptionsOfQuickInfo\":\"Options of Quick Info\",\"groupPleaseSelectTypeOfGui\":\"Please, select the type of GUI\",\"groupReportDisplayOptions\":\"Report display options\",\"labelColorScheme\":\"Color Scheme:\",\"labelInfoAutoSave\":\"Change parameters of reports autosaving\",\"labelInfoDrawing\":\"Setting parameters of report drawing\",\"labelInfoGrid\":\"How Grid is shown and used in a report\",\"labelInfoGui\":\"Select the mode of using GUI in the report designer\",\"labelInfoMain\":\"Setting basic parameters of the report designer\",\"labelInfoQuickInfo\":\"Components Quick Info on a page\",\"Main\":\"Main\",\"MarkersStyle\":\"Markers Style\",\"MarkersStyleCorners\":\"Corners\",\"MarkersStyleDashedRectangle\":\"Dashed Rectangle\",\"MarkersStyleNone\":\"None\",\"MessageLeftRightNotValid\":\"Left and Right value is not a valid.\",\"MessageTopBottomNotValid\":\"Top and Bottom value is not a valid.\",\"Minutes\":\"{0} minutes\",\"SaveReportEvery\":\"Save Report Every:\",\"ScaleMode\":\"Scale Mode\",\"SelectUILanguage\":\"Select UI Language\",\"ShowDialogForms\":\"Show Dialog Forms\",\"ShowDimensionLines\":\"Show Dimension Lines\",\"ShowOldGaugeEditor\":\"Show Old Gauge Editor\",\"StartScreen\":\"Start Screen\",\"title\":\"Options\",\"UseComponentColor\":\"Use Component Color for Filling\",\"UseLastFormat\":\"Use Last Format\",\"Welcome\":\"Welcome\"},\"FormPageSetup\":{\"ApplyTo\":\"Apply to\",\"Bottom\":\"Bottom:\",\"Columns\":\"Columns\",\"groupColumns\":\"Page columns\",\"groupImage\":\"Watermark image\",\"groupMargins\":\"Page margins\",\"groupOrientation\":\"Paper orientation\",\"groupPaper\":\"Paper size\",\"groupPaperSource\":\"Paper source\",\"groupText\":\"Watermark text\",\"Height\":\"Height:\",\"labelAngle\":\"Angle:\",\"labelColumnGaps\":\"Column Gaps:\",\"labelColumnWidth\":\"Column Width:\",\"labelImageAlignment\":\"Image Alignment:\",\"labelImageTransparency\":\"Image Transparency:\",\"labelInfoColumns\":\"Setting page columns\",\"labelInfoPaper\":\"Setting size and orientation for the current page\",\"labelInfoUnit\":\"Page margins are specified in the current units\",\"labelInfoWatermark\":\"Setting parameters for showing watermark\",\"labelMultipleFactor\":\"Multiple Factor:\",\"labelPaperSourceOfFirstPage\":\"Paper Source of First Page:\",\"labelPaperSourceOfOtherPages\":\"Paper Source of Other Pages:\",\"labelSelectBrush\":\"Select Brush:\",\"labelSelectColor\":\"Select Color:\",\"labelSelectFont\":\"Select Font:\",\"labelSelectImage\":\"Select Image:\",\"labelText\":\"Text:\",\"Left\":\"Left:\",\"Margins\":\"Margins\",\"NumberOfColumns\":\"Number of Columns:\",\"Orientation\":\"Orientation\",\"PageOrientationLandscape\":\"Landscape\",\"PageOrientationPortrait\":\"Portrait\",\"Paper\":\"Paper:\",\"RebuildReport\":\"Rebuild Report\",\"Right\":\"Right:\",\"ScaleContent\":\"Scale Content\",\"Size\":\"Size:\",\"title\":\"Page Setup\",\"Top\":\"Top:\",\"Width\":\"Width:\"},\"FormReportSetup\":{\"groupDates\":\"A date of report creation and a date of the last report change\",\"groupDescription\":\"Report description\",\"groupMainParameters\":\"Parameters which effect on report rendering\",\"groupNames\":\"Report name, report alias, and report author\",\"groupScript\":\"Script language of your report\",\"groupUnits\":\"Size and coordinates in a report will be in specified units\",\"labelInfoDescription\":\"Indicate the information of a report\",\"labelInfoMain\":\"Change of basic report parameters\",\"labelNumberOfPass\":\"Number of Pass:\",\"labelReportCacheMode\":\"Report Cache Mode:\",\"ReportChanged\":\"Report Changed:\",\"ReportCreated\":\"Report Created:\",\"title\":\"Report Options\"},\"FormRichTextEditor\":{\"Bullets\":\"Bullets\",\"FontName\":\"Font Name\",\"FontSize\":\"Font Size\",\"Insert\":\"Insert Expression\",\"title\":\"Rich Text Editor\"},\"FormStyleDesigner\":{\"Add\":\"Add Style\",\"AddCollectionName\":\"Add Collection Name\",\"ApplyStyleCollectionToReportComponents\":\"Apply Style Collection to Report Components\",\"ApplyStyles\":\"Apply Styles\",\"ColorCollectionEditor\":\"Color Collection Editor\",\"CreateNewComponentStyle\":\"to create the new component style\",\"CreateStyleCollection\":\"Create Style Collection\",\"CreateStyleOnBase\":\"Create a style based on another style\",\"Duplicate\":\"Duplicate Style\",\"EditColors\":\"Edit Colors\",\"FromStyle\":\"From Style\",\"GetStyle\":\"Get Style from Selected Components\",\"MoreStyles\":\"More Styles\",\"NotSpecified\":\"Not Specified\",\"Open\":\"Open Style\",\"Predefined\":\"Predefined\",\"qnApplyStyleCollection\":\"Do you want to apply style collection to report components?\",\"Remove\":\"Remove Style\",\"RemoveExistingStyles\":\"Remove Existing Styles\",\"Save\":\"Save Style\",\"Style\":\"Style\",\"StyleCollectionsNotFound\":\"Style Collections Not Found!\",\"title\":\"Style Designer\"},\"FormSystemTextEditor\":{\"Condition\":\"Condition\",\"LabelDataBand\":\"Data Band:\",\"LabelDataColumn\":\"Data Column:\",\"LabelShowInsteadNullValues\":\"Show Instead Null Values:\",\"LabelSummaryFunction\":\"Summary Function:\",\"pageExpression\":\"Expression\",\"pageSummary\":\"Summary\",\"pageSystemVariable\":\"System Variable\",\"RunningTotal\":\"Running Total\",\"SummaryRunning\":\"Summary Running\",\"SummaryRunningByColumn\":\"Column\",\"SummaryRunningByPage\":\"Page\",\"SummaryRunningByReport\":\"Report\"},\"FormTitles\":{\"ChartWizardForm\":\"Chart Wizard\",\"ConditionEditorForm\":\"Condition\",\"ConnectionSelectForm\":\"Select Type of Connection\",\"ContainerSelectForm\":\"Select Container\",\"DataAdapterServiceSelectForm\":\"Select Type of Data\",\"DataRelationSelectForm\":\"Select Data Relation\",\"DataSetName\":\"Enter DataSet Name\",\"DataSourceSelectForm\":\"Select Data Source\",\"DataSourcesNewForm\":\"New Data Sources\",\"DataStoreViewerForm\":\"Data Store Viewer\",\"DesignerApplication\":\"Report Designer\",\"EventEditorForm\":\"Event Editor\",\"ExpressionEditorForm\":\"Expression Editor\",\"GroupConditionForm\":\"Group\",\"InteractionDrillDownPageSelectForm\":\"Select Drill-Down Page\",\"MasterComponentSelectForm\":\"Select Master Component\",\"PageAddForm\":\"Add Page\",\"PageSizeForm\":\"Page Size\",\"PagesManagerForm\":\"Pages Manager\",\"PromptForm\":\"Enter information to logon on to the database\",\"ReportWizard\":\"Report Wizard\",\"ServiceSelectForm\":\"Select Service\",\"SqlExpressionsForm\":\"SQL Expressions\",\"SubReportPageSelectForm\":\"Select Sub-Report Page\",\"TextEditorForm\":\"Text Editor\",\"ViewDataForm\":\"View Data\",\"ViewerApplication\":\"Report Viewer\"},\"FormViewer\":{\"Bookmarks\":\"Bookmarks\",\"Close\":\"Close\",\"CollapseAll\":\"Collapse All\",\"CompressedDocumentFile\":\"Compressed Document File\",\"ContextMenu\":\"Context Menu\",\"DocumentFile\":\"Document File...\",\"Editor\":\"Editor\",\"EncryptedDocumentFile\":\"Encrypted Document File\",\"ExpandAll\":\"Expand All\",\"Export\":\"Export...\",\"Find\":\"Find\",\"FirstPage\":\"First Page\",\"FullScreen\":\"Full Screen\",\"GoToPage\":\"Go To Page\",\"HorScrollBar\":\"Horizontal Scroll Bar\",\"LabelPageN\":\"Page:\",\"LastPage\":\"Last Page\",\"NextPage\":\"Next Page\",\"Open\":\"Open...\",\"PageControl\":\"Page Control\",\"PageDelete\":\"Delete Page\",\"PageDesign\":\"Edit Page...\",\"PageNew\":\"New Page\",\"PageNofM\":\"Page {0} of {1}\",\"PageofM\":\"of {0}\",\"PageSize\":\"Page Size...\",\"PageViewModeContinuous\":\"Continuous\",\"PageViewModeMultiplePages\":\"Multiple Pages\",\"PageViewModeSinglePage\":\"Single Page\",\"Parameters\":\"Parameters\",\"PrevPage\":\"Previous Page\",\"Print\":\"Print...\",\"qnPageDelete\":\"Do you want to delete page?\",\"Save\":\"Save...\",\"SendEMail\":\"Send Email...\",\"StatusBar\":\"Status Bar\",\"Thumbnails\":\"Thumbnails\",\"title\":\"Viewer\",\"titlePageSettings\":\"Page Settings\",\"Toolbar\":\"Tool bar\",\"VerScrollBar\":\"Vertical Scroll Bar\",\"ViewMode\":\"View Mode\",\"Zoom\":\"Zoom\",\"ZoomMultiplePages\":\"Multiple Pages\",\"ZoomOnePage\":\"One Page\",\"ZoomPageWidth\":\"Page Width\",\"ZoomTwoPages\":\"Two Pages\",\"ZoomXXPages\":\"{0} X {1} Pages\",\"ZoomXXPagesCancel\":\"Cancel\"},\"FormViewerFind\":{\"Close\":\"Close\",\"FindNext\":\"Find Next\",\"FindPrevious\":\"Find Previous\",\"FindWhat\":\"Find What:\"},\"Gauge\":{\"AddNewItem\":\"Add New Item\",\"BarRangeList\":\"Bar Range List\",\"GaugeEditorForm\":\"Gauge Editor\",\"Kind\":\"Kind\",\"LinearBar\":\"Linear Bar\",\"LinearMarker\":\"Linear Marker\",\"LinearRange\":\"Linear Range\",\"LinearRangeList\":\"Linear Range List\",\"LinearScale\":\"Linear Scale\",\"LinearTickLabelCustom\":\"Linear Tick Label Custom\",\"LinearTickLabelMajor\":\"Linear Tick Label Major\",\"LinearTickLabelMinor\":\"Linear Tick Label Minor\",\"LinearTickMarkCustom\":\"Linear Tick Mark Custom\",\"LinearTickMarkMajor\":\"Linear Tick Mark Major\",\"LinearTickMarkMinor\":\"Linear Tick Mark Minor\",\"Needle\":\"Needle\",\"RadialBar\":\"Radial Bar\",\"RadialMarker\":\"Radial Marker\",\"RadialRange\":\"Radial Range\",\"RadialRangeList\":\"Radial Range List\",\"RadialScale\":\"Radial Scale\",\"RadialTickLabelCustom\":\"Radial Tick Label Custom\",\"RadialTickLabelMajor\":\"Radial Tick Label Major\",\"RadialTickLabelMinor\":\"Radial Tick Label Minor\",\"RadialTickMarkCustom\":\"Radial Tick Mark Custom\",\"RadialTickMarkMajor\":\"Radial Tick Mark Major\",\"RadialTickMarkMinor\":\"Radial Tick Mark Minor\",\"StateIndicator\":\"State Indicator\",\"StateIndicatorFilter\":\"State Indicator Filter\",\"TickCustomValue\":\"Tick Custom Value\"},\"Gui\":{\"barname_cancel\":\"Cancel\",\"barname_caption\":\"New Toolbar\",\"barname_msginvalidname\":\"Toolbar name cannot be empty.\",\"barname_name\":\"&amp;Toolbar Name:\",\"barname_ok\":\"OK\",\"barrename_caption\":\"Rename Toolbar\",\"barsys_autohide_tooltip\":\"Auto-Hide\",\"barsys_close_tooltip\":\"Close\",\"barsys_customize_tooltip\":\"Customize\",\"ClickAndDragPickColor\":\"Click and Drag to pick color\",\"colorpicker_morecolors\":\"&amp;More Colors...\",\"colorpicker_nofill\":\"&amp;No Fill\",\"colorpicker_standardcolorslabel\":\"Standard Colors\",\"colorpicker_themecolorslabel\":\"Theme Colors\",\"colorpickerdialog_alphalabel\":\"&amp;Alpha:\",\"colorpickerdialog_bluelabel\":\"&amp;Blue:\",\"colorpickerdialog_cancelbutton\":\"Cancel\",\"colorpickerdialog_caption\":\"Colors\",\"colorpickerdialog_colormodellabel\":\"Color Model:\",\"colorpickerdialog_currentcolorlabel\":\"Current\",\"colorpickerdialog_customcolorslabel\":\"Colors:\",\"colorpickerdialog_greenlabel\":\"&amp;Green:\",\"colorpickerdialog_newcolorlabel\":\"New\",\"colorpickerdialog_okbutton\":\"OK\",\"colorpickerdialog_redlabel\":\"&amp;Red:\",\"colorpickerdialog_rgblabel\":\"RGB\",\"colorpickerdialog_standardcolorslabel\":\"Colors:\",\"colorpickerdialog_tabcustom\":\"Custom\",\"colorpickerdialog_tabstandard\":\"Standard\",\"cust_btn_close\":\"Close\",\"cust_btn_delete\":\"Delete\",\"cust_btn_keyboard\":\"&amp;Keyboard...\",\"cust_btn_new\":\"&amp;New...\",\"cust_btn_rename\":\"&amp;Rename...\",\"cust_btn_reset\":\"&amp;Reset...\",\"cust_btn_resetusage\":\"&amp;Reset my usage data\",\"cust_caption\":\"Customize\",\"cust_cbo_fade\":\"Fade\",\"cust_cbo_none\":\"(None)\",\"cust_cbo_random\":\"Random\",\"cust_cbo_slide\":\"Slide\",\"cust_cbo_system\":\"System Default\",\"cust_cbo_unfold\":\"Unfold\",\"cust_chk_delay\":\"Show full menus after a short delay\",\"cust_chk_fullmenus\":\"Always show full menus\",\"cust_chk_showsk\":\"Show &amp;Shortcut Keys in ScreenTips\",\"cust_chk_showst\":\"Show Screen&amp;Tips on Toolbars\",\"cust_lbl_cats\":\"Cate&amp;gories:\",\"cust_lbl_cmds\":\"Comman&amp;ds:\",\"cust_lbl_cmdsins\":\"To add a command to Bar select the category and drag the command out of this box to a Bar.\",\"cust_lbl_menuan\":\"Menu Animation:\",\"cust_lbl_other\":\"Other:\",\"cust_lbl_pmt\":\"Personalized Menus and Toolbars\",\"cust_lbl_tlbs\":\"Toolb&amp;ars:\",\"cust_mnu_addremove\":\"&amp;Add or Remove Buttons\",\"cust_mnu_cust\":\"Customize...\",\"cust_mnu_reset\":\"Reset Bar\",\"cust_mnu_tooltip\":\"Bar Options\",\"cust_msg_delete\":\"Are you sure you want to delete the &lt;barname&gt; toolbar?\",\"cust_pm_begingroup\":\"Begin Group\",\"cust_pm_delete\":\"Delete\",\"cust_pm_name\":\"Name:\",\"cust_pm_reset\":\"Reset\",\"cust_pm_stydef\":\"Default Style\",\"cust_pm_styimagetext\":\"Image and Text (Always)\",\"cust_pm_stytextonly\":\"Text Only (Always)\",\"cust_tab_commands\":\"Commands\",\"cust_tab_options\":\"Options\",\"cust_tab_toolbar_alignment\":\"Toolbar Alignment\",\"cust_tab_toolbars\":\"Toolbars\",\"mdisysmenu_close\":\"Close\",\"mdisysmenu_maximize\":\"Maximize\",\"mdisysmenu_minimize\":\"Minimize\",\"mdisysmenu_move\":\"Move\",\"mdisysmenu_next\":\"Next\",\"mdisysmenu_restore\":\"Restore\",\"mdisysmenu_size\":\"Size\",\"mdisystt_close\":\"Close\",\"mdisystt_minimize\":\"Minimize\",\"mdisystt_restore\":\"Restore\",\"monthcalendar_clearbutton\":\"Clear\",\"monthcalendar_todaybutton\":\"Today\",\"navbar_navpaneoptions\":\"Na&amp;vigation Pane Options...\",\"navbar_showfewerbuttons\":\"Show &amp;Fewer Buttons\",\"navbar_showmorebuttons\":\"Show &amp;More Buttons\",\"navPaneCollapseTooltip\":\"Collapse the Navigation Pane\",\"navPaneExpandTooltip\":\"Expand the Navigation Pane\",\"sys_custombar\":\"Custom Bar\",\"sys_morebuttons\":\"More Buttons\"},\"HelpComponents\":{\"StiBarCode\":\"This component allows showing bar codes in a report. Bar code data are sent to an object as a string. The string may contain any symbols but only allowed symbols for the selected chart can be displayed.\",\"StiButtonElement\":\"This component is used to execute an event script when a user is interacting.\",\"StiCardsElement\":\"This component is used to display grouped data as cards.\",\"StiChart\":\"This component allows showing charts in a report. Different types of charts are available. Among them are bar, line, pie, doughnut, lines, areas, Gantt, scatter charts etc. \",\"StiChartElement\":\"This element allows showing charts in a dashboard. Different types of charts are available.\",\"StiCheckBox\":\"This component allows showing a checkbox in a report. It can display two modes: \\\\\"enable\\\\\" or \\\\\"disable\\\\\".\",\"StiChildBand\":\"The Child band can be used to output two bands on one data row.\",\"StiClone\":\"This component is used to clone parts of a report into a required part of a report. Cloning can be applied only to the panel contents.\",\"StiColumnFooterBand\":\"This band is used to output footers of columns on the Data band. The Column Footer band is output once under each column. All components which are placed on this band will also be output under each column.\",\"StiColumnHeaderBand\":\"This band is used to output column headers. The Column Header band is used to output only once. All components which are placed on the band can be output above each column.\",\"StiComboBoxElement\":\"Represents the ComboBox that is used to either type a value directly into the control or choose from the list of existing options.\",\"StiContainer\":\"This is the rectangular region where other components, including bands, can be placed. When moving the container the components in it will be moved too. The container can be placed both on a band and on a page.\",\"StiCrossDataBand\":\"This band is connected to the data source. It is output as many times as there are rows in the data source. A Cross band is output from left to right.\",\"StiCrossFooterBand\":\"This band is used to output footers of the Cross-Data band. The band is output once after all rows of the Data band. A Cross band is output from left to right.\",\"StiCrossGroupFooterBand\":\"This band is used to output footers of a group. It is placed under the Cross-Data band. Each Cross-Footer belongs to the specified Cross-Header band. A Cross band is output from left to right.\",\"StiCrossGroupHeaderBand\":\"This band is the basic one for the report rendering with grouping, when Cross-Data are used. It is impossible to create grouping without this band. The components for showing information by the group are placed on the group header. The information can be group name, date, condition of grouping etc. The band is output in the beginning of each group. A Cross band is output from left to right.\",\"StiCrossHeaderBand\":\"This band is used to output headers. It is used in association with the Cross band. A Cross band is output from left to right.\",\"StiCrossTab\":\"The cross-tab component is used for the structured data representation as a table.\",\"StiDataBand\":\"The Data band is connected to the data source and is output as many times as there are rows in the data source.\",\"StiDatePickerElement\":\"The element is used to select the date and time.\",\"StiEmptyBand\":\"This band is used to fill free space on the bottom of a page. This band fills free space on each page of a report.\",\"StiFilterCategory\":\"A group of elements used for selecting and filtering values.\",\"StiFooterBand\":\"This band is used to output summary by the Data band. It is placed under the Data band and is output once after all data rows which Data band outputs.\",\"StiGauge\":\"The component allows you to display a value within a predefined range. It can have different graphical representation.\",\"StiGaugeElement\":\"The element allows you to display a value within a predefined range. It can have different graphical representation.\",\"StiGroupFooterBand\":\"The Group Footer band is used to output the group footer. This band is placed after the Data band. And this is the Data band with what the Group Header band is bound. Each Group Footer band belongs to the specified Group Header band. The Group Footer band will not be output without the Group Header band.\",\"StiGroupHeaderBand\":\"This band is the basic band for rendering reports with grouping. The components for showing information by this group are placed on the group header. It can be group name, date, condition of grouping etc. This band is output once in the beginning of each group.\",\"StiHeaderBand\":\"This band is used to output headers. It is used together with the data band.\",\"StiHierarchicalBand\":\"This band is connected to the data source and output as many times as there are rows in the data source. Data are output as a tree.\",\"StiHorizontalLinePrimitive\":\"This component is used to output a line.\",\"StiImage\":\"This component is used to output images.\",\"StiImageElement\":\"This element is used to output images. It supports the following graphic formats, such as BMP, JPG, JPEG, GIF, TIFF, PNG, ICO, WMF, EMF.\",\"StiIndicatorElement\":\"The element displays the difference in values between the input data.\",\"StiListBoxElement\":\"The element allows selecting items from a list.\",\"StiMap\":\"This component is used to display data that is geographically targeted.\",\"StiMapCategory\":\"Group of elements for working with maps and data.\",\"StiMapElement\":\"This element is used to display data that is geographically targeted.\",\"StiMathFormula\":\"This component is used to display math formulas in a report.\",\"StiOnlineMapElement\":\"This element is used to display geographic markers on the online map.\",\"StiOverlayBand\":\"This band is used to output watermarks on a page.\",\"StiPageFooterBand\":\"This band is used to output the information on the bottom of each page such as page numbers, dates, and other additional information.\",\"StiPageHeaderBand\":\"This band is used to output the page header such as page numbers, dates, and other additional information. It is output on the top of each page.\",\"StiPanel\":\"A rectangular region that can contain other components, including bands. When the panel is moved the components in it are moved too. A panel can be placed either on a band or on a page.\",\"StiPanelElement\":\"A rectangular region that can contain other elements. When the panel is moved the elements in it are moved too.\",\"StiPivotTableElement\":\"The pivot table element is used for the structured data representation as a table.\",\"StiProgressElement\":\"The element displays the ratio of the input data. It can be presented in different modes - a pie, donut, bars.\",\"StiRectanglePrimitive\":\"This component is used to output rectangles.\",\"StiRegionMapElement\":\"This element is used to display data that is geographically targeted.\",\"StiReportSummaryBand\":\"This band is used to output summaries through the entire report. It is output once in the end of a report.\",\"StiReportTitleBand\":\"This band is used to output the report title. It is output in the beginning of a report.\",\"StiRichText\":\"This component is used to output and edit the RTF text. It also supports loading and saving files in the RTF format.\",\"StiRoundedRectanglePrimitive\":\"This component is used to output rounded rectangles.\",\"StiShape\":\"This component is used to insert ready-made shapes, such as arrows, diagonal line down, diagonal line up, horizontal line, left and right lines, oval, rectangle, rounded rectangle, top and bottom lines, triangle, vertical line.\",\"StiShapeElement\":\"This element is used to insert ready-made shapes, such as arrows, diagonal line down, diagonal line up, horizontal line, left and right lines, oval, rectangle, rounded rectangle, top and bottom lines, triangle, vertical line.\",\"StiSignature\":\"This component is used to add an electronic or digital signature to a report.\",\"StiSparkline\":\"This component is used to create micrographics in a report. It allows you to track dynamically changing data as bars, lines, areas.\",\"StiSubReport\":\"This component is used to output additional data in different places of a report.\",\"StiTable\":\"This component is a set of data elements that is organized using a model of vertical columns and horizontal rows.\",\"StiTableElement\":\"This element is a set of data elements that is organized using a model of vertical columns and horizontal rows.\",\"StiTableOfContents\":\"This component is used to create a table of contents in a report.\",\"StiText\":\"This component is a basic object to output data as a text.\",\"StiTextElement\":\"This element is a basic object to output data as a text.\",\"StiTextInCells\":\"The component is used to output a text in cells. It is frequently used for creating forms.\",\"StiTreeViewBoxElement\":\"The element is used to select values with a drop-down list as a tree.\",\"StiTreeViewElement\":\"Represents the element that is used to show the hierarchical data as a tree.\",\"StiVerticalLinePrimitive\":\"This component is used to output vertical lines.\",\"StiWinControl\":\"The component allows showing visual controls from .NET Framework.\",\"StiZipCode\":\"This component is used to output the ZIP code.\"},\"HelpDesigner\":{\"ActiveRelation\":\"Sets the priority Relation to bind two tables. It is used in Data Transformation and Dashboards. Only one Relation in each Data Source can be active.\",\"Align\":\"Change the location of selected components.\",\"AlignBottom\":\"Align the contents of a component to bottom.\",\"AlignCenter\":\"Align the contents of a component to center.\",\"AlignComponentBottom\":\"Allows you to align objects horizontally along the bottom edge of selected components.\",\"AlignComponentCenter\":\"Allows you to align objects horizontally along the center edge of selected components.\",\"AlignComponentLeft\":\"Allows you to align objects vertically along the left edge of selected components.\",\"AlignComponentMiddle\":\"Allows you to align objects vertically along the center edge of selected components.\",\"AlignComponentRight\":\"Allows you to align objects vertically along the right edge of selected components.\",\"AlignComponentTop\":\"Allows you to align objects horizontally along the top edge of selected components.\",\"AlignLeft\":\"Align the contents of a component to left.\",\"AlignMiddle\":\"Center the contents by the top and bottom borders of a component.\",\"AlignRight\":\"Align contents of a component to right.\",\"AlignToGrid\":\"Align the selected components to grid nodes.\",\"AlignTop\":\"Align the contents of a component to top.\",\"AlignWidth\":\"Justify the contents of a component.\",\"Angle\":\"Rotate the contents of the component.\",\"AngleWatermark\":\"The watermark text rotation angle.\",\"Background\":\"Change the background of the selected components.\",\"biConditions\":\"Control list of conditions of the selected components.\",\"BorderColor\":\"Select the border color of the selected component.\",\"BorderSidesAll\":\"Switch on all borders sides of the selected components.\",\"BorderSidesBottom\":\"Switch on bottom border side of the selected components.\",\"BorderSidesLeft\":\"Switch on left border side of the selected components.\",\"BorderSidesNone\":\"Switch off all borders sides of the selected components.\",\"BorderSidesRight\":\"Switch on right border side of the selected components.\",\"BorderSidesTop\":\"Switch on top border side of the selected components.\",\"BorderStyle\":\"Select the border style of the selected components.\",\"BringToFront\":\"Bring the selected component to front.\",\"CenterHorizontally\":\"Allows you to align a component horizontally relative to container edges in what it is placed.\",\"CenterVertically\":\"Allows you to align a component vertically relative to container edges in what it is placed.\",\"Close\":\"Close the Report Designer.\",\"Columns\":\"Split a page into columns.\",\"ComponentSize\":\"Change the size of the selected components.\",\"CopyStyle\":\"Copy Style\",\"CopyToClipboard\":\"Copy to Clipboard\",\"CurrencySymbol\":\"Select the currency symbol.\",\"DashboardNew\":\"Create a new dashboard.\",\"DataStore\":\"Show data, registered in a report.\",\"DateTimeFormat\":\"Select the date and time format for the selected components.\",\"DockingPanels\":\"Panel settings.\",\"DockStyleBottom\":\"Dock selected components to the bottom side.\",\"DockStyleFill\":\"Dock selected components to all sides.\",\"DockStyleLeft\":\"Dock selected components to the left side.\",\"DockStyleNone\":\"Undock selected components.\",\"DockStyleRight\":\"Dock selected components to the right side.\",\"DockStyleTop\":\"Dock selected components to the top side.\",\"FontGrow\":\"Make the text size larger.\",\"FontName\":\"The text font.\",\"FontNameWatermark\":\"The watermark text font.\",\"FontShrink\":\"Make the text size smaller.\",\"FontSize\":\"Font size.\",\"FontSizeWatermark\":\"Change the font size.\",\"FontStyleBold\":\"Make the text bold.\",\"FontStyleBoldWatermark\":\"Make the text of the watermark bold.\",\"FontStyleItalic\":\"Make the text Italic.\",\"FontStyleItalicWatermark\":\"Make the watermark text Italic.\",\"FontStyleStrikeout\":\"Make the text strikeout.\",\"FontStyleUnderline\":\"Make the text underlined.\",\"FontStyleUnderlineWatermark\":\"Make the watermark text underlined.\",\"FormatBoolean\":\"This format is used to format values of the boolean type.\",\"FormatCurrency\":\"Display a value as currency. It allows you to display a number with the default currency symbol.\",\"FormatCustom\":\"This type is used to show values according to custom requirements. This type allows data formatting in the Format Mask.\",\"FormatDate\":\"Display a value as date. The date format is based on the regional date settings.\",\"FormatGeneral\":\"Display a value without specific format.\",\"FormatNumber\":\"It is used for general display of numbers.\",\"FormatPercentage\":\"Display a value as percentage. Numbers are multiplied by 100 to convert them to percentages.\",\"FormatTime\":\"Display a value as time. The time format is based on the regional time settings.\",\"FormNew\":\"Create a new dialog form.\",\"GridMode\":\"Show grid in lines or dots.\",\"ImageAlignment\":\"Put a watermark image on a page.\",\"ImageTransparency\":\"Change the transparency of the watermark image.\",\"Interaction\":\"Control an interaction of the selected components.\",\"LineSpacing\":\"Choose how much space appears between lines of text or between paragraphs.\",\"Link\":\"Link the component to the current container.\",\"LoadImage\":\"Load watermark images from the file.\",\"Lock\":\"Lock the component. The component cannot be moved and resized.\",\"MainMenu\":\"Click here to see the list of possible operations with a report, including opening, closing, and previewing.\",\"MakeHorizontalSpacingEqual\":\"Allows you to set equal horizontal spacing between selected components.\",\"MakeVerticalSpacingEqual\":\"Allows you to set equal vertical spacing between selected components.\",\"Margins\":\"Select the margins of the current page.\",\"menuCheckIssues\":\"Check to find errors, warnings and get recommendations.\",\"menuDesignerOptions\":\"Setup report designer options.\",\"menuEditClearContents\":\"Clear the contents.\",\"menuEditCopy\":\"Copy the selected components and put them on the Clipboard.\",\"menuEditCut\":\"Cut the selected components from a report and put them on the Clipboard.\",\"menuEditDelete\":\"Delete selected components.\",\"menuEditPaste\":\"Paste the contents of the Clipboard into report.\",\"menuFAQPage\":\"Go to the web page with frequently asked questions.\",\"menuGlobalizationStrings\":\"Call the Globalization Strings editor of the current report.\",\"menuHelpAboutProgramm\":\"Get information about the version of report generator and the version of .NET Framework.\",\"menuHomePage\":\"Go to the Home page of the product.\",\"menuPageOptions\":\"Setup the basic parameters of the current page. All page options can be changed using the Property panel.\",\"menuPagesManager\":\"Run the Pages Manager. It allows moving pages, deleting pages, and creating new pages.\",\"menuPreviewSettings\":\"Call the Preview Settings editor of the current report. Settings will be applied only when viewing the current report.\",\"menuPrint\":\"Select a printer, number of copies, and other printing options before printing.\",\"menuPrintPreview\":\"Preview a report before printing.\",\"menuPrintQuick\":\"Print a report directly to the default printer. The printing dialog is not displayed.\",\"menuReportOptions\":\"Setup the basic report options. All options can be changed using the Property panel.\",\"menuStyleDesigner\":\"Call the Style Designer of the current report.\",\"menuSupport\":\"Go to the support page to ask a question.\",\"menuViewAlignToGrid\":\"Align components to grid.\",\"menuViewNormal\":\"Normal view of a page.\",\"menuViewPageBreakPreview\":\"The mode of showing a page with borders of segments.\",\"menuViewQuickInfo\":\"Show quick information of components: component name, alias, contents, events etc.\",\"menuViewShowGrid\":\"Turn on grid lines to which you can align objects in a report.\",\"menuViewShowHeaders\":\"Show headers of bands.\",\"menuViewShowOrder\":\"Show order of components on a page.\",\"menuViewShowRulers\":\"View the rulers, used to measure and line up objects on a page.\",\"MoveBackward\":\"Move a component to one level higher in order of placing components on a page.\",\"MoveForward\":\"Move a component to one level lower in order of placing components on a page.\",\"Orientation\":\"Switch the pages between portrait and landscape layouts.\",\"PageDelete\":\"Delete current page from a report.\",\"PageNew\":\"Create a new page.\",\"PageSetup\":\"Show the Page Setup dialog box.\",\"PageSize\":\"Choose the paper size for the current page of a report.\",\"PagesManager\":\"Run the Pages Manager.\",\"PressF1\":\"Press F1 for More Details\",\"Redo\":\"Redo the previously canceled change in a report.\",\"ReportNew\":\"Create a new report.\",\"ReportOpen\":\"Open a report in the designer.\",\"ReportPreview\":\"Preview an edited report in the viewer.\",\"ReportSave\":\"Save currently edited report.\",\"SelectAll\":\"Select all components on the current page.\",\"SelectUILanguage\":\"Select the UI language.\",\"SendToBack\":\"Move the selected component to back relative to other components.\",\"ServicesConfigurator\":\"Run the Services Configurator.\",\"Shadow\":\"Show the shadow of a component.\",\"ShowBehind\":\"Show the watermark text behind the components.\",\"ShowImageBehind\":\"Put the watermark image behind all components on a page.\",\"ShowToolbox\":\"Show the toolbox.\",\"StimulsoftHelp\":\"Stimulsoft Help\",\"StyleDesigner\":\"Run Style Designer.\",\"TellMeMore\":\"Tell me more\",\"Text\":\"Watermark text.\",\"TextBrush\":\"Change the text color.\",\"TextBrushWatermark\":\"Change the text color of the watermark.\",\"TextColor\":\"Change the text color.\",\"TextFormat\":\"Select the format of values.\",\"ToolbarStyle\":\"Set selected style to all selected components.\",\"Undo\":\"Undo the latest change in a report.\",\"WordWrap\":\"Wrap the text of a component.\",\"Zoom\":\"Specify the zoom level of the report.\"},\"HelpDialogs\":{\"StiButtonControl\":\"Represents the Button control.\",\"StiCheckBoxControl\":\"Represents the Flag control.\",\"StiCheckedListBoxControl\":\"Shows the List object, in what a flag on the left is shown for each elements.\",\"StiComboBoxControl\":\"Represents the ComboBox that is used to either type a value directly into the control or choose from the list of existing options.\",\"StiDateTimePickerControl\":\"Represents the control that allows selecting the date and time. It also allows you to output the date and time in specified format.\",\"StiGridControl\":\"Represents the Grid control that consist of rows and columns.\",\"StiGroupBoxControl\":\"Represents the control that creates a container with borders and a header for the UI content.\",\"StiLabelControl\":\"A label is an user interface control which displays text on a form. It is usually a static control having no interactivity.\",\"StiListBoxControl\":\"Contains the list of elements for selection.\",\"StiListViewControl\":\"Represents the ListView control that shows the list of data elements.\",\"StiLookUpBoxControl\":\"Contains the list of elements for selection.\",\"StiNumericUpDownControl\":\"Represents the control that shows numeric values.\",\"StiPanelControl\":\"The Panel elements are used for placing and arrangement objects.\",\"StiPictureBoxControl\":\"Represents the control for showing an image.\",\"StiRadioButtonControl\":\"Represents the Radio button control that allows the user to choose only one of a predefined set of options. \",\"StiRichTextBoxControl\":\"Represents the RichText control with widen editing.\",\"StiTextBoxControl\":\"Represents the Text control that is used for showing or editing a text.\",\"StiTreeViewControl\":\"Represents the control that is used to show the hierachical data as a tree.\"},\"HelpViewer\":{\"AddPageBreaks\":\"Visual separator of report pages.\",\"AllowAddOrModifyTextAnnotations\":\"Limited access to work with annotations in the document.\",\"AllowCopyTextAndGraphics\":\"Limited access to copying information.\",\"AllowEditable\":\"Allows changing components with the Editable property enabled.\",\"AllowModifyContents\":\"Limited access to the text editing.\",\"AllowPrintDocument\":\"Limited access to the print operation.\",\"Bookmarks\":\"Show the bookmark panel that is used for quick navigation to jump directly to a bookmarked location.\",\"BorderType\":\"The border type of components: simple - drawing borders of components with characters +, -, |; Unicode single - drawing the borders with single box-drawing characters, Unicode double - drawing the borders with double box-drawing characters.\",\"Close\":\"Close the Report Preview.\",\"CloseDotMatrix\":\"Close the Dot Matrix Viewer.\",\"Compressed\":\"Compression of the ready document. It is recommended to always include file compression.\",\"CompressToArchive\":\"Pack all files and folders in the zip archive.\",\"ContinuousPages\":\"The mode of placing report pages as a vertical strip.\",\"CurrentPage\":\"Processing the current page. If this option is selected, then a selected report page will be processed.\",\"CutEdges\":\"Trim the borders of report pages.\",\"CutLongLines\":\"Trim the long lines (text lines) by the borders of components.\",\"DigitalSignature\":\"The digital signature of the file.\",\"DitheringType\":\"Dithering type: None - no dithering, Ordered, FloydSt. - with dithering.\",\"DotMatrixMode\":\"This mode allows you to see how will a report look like if to print it on a dot matrix printer.\",\"DrawBorder\":\"Drawing the borders of components with graphic characters.\",\"Edit\":\"Edit components.\",\"EmbeddedFonts\":\"Embed the font files into a PDF file.\",\"EmbeddedImageData\":\"Embed images directly into the HTML file.\",\"Encoding\":\"Encoding the report text after export.\",\"EncodingData\":\"Encoding data file.\",\"EncryptionKeyLength\":\"The length of the encryption key. The longer the length is, the more difficult it is to decrypt the document, and, accordingly, the document security is on higher priority.\",\"ExportDataOnly\":\"Export only Data bands (the Table component, Hierachical band).\",\"ExportEachPageToSheet\":\"Export each report page in a separate Excel sheet.\",\"ExportMode\":\"Apply a filter condition when exporting. Data Only - only data bands (Table component, Hierarchical Band) will be exported. Data and Headers/Footers - data bands (Table component, Hierarchical Band) and their headers/footers will be exported. All Bands - All the report bands will be exported.\",\"ExportModeHtml\":\"The way of the HTML page markup.\",\"ExportModeRtf\":\"Presentation of the report data after export. The Table - the report will look like a table, where each report component is a table cell. Frame - each component will look like a single frame, but without any relationship between them.\",\"ExportObjectFormatting\":\"Apply formatting to export data from Data bands (Table component, Hierachical band).\",\"ExportPageBreaks\":\"Show the borders of the report pages on the Excel sheet.\",\"ExportRtfTextAsImage\":\"Convert the RTF text into the image. If the option is enabled, then, when exporting, RichText decomposes into simpler primitives supported by the PDF format. RichText with complex formatting (embedded images, tables) cannot always be converted correctly. In this case it is recommended to enable this option.\",\"Find\":\"Find a text in the report.\",\"FullScreen\":\"Full screen reading.\",\"GetCertificateFromCryptoUI\":\"Using the interface of the system cryptography library.\",\"ImageCompressionMethod\":\"The compression method: JPEG - this may cause loss of quality, Flate – no quality loss, Simple, Ordered, FloydSt. - images are output in monochrome.\",\"ImageFormat\":\"The image format in the finished file.\",\"ImageQuality\":\"Allows you to choose the ratio of the image quality/size of the file. The higher the quality is, the larger is the size of the finished file.\",\"ImageQualityPdf\":\"The option is available only in JPEG compression, and allows you to select the ratio of the image quality/size of the file. The higher the quality is, the larger is the size of the finished file.\",\"ImageResolution\":\"The number of pixels per inch. The higher the number of pixels is, the better is the quality of the image. The size of the finished file is much larger.\",\"ImageType\":\"The color scheme of the image: color - image after exporting will fully match the image in the viewer; gray – an image after exporting will be of the gray shade; monochrome - the images will be strictly black and white. At the same time, it should be considered that the monochrome has three modes None, Ordered, FloydSt.\",\"KillSpaceLines\":\"Remove blank lines (rows) in the document.\",\"MultipleFiles\":\"Each report page can be a separate file.\",\"Open\":\"Open the previously saved report in the window of preview.\",\"OpenAfterExport\":\"Automatic opening of the created document (after export) by the program set for these file types.\",\"OwnerPassword\":\"The password to access operations with files.\",\"PageAll\":\"Processing of all report pages.\",\"PageDelete\":\"Delete the selected report page.\",\"PageDesign\":\"Edit the selected page in the report designer.\",\"PageFirst\":\"Go to the first report page.\",\"PageGoTo\":\"Go to the specified report page.\",\"PageLast\":\"Go to the last report page.\",\"PageNew\":\"Add a new page to a report.\",\"PageNext\":\"Go to the next report page.\",\"PagePrevious\":\"Go to the previous report page.\",\"PageSize\":\"Change the page parameters in a report.\",\"Parameters\":\"Showing parameters panel which is used when report rendering.\",\"PdfACompliance\":\"Support for the standard of the long-term archiving and storing of electronic documents.\",\"Print\":\"Print a report.\",\"PutFeedPageCode\":\"Feed pages in the final document with a special character.\",\"RangePages\":\"The page numbers to be processed. You can specify a single page, a list of pages (using a comma as the separator), as well as specify the range by setting the start page of the range separated by \\\\\"-\\\\\" and the end page of the range. For example: 1,3,5-12.\",\"RemoveEmptySpaceAtBottom\":\"Minimize the empty space at the bottom of the page.\",\"Resources\":\"Showing resources panel\",\"RestrictEditing\":\"Limits on changes in a Word document.\",\"Save\":\"Save a report for further using.\",\"ScaleHtml\":\"The size (scale) of report pages and items after the export.\",\"ScaleImage\":\"The size (scale) of the report after exporting. The lower scale is, the greater is the number of pixels per inch, and vice versa.\",\"SendEMail\":\"Send a report via Email.\",\"Separator\":\"Separator between the data in the CSV file.\",\"SkipColumnHeaders\":\"Enable/disable the column headers.\",\"StandardPdfFonts\":\"14 standard Adobe fonts. If this option is enabled, then only standard 14 fonts will be used in the PDF file. All report fonts are converted into them.\",\"SubjectNameString\":\"Certificate identifier. The identifier is the name of the certificate owner (full line) or a part of the name (substring).\",\"Thumbnails\":\"Show the thumbnails that can be used for quick navigation to find the section of the report that you want to jump to.\",\"TiffCompressionScheme\":\"Compression scheme for TIFF files.\",\"ToolEditor\":\"This tool allows you to edit contents of text components directly in the report viewer.\",\"TypeExport\":\"The file the report will be converted into.\",\"UseDefaultSystemEncoding\":\"Use system coding by default or specify the encoding by standard.\",\"UseOnePageHeaderAndFooter\":\"Define the page bands Header and Footer as the header and footer of the Microsoft Word document.\",\"UsePageHeadersAndFooters\":\"Define the bands Page Header and Footer as the header and footer of the document in Microsoft Word.\",\"UserPassword\":\"The password required to open the document.\",\"UseUnicode\":\"Extended support for encoding characters. It affects on the internal character encoding within the PDF file, and improves the copying of the text from the PDF file.\",\"ViewModeContinuous\":\"Show all report pages as a vertical ribbon.\",\"ViewModeMultiplePages\":\"Zoom the report so that as many pages as can be fit in window are displayed.\",\"ViewModeSinglePage\":\"Show a single page in the window of preview.\",\"ZoomMultiplePages\":\"Zoom the report so that the selected pages fit in the window.\",\"ZoomOnePage\":\"Zoom the report so that an entire page fits in the window.\",\"ZoomPageWidth\":\"Zoom the report so that the width of the page matches the width of the window.\",\"ZoomTwoPages\":\"Zoom the report so that two pages fit in the window.\",\"ZoomTxt\":\"The report size (scale): X - change the horizontal scale, Y - to change the vertical scale.\"},\"Interface\":{\"Mouse\":\"Mouse\",\"MouseDescription\":\"Optimized for used with mouse\",\"Touch\":\"Touch\",\"TouchDescription\":\"Optimized for used with touch\"},\"MainMenu\":{\"menuCheckIssues\":\"Check for Issues\",\"menuContextClone\":\"Clone...\",\"menuContextDesign\":\"Design...\",\"menuContextTextFormat\":\"Text Format...\",\"menuConvertToCheckBox\":\"Convert to CheckBox\",\"menuConvertToImage\":\"Convert to Image\",\"MenuConvertToRichText\":\"Convert to RichText\",\"menuConvertToText\":\"Convert to Text\",\"menuDeleteColumn\":\"Delete Column\",\"menuDeleteRow\":\"Delete Row\",\"menuEdit\":\"&amp;Edit\",\"menuEditBusinessObjectFromDataSetNew\":\"New Business Object From DataSet...\",\"menuEditBusinessObjectNew\":\"New Business Object...\",\"menuEditCalcColumnNew\":\"New Calculated Column...\",\"menuEditCantRedo\":\"Can\\'t Redo\",\"menuEditCantUndo\":\"Can\\'t Undo\",\"menuEditCategoryNew\":\"New Category...\",\"menuEditClearContents\":\"Clear Contents\",\"menuEditColumnNew\":\"New Column...\",\"menuEditConnectionNew\":\"New Connection...\",\"menuEditCopy\":\"&amp;Copy\",\"menuEditCut\":\"Cu&amp;t\",\"menuEditDataParameterNew\":\"New Parameter...\",\"menuEditDataSourceNew\":\"New Data Source...\",\"menuEditDataSourcesNew\":\"New Data Sources...\",\"menuEditDataTransformationNew\":\"New Data Transformation...\",\"menuEditDelete\":\"&amp;Delete\",\"menuEditEdit\":\"Edit\",\"menuEditImportRelations\":\"Import Relations...\",\"menuEditPaste\":\"&amp;Paste\",\"menuEditRedo\":\"&amp;Redo\",\"menuEditRedoText\":\"&amp;Redo {0}\",\"menuEditRelationNew\":\"New Relation...\",\"menuEditRemoveUnused\":\"Remove Unused Items\",\"menuEditResourceNew\":\"New Resource...\",\"menuEditSelectAll\":\"Select &amp;All\",\"menuEditSynchronize\":\"Synchronize\",\"menuEditUndo\":\"&amp;Undo\",\"menuEditUndoText\":\"&amp;Undo {0}\",\"menuEditVariableNew\":\"New Variable...\",\"menuEditViewData\":\"View Data...\",\"menuEmbedAllDataToResources\":\"Embed all data to resources\",\"menuFile\":\"&amp;File\",\"menuFileClose\":\"&amp;Close\",\"menuFileDashboardDelete\":\"Delete Dashboard\",\"menuFileDashboardNew\":\"New Dashboard\",\"menuFileDashboardOpen\":\"&amp;Open Dashboard...\",\"menuFileDashboardSaveAs\":\"Save Dashboard &amp;As...\",\"menuFileExit\":\"E&amp;xit\",\"menuFileExportXMLSchema\":\"Export XML Schema...\",\"menuFileFormNew\":\"New Form\",\"menuFileFormOpen\":\"Open Form\",\"menuFileImportXMLSchema\":\"Import XML Schema...\",\"menuFileMerge\":\"Merge...\",\"menuFileMergeXMLSchema\":\"Merge XML Schema...\",\"menuFileNew\":\"&amp;New\",\"menuFileOpen\":\"&amp;Open...\",\"menuFilePageDelete\":\"Delete Page\",\"menuFilePageNew\":\"New Page\",\"menuFilePageOpen\":\"Open Page...\",\"menuFilePageSaveAs\":\"Save Page As...\",\"menuFilePageSetup\":\"Page Setup...\",\"menuFileRecentDocuments\":\"Recent Documents\",\"menuFileRecentLocations\":\"Recent Locations\",\"menuFileReportNew\":\"&amp;New Report...\",\"menuFileReportOpen\":\"&amp;Open Report...\",\"menuFileReportOpenFromGoogleDocs\":\"Open Report from Google Docs...\",\"menuFileReportPreview\":\"&amp;Preview\",\"menuFileReportSave\":\"&amp;Save Report\",\"menuFileReportSaveAs\":\"Save Report &amp;As...\",\"menuFileReportSaveAsToGoogleDocs\":\"Save Report As to Google Docs...\",\"menuFileReportSetup\":\"Report &amp;Setup...\",\"menuFileReportWizardNew\":\"New Report with &amp;Wizard...\",\"menuFileSave\":\"&amp;Save\",\"menuFileSaveAs\":\"Save As...\",\"menuFileScreenNew\":\"New Screen\",\"menuHelp\":\"&amp;Help\",\"menuHelpAboutProgramm\":\"&amp;About...\",\"menuHelpContents\":\"&amp;Contents\",\"menuHelpDemos\":\"Demos\",\"menuHelpDocumentation\":\"Documentation\",\"menuHelpFAQPage\":\"FAQ Page\",\"menuHelpForum\":\"Forum\",\"menuHelpHowToRegister\":\"How to Register\",\"menuHelpProductHomePage\":\"Product Home Page\",\"menuHelpSamples\":\"Samples\",\"menuHelpSupport\":\"&amp;Support\",\"menuHelpTrainingCourses\":\"Training Courses\",\"menuHelpVideos\":\"Videos\",\"menuInsertColumnToLeft\":\"Insert Column To Left\",\"menuInsertColumnToRight\":\"Insert Column To Right\",\"menuInsertRowAbove\":\"Insert Row Above\",\"menuInsertRowBelow\":\"Insert Row Below\",\"menuJoinCells\":\"Join Cells\",\"menuMakeThisRelationActive\":\"Make This Relation Active\",\"menuSelectColumn\":\"Select Column\",\"menuSelectRow\":\"Select Row\",\"menuTable\":\"Table\",\"menuTools\":\"&amp;Tools\",\"menuToolsDataStore\":\"Data &amp;Store...\",\"menuToolsDictionary\":\"&amp;Dictionary...\",\"menuToolsOptions\":\"&amp;Options...\",\"menuToolsPagesManager\":\"&amp;Pages Manager...\",\"menuToolsServicesConfigurator\":\"Services &amp;Configurator...\",\"menuToolsStyleDesigner\":\"Style &amp;Designer...\",\"menuView\":\"&amp;View\",\"menuViewAlignToGrid\":\"Align to Grid\",\"menuViewNormal\":\"&amp;Normal\",\"menuViewOptions\":\"Options\",\"menuViewPageBreakPreview\":\"Page &amp;Break Preview\",\"menuViewQuickInfo\":\"Quick Info\",\"menuViewQuickInfoNone\":\"None\",\"menuViewQuickInfoOverlay\":\"Display Over Components\",\"menuViewQuickInfoShowAliases\":\"Show Aliases\",\"menuViewQuickInfoShowComponentsNames\":\"Show Components Names\",\"menuViewQuickInfoShowContent\":\"Show Content\",\"menuViewQuickInfoShowEvents\":\"Show Events\",\"menuViewQuickInfoShowFields\":\"Show Fields\",\"menuViewQuickInfoShowFieldsOnly\":\"Show Fields Only\",\"menuViewShowGrid\":\"Show Grid\",\"menuViewShowHeaders\":\"Show Headers\",\"menuViewShowInsertTab\":\"Show \\'Insert\\' Tab\",\"menuViewShowOrder\":\"Show Order\",\"menuViewShowRulers\":\"Show Rulers\",\"menuViewShowToolbox\":\"Show Toolbox\",\"menuViewToolbars\":\"Toolbars\"},\"Map\":{\"LinkDataForm\":\"Link Data\",\"MapEditorForm\":\"Map Editor\"},\"MathFormula\":{\"Alphabets\":\"Alphabets\",\"Arrows\":\"Arrows\",\"Formulas\":\"Formulas\",\"Maths\":\"Maths\",\"Operators\":\"Operators\"},\"Messages\":{\"ChangeRequestTimeout\":\"The request timeout for SQL queries exceeds the request timeout of the report designer. Set the request timeout for the designer component in no less than {0} seconds.\",\"DoNotShowAgain\":\"Do not show again\",\"LatexFormat\":\"The LaTeX format is used to display mathematical formulas.\",\"MessageTimeOutExpired\":\"Command timeout has expired!\",\"RenderingWillOccurInTheInterpretationMode\":\"When viewing the shared report, the rendering will occur in the interpretation mode!\",\"ResourceCannotBeDeleted\":\"The resource \\\\\"{0}\\\\\" cannot be deleted, because it is used in the report!\",\"ShareURLOfTheItemHasBeenUpdated\":\"The share URL of the item has been updated!\",\"ShareYourReportYouShouldSave\":\"To share your report you should save the report to Stimulsoft Cloud!\",\"SwitchingBetweenModes\":\"Switching between modes will cause the loss of changes. Do you want to proceed?\",\"SwitchParametersOrientation\":\"Please change the value of the \\'ParametersOrientation\\' report property to \\'{0}\\' to show this category on the parameters panel.\",\"TextRegistrationSuccessfully\":\"\\\\nRegistration completed successfully!\\\\n\\\\nThe Email was sent to \\\\\"{0}\\\\\".\\\\nIt contains a link to confirm your registration. To complete the registration please follow the link from the Email you received.\\\\n\",\"ThisFieldIsNotSpecified\":\"This Field is Not Specified!\",\"ThisFunctionEmbedsAllReportDataToTheReport\":\"This function embeds all report data to the report resources and makes your report standalone. Be careful! All your data settings will be changed and can\\'t be restored. Please, make a backup copy of your report firstly.{0}Are you sure?\",\"YouNeedToLoginFirstToStartUsingTheSoftware\":\"You need to login first to start using the software. The application will close if you quit the login form.\"},\"Notices\":{\"AccessDenied\":\"Access Denied!\",\"AccountLocked\":\"Your account is locked! In order to resolve it, please send your request to sales@stimulsoft.com!\",\"ActivationContact1\":\"Please contact our sales department at \",\"ActivationContact2\":\" to resolve this.\",\"ActivationExpiriedBeforeFirstRelease\":\"Your Subscription of Stimulsoft Reports.Ultimate expired earlier than the first version of our Stimulsoft Server was released!\",\"ActivationLicenseIsNotCorrect\":\"License file is not correct! Please contact our sales department at sales@stimulsoft.com!\",\"ActivationLockedAccount\":\"Your account is locked. Please contact our sales department at sales@stimulsoft.com!\",\"ActivationLockedAccountExt\":\"Your account is locked.\",\"ActivationMaxActivationsReached\":\"You reached the maximum number of activations. Please contact our sales department at sales@stimulsoft.com!\",\"ActivationMaxActivationsReached1\":\"You can manage the registered computers from your \",\"ActivationMaxActivationsReached2\":\"Stimulsoft Account.\",\"ActivationMaxComputersReached\":\"You’ve already registered the maximum number of computers available for your subscription.\",\"ActivationServerIsNotAvailableNow\":\"Stimulsoft Activation Server is not available now! Please try again later.\",\"ActivationServerVersionNotAllowed\":\"You cannot activate this version of Stimulsoft Server because your Subscription Program expired! Please log in to your account and check which version of the Stimulsoft Server you can install and activate.\",\"ActivationSomeTroublesOccurred\":\"An error occurred during activation. Please try again later.\",\"ActivationTrialExpired\":\"You can continue to use Stimulsoft Designer by purchasing the software.\",\"ActivationTrialExtend1\":\"If you are interested in extending your trial, please \",\"ActivationTrialExtend2\":\"tell us why.\",\"ActivationUserNameOrPasswordIsWrong\":\"Your user name (Email) or password is wrong!\",\"ActivationWrongAccountType\":\"Your account type does not allow to activate Stimulsoft Server!\",\"Alert\":\"Alert\",\"AuthAccountAlreadyExists\":\"The account with this User Name (email) already exists. To associate it with your {0} account, please use your Stimulsoft account password.\",\"AuthAccountCantBeUsedNow\":\"The account cannot be used now!\",\"AuthAccountIsNotActivated\":\"The account is not activated yet! Please follow the instructions sent to the Email during registration.\",\"AuthCantChangeRoleBecauseLastAdministratorUser\":\"The user role cannot be changed because this is the last administrator user in this workspace!\",\"AuthCantChangeRoleBecauseLastSupervisorUser\":\"The user role cannot be changed because this is the last supervisor user at this server!\",\"AuthCantChangeSystemRole\":\"The system role cannot be changed!\",\"AuthCantDeleteHimselfUser\":\"The user cannot delete himself!\",\"AuthCantDeleteLastAdministratorUser\":\"The user cannot be deleted because this is the last administrator user in this workspace!\",\"AuthCantDeleteLastSupervisorUser\":\"The user cannot be deleted because this is the last supervisor user at this server!\",\"AuthCantDeleteSystemRole\":\"Cannot delete this role, because it is a system role!\",\"AuthCantDisableUserBecauseLastAdministratorUser\":\"The user cannot be disabled because this is the last administrator user in this workspace!\",\"AuthCantDisableUserBecauseLastSupervisorUser\":\"The user cannot be disabled because this is the last supervisor user at this server!\",\"AuthFirstNameIsNotSpecified\":\"The first name is not specified!\",\"AuthLastNameIsNotSpecified\":\"The last name is not specified!\",\"AuthOAuthIdNotSpecified\":\"The OAuth identificator is not specified!\",\"AuthPasswordIsNotCorrect\":\"The password is not correct!\",\"AuthPasswordIsNotSpecified\":\"The password is not specified!\",\"AuthPasswordIsTooShort\":\"The password is too short (a minimum length is 6 chars)!\",\"AuthRoleCantBeDeletedBecauseUsedByUsers\":\"You cannot delete the role because it is used by other users.\",\"AuthRoleNameAlreadyExists\":\"The role with the specified name \\\\\"{0}\\\\\" already exists!\",\"AuthRoleNameIsSystemRole\":\"The role with the specified name \\\\\"{0}\\\\\" is a system role!\",\"AuthSendMessageWithInstructions\":\"A message with further instructions is sent to \\\\\"{0}\\\\\"!\",\"AuthTokenIsNotCorrect\":\"Token is not correct!\",\"AuthUserHasLoggedOut\":\"You have logged out!\",\"AuthUserNameAlreadyExists\":\"The username (Email) is already in use!\",\"AuthUserNameEmailIsBlocked\":\"This Email address cannot be used!\",\"AuthUserNameIsNotSpecified\":\"The username (Email) is not specified!\",\"AuthUserNameNotAssociatedWithYourAccount\":\"Username (Email) {0} is not associated with your {1} account!\",\"AuthUserNameOrPasswordIsNotCorrect\":\"The username (Email) or password is incorrect!\",\"AuthUserNameShouldLookLikeAnEmailAddress\":\"The username should be similar to the Email address!\",\"AuthWorkspaceNameAlreadyInUse\":\"The workspace name is already in use!\",\"CommandTimeOut\":\"Waiting time of processing the command is elapsed!\",\"Congratulations\":\"Congratulations!\",\"DeveloperInformation\":\"Developer Information\",\"EndDateShouldBeGreaterThanCurrentDate\":\"The end date should be greater than the current date!\",\"EndDateShouldBeGreaterThanStartDate\":\"The end date should be greater than start date!\",\"ExecutionError\":\"Execution error\",\"IsIdentical\":\"\\\\\"{0}\\\\\" and \\\\\"{1}\\\\\" are identical.\\\\\"\",\"IsNotAuthorized\":\"No access to \\\\\"{0}\\\\\"!\",\"IsNotCorrect\":\"\\\\\"{0}\\\\\" is incorrect!\",\"IsNotDeleted\":\"\\\\\"{0}\\\\\" is not deleted!\",\"IsNotEqual\":\"\\\\\"{0}\\\\\" is not equal!\",\"IsNotFound\":\"\\\\\"{0}\\\\\" is not found!\",\"IsNotRecognized\":\"\\\\\"{0}\\\\\" is not recognized!\",\"IsNotSpecified\":\"\\\\\"{0}\\\\\" is not specified!\",\"IsRequiredFile\":\"You should add at least one file!\",\"ItemCantBeAttachedToItself\":\"The item cannot be attached to itself!\",\"ItemCantBeDeletedBecauseItemIsAttachedToOtherItems\":\"The elements \\\\\"{0}\\\\\" cannot be deleted because they are attached to other elements!\",\"ItemCantBeMovedToSpecifiedPlace\":\"The item cannot be moved to a specified place!\",\"ItemDoesNotSupport\":\"The item does not support \\\\\"{0}\\\\\"!\",\"KeyAndToKeyAreEqual\":\"A Key and ToKey are equal!\",\"MaximumComputers\":\"Maximum of Computers\",\"MessageMaximumFileSizeExceeded\":\"Attention! The size of the file that you are trying to add exceeds the maximum-allowed size. Do you want to add this file anyway (report processing may slow down significantly)?\",\"NewDesignerAvailable\":\"Stimulsoft Designer {0} is available.\",\"NewProduct\":\"The new product is added to your subscription!\",\"NewVersionsAvailable\":\"New version\",\"NotificationConnectPackage\":\"Connect the \\\\\"{0}\\\\\" package for the correct work.\",\"NotificationFailed\":\"Failed result!\",\"NotificationFailedAddFollowingFiles\":\"Failed to add the following files. Exceeded the size {0} MB.\",\"NotificationFilesUploadingComplete\":\"The files uploaded successfully.\",\"NotificationFileUploading\":\"The file \\\\\"{0}\\\\\" is uploading.\",\"NotificationItemDelete\":\"The items are deleting.\",\"NotificationItemDeleteComplete\":\"The items are deleted successfully.\",\"NotificationItemExtraComponentRequired\":\"Extra component required\",\"NotificationItemInstallWebView\":\"Please install the WebView2 Runtime to work with the Blockly editor correctly.\",\"NotificationItemRestore\":\"The items are restoring.\",\"NotificationItemRestoreComplete\":\"The items are restored successfully.\",\"NotificationItemTransfer\":\"The items are transferring.\",\"NotificationItemTransferComplete\":\"The items are transferred successfully.\",\"NotificationItemWaitingProcessing\":\"The items are waiting processing.\",\"NotificationMailing\":\"Sending\",\"NotificationMailingComplete\":\"The mailing \\\\\"{0}\\\\\" is complete.\",\"NotificationMailingWaitingProcessing\":\"The mailing \\\\\"{0}\\\\\" is waiting processing.\",\"NotificationOperationAborted\":\"Operation aborted!\",\"NotificationPackageRequiredToDisplay\":\"To display this content, please download the \\\\\"{0}\\\\\" package from NuGet.\",\"NotificationRecycleBinCleaning\":\"The Recycle Bin is cleaning.\",\"NotificationRecycleBinCleaningComplete\":\"The Recycle Bin is cleaned successfully.\",\"NotificationRecycleBinWaitingProcessing\":\"The Recycle Bin cleaning is waiting processing.\",\"NotificationReportExporting\":\"The report \\\\\"{0}\\\\\" is exporting\",\"NotificationReportExportingComplete\":\"The report \\\\\"{0}\\\\\" is exported successfully.\",\"NotificationReportRendering\":\"The report \\\\\"{0}\\\\\" is rendering\",\"NotificationReportRenderingComplete\":\"The report \\\\\"{0}\\\\\" is rendered.\",\"NotificationReportWaitingProcessing\":\"The report \\\\\"{0}\\\\\" is waiting processing.\",\"NotificationReturnToDesigner\":\"Return to the Stimulsoft Designer to continue.\",\"NotificationSchedulerRunning\":\"The scheduler \\\\\"{0}\\\\\" is running.\",\"NotificationSchedulerRunningComplete\":\"The scheduler \\\\\"{0}\\\\\" running complete.\",\"NotificationSchedulerWaitingProcessing\":\"The scheduler \\\\\"{0}\\\\\" is waiting processing.\",\"NotificationTitleFilesUploading\":\"Uploading files\",\"NotificationTitleItemRefreshing\":\"Refreshing item \\\\\"{0}\\\\\"\",\"NotificationTitleItemTransferring\":\"Transferring item \\\\\"{0}\\\\\"\",\"NotificationTitleMailing\":\"Mailing \\\\\"{0}\\\\\"\",\"NotificationTitleReportExporting\":\"Exporting report \\\\\"{0}\\\\\"\",\"NotificationTitleReportRendering\":\"Rendering report \\\\\"{0}\\\\\"\",\"NotificationTitleSchedulerRunning\":\"Running scheduler \\\\\"{0}\\\\\"\",\"NotificationTransferring\":\"The \\\\\"{0}\\\\\" is tranferring to \\\\\"{1}\\\\\".\",\"NotificationTransferringComplete\":\"The \\\\\"{0}\\\\\" is succesfully transffered to \\\\\"{1}\\\\\".\",\"NotificationValueIsNotCorrect\":\"This value is not correct for the type {0}\",\"OutOfRange\":\"Out of range (\\\\\"{0}\\\\\")!\",\"ParsingCommandException\":\"An exception of processing the command in the specified xml: {0}\",\"PleaseLogin\":\"Please login using your Stimulsoft account credentials or register a new account before publishing report.\",\"QuotaMaximumComputingCyclesCountExceeded\":\"Maximum computing cycles exceeded.\",\"QuotaMaximumDataRowsCountExceeded\":\"Maximum data rows in one data source exceeded.\",\"QuotaMaximumFileSizeExceeded\":\"Maximum file size exceeded.\",\"QuotaMaximumItemsCountExceeded\":\"Maximum items exceeded.\",\"QuotaMaximumRefreshCountExceeded\":\"Maximum refresh count exceeded\",\"QuotaMaximumReportPagesCountExceeded\":\"Maximum report pages exceeded.\",\"QuotaMaximumResourcesCountExceeded\":\"Maximum resources exceeded.\",\"QuotaMaximumResourceSizeExceeded\":\"Maximum resource size exceeded.\",\"QuotaMaximumUsersCountExceeded\":\"Maximum users exceeded.\",\"QuotaMaximumWorkspacesCountExceeded\":\"Maximum workspaces exceeded.\",\"SchedulerCantRunItSelf\":\"The scheduler cannot run itself!\",\"SessionTimeOut\":\"Session timeout\",\"SnapshotAlreadyProcessed\":\"The report snapshot is already processed!\",\"SpecifiedItemIsNot\":\"The specified item is not \\\\\"{0}\\\\\"!\",\"SubscriptionExpired\":\"Your subscription has expired!\",\"SubscriptionExpiredDate\":\"Your subscription will expire on {0}\",\"SubscriptionExpiredDays\":\"Expires in {0} days\",\"SubscriptionExpiredExt\":\"Your subscription has expired. Update your subscription to get the last version.\",\"SubscriptionExpiredShort\":\"Subscription expired\",\"SubscriptionsOut10\":\"10 days left when the subscription expires!\",\"SubscriptionsOut20\":\"The subscription period will expire in 20 days!\",\"SuccessfullyRenewed\":\"Your subscription has been successfully updated!\",\"TrialToLicense\":\"We would like to thank you for choosing our software!\",\"VersionCopyFromItem\":\"Copy from item \\\\\"{0}\\\\\".\",\"VersionCreatedFromFile\":\"Created from file \\\\\"{0}\\\\\".\",\"VersionCreatedFromItem\":\"Created from item \\\\\"{0}\\\\\".\",\"VersionLoadedFromFile\":\"Loaded from file \\\\\"{0}\\\\\".\",\"VersionNewItemCreation\":\"New item creation.\",\"Warning\":\"Warning\",\"WindowClosePreventWhileUploading\":\"Some files are uploading now, if you close page they will lost. Are you sure you want to close page?\",\"WithSpecifiedKeyIsNotFound\":\"\\\\\"{0}\\\\\" with the specified key is not found!\",\"WouldYouLikeToUpdateNow\":\"Would you like to update now?\",\"YourTimeSessionHasExpired\":\"Your time session has expired!\",\"YourTrialHasExpired\":\"Your trial has expired\",\"YourTrialWillExpire\":\"Your trial will expire in {0} days.\",\"YouUsingTrialVersion\":\"You are using a trial version!\"},\"NuGet\":{\"AlreadyDownloaded\":\"Already Downloaded\",\"AssemblyLoadedSuccessfully\":\"The assembly is loaded successfully.\",\"AssemblyNotFound\":\"It is impossible to find {0} assembly to use the {1} connection!\",\"Author\":\"Author\",\"Dependencies\":\"Dependencies:\",\"Download\":\"Download\",\"DownloadAll\":\"Download All\",\"DownloadAndInstall\":\"Download and Install\",\"DownloadDataAdapter\":\"Download Data Adapter\",\"Downloads\":\"Downloads:\",\"IAccept\":\"I Accept\",\"IDecline\":\"I Decline\",\"LicenceFormDesc\":\"The following package require that you accept their license terms before installing.\",\"LicenceFormDesc1\":\"By clicking \\\\\"I Accept\\\\\" you agree to the license terms for the package listed above. If you do not agree to the license terms, click \\\\\"I Decline\\\\\".\",\"LicenceFormTitle\":\"Licence Acceptance\",\"License\":\"License:\",\"ProjectUrl\":\"Project URL:\",\"ReportAbuse\":\"Report Abuse:\",\"RetrievingInformation\":\"Retrieving information...\",\"Tags\":\"Tags:\",\"Title\":\"Data Adapter from NuGet\",\"ViewLicense\":\"View License\"},\"Panels\":{\"Dictionary\":\"Dictionary\",\"Messages\":\"Messages\",\"Properties\":\"Properties\",\"ReportTree\":\"Report Tree\"},\"Password\":{\"gbPassword\":\"Encrypting of the file\",\"lbPasswordLoad\":\"Enter the password to open the file\",\"lbPasswordSave\":\"Password:\",\"PasswordNotEntered\":\"The password is not entered\",\"StiLoadPasswordForm\":\"Document encrypting\",\"StiSavePasswordForm\":\"Password\"},\"Permissions\":{\"AdminAPI\":\"API\",\"AdminBackgroundTasks\":\"Background Tasks\",\"AdminPermissions\":\"Permissions\",\"AdminRecycleBin\":\"Recycle Bin\",\"AdminShare\":\"Share\",\"AdminTransfers\":\"Transfers\",\"ItemCalendars\":\"Calendars\",\"ItemCloudStorages\":\"Cloud Storages\",\"ItemContactLists\":\"Contact Lists\",\"ItemDashboards\":\"Dashboards\",\"ItemDataSources\":\"Data Sources\",\"ItemFiles\":\"Files\",\"ItemFolders\":\"Folders\",\"ItemForms\":\"Forms\",\"ItemReportSnapshots\":\"Report Snapshots\",\"ItemReportTemplates\":\"Report Templates\",\"ItemSchedulers\":\"Schedulers\",\"ReportDesignerBusinessObjects\":\"Business Objects\",\"ReportDesignerDataColumns\":\"Data Columns\",\"ReportDesignerDataConnections\":\"Data Connections\",\"ReportDesignerDataRelations\":\"Data Relations\",\"ReportDesignerDataSources\":\"Data Sources\",\"ReportDesignerDictionaryActions\":\"Dictionary Actions\",\"ReportDesignerRestrictions\":\"Restrictions\",\"ReportDesignerVariables\":\"Variables\",\"SystemBackupRestore\":\"Backup &amp; Restore\",\"SystemEmailTemplates\":\"Email Templates\",\"SystemLicensing\":\"Licensing\",\"SystemMonitoring\":\"Monitoring\",\"SystemUpdate\":\"Update\",\"SystemWorkspaces\":\"Workspaces\",\"TextAdministration\":\"Administration\",\"TextItems\":\"Items\",\"TextReportDesigner\":\"Report Designer\",\"TextSystem\":\"System\",\"TextUsers\":\"Users\",\"UserHimself\":\"Himself\",\"UserRoles\":\"Roles\",\"Users\":\"Users\",\"UserWorkspace\":\"Workspace\"},\"PlacementComponent\":{\"MoveLeftFreeSpace\":\"Moves a component to the left side of a free space, increasing the height of the component to the height of free space.\",\"MoveRightFreeSpace\":\"Moves a component to the right side of a free space, increasing the height of the component to the height of free space.\"},\"PromptForm\":{\"CacheLoginData\":\"Cache login data for current session\"},\"PropertyCategory\":{\"AppearanceCategory\":\"Appearance\",\"AreaCategory\":\"Area\",\"ArgumentCategory\":\"Argument\",\"AxisCategory\":\"Axis\",\"BarCodeAdditionalCategory\":\"Bar Code Additional\",\"BarCodeCategory\":\"Bar Code\",\"BehaviorCategory\":\"Behavior\",\"ButtonCategory\":\"Button\",\"CapNeedle\":\"Cap Needle\",\"CardsCategory\":\"Cards\",\"CellCategory\":\"Cell\",\"ChartAdditionalCategory\":\"Chart Additional\",\"ChartCategory\":\"Chart\",\"ChartMap\":\"Map\",\"CheckCategory\":\"Check\",\"ColorsCategory\":\"Colors\",\"ColumnsCategory\":\"Columns\",\"ComboBoxCategory\":\"Combo Box\",\"CommonCategory\":\"Common\",\"ControlCategory\":\"Control\",\"ControlsEventsCategory\":\"Controls Events\",\"CrossTabCategory\":\"Cross-Tab\",\"DashboardCategory\":\"Dashboard\",\"DataCategory\":\"Data\",\"DataCells\":\"Data Cells\",\"DatePickerCategory\":\"Date Picker\",\"DescriptionCategory\":\"Description\",\"DesignCategory\":\"Design\",\"DisplayCategory\":\"Display\",\"EngineCategory\":\"Engine\",\"ExportCategory\":\"Export\",\"ExportEventsCategory\":\"Export Events\",\"FooterTableCategory\":\"Footer Table\",\"GaugeCategory\":\"Gauge\",\"GlobalizationCategory\":\"Globalization\",\"GridLinesCategory\":\"Grid Lines\",\"HeaderTableCategory\":\"Header Table\",\"HierarchicalCategory\":\"Hierarchical\",\"ImageAdditionalCategory\":\"Image Additional\",\"ImageCategory\":\"Image\",\"IndicatorCategory\":\"Indicator\",\"InterlacingCategory\":\"Interlacing\",\"LabelsCategory\":\"Labels\",\"LegendCategory\":\"Legend\",\"LinearScaleBarCategory\":\"Linear Scale Bar\",\"LinearScaleCategory\":\"Linear Scale\",\"ListBoxCategory\":\"List Box\",\"MainCategory\":\"Main\",\"MarkerCategory\":\"Marker\",\"MathFormulaCategory\":\"Math Formula\",\"MiscCategory\":\"Misc\",\"MouseEventsCategory\":\"Mouse Events\",\"NavigationCategory\":\"Navigation\",\"NavigationEventsCategory\":\"Navigation Events\",\"Needle\":\"Needle\",\"NeedleCategory\":\"Needle\",\"OnlineMapCategory\":\"Online Map\",\"OptionsCategory\":\"Options\",\"PageAdditionalCategory\":\"Page Additional\",\"PageCategory\":\"Page\",\"PageColumnBreakCategory\":\"Page and Column Break\",\"ParametersCategory\":\"Parameters\",\"PivotTableCategory\":\"Pivot Table\",\"PositionCategory\":\"Position\",\"PrimitiveCategory\":\"Primitive\",\"PrintEventsCategory\":\"Print Events\",\"ProgressCategory\":\"Progress\",\"RadialScaleBarCategory\":\"Radial Scale Bar\",\"RegionMapCategory\":\"Region Map\",\"RenderEventsCategory\":\"Render Events\",\"SeriesCategory\":\"Series\",\"SeriesLabelsCategory\":\"Series Labels\",\"ShapeCategory\":\"Shape\",\"Size\":\"Size\",\"SubReportCategory\":\"Sub-Report\",\"TableCategory\":\"Table\",\"TableOfContents\":\"Table of Contents\",\"TextAdditionalCategory\":\"Text Additional\",\"TextCategory\":\"Text\",\"TickLabelMajorCategory\":\"Tick Label Major\",\"TickLabelMinorCategory\":\"Tick Label Minor\",\"TickMarkMajorCategory\":\"Tick Mark Major\",\"TickMarkMinorCategory\":\"Tick Mark Minor\",\"TitleCategory\":\"Title\",\"TreeViewBoxCategory\":\"Tree View Box\",\"TreeViewCategory\":\"Tree View\",\"TrendLineCategory\":\"Trend Line\",\"ValueCategory\":\"Value\",\"ValueCloseCategory\":\"Value Close\",\"ValueEndCategory\":\"Value End\",\"ValueEventsCategory\":\"Value Events\",\"ValueHighCategory\":\"Value High\",\"ValueLowCategory\":\"Value Low\",\"ValueOpenCategory\":\"Value Open\",\"ViewCategory\":\"View\",\"WeightCategory\":\"Weight\",\"WinControlCategory\":\"Win Control\",\"ZipCodeCategory\":\"ZIP Code\"},\"PropertyColor\":{\"AliceBlue\":\"Alice Blue\",\"AntiqueWhite\":\"Antique White\",\"Aqua\":\"Aqua\",\"Aquamarine\":\"Aquamarine\",\"Azure\":\"Azure\",\"Beige\":\"Beige\",\"Bisque\":\"Bisque\",\"Black\":\"Black\",\"BlanchedAlmond\":\"Blanched Almond\",\"Blue\":\"Blue\",\"BlueViolet\":\"Blue Violet\",\"Brown\":\"Brown\",\"BurlyWood\":\"Burly Wood\",\"CadetBlue\":\"Cadet Blue\",\"Carmine\":\"Carmine\",\"Chartreuse\":\"Chartreuse\",\"Chocolate\":\"Chocolate\",\"Coral\":\"Coral\",\"CornflowerBlue\":\"Cornflower Blue\",\"Cornsilk\":\"Cornsilk\",\"Crimson\":\"Crimson\",\"Cyan\":\"Cyan\",\"DarkBlue\":\"Dark Blue\",\"DarkCyan\":\"Dark Cyan\",\"DarkGoldenrod\":\"Dark Goldenrod\",\"DarkGray\":\"Dark Gray\",\"DarkGreen\":\"Dark Green\",\"DarkKhaki\":\"Dark Khaki\",\"DarkMagenta\":\"Dark Magenta\",\"DarkOliveGreen\":\"Dark Olive Green\",\"DarkOrange\":\"Dark Orange\",\"DarkOrchid\":\"Dark Orchid\",\"DarkRed\":\"Dark Red\",\"DarkSalmon\":\"Dark Salmon\",\"DarkSeaGreen\":\"Dark Sea Green\",\"DarkSlateBlue\":\"Dark Slate Blue\",\"DarkSlateGray\":\"Dark Slate Gray\",\"DarkTurquoise\":\"Dark Turquoise\",\"DarkViolet\":\"Dark Violet\",\"DeepPink\":\"Deep Pink\",\"DeepSkyBlue\":\"Deep Sky Blue\",\"DimGray\":\"Dim Gray\",\"DodgerBlue\":\"Dodger Blue\",\"Firebrick\":\"Firebrick\",\"FloralWhite\":\"Floral White\",\"ForestGreen\":\"Forest Green\",\"Fuchsia\":\"Fuchsia\",\"Gainsboro\":\"Gainsboro\",\"GhostWhite\":\"Ghost White\",\"Gold\":\"Gold\",\"Goldenrod\":\"Goldenrod\",\"Gray\":\"Gray\",\"Green\":\"Green\",\"GreenYellow\":\"Green Yellow\",\"Honeydew\":\"Honeydew\",\"HotPink\":\"Hot Pink\",\"IndianRed\":\"Indian Red\",\"Indigo\":\"Indigo\",\"Ivory\":\"Ivory\",\"Khaki\":\"Khaki\",\"Lavender\":\"Lavender\",\"LavenderBlush\":\"Lavender Blush\",\"LawnGreen\":\"Lawn Green\",\"LemonChiffon\":\"Lemon Chiffon\",\"LightBlue\":\"Light Blue\",\"LightCoral\":\"Light Coral\",\"LightCyan\":\"Light Cyan\",\"LightGoldenrodYellow\":\"Light Goldenrod Yellow\",\"LightGray\":\"Light Gray\",\"LightGreen\":\"Light Green\",\"LightPink\":\"Light Pink\",\"LightSalmon\":\"Light Salmon\",\"LightSeaGreen\":\"Light Sea Green\",\"LightSkyBlue\":\"Light Sky Blue\",\"LightSlateGray\":\"Light Slate Gray\",\"LightSteelBlue\":\"Light Steel Blue\",\"LightYellow\":\"Light Yellow\",\"Lime\":\"Lime\",\"LimeGreen\":\"Lime Green\",\"Linen\":\"Linen\",\"Magenta\":\"Magenta\",\"Maroon\":\"Maroon\",\"MediumAquamarine\":\"Medium Aquamarine\",\"MediumBlue\":\"Medium Blue\",\"MediumOrchid\":\"Medium Orchid\",\"MediumPurple\":\"Medium Purple\",\"MediumSeaGreen\":\"Medium Sea Green\",\"MediumSlateBlue\":\"Medium Slate Blue\",\"MediumSpringGreen\":\"Medium Spring Green\",\"MediumTurquoise\":\"Medium Turquoise\",\"MediumVioletRed\":\"Medium Violet Red\",\"MidnightBlue\":\"Midnight Blue\",\"MintCream\":\"Mint Cream\",\"MistyRose\":\"Misty Rose\",\"Moccasin\":\"Moccasin\",\"NavajoWhite\":\"Navajo White\",\"Navy\":\"Navy\",\"OldLace\":\"Old Lace\",\"Olive\":\"Olive\",\"OliveDrab\":\"Olive Drab\",\"Orange\":\"Orange\",\"OrangeRed\":\"Orange Red\",\"Orchid\":\"Orchid\",\"PaleGoldenrod\":\"Pale Goldenrod\",\"PaleGreen\":\"Pale Green\",\"PaleTurquoise\":\"Pale Turquoise\",\"PaleVioletRed\":\"Pale Violet Red\",\"PapayaWhip\":\"Papaya Whip\",\"PeachPuff\":\"Peach Puff\",\"Peru\":\"Peru\",\"Pink\":\"Pink\",\"Plum\":\"Plum\",\"PowderBlue\":\"Powder Blue\",\"Purple\":\"Purple\",\"Red\":\"Red\",\"RosyBrown\":\"Rosy Brown\",\"RoyalBlue\":\"Royal Blue\",\"SaddleBrown\":\"Saddle Brown\",\"Salmon\":\"Salmon\",\"SandyBrown\":\"Sandy Brown\",\"SeaGreen\":\"Sea Green\",\"SeaShell\":\"Sea Shell\",\"Sienna\":\"Sienna\",\"Silver\":\"Silver\",\"SkyBlue\":\"Sky Blue\",\"SlateBlue\":\"Slate Blue\",\"SlateGray\":\"Slate Gray\",\"Snow\":\"Snow\",\"SpringGreen\":\"Spring Green\",\"SteelBlue\":\"Steel Blue\",\"Tan\":\"Tan\",\"Teal\":\"Teal\",\"Thistle\":\"Thistle\",\"Tomato\":\"Tomato\",\"Transparent\":\"Transparent\",\"Turquoise\":\"Turquoise\",\"VeryDarkGray\":\"Very Dark Gray\",\"Violet\":\"Violet\",\"Wheat\":\"Wheat\",\"White\":\"White\",\"WhiteSmoke\":\"White Smoke\",\"Yellow\":\"Yellow\",\"YellowGreen\":\"Yellow Green\"},\"PropertyEnum\":{\"boolFalse\":\"False\",\"boolTrue\":\"True\",\"BorderStyleFixed3D\":\"Fixed 3D\",\"BorderStyleFixedSingle\":\"Fixed Single\",\"BorderStyleNone\":\"None\",\"ChartAxesTicksAll\":\"All\",\"ChartAxesTicksMajor\":\"Major\",\"ChartAxesTicksNone\":\"None\",\"ChartGridLinesAll\":\"All\",\"ChartGridLinesMajor\":\"Major\",\"ChartGridLinesNone\":\"None\",\"ComboBoxStyleDropDown\":\"Drop Down\",\"ComboBoxStyleDropDownList\":\"Drop Down List\",\"ComboBoxStyleSimple\":\"Simple\",\"ContentAlignmentBottomCenter\":\"Bottom Center\",\"ContentAlignmentBottomLeft\":\"Bottom Left\",\"ContentAlignmentBottomRight\":\"Bottom Right\",\"ContentAlignmentMiddleCenter\":\"Middle Center\",\"ContentAlignmentMiddleLeft\":\"Middle Left\",\"ContentAlignmentMiddleRight\":\"Middle Right\",\"ContentAlignmentTopCenter\":\"Top Center\",\"ContentAlignmentTopLeft\":\"Top Left\",\"ContentAlignmentTopRight\":\"Top Right\",\"DataGridLineStyleNone\":\"None\",\"DataGridLineStyleSolid\":\"Solid\",\"DateTimePickerFormatCustom\":\"Custom\",\"DateTimePickerFormatLong\":\"Long\",\"DateTimePickerFormatShort\":\"Short\",\"DateTimePickerFormatTime\":\"Time\",\"DialogResultAbort\":\"Abort\",\"DialogResultCancel\":\"Cancel\",\"DialogResultIgnore\":\"Ignore\",\"DialogResultNo\":\"No\",\"DialogResultNone\":\"None\",\"DialogResultOK\":\"OK\",\"DialogResultRetry\":\"Retry\",\"DialogResultYes\":\"Yes\",\"DuplexDefault\":\"Default\",\"DuplexHorizontal\":\"Horizontal\",\"DuplexSimplex\":\"Simplex\",\"DuplexVertical\":\"Vertical\",\"FormStartPositionCenterParent\":\"Center Parent\",\"FormStartPositionCenterScreen\":\"Center Screen\",\"FormStartPositionManual\":\"Manual\",\"FormStartPositionWindowsDefaultBounds\":\"Windows Default Bounds\",\"FormStartPositionWindowsDefaultLocation\":\"Windows Default Location\",\"FormWindowStateMaximized\":\"Maximized\",\"FormWindowStateMinimized\":\"Minimized\",\"FormWindowStateNormal\":\"Normal\",\"HorizontalAlignmentCenter\":\"Center\",\"HorizontalAlignmentLeft\":\"Left\",\"HorizontalAlignmentRight\":\"Right\",\"HotkeyPrefixHide\":\"Hide\",\"HotkeyPrefixNone\":\"None\",\"HotkeyPrefixShow\":\"Show\",\"LeftRightAlignmentLeft\":\"Left\",\"LeftRightAlignmentRight\":\"Right\",\"PictureBoxSizeModeAutoSize\":\"Auto Size\",\"PictureBoxSizeModeCenterImage\":\"Center Image\",\"PictureBoxSizeModeNormal\":\"Normal\",\"PictureBoxSizeModeStretchImage\":\"Stretch Image\",\"RelationDirectionChildToParent\":\"Child-To-Parent\",\"RelationDirectionParentToChild\":\"Parent-To-Child\",\"RightToLeftInherit\":\"Inherit\",\"RightToLeftNo\":\"No\",\"RightToLeftYes\":\"Yes\",\"SelectionModeMultiExtended\":\"Multi Extended\",\"SelectionModeMultiSimple\":\"Multi Simple\",\"SelectionModeNone\":\"None\",\"SelectionModeOne\":\"One\",\"StiAnchorModeBottom\":\"Bottom\",\"StiAnchorModeLeft\":\"Left\",\"StiAnchorModeRight\":\"Right\",\"StiAnchorModeTop\":\"Top\",\"StiAngleAngle0\":\"0 Degrees\",\"StiAngleAngle180\":\"180 Degrees\",\"StiAngleAngle270\":\"270 Degrees\",\"StiAngleAngle45\":\"45 Degrees\",\"StiAngleAngle90\":\"90 Degrees\",\"StiArrowStyleArc\":\"Arc\",\"StiArrowStyleArcAndCircle\":\"Arc and Circle\",\"StiArrowStyleCircle\":\"Circle\",\"StiArrowStyleLines\":\"Lines\",\"StiArrowStyleNone\":\"None\",\"StiArrowStyleTriangle\":\"Triangle\",\"StiBorderSidesAll\":\"All\",\"StiBorderSidesBottom\":\"Bottom\",\"StiBorderSidesLeft\":\"Left\",\"StiBorderSidesNone\":\"None\",\"StiBorderSidesRight\":\"Right\",\"StiBorderSidesTop\":\"Top\",\"StiBorderStyleBump\":\"Bump\",\"StiBorderStyleEtched\":\"Etched\",\"StiBorderStyleFlat\":\"Flat\",\"StiBorderStyleNone\":\"None\",\"StiBorderStyleRaised\":\"Raised\",\"StiBorderStyleRaisedInner\":\"Raised Inner\",\"StiBorderStyleRaisedOuter\":\"Raised Outer\",\"StiBorderStyleSunken\":\"Sunken\",\"StiBorderStyleSunkenInner\":\"Sunken Inner\",\"StiBorderStyleSunkenOuter\":\"Sunken Outer\",\"StiBrushTypeGlare\":\"Glare Brush\",\"StiBrushTypeGradient0\":\"Gradient Brush, Angle 0\",\"StiBrushTypeGradient180\":\"Gradient Brush, Angle 180\",\"StiBrushTypeGradient270\":\"Gradient Brush, Angle 270\",\"StiBrushTypeGradient45\":\"Gradient Brush, Angle 45\",\"StiBrushTypeGradient90\":\"Gradient Brush, Angle 90\",\"StiBrushTypeSolid\":\"Solid Brush\",\"StiButtonSendTypeFDF\":\"FDF\",\"StiButtonSendTypeHTML\":\"HTML\",\"StiButtonSendTypePDF\":\"PDF\",\"StiButtonSendTypeXFDF\":\"XFDF\",\"StiCalculationModeCompilation\":\"Compilation\",\"StiCalculationModeInterpretation\":\"Interpretation\",\"StiCapStyleArrow\":\"Arrow\",\"StiCapStyleDiamond\":\"Diamond\",\"StiCapStyleNone\":\"None\",\"StiCapStyleOpen\":\"Open\",\"StiCapStyleOval\":\"Oval\",\"StiCapStyleSquare\":\"Square\",\"StiCapStyleStealth\":\"Stealth\",\"StiChartLabelsStyleCategory\":\"Category\",\"StiChartLabelsStyleCategoryPercentOfTotal\":\"Category - Percent Of Total\",\"StiChartLabelsStyleCategoryValue\":\"Category - Value\",\"StiChartLabelsStylePercentOfTotal\":\"Percent Of Total\",\"StiChartLabelsStyleValue\":\"Value\",\"StiChartTitleDockBottom\":\"Bottom\",\"StiChartTitleDockLeft\":\"Left\",\"StiChartTitleDockRight\":\"Right\",\"StiChartTitleDockTop\":\"Top\",\"StiChartTrendLineTypeExponential\":\"Exponential\",\"StiChartTrendLineTypeLinear\":\"Linear\",\"StiChartTrendLineTypeLogarithmic\":\"Logarithmic\",\"StiChartTrendLineTypeNone\":\"None\",\"StiCheckStateChecked\":\"Checked\",\"StiCheckStateIndeterminate\":\"Indeterminate\",\"StiCheckStateUnchecked\":\"Unchecked\",\"StiCheckStyleCheck\":\"Check\",\"StiCheckStyleCheckRectangle\":\"Check Rectangle\",\"StiCheckStyleCross\":\"Cross\",\"StiCheckStyleCrossCircle\":\"Cross Circle\",\"StiCheckStyleCrossRectangle\":\"Cross Rectangle\",\"StiCheckStyleDotCircle\":\"Dot Circle\",\"StiCheckStyleDotRectangle\":\"Dot Rectangle\",\"StiCheckStyleNone\":\"None\",\"StiCheckStyleNoneCircle\":\"None Circle\",\"StiCheckStyleNoneRectangle\":\"None Rectangle\",\"StiCheckSumNo\":\"No\",\"StiCheckSumYes\":\"Yes\",\"StiCode11CheckSumAuto\":\"Auto\",\"StiCode11CheckSumNone\":\"None\",\"StiCode11CheckSumOneDigit\":\"One Digit\",\"StiCode11CheckSumTwoDigits\":\"Two Digits\",\"StiColorScaleTypeColor2\":\"2-Color Scale\",\"StiColorScaleTypeColor3\":\"3-Color Scale\",\"StiColumnDirectionAcrossThenDown\":\"Across Then Down\",\"StiColumnDirectionDownThenAcross\":\"Down Then Across\",\"StiColumnShape3DBox\":\"Box\",\"StiColumnShape3DPartialPyramid\":\"Partial Pyramid\",\"StiColumnShape3DPyramid\":\"Pyramid\",\"StiCrossHorAlignmentCenter\":\"Center\",\"StiCrossHorAlignmentLeft\":\"Left\",\"StiCrossHorAlignmentNone\":\"None\",\"StiCrossHorAlignmentRight\":\"Right\",\"StiDashboardContentAlignmentCenter\":\"Center\",\"StiDashboardContentAlignmentLeft\":\"Left\",\"StiDashboardContentAlignmentRight\":\"Right\",\"StiDashboardContentAlignmentStretchX\":\"Stretch X\",\"StiDashboardContentAlignmentStretchXY\":\"Stretch XY\",\"StiDateSelectionModeAutoRange\":\"Auto Range\",\"StiDateSelectionModeRange\":\"Range\",\"StiDateSelectionModeSingle\":\"Single\",\"StiDateTimeTypeDate\":\"Date\",\"StiDateTimeTypeDateAndTime\":\"Date and Time\",\"StiDateTimeTypeTime\":\"Time\",\"StiDesignerScaleModeAutomaticScaling\":\"Automatic Scaling\",\"StiDesignerScaleModeScaling100\":\"100% Scaling\",\"StiDesignerSpecificationAuto\":\"Determine Automatically\",\"StiDesignerSpecificationBeginner\":\"I\\'m Beginner\",\"StiDesignerSpecificationBICreator\":\"I\\'m Creator\",\"StiDesignerSpecificationDeveloper\":\"I\\'m Developer\",\"StiDirectionBottomToTop\":\"Bottom to Top\",\"StiDirectionLeftToRight\":\"Left to Right\",\"StiDirectionRightToLeft\":\"Right to Left\",\"StiDirectionTopToBottom\":\"Top to Bottom\",\"StiDisplayNameTypeFull\":\"Full\",\"StiDisplayNameTypeNone\":\"None\",\"StiDisplayNameTypeShort\":\"Short\",\"StiDockStyleBottom\":\"Bottom\",\"StiDockStyleFill\":\"Fill\",\"StiDockStyleLeft\":\"Left\",\"StiDockStyleNone\":\"None\",\"StiDockStyleRight\":\"Right\",\"StiDockStyleTop\":\"Top\",\"StiDrillDownModeMultiPage\":\"Multi Page\",\"StiDrillDownModeSinglePage\":\"Single Page\",\"StiEanSupplementTypeFiveDigit\":\"FiveDigit\",\"StiEanSupplementTypeNone\":\"None\",\"StiEanSupplementTypeTwoDigit\":\"TwoDigit\",\"StiEmptyCellsAsConnectPointsWithLine\":\"Connect Points with Line\",\"StiEmptyCellsAsGap\":\"Gap\",\"StiEmptyCellsAsZero\":\"Zero\",\"StiEmptySizeModeAlignFooterToBottom\":\"Align Footer to Bottom\",\"StiEmptySizeModeAlignFooterToTop\":\"Align Footer to Top\",\"StiEmptySizeModeDecreaseLastRow\":\"Decrease Last Row\",\"StiEmptySizeModeIncreaseLastRow\":\"Increase Last Row\",\"StiEnumeratorTypeABC\":\"ABC\",\"StiEnumeratorTypeArabic\":\"Arabic\",\"StiEnumeratorTypeNone\":\"None\",\"StiEnumeratorTypeRoman\":\"Roman\",\"StiExtendedStyleBoolFalse\":\"False\",\"StiExtendedStyleBoolFromStyle\":\"From Style\",\"StiExtendedStyleBoolTrue\":\"True\",\"StiFilterConditionBeginningWith\":\"beginning with\",\"StiFilterConditionBetween\":\"between\",\"StiFilterConditionContaining\":\"containing\",\"StiFilterConditionEndingWith\":\"ending with\",\"StiFilterConditionEqualTo\":\"equal to\",\"StiFilterConditionGreaterThan\":\"greater than\",\"StiFilterConditionGreaterThanOrEqualTo\":\"greater than or equal to\",\"StiFilterConditionIsBlank\":\"is blank\",\"StiFilterConditionIsNotBlank\":\"is not blank\",\"StiFilterConditionIsNotNull\":\"is not null\",\"StiFilterConditionIsNull\":\"is null\",\"StiFilterConditionLessThan\":\"less than\",\"StiFilterConditionLessThanOrEqualTo\":\"less than or equal to\",\"StiFilterConditionNotBetween\":\"not between\",\"StiFilterConditionNotContaining\":\"not containing\",\"StiFilterConditionNotEqualTo\":\"not equal to\",\"StiFilterDataTypeBoolean\":\"Boolean\",\"StiFilterDataTypeDateTime\":\"DateTime\",\"StiFilterDataTypeExpression\":\"Expression\",\"StiFilterDataTypeNumeric\":\"Numeric\",\"StiFilterDataTypeString\":\"String\",\"StiFilterEngineReportEngine\":\"Report Engine\",\"StiFilterEngineSQLQuery\":\"SQL Query\",\"StiFilterItemArgument\":\"Argument\",\"StiFilterItemExpression\":\"Expression\",\"StiFilterItemValue\":\"Value\",\"StiFilterItemValueClose\":\"Value Close\",\"StiFilterItemValueEnd\":\"Value End\",\"StiFilterItemValueHigh\":\"Value High\",\"StiFilterItemValueLow\":\"Value Low\",\"StiFilterItemValueOpen\":\"Value Open\",\"StiFilterModeAnd\":\"And\",\"StiFilterModeOr\":\"Or\",\"StiFontIconGroupAccessibilityIcons\":\"Accessibility\",\"StiFontIconGroupBrandIcons\":\"Brand\",\"StiFontIconGroupDirectionalIcons\":\"Directional\",\"StiFontIconGroupGenderIcons\":\"Gender\",\"StiFontIconGroupMedicalIcons\":\"Medical\",\"StiFontIconGroupPaymentIcons\":\"Payment\",\"StiFontIconGroupSpinnerIcons\":\"Spinner\",\"StiFontIconGroupTransportationIcons\":\"Transportation\",\"StiFontIconGroupVideoPlayerIcons\":\"Video\",\"StiFontIconGroupWebApplicationIcons\":\"Application\",\"StiFontSizeModeAuto\":\"Auto\",\"StiFontSizeModeTarget\":\"Target\",\"StiFontSizeModeValue\":\"Value\",\"StiFormStartModeOnEnd\":\"On End\",\"StiFormStartModeOnPreview\":\"On Preview\",\"StiFormStartModeOnStart\":\"On Start\",\"StiGaugeCalculationModeAuto\":\"Auto\",\"StiGaugeCalculationModeCustom\":\"Custom\",\"StiGaugeRangeModePercentage\":\"Percentage\",\"StiGaugeRangeModeValue\":\"Value\",\"StiGaugeRangeTypeColor\":\"Color\",\"StiGaugeRangeTypeNone\":\"None\",\"StiGaugeTypeBullet\":\"Bullet\",\"StiGaugeTypeFullCircular\":\"Full Circular\",\"StiGaugeTypeHalfCircular\":\"Half-Circular\",\"StiGaugeTypeHorizontalLinear\":\"Horizontal Linear\",\"StiGaugeTypeLinear\":\"Vertical Linear\",\"StiGroupSortDirectionAscending\":\"Ascending\",\"StiGroupSortDirectionDescending\":\"Descending\",\"StiGroupSortDirectionNone\":\"None\",\"StiHorAlignmentCenter\":\"Center\",\"StiHorAlignmentLeft\":\"Left\",\"StiHorAlignmentRight\":\"Right\",\"StiIconAlignmentBottom\":\"Bottom\",\"StiIconAlignmentLeft\":\"Left\",\"StiIconAlignmentNone\":\"None\",\"StiIconAlignmentRight\":\"Right\",\"StiIconAlignmentTop\":\"Top\",\"StiImageProcessingDuplicatesTypeGlobalHide\":\"Global Hide\",\"StiImageProcessingDuplicatesTypeGlobalMerge\":\"Global Merge\",\"StiImageProcessingDuplicatesTypeGlobalRemoveImage\":\"Global Remove Image\",\"StiImageProcessingDuplicatesTypeHide\":\"Hide\",\"StiImageProcessingDuplicatesTypeMerge\":\"Merge\",\"StiImageProcessingDuplicatesTypeNone\":\"None\",\"StiImageProcessingDuplicatesTypeRemoveImage\":\"Remove Image\",\"StiImageRotationFlipHorizontal\":\"Flip Horizontal\",\"StiImageRotationFlipVertical\":\"Flip Vertical\",\"StiImageRotationNone\":\"None\",\"StiImageRotationRotate180\":\"Rotate 180°\",\"StiImageRotationRotate90CCW\":\"Rotate 90° CCW\",\"StiImageRotationRotate90CW\":\"Rotate 90° CW\",\"StiInteractionOnClick\":\"None\",\"StiInteractionOnClickApplyFilter\":\"Apply Filter\",\"StiInteractionOnClickDrillDown\":\"Drill-Down\",\"StiInteractionOnClickOpenHyperlink\":\"Open Hyperlink\",\"StiInteractionOnClickShowDashboard\":\"Show Dashboard\",\"StiInteractionOnHoverNone\":\"None\",\"StiInteractionOnHoverShowHyperlink\":\"Show Hyperlink\",\"StiInteractionOnHoverShowToolTip\":\"Show Tool Tip\",\"StiInteractionOpenHyperlinkDestinationCurrentTab\":\"Current Tab\",\"StiInteractionOpenHyperlinkDestinationNewTab\":\"New Tab\",\"StiItemOrientationHorizontal\":\"Horizontal\",\"StiItemOrientationVertical\":\"Vertical\",\"StiItemSelectionModeMulti\":\"Multi\",\"StiItemSelectionModeOne\":\"One\",\"StiKeepDetailsKeepDetailsTogether\":\"Keep Details Together\",\"StiKeepDetailsKeepFirstDetailTogether\":\"Keep First Detail Together\",\"StiKeepDetailsKeepFirstRowTogether\":\"Keep First Row Together\",\"StiKeepDetailsNone\":\"None\",\"StiLabelPlacementInside\":\"Inside\",\"StiLabelPlacementOutside\":\"Outside\",\"StiLabelsPlacementAutoRotation\":\"Auto Rotation\",\"StiLabelsPlacementNone\":\"None\",\"StiLabelsPlacementOneLine\":\"One Line\",\"StiLabelsPlacementTwoLines\":\"Two Lines\",\"StiLegendDirectionBottomToTop\":\"Bottom to Top\",\"StiLegendDirectionLeftToRight\":\"Left to Right\",\"StiLegendDirectionRightToLeft\":\"Right to Left\",\"StiLegendDirectionTopToBottom\":\"Top to Bottom\",\"StiLegendHorAlignmentCenter\":\"Center\",\"StiLegendHorAlignmentLeft\":\"Left\",\"StiLegendHorAlignmentLeftOutside\":\"Left Outside\",\"StiLegendHorAlignmentRight\":\"Right\",\"StiLegendHorAlignmentRightOutside\":\"Right Outside\",\"StiLegendVertAlignmentBottom\":\"Bottom\",\"StiLegendVertAlignmentBottomOutside\":\"Bottom Outside\",\"StiLegendVertAlignmentCenter\":\"Center\",\"StiLegendVertAlignmentTop\":\"Top\",\"StiLegendVertAlignmentTopOutside\":\"Top Outside\",\"StiLineWeightNormal\":\"Normal\",\"StiLineWeightThick\":\"Thick\",\"StiLineWeightThin\":\"Thin\",\"StiMapModeChoropleth\":\"Choropleth\",\"StiMapModeOnline\":\"Online\",\"StiMapTypeGroup\":\"Group\",\"StiMapTypeHeatmap\":\"Heatmap\",\"StiMapTypeHeatmapWithGroup\":\"Heatmap With Group\",\"StiMapTypeIndividual\":\"Individual\",\"StiMapTypeNone\":\"None\",\"StiMapTypePoints\":\"Points\",\"StiMarkerAlignmentCenter\":\"Center\",\"StiMarkerAlignmentLeft\":\"Left\",\"StiMarkerAlignmentRight\":\"Right\",\"StiMarkerTypeCircle\":\"Circle\",\"StiMarkerTypeHalfCircle\":\"Half Circle\",\"StiMarkerTypeHexagon\":\"Hexagon\",\"StiMarkerTypeRectangle\":\"Rectangle\",\"StiMarkerTypeStar5\":\"Star 5\",\"StiMarkerTypeStar6\":\"Star 6\",\"StiMarkerTypeStar7\":\"Star 7\",\"StiMarkerTypeStar8\":\"Star 8\",\"StiMarkerTypeTriangle\":\"Triangle\",\"StiNestedFactorHigh\":\"High\",\"StiNestedFactorLow\":\"Low\",\"StiNestedFactorNormal\":\"Normal\",\"StiNumberOfPassDoublePass\":\"Double Pass\",\"StiNumberOfPassSinglePass\":\"Single Pass\",\"StiOnlineMapHeatmapColorGradientTypeAddRange\":\"Add Range\",\"StiOnlineMapHeatmapColorGradientTypeBlackAquaWhite\":\"Black Aqua White\",\"StiOnlineMapHeatmapColorGradientTypeBlueRed\":\"Blue Red\",\"StiOnlineMapHeatmapColorGradientTypeColorSpectrum\":\"Color Spectrum\",\"StiOnlineMapHeatmapColorGradientTypeDeepSea\":\"Deep Sea\",\"StiOnlineMapHeatmapColorGradientTypeHeatedMetal\":\"Heated Metal\",\"StiOnlineMapHeatmapColorGradientTypeIncandescent\":\"Incandescent\",\"StiOnlineMapHeatmapColorGradientTypeSteppedColors\":\"Stepped Colors\",\"StiOnlineMapHeatmapColorGradientTypeSunrise\":\"Sunrise\",\"StiOnlineMapHeatmapColorGradientTypeVisibleSpectrum\":\"Visible Spectrum\",\"StiOnlineMapLocationTypeAdminDivision1\":\"AdminDivision1\",\"StiOnlineMapLocationTypeAdminDivision2\":\"AdminDivision2\",\"StiOnlineMapLocationTypeAuto\":\"Auto\",\"StiOnlineMapLocationTypeCountryRegion\":\"CountryRegion\",\"StiOnlineMapLocationTypeNeighborhood\":\"Neighborhood\",\"StiOnlineMapLocationTypePopulatedPlace\":\"PopulatedPlace\",\"StiOnlineMapLocationTypePostcode1\":\"Postcode1\",\"StiOnlineMapLocationTypePostcode2\":\"Postcode2\",\"StiOnlineMapLocationTypePostcode3\":\"Postcode3\",\"StiOnlineMapLocationTypePostcode4\":\"Postcode4\",\"StiOrientationHorizontal\":\"Horizontal\",\"StiOrientationHorizontalRight\":\"Horizontal Right\",\"StiOrientationVertical\":\"Vertical\",\"StiPageOrientationLandscape\":\"Landscape\",\"StiPageOrientationPortrait\":\"Portrait\",\"StiPenStyleDash\":\"Dash\",\"StiPenStyleDashDot\":\"Dash Dot\",\"StiPenStyleDashDotDot\":\"Dash Dot Dot\",\"StiPenStyleDot\":\"Dot\",\"StiPenStyleDouble\":\"Double\",\"StiPenStyleNone\":\"None\",\"StiPenStyleSolid\":\"Solid\",\"StiPlacementInside\":\"Inside\",\"StiPlacementOutside\":\"Outside\",\"StiPlacementOverlay\":\"Overlay\",\"StiPlesseyCheckSumModulo10\":\"Modulo10\",\"StiPlesseyCheckSumModulo11\":\"Modulo11\",\"StiPlesseyCheckSumNone\":\"None\",\"StiPreviewModeDotMatrix\":\"Dot-Matrix\",\"StiPreviewModeStandard\":\"Standard\",\"StiPreviewModeStandardAndDotMatrix\":\"Standard and Dot-Matrix\",\"StiPrintOnEvenOddPagesTypeIgnore\":\"Ignore\",\"StiPrintOnEvenOddPagesTypePrintOnEvenPages\":\"Print on Even Pages\",\"StiPrintOnEvenOddPagesTypePrintOnOddPages\":\"Print on Odd Pages\",\"StiPrintOnTypeAllPages\":\"All Pages\",\"StiPrintOnTypeExceptFirstAndLastPage\":\"Except First and Last Page\",\"StiPrintOnTypeExceptFirstPage\":\"Except First Page\",\"StiPrintOnTypeExceptLastPage\":\"Except Last Page\",\"StiPrintOnTypeOnlyFirstAndLastPage\":\"Only First and Last Page\",\"StiPrintOnTypeOnlyFirstPage\":\"Only First Page\",\"StiPrintOnTypeOnlyLastPage\":\"Only Last Page\",\"StiProcessAtEndOfPage\":\"End of Page\",\"StiProcessAtEndOfReport\":\"End of Report\",\"StiProcessAtNone\":\"None\",\"StiProcessingDuplicatesTypeBasedOnTagHide\":\"Hide based on Tag\",\"StiProcessingDuplicatesTypeBasedOnTagMerge\":\"Merge based on Tag\",\"StiProcessingDuplicatesTypeBasedOnTagRemoveText\":\"Remove Text based on Tag\",\"StiProcessingDuplicatesTypeBasedOnValueAndTagHide\":\"Hide based on Value and Tag\",\"StiProcessingDuplicatesTypeBasedOnValueAndTagMerge\":\"Merge based on Value and Tag\",\"StiProcessingDuplicatesTypeBasedOnValueRemoveText\":\"Remove based on Value Text\",\"StiProcessingDuplicatesTypeGlobalBasedOnValueAndTagHide\":\"Global Hide based on Value and Tag\",\"StiProcessingDuplicatesTypeGlobalBasedOnValueAndTagMerge\":\"Global Merge based on Value and Tag\",\"StiProcessingDuplicatesTypeGlobalBasedOnValueRemoveText\":\"Global Remove based on Value Text\",\"StiProcessingDuplicatesTypeGlobalHide\":\"Global Hide\",\"StiProcessingDuplicatesTypeGlobalMerge\":\"Global Merge\",\"StiProcessingDuplicatesTypeGlobalRemoveText\":\"Global Remove Text\",\"StiProcessingDuplicatesTypeHide\":\"Hide\",\"StiProcessingDuplicatesTypeMerge\":\"Merge\",\"StiProcessingDuplicatesTypeNone\":\"None\",\"StiProcessingDuplicatesTypeRemoveText\":\"Remove Text\",\"StiProgressElementModeCircle\":\"Circle\",\"StiProgressElementModeDataBars\":\"DataBars\",\"StiProgressElementModePie\":\"Pie\",\"StiQRCodeBodyShapeTypeCircle\":\"Circle\",\"StiQRCodeBodyShapeTypeCircular\":\"Circular\",\"StiQRCodeBodyShapeTypeDiamond\":\"Diamond\",\"StiQRCodeBodyShapeTypeDockedDiamonds\":\"Docked Diamonds\",\"StiQRCodeBodyShapeTypeDot\":\"Dot\",\"StiQRCodeBodyShapeTypeRoundedSquare\":\"Rounded Square\",\"StiQRCodeBodyShapeTypeSquare\":\"Square\",\"StiQRCodeBodyShapeTypeStar\":\"Star\",\"StiQRCodeBodyShapeTypeZebraCross\":\"Zebra Cross\",\"StiQRCodeBodyShapeTypeZebraHorizontal\":\"Zebra Horizontal\",\"StiQRCodeBodyShapeTypeZebraVertical\":\"Zebra Vertical\",\"StiQRCodeEyeBallShapeTypeCircle\":\"Circle\",\"StiQRCodeEyeBallShapeTypeDots\":\"Dots\",\"StiQRCodeEyeBallShapeTypeRound\":\"Round\",\"StiQRCodeEyeBallShapeTypeSquare\":\"Square\",\"StiQRCodeEyeBallShapeTypeStar\":\"Star\",\"StiQRCodeEyeBallShapeTypeZebraHorizontal\":\"Zebra Horizontal\",\"StiQRCodeEyeBallShapeTypeZebraVertical\":\"Zebra Vertical\",\"StiRadarStyleXFCircle\":\"Circle\",\"StiRadarStyleXFPolygon\":\"Polygon\",\"StiReportCacheModeAuto\":\"Auto\",\"StiReportCacheModeOff\":\"Off\",\"StiReportCacheModeOn\":\"On\",\"StiReportUnitTypeCentimeters\":\"Centimeters\",\"StiReportUnitTypeHundredthsOfInch\":\"Hundredths of Inch\",\"StiReportUnitTypeInches\":\"Inches\",\"StiReportUnitTypeMillimeters\":\"Millimeters\",\"StiReportUnitTypePixels\":\"Pixels\",\"StiRestrictionsAll\":\"All\",\"StiRestrictionsAllowChange\":\"Allow Change\",\"StiRestrictionsAllowDelete\":\"Allow Delete\",\"StiRestrictionsAllowMove\":\"Allow Move\",\"StiRestrictionsAllowResize\":\"Allow Resize\",\"StiRestrictionsAllowSelect\":\"Allow Select\",\"StiRestrictionsNone\":\"None\",\"StiSelectionModeFirst\":\"First\",\"StiSelectionModeFromVariable\":\"From Variable\",\"StiSelectionModeNothing\":\"Nothing\",\"StiSeriesLabelsValueTypeArgument\":\"Argument\",\"StiSeriesLabelsValueTypeArgumentValue\":\"Argument - Value\",\"StiSeriesLabelsValueTypeSeriesTitle\":\"Series Title\",\"StiSeriesLabelsValueTypeSeriesTitleArgument\":\"Series Title - Argument\",\"StiSeriesLabelsValueTypeSeriesTitleValue\":\"Series Title - Value\",\"StiSeriesLabelsValueTypeTag\":\"Tag\",\"StiSeriesLabelsValueTypeValue\":\"Value\",\"StiSeriesLabelsValueTypeValueArgument\":\"Value - Argument\",\"StiSeriesLabelsValueTypeWeight\":\"Weight\",\"StiSeriesSortDirectionAscending\":\"Ascending\",\"StiSeriesSortDirectionDescending\":\"Descending\",\"StiSeriesSortTypeArgument\":\"Argument\",\"StiSeriesSortTypeNone\":\"None\",\"StiSeriesSortTypeValue\":\"Value\",\"StiSeriesXAxisBottomXAxis\":\"Bottom X Axis\",\"StiSeriesXAxisTopXAxis\":\"Top X Axis\",\"StiSeriesYAxisLeftYAxis\":\"Left Y Axis\",\"StiSeriesYAxisRightYAxis\":\"Right Y Axis\",\"StiShapeDirectionDown\":\"Down\",\"StiShapeDirectionLeft\":\"Left\",\"StiShapeDirectionRight\":\"Right\",\"StiShapeDirectionUp\":\"Up\",\"StiShiftModeDecreasingSize\":\"Decreasing Size\",\"StiShiftModeIncreasingSize\":\"Increasing Size\",\"StiShiftModeNone\":\"None\",\"StiShiftModeOnlyInWidthOfComponent\":\"Only in Width of Component\",\"StiShowSeriesLabelsFromChart\":\"From Chart\",\"StiShowSeriesLabelsFromSeries\":\"From Series\",\"StiShowSeriesLabelsNone\":\"None\",\"StiShowXAxisBoth\":\"Both\",\"StiShowXAxisBottom\":\"Bottom\",\"StiShowXAxisCenter\":\"Center\",\"StiShowYAxisBoth\":\"Both\",\"StiShowYAxisCenter\":\"Center\",\"StiShowYAxisLeft\":\"Left\",\"StiSignatureTypeDigitalSignature\":\"Digital Signature\",\"StiSignatureTypeDraw\":\"Draw\",\"StiSignatureTypeType\":\"Type\",\"StiSizeModeAutoSize\":\"Auto Size\",\"StiSizeModeFit\":\"Fit\",\"StiSortDirectionAsc\":\"Ascending\",\"StiSortDirectionDesc\":\"Descending\",\"StiSortDirectionNone\":\"None\",\"StiSortTypeByDisplayValue\":\"by Display Value\",\"StiSortTypeByValue\":\"by Value\",\"StiSqlSourceTypeStoredProcedure\":\"Stored Procedure\",\"StiSqlSourceTypeTable\":\"Query\",\"StiStyleComponentTypeChart\":\"Chart\",\"StiStyleComponentTypeCheckBox\":\"Check Box\",\"StiStyleComponentTypeCrossTab\":\"Cross-Tab\",\"StiStyleComponentTypeImage\":\"Image\",\"StiStyleComponentTypePrimitive\":\"Primitive\",\"StiStyleComponentTypeText\":\"Text\",\"StiStyleConditionTypeComponentName\":\"Component Name\",\"StiStyleConditionTypeComponentType\":\"Component Type\",\"StiStyleConditionTypeLocation\":\"Location\",\"StiStyleConditionTypePlacement\":\"Placement\",\"StiSummaryValuesAllValues\":\"All Values\",\"StiSummaryValuesSkipNulls\":\"Skip Nulls\",\"StiSummaryValuesSkipZerosAndNulls\":\"Skip Zeros and Nulls\",\"StiTablceCellTypeCheckBox\":\"CheckBox\",\"StiTablceCellTypeImage\":\"Image\",\"StiTablceCellTypeRichText\":\"RichText\",\"StiTablceCellTypeText\":\"Text\",\"StiTableAutoWidthNone\":\"None\",\"StiTableAutoWidthPage\":\"Page\",\"StiTableAutoWidthTable\":\"Table\",\"StiTableAutoWidthTypeFullTable\":\"Full Table\",\"StiTableAutoWidthTypeLastColumns\":\"Last Columns\",\"StiTableAutoWidthTypeNone\":\"None\",\"StiTargetModePercentage\":\"Percentage\",\"StiTargetModeVariation\":\"Variation\",\"StiTextHorAlignmentCenter\":\"Center\",\"StiTextHorAlignmentLeft\":\"Left\",\"StiTextHorAlignmentRight\":\"Right\",\"StiTextHorAlignmentWidth\":\"Width\",\"StiTextPositionCenterBottom\":\"Center Bottom\",\"StiTextPositionCenterTop\":\"Center Top\",\"StiTextPositionLeftBottom\":\"Left Bottom\",\"StiTextPositionLeftTop\":\"Left Top\",\"StiTextPositionRightBottom\":\"Right Bottom\",\"StiTextPositionRightTop\":\"Right Top\",\"StiTextQualityStandard\":\"Standard\",\"StiTextQualityTypographic\":\"Typographic\",\"StiTextQualityWysiwyg\":\"Wysiwyg\",\"StiTextSizeModeFit\":\"Fit\",\"StiTextSizeModeTrimming\":\"Trimming\",\"StiTextSizeModeWordWrap\":\"Word Wrap\",\"StiTimeDateStepDay\":\"Day\",\"StiTimeDateStepHour\":\"Hour\",\"StiTimeDateStepMinute\":\"Minute\",\"StiTimeDateStepMonth\":\"Month\",\"StiTimeDateStepNone\":\"None\",\"StiTimeDateStepSecond\":\"Second\",\"StiTimeDateStepYear\":\"Year\",\"StiTitlePositionInside\":\"Inside\",\"StiTitlePositionOutside\":\"Outside\",\"StiTopNModeBottom\":\"Bottom\",\"StiTopNModeNone\":\"None\",\"StiTopNModeTop\":\"Top\",\"StiTypeModeList\":\"List\",\"StiTypeModeNullableValue\":\"Nullable Value\",\"StiTypeModeRange\":\"Range\",\"StiTypeModeValue\":\"Value\",\"StiUnitAlignmentPrefix\":\"Prefix\",\"StiUnitAlignmentPrefixInside\":\"Prefix Inside\",\"StiUnitAlignmentPrefixInsideWithSpace\":\"Prefix Inside with Space\",\"StiUnitAlignmentSuffix\":\"Suffix\",\"StiUnitAlignmentSuffixInside\":\"Suffix Inside\",\"StiUnitAlignmentSuffixInsideWithSpace\":\"Suffix Inside with Space\",\"StiVertAlignmentBottom\":\"Bottom\",\"StiVertAlignmentCenter\":\"Center\",\"StiVertAlignmentTop\":\"Top\",\"StiViewModeNormal\":\"Normal\",\"StiViewModePageBreakPreview\":\"Page Break Preview\",\"StiXmlTypeAdoNetXml\":\"ADO.NET XML\",\"StiXmlTypeXml\":\"XML\",\"StringAlignmentCenter\":\"Center\",\"StringAlignmentFar\":\"Far\",\"StringAlignmentNear\":\"Near\",\"StringTrimmingCharacter\":\"Character\",\"StringTrimmingEllipsisCharacter\":\"Ellipsis Character\",\"StringTrimmingEllipsisPath\":\"Ellipsis Path\",\"StringTrimmingEllipsisWord\":\"Ellipsis Word\",\"StringTrimmingNone\":\"None\",\"StringTrimmingWord\":\"Word\"},\"PropertyEvents\":{\"AfterPrintEvent\":\"After Print\",\"AfterSelectEvent\":\"After Select\",\"BeforePrintEvent\":\"Before Print\",\"BeginRenderEvent\":\"Begin Render\",\"CheckedChangedEvent\":\"Checked Changed\",\"ClickEvent\":\"Click\",\"ClosedFormEvent\":\"Closed Form\",\"ClosingFormEvent\":\"Closing Form\",\"ColumnBeginRenderEvent\":\"Column Begin Render\",\"ColumnEndRenderEvent\":\"Column End Render\",\"ConnectedEvent\":\"ConnectedEvent\",\"ConnectingEvent\":\"ConnectingEvent\",\"DisconnectedEvent\":\"Disconnected\",\"DisconnectingEvent\":\"Disconnecting\",\"DoubleClickEvent\":\"Double Click\",\"EndRenderEvent\":\"End Render\",\"EnterEvent\":\"Enter\",\"ExportedEvent\":\"Exported\",\"ExportingEvent\":\"Exporting\",\"FillParametersEvent\":\"Fill Parameters\",\"GetArgumentEvent\":\"Get Argument\",\"GetBarCodeEvent\":\"Get BarCode\",\"GetBookmarkEvent\":\"Get Bookmark\",\"GetCheckedEvent\":\"Get Checked\",\"GetCollapsedEvent\":\"Get Collapsed\",\"GetCrossValueEvent\":\"Get Cross Value\",\"GetCutPieListEvent\":\"Get Cut Pie List\",\"GetDataUrlEvent\":\"Get DataUrl\",\"GetDisplayCrossValueEvent\":\"Get Display Cross Value\",\"GetDrillDownReportEvent\":\"Get Drill-Down Report\",\"GetExcelSheetEvent\":\"Get Excel Sheet\",\"GetExcelValueEvent\":\"Get Excel Value\",\"GetHyperlinkEvent\":\"Get Hyperlink\",\"GetImageDataEvent\":\"Get Image Data\",\"GetImageURLEvent\":\"Get Image URL\",\"GetListOfArgumentsEvent\":\"Get List of Arguments\",\"GetListOfHyperlinksEvent\":\"Get List of Hyperlinks\",\"GetListOfTagsEvent\":\"Get List of Tags\",\"GetListOfToolTipsEvent\":\"Get List of Tool Tips\",\"GetListOfValuesEndEvent\":\"Get List of Values End\",\"GetListOfValuesEvent\":\"Get List of Values\",\"GetListOfWeights\":\"Get List of Weights\",\"GetListOfWeightsEvent\":\"Get List of Weights\",\"GetPointerEvent\":\"Get Pointer\",\"GetSummaryExpressionEvent\":\"Get Summary Expression\",\"GetTagEvent\":\"Get Tag\",\"GetTitleEvent\":\"Get Title\",\"GetToolTipEvent\":\"Get Tool Tip\",\"GetValueEndEvent\":\"Get Value End\",\"GetValueEvent\":\"Get Value\",\"GetWeightEvent\":\"Get Weight\",\"LeaveEvent\":\"Leave\",\"LoadFormEvent\":\"Load Form\",\"MouseDownEvent\":\"Mouse Down\",\"MouseEnterEvent\":\"Mouse Enter\",\"MouseLeaveEvent\":\"Mouse Leave\",\"MouseMoveEvent\":\"Mouse Move\",\"MouseUpEvent\":\"Mouse Up\",\"NewAutoSeriesEvent\":\"New Auto Series\",\"PositionChangedEvent\":\"Position Changed\",\"PrintedEvent\":\"Printed\",\"PrintingEvent\":\"Printing\",\"ProcessCellEvent\":\"Process Cell\",\"ProcessChartEvent\":\"Process Chart\",\"RenderingEvent\":\"Rendering\",\"ReportCacheProcessingEvent\":\"Report Cache Processing\",\"SelectedIndexChangedEvent\":\"Selected Index Changed\",\"StateRestoreEvent\":\"State Restore\",\"StateSaveEvent\":\"State Save\",\"ValueChangedEvent\":\"Value Changed\"},\"PropertyHatchStyle\":{\"BackwardDiagonal\":\"Backward Diagonal\",\"Cross\":\"Cross\",\"DarkDownwardDiagonal\":\"Dark Downward Diagonal\",\"DarkHorizontal\":\"Dark Horizontal\",\"DarkUpwardDiagonal\":\"Dark Upward Diagonal\",\"DarkVertical\":\"Dark Vertical\",\"DashedDownwardDiagonal\":\"Dashed Downward Diagonal\",\"DashedHorizontal\":\"Dashed Horizontal\",\"DashedUpwardDiagonal\":\"Dashed Upward Diagonal\",\"DashedVertical\":\"Dashed Vertical\",\"DiagonalBrick\":\"Diagonal Brick\",\"DiagonalCross\":\"Diagonal Cross\",\"Divot\":\"Divot\",\"DottedDiamond\":\"Dotted Diamond\",\"DottedGrid\":\"Dotted Grid\",\"ForwardDiagonal\":\"Forward Diagonal\",\"Horizontal\":\"Horizontal\",\"HorizontalBrick\":\"Horizontal Brick\",\"LargeCheckerBoard\":\"Large Checker Board\",\"LargeConfetti\":\"Large Confetti\",\"LargeGrid\":\"Large Grid\",\"LightDownwardDiagonal\":\"Light Downward Diagonal\",\"LightHorizontal\":\"Light Horizontal\",\"LightUpwardDiagonal\":\"Light Upward Diagonal\",\"LightVertical\":\"Light Vertical\",\"NarrowHorizontal\":\"Narrow Horizontal\",\"NarrowVertical\":\"Narrow Vertical\",\"OutlinedDiamond\":\"Outlined Diamond\",\"Percent05\":\"Percent05\",\"Percent10\":\"Percent10\",\"Percent20\":\"Percent20\",\"Percent25\":\"Percent25\",\"Percent30\":\"Percent30\",\"Percent40\":\"Percent40\",\"Percent50\":\"Percent50\",\"Percent60\":\"Percent60\",\"Percent70\":\"Percent70\",\"Percent75\":\"Percent75\",\"Percent80\":\"Percent80\",\"Percent90\":\"Percent90\",\"Plaid\":\"Plaid\",\"Shingle\":\"Shingle\",\"SmallCheckerBoard\":\"Small Checker Board\",\"SmallConfetti\":\"Small Confetti\",\"SmallGrid\":\"Small Grid\",\"SolidDiamond\":\"Solid Diamond\",\"Sphere\":\"Sphere\",\"Trellis\":\"Trellis\",\"Vertical\":\"Vertical\",\"Wave\":\"Wave\",\"Weave\":\"Weave\",\"WideDownwardDiagonal\":\"Wide Downward Diagonal\",\"WideUpwardDiagonal\":\"Wide Upward Diagonal\",\"ZigZag\":\"Zig Zag\"},\"PropertyMain\":{\"AcceptsReturn\":\"Accepts Return\",\"AcceptsTab\":\"Accepts Tab\",\"Actual\":\"Actual\",\"AddClearZone\":\"Add Clear Zone\",\"Advanced\":\"Advanced\",\"AggregateFunction\":\"Aggregate Function\",\"AggregateFunctions\":\"Aggregate Functions\",\"Alias\":\"Alias\",\"Alignment\":\"Alignment\",\"AllowApplyBorderColor\":\"Allow Apply Border Color\",\"AllowApplyBrush\":\"Allow Apply Brush\",\"AllowApplyBrushNegative\":\"Allow Apply Brush Negative\",\"AllowApplyColorNegative\":\"Allow Apply Color Negative\",\"AllowApplyLineColor\":\"Allow Apply Line Color\",\"AllowApplyStyle\":\"Allow Apply Style\",\"AllowExpressions\":\"Allow Expressions\",\"AllowHtmlTags\":\"Allow HTML Tags\",\"AllowNull\":\"Allow Null\",\"AllowSeries\":\"Allow Series\",\"AllowSeriesElements\":\"Allow Series Elements\",\"AllowSorting\":\"Allow Sorting\",\"AllowUseBackColor\":\"Allow Use Back Color\",\"AllowUseBorder\":\"Allow Use Border\",\"AllowUseBorderFormatting\":\"Allow Use Border Formatting\",\"AllowUseBorderSides\":\"Allow Use Border Sides\",\"AllowUseBorderSidesFromLocation\":\"Allow Use Border Sides from Location\",\"AllowUseBrush\":\"Allow Use Brush\",\"AllowUseFont\":\"Allow Use Font\",\"AllowUseForeColor\":\"Allow Use Fore Color\",\"AllowUseHorAlignment\":\"Allow Use Hor Alignment\",\"AllowUseImage\":\"Allow Use Image\",\"AllowUseNegativeTextBrush\":\"Allow Use Negative Text Brush\",\"AllowUserValues\":\"Allow User Values\",\"AllowUseTextBrush\":\"Allow Use Text Brush\",\"AllowUseTextFormat\":\"Allow Use Text Format\",\"AllowUseTextOptions\":\"Allow Use Text Options\",\"AllowUseVertAlignment\":\"Allow Use Vert Alignment\",\"AllowUsingAsSqlParameter\":\"Allow using as SQL parameter\",\"AlternatingBackColor\":\"Alternating Back Color\",\"AlternatingCellBackColor\":\"Alternating Cell Back Color\",\"AlternatingCellForeColor\":\"Alternating Cell Fore Color\",\"AlternatingDataColor\":\"Alternating Data Color\",\"AlternatingDataForeground\":\"Alternating Data Foreground\",\"Always\":\"Always\",\"Anchor\":\"Anchor\",\"Angle\":\"Angle\",\"Antialiasing\":\"Antialiasing\",\"Apply\":\"Apply\",\"Area\":\"Area\",\"Argument\":\"Argument\",\"ArgumentDataColumn\":\"Argument Data Column\",\"ArgumentFormat\":\"Argument Format\",\"Arguments\":\"Arguments\",\"ArrowHeight\":\"Arrow Height\",\"ArrowStyle\":\"Arrow Style\",\"ArrowWidth\":\"Arrow Width\",\"AspectRatio\":\"Aspect Ratio\",\"Author\":\"Author\",\"Auto\":\"Auto\",\"AutoCalculateCenterPoint\":\"Auto Calculate Center Point\",\"AutoDataColumns\":\"Auto Data Columns\",\"AutoDataRows\":\"Auto Data Rows\",\"AutoLocalizeReportOnRun\":\"Auto Localize Report on Run\",\"AutoRefresh\":\"Auto Refresh\",\"AutoRotate\":\"Auto Rotate\",\"AutoScale\":\"Auto Scale\",\"AutoSeriesColorDataColumn\":\"Auto Series Color Data Column\",\"AutoSeriesKeyDataColumn\":\"Auto Series Key Data Column\",\"AutoSeriesTitleDataColumn\":\"Auto Series Title Data Column\",\"AutoWidth\":\"Auto Width\",\"AutoWidthType\":\"Auto Width Type\",\"AvailableInTheViewer\":\"Available in the Viewer\",\"AxisLabelsColor\":\"Axis Labels Color\",\"AxisLineColor\":\"Axis Line Color\",\"AxisTitleColor\":\"Axis Title Color\",\"AxisValue\":\"Axis Value\",\"BackColor\":\"Back Color\",\"Background\":\"Background\",\"BackgroundColor\":\"Background Color\",\"BandColor\":\"Band Color\",\"BarCodeType\":\"Bar Code Type\",\"BasicStyleColor\":\"Basic Style Color\",\"Blend\":\"Blend\",\"Blocks\":\"Blocks\",\"BodyBrush\":\"Body Brush\",\"BodyShape\":\"Body Shape\",\"Bold\":\"Bold\",\"Bookmark\":\"Bookmark\",\"Border\":\"Border\",\"BorderBrush\":\"Border Brush\",\"BorderColor\":\"Border Color\",\"BorderColorNegative\":\"Border Color Negative\",\"Borders\":\"Borders\",\"BorderSize\":\"Border Size\",\"BorderStyle\":\"Border Style\",\"BorderThickness\":\"Border Thickness\",\"BorderWidth\":\"Border Width\",\"Bottom\":\"Bottom\",\"BottomLeft\":\"Bottom-Left\",\"BottomRight\":\"Bottom-Right\",\"BottomSide\":\"Bottom Side\",\"BreakIfLessThan\":\"Break if Less Than\",\"Brush\":\"Brush\",\"BrushNegative\":\"Brush Negative\",\"BrushType\":\"Brush Type\",\"BubbleBackColor\":\"Bubble Back Color\",\"BubbleBorderColor\":\"Bubble Border Color\",\"BusinessObject\":\"Business Object\",\"CacheAllData\":\"Cache All Data\",\"CacheTotals\":\"Cache Totals\",\"CalcInvisible\":\"Calc Invisible\",\"CalculatedDataColumn\":\"Calculated Data Column\",\"CalculationMode\":\"Calculation Mode\",\"CanBreak\":\"Can Break\",\"Cancel\":\"Cancel\",\"CanGrow\":\"Can Grow\",\"CanShrink\":\"Can Shrink\",\"Categories\":\"Categories\",\"Category\":\"Category\",\"CategoryConnections\":\"Connections\",\"CellAlignment\":\"Cell Alignment\",\"CellBackColor\":\"Cell Back Color\",\"CellDockStyle\":\"Cell Dock Style\",\"CellForeColor\":\"Cell Fore Color\",\"CellHeight\":\"Cell Height\",\"CellType\":\"Cell Type\",\"CellWidth\":\"Cell Width\",\"Center\":\"Center\",\"CenterPoint\":\"Center Point\",\"ChartAreaBorderColor\":\"Chart Area Border Color\",\"ChartAreaBrush\":\"Chart Area Brush\",\"ChartAreaShowShadow\":\"Chart Area Show Shadow\",\"ChartType\":\"Chart Type\",\"CheckAlignment\":\"Check Alignment\",\"CheckColor\":\"Check Color\",\"Checked\":\"Checked\",\"CheckedIcon\":\"Checked Icon\",\"CheckOnClick\":\"Check on Click\",\"CheckStyle\":\"Check Style\",\"CheckStyleForFalse\":\"Check Style for False\",\"CheckStyleForTrue\":\"Check Style for True\",\"Checksum\":\"Checksum\",\"CheckSum\":\"CheckSum\",\"CheckSum1\":\"CheckSum1\",\"CheckSum2\":\"CheckSum2\",\"Child\":\"Child\",\"ChildColumns\":\"Child Columns\",\"ChildSource\":\"Child Source\",\"City\":\"City\",\"ClearFormat\":\"Clear Format\",\"CloneContainer\":\"Clone Container\",\"CloseValues\":\"Close Values\",\"Code\":\"Code\",\"CodePage\":\"Code Page\",\"Collapsed\":\"Collapsed\",\"CollapseGroupFooter\":\"Collapse Group Footer\",\"CollapsingEnabled\":\"Collapsing Enabled\",\"Collate\":\"Collate\",\"CollectionName\":\"Collection Name\",\"Color\":\"Color\",\"ColorDataColumn\":\"Color Data Column\",\"ColorEach\":\"Color Each\",\"ColorMeter\":\"Color Meter\",\"Colors\":\"Colors\",\"ColorScaleCondition\":\"Color Scale Condition\",\"ColorScaleType\":\"Color Scale Type\",\"Column\":\"Column\",\"ColumnCount\":\"Column Count\",\"ColumnDirection\":\"Column Direction\",\"ColumnGaps\":\"Column Gaps\",\"ColumnHeaderBackColor\":\"Column Header Back Color\",\"ColumnHeaderForeColor\":\"Column Header Fore Color\",\"ColumnHeadersVisible\":\"Column Headers Visible\",\"Columns\":\"Columns\",\"ColumnShape\":\"Column Shape\",\"ColumnWidth\":\"Column Width\",\"CommandTimeout\":\"Command Timeout\",\"CompanyPrefix\":\"Company Prefix\",\"ComponentStyle\":\"Component Style\",\"Condition\":\"Condition\",\"ConditionOptions\":\"Condition Options\",\"Conditions\":\"Conditions\",\"ConnectionString\":\"Connection String\",\"ConnectOnStart\":\"Connect on Start\",\"ConstantLines\":\"Constant Lines\",\"Container\":\"Container\",\"ContentAlignment\":\"Content Alignment\",\"ContinuousText\":\"Continuous Text\",\"ContourColor\":\"Contour Color\",\"Converting\":\"Converting\",\"ConvertNulls\":\"Convert Nulls\",\"Copies\":\"Copies\",\"CornerRadius\":\"Corner Radius\",\"Count\":\"Count\",\"CountData\":\"Count Data\",\"Country\":\"Country\",\"Create\":\"Create\",\"CreateFieldOnDoubleClick\":\"Create Field on Double Click\",\"CreateLabel\":\"Create Label\",\"CrossFiltering\":\"Cross-Filtering\",\"Culture\":\"Culture\",\"CustomFonts\":\"Custom Fonts\",\"CustomFormat\":\"Custom Format\",\"CutPieList\":\"Cut Pie List\",\"Data\":\"Data\",\"DataAdapter\":\"Data Adapter\",\"DataAdapters\":\"Data Adapters\",\"DataBarCondition\":\"Data Bar Condition\",\"DataBindings\":\"Data Bindings\",\"DataCells\":\"Data Cells\",\"DataColor\":\"Data Color\",\"DataColumn\":\"Data Column\",\"DataColumns\":\"Data Columns\",\"DataField\":\"Data Field\",\"DataForeground\":\"Data Foreground\",\"DataRelation\":\"Data Relation\",\"DataRows\":\"Data Rows\",\"DataSource\":\"Data Source\",\"DataSources\":\"Data Sources\",\"DataTextField\":\"Data Text Field\",\"DataTransformation\":\"Data Transformation\",\"DataType\":\"Data Type\",\"DataUrl\":\"Data URL\",\"DateInfo\":\"Date Info\",\"DateTimeMode\":\"DateTime Mode\",\"DateTimeStep\":\"Date Time Step\",\"Default\":\"Default\",\"DefaultColor\":\"Default Color\",\"DefaultHeightCell\":\"Default Height of Cell\",\"DefaultNamespace\":\"Default Namespace\",\"DependentColumn\":\"Dependent Column\",\"DependentValue\":\"Dependent Value\",\"Description\":\"Description\",\"Destination\":\"Destination\",\"DetectUrls\":\"Detect URLs\",\"DeviceWidth\":\"Device Width\",\"DialogResult\":\"Dialog Result\",\"Diameter\":\"Diameter\",\"Direction\":\"Direction\",\"Disabled\":\"Disabled\",\"DisplayNameType\":\"Display Name Type\",\"DisplayValue\":\"Display Value\",\"Distance\":\"Distance\",\"DistanceBetweenTabs\":\"Distance Between Tabs\",\"Dock\":\"Dock\",\"DockableTable\":\"Dockable Table\",\"DockStyle\":\"Dock Style\",\"DrawBorder\":\"Draw Border\",\"DrawHatch\":\"Draw Hatch\",\"DrawLine\":\"Draw Line\",\"DrillDown\":\"Drill-Down\",\"DrillDownEnabled\":\"Drill-Down Enabled\",\"DrillDownMode\":\"Drill-Down Mode\",\"DrillDownPage\":\"Drill-Down Page\",\"DrillDownParameter1\":\"Drill-Down Parameter 1\",\"DrillDownParameter2\":\"Drill-Down Parameter 2\",\"DrillDownParameter3\":\"Drill-Down Parameter 3\",\"DrillDownParameter4\":\"Drill-Down Parameter 4\",\"DrillDownParameter5\":\"Drill-Down Parameter 5\",\"DrillDownParameters\":\"Drill-Down Parameters\",\"DrillDownReport\":\"Drill-Down Report\",\"DropDownAlign\":\"Drop Down Align\",\"DropDownStyle\":\"Drop Down Style\",\"DropDownWidth\":\"Drop Down Width\",\"DropShadow\":\"Drop Shadow\",\"Duplex\":\"Duplex\",\"Editable\":\"Editable\",\"Effects\":\"Effects\",\"EmptyBorderBrush\":\"Empty Border Brush\",\"EmptyBorderWidth\":\"Empty Border Width\",\"EmptyBrush\":\"Empty Brush\",\"EmptyValue\":\"Empty Value\",\"Enabled\":\"Enabled\",\"EnableLog\":\"Enabled Log\",\"EncodingMode\":\"Encoding Mode\",\"EncodingType\":\"Encoding Type\",\"EndCap\":\"End Cap\",\"EndColor\":\"End Color\",\"EndValue\":\"End Value\",\"EndValues\":\"End Values\",\"EndWidth\":\"End Width\",\"EngineVersion\":\"Engine Version\",\"EnumeratorSeparator\":\"Enumerator Separator\",\"EnumeratorType\":\"Enumerator Type\",\"ErrorCorrectionLevel\":\"Error Correction Level\",\"ErrorsCorrectionLevel\":\"Errors Correction Level\",\"EvenStyle\":\"Even Style\",\"ExceedMargins\":\"Exceed Margins\",\"ExcelSheet\":\"Excel Sheet\",\"ExcelValue\":\"Excel Value\",\"Expand\":\"Expand\",\"Exponential\":\"Exponential\",\"ExportAsImage\":\"Export as Image\",\"Expression\":\"Expression\",\"ExtensionDigit\":\"Extension Digit\",\"EyeBallBrush\":\"Eye Ball Brush\",\"EyeBallShape\":\"Eye Ball Shape\",\"EyeFrameBrush\":\"Eye Frame Brush\",\"EyeFrameShape\":\"Eye Frame Shape\",\"FaqPage\":\"FAQ Page\",\"Field\":\"Field\",\"FieldIs\":\"Field Is\",\"Fifth\":\"Fifth\",\"File\":\"File\",\"Fill\":\"Fill\",\"FillColor\":\"Fill Color\",\"Filter\":\"Filter\",\"FilterElements\":\"Filter Elements\",\"FilterEngine\":\"Filter Engine\",\"FilterMode\":\"Filter Mode\",\"FilterOn\":\"Filter On\",\"Filters\":\"Filters\",\"First\":\"First\",\"FirstTabOffset\":\"First Tab Offset\",\"FixedWidth\":\"Fixed Width\",\"Flat\":\"Flat\",\"FlatMode\":\"Flat Mode\",\"Focus\":\"Focus\",\"Font\":\"Font\",\"FontBold\":\"Font Bold\",\"FontItalic\":\"Font Italic\",\"FontName\":\"Font Name\",\"FontSize\":\"Font Size\",\"FontSizeMode\":\"Font Size Mode\",\"FontStrikeout\":\"Font Strikeout\",\"FontSubscript\":\"Subscript\",\"FontSuperscript\":\"Superscript\",\"FontUnderline\":\"Font Underline\",\"FontUnit\":\"Font Unit\",\"FooterCanBreak\":\"Footer Can Break\",\"FooterCanGrow\":\"Footer Can Grow\",\"FooterCanShrink\":\"Footer Can Shrink\",\"FooterColor\":\"Footer Color\",\"FooterFont\":\"Footer Font\",\"FooterForeColor\":\"Footer Fore Color\",\"FooterForeground\":\"Footer Foreground\",\"FooterPrintAtBottom\":\"Footer Print At Bottom\",\"FooterPrintIfEmpty\":\"Footer Print If Empty\",\"FooterPrintOn\":\"Footer Print On\",\"FooterPrintOnAllPages\":\"Footer Print On All Pages\",\"FooterPrintOnEvenOddPages\":\"Footer Print On Even Odd Pages\",\"FooterRowsCount\":\"Footer Rows Count\",\"Footers\":\"Footers\",\"ForeColor\":\"Fore Color\",\"Format\":\"Format\",\"FormSettings\":\"Form Settings\",\"Fourth\":\"Fourth\",\"From\":\"From\",\"FrozenColumns\":\"Frozen Columns\",\"FullConvertExpression\":\"Full Convert Expression\",\"FullName\":\"Full Name\",\"Function\":\"Function\",\"Functions\":\"Functions\",\"GisSettings\":\"Gis Settings\",\"GlobalizationStrings\":\"Globalization Strings\",\"GlobalizedName\":\"Globalized Name\",\"GlyphColor\":\"Glyph Color\",\"GridColor\":\"Grid Color\",\"GridColumns\":\"Grid Columns\",\"GridLineColor\":\"Grid Line Color\",\"GridLinesHor\":\"Grid Lines Horizontal\",\"GridLinesHorColor\":\"Grid Lines Horizontal Color\",\"GridLinesHorRight\":\"Grid Lines Horizontal Right\",\"GridLineStyle\":\"Grid Line Style\",\"GridLinesVert\":\"Grid Lines Vertical\",\"GridLinesVertColor\":\"Grid Lines Vertical Color\",\"GridOutline\":\"Grid Outline\",\"GridVerticalStep\":\"Grid Vertical Step\",\"Group\":\"Group\",\"GroupDataColumn\":\"Group Data Column\",\"GroupMeter\":\"Group Meter\",\"GrowToHeight\":\"Grow to Height\",\"Header\":\"Header\",\"HeaderAlignment\":\"Header Alignment\",\"HeaderBackColor\":\"Header Back Color\",\"HeaderCanBreak\":\"Header Can Break\",\"HeaderCanGrow\":\"Header Can Grow\",\"HeaderCanShrink\":\"Header Can Shrink\",\"HeaderColor\":\"Header Color\",\"HeaderFont\":\"Header Font\",\"HeaderForeColor\":\"Header Fore Color\",\"HeaderForeground\":\"Header Foreground\",\"HeaderPrintAtBottom\":\"Header Print At Bottom\",\"HeaderPrintIfEmpty\":\"Header Print If Empty\",\"HeaderPrintOn\":\"Header Print On\",\"HeaderPrintOnAllPages\":\"Header Print On All Pages\",\"HeaderPrintOnEvenOddPages\":\"Header Print On Even Odd Pages\",\"HeaderRowsCount\":\"Header Rows Count\",\"Headers\":\"Headers\",\"HeaderText\":\"Header Text\",\"Heading\":\"Heading\",\"Heatmap\":\"Heatmap\",\"HeatmapColors\":\"Heatmap Colors\",\"HeatmapWithGroup\":\"Heatmap With Group\",\"Height\":\"Height\",\"HideSeriesWithEmptyTitle\":\"Hide Series with Empty Title\",\"HideZeros\":\"Hide Zeros\",\"High\":\"High\",\"HighlightCondition\":\"Highlight Condition\",\"HighValues\":\"High Values\",\"HorAlignment\":\"Horizontal Alignment\",\"HorSpacing\":\"Horizontal Spacing\",\"HotBackColor\":\"Hot Back Color\",\"HotColumnHeaderBackColor\":\"Hot Column Header Back Color\",\"HotForeColor\":\"Hot Fore Color\",\"HotGlyphColor\":\"Hot Glyph Color\",\"HotHeaderColor\":\"Hot Header Color\",\"HotkeyPrefix\":\"Hotkey Prefix\",\"HotRowHeaderBackColor\":\"Hot Row Header Back Color\",\"HotSelectedBackColor\":\"Hot Selected Back Color\",\"HotSelectedForeColor\":\"Hot Selected Fore Color\",\"HotSelectedGlyphColor\":\"Hot Selected Glyph Color\",\"HtmlPreviewMode\":\"HTML Preview Mode\",\"HtmlTags\":\"HTML Tags\",\"Hyperlink\":\"Hyperlink\",\"HyperlinkDataColumn\":\"Hyperlink Data Column\",\"HyperlinkPattern\":\"Hyperlink Pattern\",\"Icon\":\"Icon\",\"IconAlignment\":\"Icon Alignment\",\"IconBrush\":\"Icon Brush\",\"IconColor\":\"Icon Color\",\"IconSet\":\"Icon Set\",\"IconSetCondition\":\"Icon Set Condition\",\"Idents\":\"Indents\",\"Image\":\"Image\",\"ImageAlign\":\"Image Align\",\"ImageAlignment\":\"Image Alignment\",\"ImageData\":\"Image Data\",\"ImageHorAlignment\":\"Image Horizontal Alignment\",\"ImageMultipleFactor\":\"Image Multiple Factor\",\"ImageRotation\":\"Image Rotation\",\"ImageStretch\":\"Image Stretch\",\"ImageTiling\":\"Image Tiling\",\"ImageTransparency\":\"Image Transparency\",\"ImageURL\":\"Image URL\",\"ImageVertAlignment\":\"Image Vertical Alignment\",\"ImportRelations\":\"Import Relations\",\"Increment\":\"Increment\",\"Indent\":\"Indent\",\"IndividualColor\":\"Individual Color\",\"InitBy\":\"Init by\",\"Initials\":\"Initials\",\"InitialSelection\":\"Initial Selection\",\"InitialSelectionSource\":\"Initial Selection Source\",\"InnerText\":\"Inner Text\",\"Insert\":\"Insert\",\"Interaction\":\"Interaction\",\"InterlacedBrush\":\"Interlaced Brush\",\"InterlacingHor\":\"Interlacing Horizontal\",\"InterlacingHorBrush\":\"Interlacing Horizontal Brush\",\"InterlacingVert\":\"Interlacing Vertical\",\"InterlacingVertBrush\":\"Interlacing Vertical Brush\",\"Interpolation\":\"Interpolation\",\"IsReversed\":\"Is Reversed\",\"Italic\":\"Italic\",\"Item\":\"Item\",\"ItemHeight\":\"Item Height\",\"Items\":\"Items\",\"KeepChildTogether\":\"Keep Child Together\",\"KeepCrossTabTogether\":\"Keep Cross-Tab Together\",\"KeepDetails\":\"Keep Details\",\"KeepDetailsTogether\":\"Keep Details Together\",\"KeepFooterTogether\":\"Keep Footer Together\",\"KeepGroupFooterTogether\":\"Keep Group Footer Together\",\"KeepGroupHeaderTogether\":\"Keep Group Header Together\",\"KeepGroupTogether\":\"Keep Group Together\",\"KeepHeaderTogether\":\"Keep Header Together\",\"KeepMergedCellsTogether\":\"Keep Merged Cells Together\",\"KeepReportSummaryTogether\":\"Keep Report Summary Together\",\"KeepSubReportTogether\":\"Keep Sub-Report Together\",\"Key\":\"Key\",\"KeyDataColumn\":\"Key Data Column\",\"KeyMeter\":\"Key Meter\",\"KeyMeters\":\"Key Meters\",\"Keys\":\"Keys\",\"Label\":\"Label\",\"LabelColor\":\"Label Color\",\"LabelForeground\":\"Label Foreground\",\"LabelRotationMode\":\"Label Rotation Mode\",\"Labels\":\"Labels\",\"LabelsColor\":\"Labels Color\",\"LabelShadowForeground\":\"Label Shadow Foreground\",\"LabelsOffset\":\"Labels Offset\",\"Language\":\"Language\",\"LargeHeight\":\"Large Height\",\"LargeHeightFactor\":\"Large Height Factor\",\"LaTexExpression\":\"LaTex Expression\",\"Latitude\":\"Latitude\",\"Layout\":\"Layout\",\"Left\":\"Left\",\"LeftSide\":\"Left Side\",\"Legend\":\"Legend\",\"LegendBorderColor\":\"Legend Border Color\",\"LegendBrush\":\"Legend Brush\",\"LegendLabelsColor\":\"Legend Labels Color\",\"LegendTitleColor\":\"Legend Title Color\",\"LegendValueType\":\"Legend Value Type\",\"Length\":\"Length\",\"LengthUnderLabels\":\"Length under Labels\",\"Lighting\":\"Lighting\",\"LimitRows\":\"Limit Rows\",\"Linear\":\"Linear\",\"LinearBarBorderBrush\":\"Linear Bar Border Brush\",\"LinearBarBrush\":\"Linear Bar Brush\",\"LinearBarEmptyBorderBrush\":\"Linear Bar Empty Border Brush\",\"LinearBarEmptyBrush\":\"Linear Bar Empty Brush\",\"LinearScaleBrush\":\"Linear Scale Brush\",\"LineColor\":\"Line Color\",\"LineColorNegative\":\"Line Color Negative\",\"LineLength\":\"Line Length\",\"LineLimit\":\"Line Limit\",\"LineMarker\":\"Line Marker\",\"LinesOfUnderline\":\"Lines of Underline\",\"LineSpacing\":\"Line Spacing\",\"LineStyle\":\"Line Style\",\"LineWidth\":\"Line Width\",\"Linked\":\"Linked\",\"ListOfArguments\":\"List of Arguments\",\"ListOfHyperlinks\":\"List of Hyperlinks\",\"ListOfTags\":\"List of Tags\",\"ListOfToolTips\":\"List of Tooltips\",\"ListOfValues\":\"List of Values\",\"ListOfValuesClose\":\"List of Values Close\",\"ListOfValuesEnd\":\"List of Values End\",\"ListOfValuesHigh\":\"List of Values High\",\"ListOfValuesLow\":\"List of Values Low\",\"ListOfValuesOpen\":\"List of Values Open\",\"ListOfWeights\":\"List of Weights\",\"Localizable\":\"Localizable\",\"Location\":\"Location\",\"Locked\":\"Locked\",\"Logarithmic\":\"Logarithmic\",\"LogarithmicScale\":\"Logarithmic Scale\",\"Longitude\":\"Longitude\",\"Low\":\"Low\",\"LowValues\":\"Low Values\",\"MajorInterval\":\"Major Interval\",\"MapAfrica\":\"Africa\",\"MapAsia\":\"Asia\",\"MapCustom\":\"Custom\",\"MapEurope\":\"Europe\",\"MapID\":\"Map ID\",\"MapNorthAmerica\":\"North America\",\"MapOceania\":\"Oceania\",\"MapPopularMaps\":\"Popular maps\",\"Maps\":\"Maps\",\"MapSouthAmerica\":\"South America\",\"MapStyle\":\"Map Style\",\"MapType\":\"Map Type\",\"Margin\":\"Margin\",\"Margins\":\"Margins\",\"Marker\":\"Marker\",\"MarkerAlignment\":\"Marker Alignment\",\"MarkerAngle\":\"Marker Angle\",\"MarkerBorder\":\"Marker Border\",\"MarkerBrush\":\"Marker Brush\",\"MarkerColor\":\"Marker Color\",\"MarkerSize\":\"Marker Size\",\"MarkerType\":\"Marker Type\",\"MarkerVisible\":\"Marker Visible\",\"MasterComponent\":\"Master Component\",\"MasterKeyDataColumn\":\"Master Key Data Column\",\"MatrixSize\":\"Matrix Size\",\"MaxDate\":\"Max Date\",\"MaxDropDownItems\":\"Max Drop Down Items\",\"MaxHeight\":\"Max Height\",\"Maximum\":\"Maximum\",\"MaximumValue\":\"Maximum Value\",\"MaxLength\":\"Max Length\",\"MaxNumberOfLines\":\"Max Number of Lines\",\"MaxSize\":\"Max Size\",\"MaxValue\":\"Max Value\",\"MaxWidth\":\"Max Width\",\"MergeDuplicates\":\"Merge Duplicates\",\"MergeHeaders\":\"Merge Headers\",\"Mid\":\"Mid\",\"MinDate\":\"Min Date\",\"MinHeight\":\"Min Height\",\"Minimum\":\"Minimum\",\"MinimumFontSize\":\"Minimum Font Size\",\"MinimumValue\":\"Minimum Value\",\"MinorColor\":\"Minor Color\",\"MinorCount\":\"Minor Count\",\"MinorInterval\":\"Minor Interval\",\"MinorLength\":\"Minor Length\",\"MinorStyle\":\"Minor Style\",\"MinorVisible\":\"Minor Visible\",\"MinRowsInColumn\":\"Min Rows in Column\",\"MinSize\":\"Min Size\",\"MinValue\":\"Min Value\",\"MinWidth\":\"Min Width\",\"MirrorMargins\":\"Mirror Margins\",\"Mode\":\"Mode\",\"Module\":\"Module\",\"Move\":\"Move\",\"Multiline\":\"Multiline\",\"MultipleFactor\":\"Multiple Factor\",\"MultipleInitialization\":\"Multiple Initialization\",\"Name\":\"Name\",\"NameDataColumn\":\"Name Data Column\",\"NameInSource\":\"Name in Source\",\"NameMeter\":\"Name Meter\",\"NameParent\":\"Parent Name\",\"Namespaces\":\"Namespaces\",\"NeedleBorderBrush\":\"Needle Border Brush\",\"NeedleBorderWidth\":\"Needle Border Width\",\"NeedleBrush\":\"Needle Brush\",\"NeedleCapBorderBrush\":\"Needle Cap Border Brush\",\"NeedleCapBrush\":\"Needle Cap Brush\",\"Negative\":\"Negative\",\"NegativeColor\":\"Negative Color\",\"NegativeSeriesColors\":\"Negative Series Colors\",\"NegativeTextBrush\":\"Negative Text Brush\",\"NestedLevel\":\"Nested Level\",\"NewColumnAfter\":\"New Column After\",\"NewColumnBefore\":\"New Column Before\",\"NewPageAfter\":\"New Page After\",\"NewPageBefore\":\"New Page Before\",\"NextPage\":\"Next Page\",\"NoElements\":\"No Elements\",\"NoIcon\":\"No Icon\",\"NullText\":\"Null Text\",\"NumberOfColumns\":\"Number of Columns\",\"NumberOfCopies\":\"Number of Copies\",\"NumberOfPass\":\"Number of Pass\",\"NumberOfValues\":\"Number of Values\",\"OddStyle\":\"Odd Style\",\"Offset\":\"Offset\",\"OffsetAngle\":\"Offset Angle\",\"OnClick\":\"On Click\",\"OnDataManipulation\":\"On Data Manipulation\",\"OnHover\":\"On Hover\",\"OnlyText\":\"Only Text\",\"Opacity\":\"Opacity\",\"OpenValues\":\"Open Values\",\"Operation\":\"Operation\",\"Options\":\"Options\",\"Options3D\":\"Options 3D\",\"Orientation\":\"Orientation\",\"OthersText\":\"Others Text\",\"Padding\":\"Padding\",\"PageHeight\":\"Page Height\",\"PageNumbers\":\"Page Numbers\",\"PageWidth\":\"Page Width\",\"Paper\":\"Paper\",\"PaperSize\":\"Paper Size\",\"PaperSourceOfFirstPage\":\"Paper Source of First Page\",\"PaperSourceOfOtherPages\":\"Paper Source of Other Pages\",\"Parameter\":\"Parameter\",\"Parameters\":\"Parameters\",\"ParametersDateFormat\":\"Parameters Date Format\",\"ParametersOrientation\":\"Parameters Orientation\",\"ParameterWidth\":\"Parameter Width\",\"ParentColumns\":\"Parent Columns\",\"ParentSource\":\"Parent Data Source\",\"ParentValue\":\"Parent Value\",\"ParetoSeriesColors\":\"Pareto Series Colors\",\"PasswordChar\":\"Password Char\",\"Path\":\"Path\",\"PathData\":\"Path Data\",\"PathSchema\":\"Path Schema\",\"Pattern\":\"Pattern\",\"PDFPreview\":\"PDF Preview\",\"PenColor\":\"Pen Color\",\"Placeholder\":\"Placeholder\",\"Placement\":\"Placement\",\"PlaceOnToolbox\":\"Place on Toolbox\",\"PointAtCenter\":\"Point at Center\",\"Position\":\"Position\",\"Positive\":\"Positive\",\"PositiveColor\":\"Positive Color\",\"PreferredColumnWidth\":\"Preferred Column Width\",\"PreferredRowHeight\":\"Preferred Row Height\",\"PreventIntersection\":\"Prevent Intersection\",\"PreviewMode\":\"Preview Mode\",\"PreviewSettings\":\"Preview Settings\",\"Printable\":\"Printable\",\"PrintAtBottom\":\"Print at Bottom\",\"PrinterName\":\"Printer Name\",\"PrinterSettings\":\"Printer Settings\",\"PrintHeadersFootersFromPreviousPage\":\"Print Headers and Footers from Previous Page\",\"PrintIfDetailEmpty\":\"Print if Detail Empty\",\"PrintIfEmpty\":\"Print if Empty\",\"PrintIfParentDisabled\":\"Print if Parent Disabled\",\"PrintOn\":\"Print on\",\"PrintOnAllPages\":\"Print on All Pages\",\"PrintOnEvenOddPages\":\"Print on Even Odd Pages\",\"PrintOnPreviousPage\":\"Print on Previous Page\",\"PrintTitleOnAllPages\":\"Print Title On All Pages\",\"PrintVerticalBars\":\"Print Vertical Bars\",\"ProcessAt\":\"Process at\",\"ProcessAtEnd\":\"Process at End\",\"ProcessingDuplicates\":\"Processing Duplicates\",\"ProcessTilde\":\"Process Tilde\",\"ProductHomePage\":\"Product Home Page\",\"Property\":\"Property\",\"Provider\":\"Provider\",\"RadarStyle\":\"Radar Style\",\"RadialBarBorderBrush\":\"Radial Bar Border Brush\",\"RadialBarBrush\":\"Radial Bar Brush\",\"RadialBarEmptyBorderBrush\":\"Radial Bar Empty Border Brush\",\"RadialBarEmptyBrush\":\"Radial Bar Empty Brush\",\"Radius\":\"Radius\",\"RadiusMode\":\"Radius Mode\",\"Range\":\"Range\",\"RangeColorMode\":\"Range Color Mode\",\"RangeFrom\":\"From\",\"RangeMode\":\"Range Mode\",\"RangeScrollEnabled\":\"Range Scroll Enabled\",\"RangeTo\":\"To\",\"RangeType\":\"Range Type\",\"Ratio\":\"Ratio\",\"RatioY\":\"Ratio Y\",\"ReadOnly\":\"Read Only\",\"RecentFonts\":\"Recent Fonts\",\"ReconnectOnEachRow\":\"Reconnect on Each Row\",\"ReferencedAssemblies\":\"Referenced Assemblies\",\"Refresh\":\"Refresh\",\"RefreshTime\":\"Refresh Time\",\"Regular\":\"Regular\",\"Relation\":\"Relation\",\"RelationName\":\"Relation Name\",\"Relations\":\"Relations\",\"RelativeHeight\":\"Relative Height\",\"RelativeWidth\":\"Relative Width\",\"RemoveUnusedDataBeforeStart\":\"Remove Unused Data Before Start\",\"RenderTo\":\"Render to\",\"ReportAlias\":\"Report Alias\",\"ReportAuthor\":\"Report Author\",\"ReportCacheMode\":\"Report Cache Mode\",\"ReportDescription\":\"Report Description\",\"ReportIcon\":\"Report Icon\",\"ReportImage\":\"Report Image\",\"ReportName\":\"Report Name\",\"ReportUnit\":\"Report Unit\",\"RequestFromUser\":\"Request from User\",\"RequestParameters\":\"Request Parameters\",\"Required\":\"Required\",\"ResetAllFilters\":\"Reset All Filters\",\"ResetDataSource\":\"Reset Data Source\",\"ResetPageNumber\":\"Reset Page Number\",\"Resize\":\"Resize\",\"Resource\":\"Resource\",\"Resources\":\"Resources\",\"Restrictions\":\"Restrictions\",\"RetrieveOnlyUsedData\":\"Retrieve Only Used Data\",\"ReturnValue\":\"Return Value\",\"ReverseHor\":\"Reverse Horizontal\",\"ReverseVert\":\"Reverse Vertical\",\"Right\":\"Right\",\"RightSide\":\"Right Side\",\"RightToLeft\":\"Right to Left\",\"Rotation\":\"Rotation\",\"RotationLabels\":\"Rotation Labels\",\"RotationMode\":\"Rotation Mode\",\"Round\":\"Round\",\"RoundValues\":\"Round Values\",\"RowCount\":\"Row Count\",\"RowHeaderBackColor\":\"Row Header Back Color\",\"RowHeaderForeColor\":\"Row Header Fore Color\",\"RowHeadersVisible\":\"Row Headers Visible\",\"RowHeaderWidth\":\"Row Header Width\",\"Rows\":\"Rows\",\"Scale\":\"Scale\",\"ScaleHor\":\"Scale Hor\",\"ScriptLanguage\":\"Script Language\",\"Second\":\"Second\",\"SegmentPerHeight\":\"Segment per Height\",\"SegmentPerWidth\":\"Segment per Width\",\"SelectedBackColor\":\"Selected Back Color\",\"SelectedCellBackColor\":\"Selected Cell Back Color\",\"SelectedCellForeColor\":\"Selected Cell Fore Color\",\"SelectedDataColor\":\"Selected Data Color\",\"SelectedDataForeground\":\"Selected Data Foreground\",\"SelectedForeColor\":\"Selected Fore Color\",\"SelectedGlyphColor\":\"Selected Glyph Color\",\"SelectedIndex\":\"Selected Index\",\"SelectedItem\":\"Selected Item\",\"SelectedKey\":\"Selected Key\",\"SelectedValue\":\"Selected Value\",\"Selection\":\"Selection\",\"SelectionBackColor\":\"Selection Back Color\",\"SelectionEnabled\":\"Selection Enabled\",\"SelectionForeColor\":\"Selection Fore Color\",\"SelectionMode\":\"Selection Mode\",\"SelectStyle\":\"Select Style\",\"SendType\":\"Send Type\",\"SeparatorColor\":\"Separator Color\",\"SerialNumber\":\"Serial Number\",\"Series\":\"Series\",\"SeriesBorderThickness\":\"Series Border Thickness\",\"SeriesColors\":\"Series Colors\",\"SeriesCornerRadius\":\"Series Corner Radius\",\"SeriesLabels\":\"Series Labels\",\"SeriesLabelsBorderColor\":\"Series Labels Border Color\",\"SeriesLabelsBrush\":\"Series Labels Brush\",\"SeriesLabelsColor\":\"Series Labels Color\",\"SeriesLabelsLineColor\":\"Series Labels Line Color\",\"SeriesLighting\":\"Series Lighting\",\"SeriesShowBorder\":\"Series Show Border\",\"SeriesShowShadow\":\"Series Show Shadow\",\"SeriesTitle\":\"Series Title\",\"Shadow\":\"Shadow\",\"ShadowBrush\":\"Shadow Brush\",\"ShadowColor\":\"Shadow Color\",\"ShadowSize\":\"Shadow Size\",\"ShapeType\":\"Shape Type\",\"Shift\":\"Shift\",\"ShiftMode\":\"Shift Mode\",\"ShortName\":\"Short Name\",\"ShortValue\":\"Short Value\",\"ShowAllValue\":\"Show All Value\",\"ShowBehind\":\"Show Behind\",\"ShowBubble\":\"Show Bubble\",\"ShowDialog\":\"Show Dialog\",\"ShowEdgeValues\":\"Show Edge Values\",\"ShowHyperlink\":\"Show Hyperlink\",\"ShowImageBehind\":\"Show Image Behind\",\"ShowInLegend\":\"Show in Legend\",\"ShowInnerPoints\":\"Show Inner Points\",\"ShowInPercent\":\"Show in Percent\",\"ShowLabel\":\"Show Label\",\"ShowLabels\":\"Show Labels\",\"ShowLabelText\":\"Show Label Text\",\"ShowLegend\":\"Show Legend\",\"ShowMarker\":\"Show Marker\",\"ShowMeanMarkers\":\"Show Mean Markers\",\"ShowNulls\":\"Show Nulls\",\"ShowOthers\":\"Show Others\",\"ShowPercents\":\"Show Percents\",\"ShowPlacemark\":\"Show Placemark\",\"ShowQuietZoneIndicator\":\"Show Quiet Zone Indicator\",\"ShowQuietZones\":\"Show Quiet Zones\",\"ShowScrollBar\":\"Show Scroll Bar\",\"ShowSelectAll\":\"Show Select All\",\"ShowSeriesLabels\":\"Show Series Labels\",\"ShowShadow\":\"Show Shadow\",\"ShowTotal\":\"Show Total\",\"ShowTotalSummary\":\"Show Total Summary\",\"ShowUpDown\":\"Show Up Down\",\"ShowValue\":\"Show Value\",\"ShowXAxis\":\"Show X Axis\",\"ShowYAxis\":\"Show Y Axis\",\"ShowZeros\":\"Show Zeros\",\"ShrinkFontToFit\":\"Shrink Font to Fit\",\"ShrinkFontToFitMinimumSize\":\"Shrink Font to Fit Minimum Size\",\"Side\":\"Side\",\"SideBySide\":\"Side-by-Side\",\"Sides\":\"Sides\",\"SignatureType\":\"Type\",\"Simple\":\"Simple\",\"Size\":\"Size\",\"SizeMode\":\"Size Mode\",\"Skin\":\"Skin\",\"SkipFirst\":\"Skip First\",\"SkipIndices\":\"Skip Indices\",\"SkipIndicesObj\":\"Skip Indices\",\"SkipMajorValues\":\"Skip Major Values\",\"SkipValues\":\"Skip Values\",\"SkipValuesObj\":\"Skip Values\",\"Smoothing\":\"Smoothing\",\"Sort\":\"Sort\",\"SortBy\":\"Sort by\",\"SortDirection\":\"Sort Direction\",\"Sorted\":\"Sorted\",\"SortingColumn\":\"Sorting Column\",\"SortingEnabled\":\"Sorting Enabled\",\"SortLetters\":\"A-Z\",\"SortType\":\"Sort Type\",\"Space\":\"Space\",\"SpaceRatio\":\"Space Ratio\",\"Spacing\":\"Spacing\",\"SqlCommand\":\"Sql Command\",\"StartAngle\":\"Start Angle\",\"StartCap\":\"Start Cap\",\"StartColor\":\"Start Color\",\"StartFromZero\":\"Start From Zero\",\"StartMode\":\"Start Mode\",\"StartNewPage\":\"Start New Page\",\"StartNewPageIfLessThan\":\"Start New Page if Less Than\",\"StartPosition\":\"Start Position\",\"StartValue\":\"Start Value\",\"StartWidth\":\"Start Width\",\"State\":\"State\",\"Step\":\"Step\",\"Stop\":\"Stop\",\"StopBeforePage\":\"Stop Before Page\",\"StopBeforePrint\":\"Stop Before Print\",\"StoreImagesInResources\":\"Store Images in Resources\",\"StreetAddress\":\"Street Address\",\"Stretch\":\"Stretch\",\"StretchToPrintArea\":\"Stretch to Print Area\",\"Strikeout\":\"Strikeout\",\"StripBrush\":\"Strip Brush\",\"Strips\":\"Strips\",\"Stroke\":\"Stroke\",\"StructuredAppendPosition\":\"Structured Append Position\",\"StructuredAppendTotal\":\"Structured Append Total\",\"Style\":\"Style\",\"StyleColors\":\"Style Colors\",\"Styles\":\"Styles\",\"SubmissionMessage\":\"Submission Message\",\"SubReportPage\":\"Sub Report\",\"Summaries\":\"Summaries\",\"Summary\":\"Summary\",\"SummaryAlignment\":\"Summary Alignment\",\"SummaryExpression\":\"Summary Expression\",\"SummarySortDirection\":\"Summary Sort Direction\",\"SummaryType\":\"Summary Type\",\"SummaryValues\":\"Summary Values\",\"SupplementCode\":\"Supplement Code\",\"SupplementType\":\"Supplement Type\",\"SweepAngle\":\"Sweep Angle\",\"SystemFonts\":\"System Fonts\",\"SystemVariable\":\"System Variable\",\"SystemVariables\":\"System Variables\",\"Table\":\"Table\",\"Tag\":\"Tag\",\"TagDataColumn\":\"Tag Data Column\",\"TagValue\":\"Tag Value\",\"Target\":\"Target\",\"TargetColor\":\"Target Color\",\"TargetIcon\":\"Target Icon\",\"TargetMode\":\"Target Mode\",\"TargetSettings\":\"Target\",\"Tension\":\"Tension\",\"Text\":\"Text\",\"TextAfter\":\"Text After\",\"TextAlign\":\"Text Align\",\"TextAlignment\":\"Text Alignment\",\"TextBefore\":\"Text Before\",\"TextBrush\":\"Text Brush\",\"TextColor\":\"Text Color\",\"TextFormat\":\"Text Format\",\"TextOnly\":\"Text Only\",\"TextOptions\":\"Text Options\",\"TextQuality\":\"Text Quality\",\"Third\":\"Third\",\"TickLabelMajorFont\":\"Tick Label Major Font\",\"TickLabelMajorTextBrush\":\"Tick Label Major Text Brush\",\"TickLabelMinorFont\":\"Tick Label Minor Font\",\"TickLabelMinorTextBrush\":\"Tick Label Minor Text Brush\",\"TickMarkMajorBorder\":\"Tick Mark Major Border\",\"TickMarkMajorBorderWidth\":\"Tick Mark Major Border Width\",\"TickMarkMajorBrush\":\"Tick Mark Major Brush\",\"TickMarkMinorBorder\":\"Tick Mark Minor Border\",\"TickMarkMinorBorderWidth\":\"Tick Mark Minor Border Width\",\"TickMarkMinorBrush\":\"Tick Mark Minor Brush\",\"Ticks\":\"Ticks\",\"Title\":\"Title\",\"TitleBeforeHeader\":\"Title Before Header\",\"TitleColor\":\"Title Color\",\"TitleDirection\":\"TitleDirection\",\"TitleFont\":\"Title Font\",\"TitleVisible\":\"Title Visible\",\"To\":\"To\",\"Today\":\"Today\",\"ToolTip\":\"Tool Tip\",\"ToolTipBorder\":\"Tool Tip Border\",\"ToolTipBrush\":\"Tool Tip Brush\",\"ToolTipCornerRadius\":\"Tool Tip Corner Radius\",\"ToolTipDataColumn\":\"Tool Tip Data Column\",\"ToolTipTextBrush\":\"Tool Tip Text Brush\",\"Top\":\"Top\",\"TopLeft\":\"Top-Left\",\"Topmost\":\"Topmost\",\"TopmostLine\":\"Topmost Line\",\"TopN\":\"Top N\",\"TopRight\":\"Top-Right\",\"TopSide\":\"Top Side\",\"Total\":\"Total\",\"TotalCellColumnBackColor\":\"Total Cell Column Back Color\",\"TotalCellColumnForeColor\":\"Total Cell Column Fore Color\",\"TotalCellRowBackColor\":\"Total Cell Row Back Color\",\"TotalCellRowForeColor\":\"Total Cell Row Fore Color\",\"TotalLabel\":\"Total Label\",\"Totals\":\"Totals\",\"TrackColor\":\"Track Color\",\"TransparentColor\":\"Transparent Color\",\"TrendLine\":\"Trend Line\",\"TrendLineColor\":\"Trend Line Color\",\"TrendLines\":\"Trend Lines\",\"TrendLineShowShadow\":\"Trend Line Show Shadow\",\"TrimExcessData\":\"Trim Excess Data\",\"Trimming\":\"Trimming\",\"Type\":\"Type\",\"TypeName\":\"Type Name\",\"Types\":\"Types\",\"UncheckedIcon\":\"Unchecked Icon\",\"Underline\":\"Underline\",\"UndoLimit\":\"Undo Limit\",\"Unit\":\"Unit\",\"UnitAlignment\":\"Unit Alignment\",\"UnlimitedBreakable\":\"Unlimited Breakable\",\"UnlimitedHeight\":\"Unlimited Height\",\"UnlimitedWidth\":\"Unlimited Width\",\"UpperMarks\":\"Upper Marks\",\"URL\":\"URL\",\"UseAliases\":\"Use Aliases\",\"UseExternalReport\":\"Use External Report\",\"UseParentStyles\":\"Use Parent Styles\",\"UseRangeColor\":\"Use Range Color\",\"UseRectangularSymbols\":\"Use Rectangular Symbols\",\"UseSeriesColor\":\"Use Series Color\",\"UseStyleOfSummaryInColumnTotal\":\"Use Style of Summary in Column Total\",\"UseStyleOfSummaryInRowTotal\":\"Use Style of Summary in Row Total\",\"UseValuesFromTheSpecifiedRange\":\"Use Values From The Specified Range\",\"Value\":\"Value\",\"ValueClose\":\"Value Close\",\"ValueDataColumn\":\"Value Data Column\",\"ValueDataColumnClose\":\"Value Data Column Close\",\"ValueDataColumnEnd\":\"Value Data Column End\",\"ValueDataColumnHigh\":\"Value Data Column High\",\"ValueDataColumnLow\":\"Value Data Column Low\",\"ValueDataColumnOpen\":\"Value Data Column Open\",\"ValueEnd\":\"Value End\",\"ValueFormat\":\"Value Format\",\"ValueHigh\":\"Value High\",\"ValueLow\":\"Value Low\",\"ValueMeter\":\"Value Meter\",\"ValueOpen\":\"Value Open\",\"Values\":\"Values\",\"ValueType\":\"Value Type\",\"ValueTypeSeparator\":\"Value Type Separator\",\"Variable\":\"Variable\",\"Variables\":\"Variables\",\"Variation\":\"Variation\",\"Version\":\"Version\",\"VertAlignment\":\"Vertical Alignment\",\"VertSpacing\":\"Vertical Spacing\",\"ViewMode\":\"View Mode\",\"Visible\":\"Visible\",\"VisualStates\":\"Visual States\",\"Watermark\":\"Watermark\",\"Weight\":\"Weight\",\"WeightDataColumn\":\"Weight Data Column\",\"Weights\":\"Weights\",\"Width\":\"Width\",\"WindowState\":\"Window State\",\"WordWrap\":\"Word Wrap\",\"Wrap\":\"Wrap\",\"WrapGap\":\"WrapGap\",\"WrapLine\":\"Wrap Line\",\"XAxis\":\"X Axis\",\"XTopAxis\":\"X Top Axis\",\"YAxis\":\"Y Axis\",\"YRightAxis\":\"Y Right Axis\",\"ZeroColor\":\"Zero Color\",\"Zoom\":\"Zoom\"},\"PropertySystemColors\":{\"ActiveBorder\":\"Active Border\",\"ActiveCaption\":\"Active Caption\",\"ActiveCaptionText\":\"Active Caption Text\",\"AppWorkspace\":\"App Workspace\",\"Control\":\"Control\",\"ControlDark\":\"Control Dark\",\"ControlDarkDark\":\"Control Dark Dark\",\"ControlLight\":\"Control Light\",\"ControlLightLight\":\"Control Light Light\",\"ControlText\":\"Control Text\",\"Desktop\":\"Desktop\",\"GrayText\":\"Gray Text\",\"Highlight\":\"Highlight\",\"HighlightText\":\"Highlight Text\",\"HotTrack\":\"Hot Track\",\"InactiveBorder\":\"Inactive Border\",\"InactiveCaption\":\"Inactive Caption\",\"InactiveCaptionText\":\"Inactive Caption Text\",\"Info\":\"Info\",\"InfoText\":\"Info Text\",\"Menu\":\"Menu\",\"MenuText\":\"Menu Text\",\"ScrollBar\":\"Scroll Bar\",\"Window\":\"Window\",\"WindowFrame\":\"Window Frame\",\"WindowText\":\"Window Text\"},\"QueryBuilder\":{\"AddObject\":\"Add Object\",\"AddSubQuery\":\"Add Derived Table\",\"AllObjects\":\"(All objects)\",\"BadFromObjectExpression\":\"Invalid FROM object expression!\",\"BadObjectName\":\"Invalid object name!\",\"BadSelectStatement\":\"Invalid SELECT statement!\",\"Collections\":\"Collections\",\"CreateLinksFromForeignKeys\":\"Create Links from Foreign Keys\",\"CriteriaAlias\":\"Alias\",\"CriteriaCriteria\":\"Criteria\",\"CriteriaExpression\":\"Expression\",\"CriteriaGroupBy\":\"Group By\",\"CriteriaOr\":\"Or...\",\"CriteriaOutput\":\"Output\",\"CriteriaSortOrder\":\"Sort Order\",\"CriteriaSortType\":\"Sort Type\",\"Database\":\"Database\",\"DataSourceProperties\":\"Data Source Properties\",\"DialectDontSupportDatabases\":\"The server does not support queries with objects from different databases.\",\"DialectDontSupportSchemas\":\"The server does not support schemas.\",\"DialectDontSupportUnions\":\"This server does not support unions.\",\"DialectDontSupportUnionsBrackets\":\"This server does not support brackets in unions.\",\"DialectDontSupportUnionsBracketsInSubQuery\":\"This server doesn\\'t support brackets in unions in subqueries.\",\"DialectDontSupportUnionsInSubQueries\":\"This server does not support unions in subqueries.\",\"Edit\":\"Edit\",\"EncloseWithBrackets\":\"Enclose with brackets\",\"Expressions\":\"Expressions\",\"InsertEmptyItem\":\"Insert Empty Item\",\"JoinExpression\":\"Join Expression\",\"LabelAlias\":\"Alias:\",\"LabelFilterObjectsBySchemaName\":\"Filter Objects by Schema Name:\",\"LabelJoinExpression\":\"Join Expression:\",\"LabelLeftColumn\":\"Left Column:\",\"LabelLeftObject\":\"Left Object:\",\"LabelObject\":\"Object:\",\"LabelRightColumn\":\"Right Column:\",\"LabelRightObject\":\"Right Object:\",\"LinkProperties\":\"Link Properties\",\"MetadataProviderCantExecSQL\":\"Used metadata provider cannot execute SQL queries.\",\"MetaProviderCantLoadMetadata\":\"Used metadata provider cannot automatically load metadata.\",\"MetaProviderCantLoadMetadataForDatabase\":\"Used metadata provider cannot automatically load metadata for database: {0}\",\"MoveDown\":\"Move Down\",\"MoveUp\":\"Move Up\",\"NewUnionSubQuery\":\"New union sub-query\",\"NoConnectionObject\":\"No connection object (property {0} not assigned).\",\"NoTransactionObject\":\"No transaction object (property {0} not assigned).\",\"Objects\":\"Objects\",\"ProcedureParameters\":\"Procedure Parameters\",\"Procedures\":\"Procedures\",\"qnSaveChanges\":\"Do you want to save changes of query?\",\"Query\":\"Query\",\"QueryBuilder\":\"Query Builder\",\"QueryParameters\":\"Query Parameters\",\"QueryProperties\":\"Query Properties\",\"Remove\":\"Remove\",\"RemoveBrackets\":\"Remove brackets\",\"RunQueryBuilder\":\"Run Query Builder\",\"SelectAllFromLeft\":\"Select All from Left\",\"SelectAllFromRight\":\"Select All from Right\",\"SwitchToDerivedTable\":\"Switch to Derived Table\",\"Tables\":\"Tables\",\"UnexpectedTokenAt\":\"Unexpected token \\\\\"{0}\\\\\" at line {1}, pos {2}!\",\"Unions\":\"Unions\",\"UnionSubMenu\":\"Union\",\"ViewQuery\":\"View Query\",\"Views\":\"Views\"},\"Questions\":{\"qnConfiguration\":\"Please choose the type of configuration for the properties panel. The type of the selected configuration depends on the number of visible properties and their complexity for the developer of reports. You can always change the configuration type from the context menu of the properties panel.\",\"qnCopyCategory\":\"Do you want to copy all variables of this category?\",\"qnDictionaryNew\":\"Do you want to create new Dictionary?\",\"qnLanguageNew\":\"You have changed the language of the report. This will lead to the new report code generation. Are you certain you want to save the new language?\",\"qnPageDelete\":\"Do you want to delete page?\",\"qnRemove\":\"Do you want to remove?\",\"qnRemoveService\":\"Do you want to remove Service?\",\"qnRemoveServiceCategory\":\"Do you want to remove Category?\",\"qnRemoveUnused\":\"Do you want to remove Unused?\",\"qnReplace\":\"Do you want to replace the existing item {0}?\",\"qnRestoreDefault\":\"Restore defaults?\",\"qnSaveChanges\":\"Save changes in {0}?\",\"qnSaveChangesToPreviewPage\":\"Do you want to save page changes?\",\"qnSynchronize\":\"Synchronized contents of the Data Store and contents of the Dictionary?\",\"qnSynchronizeServices\":\"Synchronized services?\"},\"RecentFiles\":{\"AddAPlace\":\"Add a Place\",\"AddAPlaceDesc\":\"You can add locations to make it easier to save Reports to the cloud.\",\"ChangeFileType\":\"Change file type\",\"ChooseALocation\":\"Choose a Location\",\"ClearUnpinnedItems\":\"Clear unpinned items\",\"CopyPathToClipboard\":\"Copy path to clipboard\",\"DateModified\":\"Date modified\",\"Documents\":\"Documents\",\"DoYouWantTo\":\"Do you want to:\",\"LastWeek\":\"Last Week\",\"LocalDisk\":\"Local Disk ({0})\",\"MessageInvalidFolderName\":\"Invalid folder name.\",\"MessageThatNameAlreadyExists\":\"That name already exists. Please use a different name.\",\"MoreLocations\":\"More Locations →\",\"Older\":\"Older\",\"OtherLocations\":\"Other locations\",\"Personal\":\"Personal\",\"Pinned\":\"Pinned\",\"PinToList\":\"Pin to list\",\"PinToRecentList\":\"Pin to Recent list\",\"RemoveFromList\":\"Remove from list\",\"ReplaceExistingFile\":\"Replace existing file.\",\"SaveChangesWithADifferentName\":\"Save changes with a different name.\",\"SaveThisFile\":\"Save this file\",\"SelectToNavigateUpOneLevel\":\"Select to navigate up one level\",\"SetAsDefaultLocation\":\"Set as Default Location\",\"ThisPC\":\"This PC\",\"UnpinFromList\":\"Unpin from list\"},\"Report\":{\"ActiveRelation\":\"Active Relation\",\"Address\":\"Address\",\"Alphabetical\":\"Alphabetical\",\"Bands\":\"Bands\",\"Basic\":\"Basic\",\"BasicConfiguration\":\"Minimal number of object properties, which are necessary for rendering the basic report types.\",\"BusinessObjects\":\"Business Objects\",\"Categorized\":\"Categorized\",\"Charts\":\"Charts\",\"Checking\":\"Checking...\",\"ClickForMoreDetails\":\"Click for More Details\",\"CollapseAll\":\"Collapse All\",\"Collection\":\"Collection\",\"CompilingReport\":\"Compiling Report\",\"Complete\":\"Complete\",\"Components\":\"Components\",\"ConnectingToData\":\"Connecting to Data\",\"CopyOf\":\"Copy\",\"CreateNewReportPageForm\":\"Create a new report, add a page, add a form\",\"CreatingReport\":\"Creating Report\",\"CrossBands\":\"Cross\",\"Dialogs\":\"Dialogs\",\"EditStyles\":\"Edit Styles\",\"Enhancements\":\"Enhancements\",\"EnterDataManually\":\"Enter data manually\",\"Errors\":\"Errors\",\"EventsTab\":\"Events Tab\",\"ExpandAll\":\"Expand All\",\"FilterAnd\":\"And\",\"FilterOr\":\"Or\",\"FinishingReport\":\"Finishing Report\",\"FirstPass\":\"First Pass\",\"FixedBugs\":\"Fixed Bugs\",\"FromCurrentState\":\"From Current State\",\"FromDefaultState\":\"From Default State\",\"Gallery\":\"Gallery\",\"GenerateNewCode\":\"Generate New Code\",\"History\":\"History\",\"Infographics\":\"Infographics\",\"InfoMessage\":\"{0} - {1} found.\",\"InformationMessages\":\"Information Messages\",\"LabelAlias\":\"Alias:\",\"LabelAuthor\":\"Author:\",\"LabelBackground\":\"Background:\",\"LabelCategory\":\"Category:\",\"LabelCentimeters\":\"Centimeters:\",\"LabelCollectionName\":\"Collection Name:\",\"LabelColor\":\"Color:\",\"LabelCountData\":\"Count Data:\",\"LabelDataBand\":\"DataBand:\",\"LabelDataColumn\":\"Data Column:\",\"LabelDefaultValue\":\"Default Value:\",\"LabelExpression\":\"Expression:\",\"LabelFactorLevel\":\"Nested Factor:\",\"LabelFontName\":\"Font Name:\",\"LabelFunction\":\"Function:\",\"LabelHundredthsOfInch\":\"Hundredths of Inch:\",\"LabelInches\":\"Inches:\",\"LabelMillimeters\":\"Millimeters:\",\"LabelName\":\"Name:\",\"LabelNameInSource\":\"Name in Source:\",\"LabelNestedLevel\":\"Nested Level:\",\"LabelPassword\":\"Password:\",\"LabelPixels\":\"Pixels:\",\"LabelQueryTimeout\":\"Query Timeout:\",\"LabelSystemVariable\":\"System Variable:\",\"LabelTableOfContentsHint\":\"Please, check the components which should form the table of contents. One component is equal to one heading level.\",\"LabelTotals\":\"Totals\",\"LabelType\":\"Type:\",\"LabelUserName\":\"User Name:\",\"LabelValue\":\"Value:\",\"LoadingReport\":\"Loading Report\",\"nameAssembly\":\"Assembly\",\"NewFeatures\":\"New Features\",\"No\":\"No\",\"NoFixes\":\"There are no fixes or updates for this version!\",\"NoIssues\":\"No Issues\",\"NoNewVersions\":\"There are no new versions available!\",\"NotAssigned\":\"Not Assigned\",\"Null\":\"Null\",\"Obsoleted\":\"Obsoleted\",\"Office2010Back\":\"Back\",\"PageNofM\":\"Page {0} of {1}\",\"PreparingReport\":\"Preparing Report\",\"Professional\":\"Professional\",\"ProfessionalConfiguration\":\"All object properties.\",\"PropertiesTab\":\"Properties Tab\",\"RangeAll\":\"All\",\"RangeCurrentPage\":\"Current Page\",\"RangeInfo\":\"Enter page number and/or pages ranges separated by commas. For example: 1, 3, 5-12\",\"RangePage\":\"Page Range\",\"RangePages\":\"Pages:\",\"ReportChecker\":\"Checker\",\"ReportRenderingMessages\":\"Report Rendering Messages\",\"RestartDesigner\":\"You need to restart the report designer\",\"SaveReportPagesOrFormsFromReport\":\"Save the report, pages or forms\",\"SavingReport\":\"Saving Report\",\"SecondPass\":\"Second Pass\",\"Shapes\":\"Shapes\",\"ShowOnParametersPanel\":\"Show on Parameters Panel\",\"Standard\":\"Standard\",\"StandardConfiguration\":\"Main object properties except rarely used ones.\",\"StiEmptyBrush\":\"Empty\",\"StiGlareBrush\":\"Glare\",\"StiGlassBrush\":\"Glass\",\"StiGradientBrush\":\"Gradient\",\"StiHatchBrush\":\"Hatch\",\"StiSolidBrush\":\"Solid\",\"StyleBad\":\"Bad\",\"StyleGood\":\"Good\",\"StyleNeutral\":\"Neutral\",\"StyleNormal\":\"Normal\",\"StyleNote\":\"Note\",\"StyleWarning\":\"Warning\",\"UseDataFields\":\"Use Data Fields\",\"VisualChecked\":\"Checked\",\"VisualDefault\":\"Default\",\"VisualDisabled\":\"Disabled\",\"VisualHover\":\"Hover\",\"VisualPressed\":\"Pressed\",\"Warnings\":\"Warnings\",\"WhatsNewInVersion\":\"What\\'s New in {0}\",\"When\":\"when {0} {1}\",\"WhenAnd\":\"when {0} {1} and\",\"WhenValueIs\":\"when value is\"},\"ReportInfo\":{\"CheckIssuesAdditionalDescription\":\"Check for errors and find inaccuracies.\",\"EncryptWithPassword\":\"Encrypt with Password\",\"EncryptWithPasswordAdditionalDescription\":\"Set the password to prevent unauthorized working with the report.\",\"EncryptWithPasswordDescription\":\"Protect Report\",\"Info\":\"Info\",\"ReportOptions\":\"Report Options\",\"ReportOptionsAdditionalDescription\":\"Setup the basic information and parameters in the report.\"},\"ReportOpen\":{\"Browse\":\"Browse\",\"Import\":\"Import\"},\"Scheduler\":{\"ActionRunReport\":\"Run Report\",\"AdvancedSettings\":\"Advanced Settings\",\"CheckBoxOverwriteIfExists\":\"Overwrite If Exists\",\"DayAll\":\"All\",\"DayDayX\":\"Day {0}\",\"DayLast\":\"Last\",\"DayNone\":\"None\",\"DaysOfWeekAll\":\"All\",\"DaysOfWeekNone\":\"None\",\"DelayTaskForUpToRandomDelay\":\"Delay task for up to (random delay)\",\"EditScheduler\":\"Edit Scheduler\",\"EnableSSL\":\"Enable SSL\",\"Expire\":\"Expire\",\"ForADurationOf\":\"for a duration of\",\"GetFolder\":\"Get Folder\",\"GroupBoxFiles\":\"Files\",\"Host\":\"Host\",\"Info\":\"Windows Task Scheduler is used to run schedulers.\",\"LabelDaysOfWeek\":\"Days of Week\",\"LabelMessage\":\"Message\",\"LabelResultName\":\"Result Name\",\"LabelRunAtDay\":\"Run at Day\",\"LabelRunAtMonth\":\"Run at Month\",\"LabelRunAtTime\":\"Run at Time\",\"LabelRunEvery\":\"Run Every\",\"LabelSubject\":\"Subject\",\"LabelTo\":\"To\",\"Logs\":\"Logs\",\"MessageInvalidName\":\"Task names may not include any characters which are invalid for file names.\",\"MessageInvalidTaskName\":\"Task names ending with a period followed by three or fewer characters cannot be retrieved due to a bug in the native library.\",\"MessagePropertyNotSet\":\"\\'{0}\\' not set!\",\"MonthAll\":\"All\",\"MonthNone\":\"None\",\"NewAction\":\"New Action\",\"NewScheduler\":\"New Scheduler\",\"NoLogs\":\"No Logs\",\"NoSchedulers\":\"No Schedulers\",\"NumberOfDayAll\":\"All\",\"NumberOfDayFirst\":\"First\",\"NumberOfDayFourth\":\"Fourth\",\"NumberOfDayLast\":\"Last\",\"NumberOfDayNone\":\"None\",\"NumberOfDaySecond\":\"Second\",\"NumberOfDayThird\":\"Third\",\"OpenWindowsTaskScheduler\":\"Open Windows Task Scheduler\",\"PleaseSelectSchedulerType\":\"Please select a scheduler type\",\"RadioButtonDay\":\"Day\",\"RadioButtonOn\":\"On\",\"RepeatTaskEvery\":\"Repeat task every\",\"Schedule\":\"Schedule\",\"Scheduler\":\"Scheduler\",\"Schedulers\":\"Schedulers\",\"SenderEmail\":\"Sender Email\",\"SmtpSettings\":\"Smtp Settings\",\"StopAllRunningTasksAtEndOfRepetitionDuration\":\"Stop all running tasks at end of repetition duration\",\"StopTasksIfItRunsLongerThan\":\"Stop tasks if it runs longer than\",\"TextDragDropDestinationHere\":\"Drag &amp; Drop the Destination Folder Here\",\"TextDragDropReportHere\":\"Drag &amp; Drop the Report Here\",\"TextPressPlusIconAddNewAction\":\"Click the icon plus to add a new action!\",\"ToolTipSetParameters\":\"Defining Report Parameters\",\"WizardDaily\":\"Daily\",\"WizardDailyDescription\":\"Once a day, at a specified time.\",\"WizardHourly\":\"Hourly\",\"WizardHourlyDescription\":\"Once an hour.\",\"WizardMonthly\":\"Monthly\",\"WizardMonthlyDescription\":\"Monthly, on selected days of the week or days of the month, at a specified time.\",\"WizardOnce\":\"Once\",\"WizardOnceDescription\":\"Run the scheduler once at any time.\",\"WizardWeekly\":\"Weekly\",\"WizardWeeklyDescription\":\"On the selected days of the week, at a specified time.\"},\"Services\":{\"categoryContextTools\":\"Context Tools\",\"categoryDesigner\":\"Designer\",\"categoryDictionary\":\"Dictionary\",\"categoryExport\":\"Exports\",\"categoryLanguages\":\"Languages\",\"categoryPanels\":\"Panels\",\"categoryRender\":\"Render\",\"categoryShapes\":\"Shapes\",\"categorySL\":\"Save / Load\",\"categorySystem\":\"System\",\"categoryTextFormat\":\"Text Format\"},\"Shapes\":{\"Arrow\":\"Arrow\",\"BasicShapes\":\"Basic Shapes\",\"BentArrow\":\"Bent Arrow\",\"BlockArrows\":\"Block Arrows\",\"Chevron\":\"Chevron\",\"ComplexArrow\":\"Complex Arrow\",\"DiagonalDownLine\":\"Diagonal Line Down\",\"DiagonalUpLine\":\"Diagonal Line Up\",\"Division\":\"Division\",\"Equal\":\"Equal\",\"EquationShapes\":\"Equation Shapes\",\"Flowchart\":\"Flowchart\",\"FlowchartCard\":\"Flowchart: Card\",\"FlowchartCollate\":\"Flowchart: Collate\",\"FlowchartDecision\":\"Flowchart: Decision\",\"FlowchartManualInput\":\"Flowchart: Manual Input\",\"FlowchartOffPageConnector\":\"Flowchart: Off Page Connector\",\"FlowchartPreparation\":\"Flowchart: Preparation\",\"FlowchartSort\":\"Flowchart: Sort\",\"Frame\":\"Frame\",\"HorizontalLine\":\"Horizontal Line\",\"InsertShapes\":\"Insert Shapes\",\"LeftAndRightLine\":\"Left and Right Line\",\"Lines\":\"Lines\",\"Minus\":\"Minus\",\"Multiply\":\"Multiply\",\"Octagon\":\"Octagon\",\"Oval\":\"Oval\",\"Parallelogram\":\"Parallelogram\",\"Plus\":\"Plus\",\"Rectangle\":\"Rectangle\",\"Rectangles\":\"Rectangles\",\"RegularPentagon\":\"Regular: Pentagon\",\"RoundedRectangle\":\"Rounded Rectangle\",\"ServiceCategory\":\"Shapes\",\"ShapeStyles\":\"Shape Styles\",\"SnipDiagonalSideCornerRectangle\":\"Snip Diagonal Side Corner Rectangle\",\"SnipSameSideCornerRectangle\":\"Snip Same Side Corner Rectangle\",\"TopAndBottomLine\":\"Top and Bottom Line\",\"Trapezoid\":\"Trapezoid\",\"Triangle\":\"Triangle\",\"VerticalLine\":\"Vertical Line\"},\"Signature\":{\"DigitalSignatureEmptyWatermark\":\"Place for digital signature in PDF Viewer\",\"InsertImage\":\"Insert Image\",\"InsertText\":\"Insert Text\",\"LoadSignature\":\"Load signature\",\"NoSavedItems\":\"No saved items\",\"SaveSignature\":\"Save signature\",\"SignatureSavedSuccessfully\":\"Signature saved successfully.\",\"UseBrush\":\"Use Brush\"},\"SystemVariables\":{\"Column\":\"Returns the current column number (starts from 1).\",\"GroupLine\":\"Returns the current group line number (starts from 1).\",\"IsFirstPage\":\"Returns true, if, in the current moment, the first page of a report is printed.\",\"IsFirstPageThrough\":\"Returns true, if, in the current moment, the first report page is printed. When calculating the IsFirstPageThrough, all ResetPageNumber properties are ignored and numbering starts from the beginning of report. For correct calculation of a variable it is required to execute two passes.\",\"IsLastPage\":\"Returns true, if, in the current moment, the last page of a report is printed. For correct calculation of a variable it is required to execute two passes.\",\"IsLastPageThrough\":\"Returns true, if, in the current moment, the last page of a report is printed. When calculating the IsLastPageThrough, all properties ResetPageNumber are ignored and numbering starts from the beginning of report. For correct calculation of a variable it is required to execute two passes.\",\"Line\":\"Returns the current line number (starts from 1).\",\"LineABC\":\"Returns the alphabetical analogue of the current line number.\",\"LineRoman\":\"Returns the current line number in Roman numerals.\",\"LineThrough\":\"Returns the current line number (starts from 1). When calculating the number, all groupings are ignored and numbering starts from the beginning of printing.\",\"PageCopyNumber\":\"Return a number of a current copy of a page (starts from 1).\",\"PageNofM\":\"Returns a localized string, showing \\\\\"Page N of M\\\\\" where N is the current page number and M is the TotalPageCount of a report.\",\"PageNofMThrough\":\"Returns a localized string, showing \\\\\"Page N of M\\\\\" where N is the current page number and M is the TotalPageCount of a report. When calculating the PageNofMThrough, all properties ResetPageNumber are ignored and numbering starts from the beginning of a report.\",\"PageNumber\":\"Returns the current page number (starts from 1).\",\"PageNumberThrough\":\"Returns the current page number (starts from 1). When calculating the PageNumberThrough, all properties ResetPageNumber are ignored and numbering starts from the beginning of a report.\",\"ReportAlias\":\"Returns the report alias. You can change the ReportAlias with help of the ReportAlias property of a report.\",\"ReportAuthor\":\"Returns the report author. You can change ReportAuthor with help of the ReportAuthor property of a report.\",\"ReportChanged\":\"The Date when a report was changed.\",\"ReportCreated\":\"The Date when a report was created.\",\"ReportDescription\":\"Returns the report description. You can change the ReportName with help of the ReportDescription property of a report.\",\"ReportName\":\"Returns the report name. You can change the ReportName with help of the ReportName property of a report.\",\"Time\":\"Returns the current time.\",\"Today\":\"Returns the current date.\",\"TotalPageCount\":\"Returns the number of pages in a report.\",\"TotalPageCountThrough\":\"Returns the number of pages in a report. When calculating the TotalPageCountThrough, all properties ResetPageNumber are ignored and numbering starts from the beginning of report.\"},\"TableRibbon\":{\"BuiltIn\":\"Built-In\",\"Delete\":\"Delete\",\"DeleteColumns\":\"Delete Columns\",\"DeleteRows\":\"Delete Rows\",\"DeleteTable\":\"Delete Table\",\"DistributeColumns\":\"Distribute Columns\",\"DistributeRows\":\"Distribute Rows\",\"InsertAbove\":\"Insert Above\",\"InsertBelow\":\"Insert Below\",\"InsertLeft\":\"Insert Left\",\"InsertRight\":\"Insert Right\",\"PlainTables\":\"Plain Tables\",\"ribbonBarRowsColumns\":\"Rows and Columns\",\"ribbonBarTable\":\"Table\",\"ribbonBarTableStyles\":\"Table Styles\",\"Select\":\"Select\",\"SelectColumn\":\"Select Column\",\"SelectRow\":\"Select Row\",\"SelectTable\":\"Select Table\"},\"Toolbars\":{\"Align\":\"Align\",\"AlignBottom\":\"Align Bottom\",\"AlignCenter\":\"Align Center\",\"AlignLeft\":\"Align Left\",\"AlignMiddle\":\"Align Middle\",\"AlignRight\":\"Align Right\",\"AlignToGrid\":\"Align to Grid\",\"AlignTop\":\"Align Top\",\"AlignWidth\":\"Justify\",\"BringToFront\":\"Bring to Front\",\"CenterHorizontally\":\"Center Horizontally\",\"CenterVertically\":\"Center Vertically\",\"Conditions\":\"Conditions\",\"FontGrow\":\"Grow Font\",\"FontName\":\"Font Name\",\"FontShrink\":\"Shrink Font\",\"FontSize\":\"Font Size\",\"FontStyleBold\":\"Font Style Bold\",\"FontStyleItalic\":\"Font Style Italic\",\"FontStyleUnderline\":\"Font Style Underline\",\"Link\":\"Link\",\"Lock\":\"Lock\",\"MakeHorizontalSpacingEqual\":\"Make Horizontal Spacing Equal\",\"MakeSameHeight\":\"Make Same Height as {0}\",\"MakeSameSize\":\"Make Same Size as {0}\",\"MakeSameWidth\":\"Make Same Width as {0}\",\"MakeVerticalSpacingEqual\":\"Make Vertical Spacing Equal\",\"MoveBackward\":\"Move Backward\",\"MoveForward\":\"Move Forward\",\"Order\":\"Order\",\"SendToBack\":\"Send to Back\",\"Size\":\"Size\",\"StyleDesigner\":\"Style Designer\",\"Styles\":\"List of the styles\",\"TabHome\":\"Home\",\"TabLayout\":\"Layout\",\"TabPage\":\"Page\",\"TabView\":\"View\",\"TextBrush\":\"Text Brush\",\"ToolbarAlignment\":\"Alignment\",\"ToolbarArrange\":\"Arrange\",\"ToolbarBorders\":\"Borders\",\"ToolbarClipboard\":\"Clipboard\",\"ToolbarDockStyle\":\"Dock Style\",\"ToolbarFont\":\"Font\",\"ToolbarFormatting\":\"Formatting\",\"ToolbarLayout\":\"Layout\",\"ToolbarPageSetup\":\"Page Setup\",\"ToolbarStandard\":\"Standard\",\"ToolbarStyle\":\"Style\",\"ToolbarTextFormat\":\"Text Format\",\"ToolbarTools\":\"Tools\",\"ToolbarViewOptions\":\"View Options\",\"ToolbarWatermarkImage\":\"Watermark Image\",\"ToolbarWatermarkText\":\"Watermark Text\"},\"Toolbox\":{\"Create\":\"Creation components\",\"Hand\":\"Hand\",\"Select\":\"Select\",\"Style\":\"Copy Style\",\"TextEditor\":\"Text Editor\",\"title\":\"Toolbox\"},\"WelcomeScreen\":{\"AllDownloadsWillCanceled\":\"Are you sure you want to close this window? All downloads will be canceled.\",\"Description\":\"We have selected for you reports that we think are the best for a quick start.\",\"GetStarted\":\"Get Started\",\"GetStartedWithDashboards\":\"Get Started with Dashboards\",\"GetStartedWithReports\":\"Get Started with Reports\",\"MoreReports\":\"More Reports\",\"ShowNextTime\":\"Show \\'{0}\\' next time\",\"Title\":\"Welcome to Stimulsoft Demo\"},\"Wizards\":{\"BlankDashboard\":\"Blank Dashboard\",\"BlankForm\":\"Blank Form\",\"BlankReport\":\"Blank Report\",\"BlankScreen\":\"Blank Screen\",\"ButtonBack\":\"&lt; &amp;Back\",\"ButtonCancel\":\"Cancel\",\"ButtonFinish\":\"&amp;Finish\",\"ButtonNext\":\"&amp;Next &gt;\",\"ColumnsOrder\":\"Columns Order\",\"Company\":\"Company\",\"Custom\":\"Custom\",\"DataRelation\":\"Relation\",\"DataSource\":\"Data Source\",\"DataSources\":\"Data Sources\",\"DefaultThemes\":\"Default Themes\",\"Filters\":\"Filters\",\"FromReportTemplate\":\"From Report Template\",\"GetData\":\"Get Data\",\"groupCreateNewDashboard\":\"Create a New Dashboard\",\"groupCreateNewPageOrForm\":\"Create a New Page or Form\",\"groupCreateNewReport\":\"Create a New Report\",\"Groups\":\"Groups\",\"groupTemplates\":\"Templates\",\"groupWizards\":\"Wizards\",\"infoColumnsOrder\":\"Arrange columns in the necessary order.\",\"infoCompanyInfo\":\"Enter your company information.\",\"infoDataSource\":\"Select one Data Source from available.\",\"infoDataSources\":\"Select Data Sources from available. The first selected one will be the Master data source.\",\"infoFilters\":\"Filter Data for your report\",\"infoGroups\":\"Select columns on which necessary to group.\",\"infoLabelSettings\":\"Set the settings of labels.\",\"infoLanguages\":\"Select the report culture.\",\"infoLayout\":\"Specify layout of report.\",\"infoRelation\":\"Select one Data Relation from available.\",\"infoSelectColumns\":\"Select columns from which the information will be displayed.\",\"infoSelectTemplate\":\"Choose the appropriate template for your needs.\",\"infoSort\":\"Set the sorting of data. You can sort immediately on multiple columns.\",\"infoThemes\":\"Select theme for your report.\",\"infoTotals\":\"Add summary information to your report.\",\"LabelDirection\":\"Direction:\",\"LabelHeight\":\"Height:\",\"LabelHorizontalGap\":\"Horizontal Gap:\",\"LabelLabelType\":\"Label Type:\",\"LabelLeftMargin\":\"Left Margin:\",\"LabelNumberOfColumns\":\"Number of Columns:\",\"LabelNumberOfRows\":\"Number of Rows:\",\"LabelPageHeight\":\"Page Height:\",\"LabelPageWidth\":\"Page Width:\",\"LabelReport\":\"Label Report\",\"LabelSettings\":\"Label Settings\",\"LabelSize\":\"Size:\",\"LabelTopMargin\":\"Top Margin:\",\"LabelVerticalGap\":\"Vertical Gap:\",\"LabelWidth\":\"Width:\",\"Layout\":\"Layout\",\"Mapping\":\"Mapping\",\"MarkAll\":\"Mark &amp;All\",\"MasterDetailReport\":\"Master-Detail Report\",\"NoFunction\":\"[None]\",\"OpenExistingReport\":\"Open Existing File\",\"OpenFrom\":\"Open from {0}\",\"Preview\":\"Preview\",\"Reset\":\"&amp;Reset\",\"Results\":\"Results\",\"RunWizard\":\"Run Wizard\",\"SelectColumns\":\"Select Columns\",\"SelectTemplate\":\"Template\",\"Sort\":\"Sort\",\"StandardReport\":\"Standard Report\",\"Themes\":\"Themes\",\"title\":\"New Report\",\"Totals\":\"Totals\",\"UseDemoData\":\"Use Demo Data\",\"UsingReportWizard\":\"Using Report Wizard\",\"YouHaveNotOpenedAnyReportRecently\":\"You haven\\'t opened any report recently. To browse for a report, start by clicking on Open Existing File.\"},\"Zoom\":{\"EmptyValue\":\"Empty Value\",\"MultiplePages\":\"Multiple Pages\",\"OnePage\":\"One Page\",\"PageHeight\":\"Page Height\",\"PageWidth\":\"Page Width\",\"TwoPages\":\"Two Pages\",\"ZoomTo100\":\"Zoom to 100%\"}}}'\r\n  );\r\n\r\n  constructor() {\r\n    StiLocalizationService.setDeflocalization();\r\n  }\r\n\r\n  private static setDeflocalization() {\r\n    this.localization = JSON.parse(JSON.stringify(this.deflocalization));\r\n  }\r\n\r\n  static needToRefresh = new Subject<boolean>();\r\n\r\n  public toCamelCase(obj) {\r\n    if (Array.isArray(obj)) {\r\n      return obj.map((v) => this.toCamelCase(v));\r\n    } else if (obj != null && obj.constructor === Object) {\r\n      return Object.keys(obj).reduce(\r\n        (result, key) => ({\r\n          ...result,\r\n          [camelCase(key)]: this.toCamelCase(obj[key]),\r\n        }),\r\n        {}\r\n      );\r\n    }\r\n    return obj;\r\n  }\r\n  private static updateLocalization(from: any, to: any) {\r\n    for (let promName in from) {\r\n      if (typeof from[promName] === \"string\") {\r\n        to[promName] = from[promName];\r\n      } else {\r\n        if (to[promName] == undefined) {\r\n          to[promName] = from[promName];\r\n        } else {\r\n          this.updateLocalization(from[promName], to[promName]);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  public loadLocalization(str: string) {\r\n    StiLocalizationService.setLocalization(str);\r\n    StiLocalizationService.needToRefresh.next(true);\r\n  }\r\n  public changeCurrentLocalization(locName) {\r\n    this.currentLocalization = this.localizationList.find((loc) => loc.cultureName == locName);\r\n  }\r\n\r\n  public static setLocalization(str: string) {\r\n    if (str) {\r\n      this.setDeflocalization();\r\n\r\n      let jsonLoc = str;\r\n      if (str && str.indexOf(\"<?xml\") == 0) {\r\n        let xml = new DOMParser().parseFromString(str, \"text/xml\");\r\n        jsonLoc = this.xml2json(xml);\r\n      }\r\n      this.updateLocalization(jsonLoc, this.localization);\r\n    }\r\n  }\r\n\r\n  public static get(category: string, key: string): string {\r\n    let loc = this.localization?.Localization;\r\n    return loc && loc[category][key] ? loc[category][key] : key;\r\n  }\r\n\r\n  public getP(key: string): string {\r\n    return StiLocalizationService.get(\"PropertyMain\", key);\r\n  }\r\n\r\n  public get2(category: string, key: string): string {\r\n    return StiLocalizationService.get(category, key);\r\n  }\r\n\r\n  private static xml2json(xml: any, tab = \"\"): string {\r\n    let X = {\r\n      toObj: function (xml) {\r\n        let o = {};\r\n        if (xml.nodeType == 1) {\r\n          // element node ..\r\n          if (xml.attributes.length)\r\n            // element with attributes  ..\r\n            for (let i = 0; i < xml.attributes.length; i++)\r\n              o[\"@\" + xml.attributes[i].nodeName] = (xml.attributes[i].nodeValue || \"\").toString();\r\n          if (xml.firstChild) {\r\n            // element has child nodes ..\r\n            let textChild = 0,\r\n              cdataChild = 0,\r\n              hasElementChild = false;\r\n            for (let n = xml.firstChild; n; n = n.nextSibling) {\r\n              if (n.nodeType == 1) hasElementChild = true;\r\n              else if (n.nodeType == 3 && n.nodeValue.match(/[^ \\f\\n\\r\\t\\v]/)) textChild++; // non-whitespace text\r\n              else if (n.nodeType == 4) cdataChild++; // cdata section node\r\n            }\r\n            if (hasElementChild) {\r\n              if (textChild < 2 && cdataChild < 2) {\r\n                // structured element with evtl. a single text or/and cdata node ..\r\n                X.removeWhite(xml);\r\n                for (let n = xml.firstChild; n; n = n.nextSibling) {\r\n                  if (n.nodeType == 3)\r\n                    // text node\r\n                    o[\"#text\"] = X.escape(n.nodeValue);\r\n                  else if (n.nodeType == 4)\r\n                    // cdata node\r\n                    o[\"#cdata\"] = X.escape(n.nodeValue);\r\n                  else if (o[n.nodeName]) {\r\n                    // multiple occurence of element ..\r\n                    if (o[n.nodeName] instanceof Array) o[n.nodeName][o[n.nodeName].length] = X.toObj(n);\r\n                    else o[n.nodeName] = [o[n.nodeName], X.toObj(n)];\r\n                  } // first occurence of element..\r\n                  else o[n.nodeName] = X.toObj(n);\r\n                }\r\n              } else {\r\n                // mixed content\r\n                if (!xml.attributes.length) o = X.escape(X.innerXml(xml));\r\n                else o[\"#text\"] = X.escape(X.innerXml(xml));\r\n              }\r\n            } else if (textChild) {\r\n              // pure text\r\n              if (!xml.attributes.length) o = X.escape(X.innerXml(xml));\r\n              else o[\"#text\"] = X.escape(X.innerXml(xml));\r\n            } else if (cdataChild) {\r\n              // cdata\r\n              if (cdataChild > 1) o = X.escape(X.innerXml(xml));\r\n              else for (let n = xml.firstChild; n; n = n.nextSibling) o[\"#cdata\"] = X.escape(n.nodeValue);\r\n            }\r\n          }\r\n          if (!xml.attributes.length && !xml.firstChild) o = null;\r\n        } else if (xml.nodeType == 9) {\r\n          // document.node\r\n          o = X.toObj(xml.documentElement);\r\n        } else alert(\"unhandled node type: \" + xml.nodeType);\r\n        return o;\r\n      },\r\n      toJson: function (o, name, ind) {\r\n        let json = name ? '\"' + name + '\"' : \"\";\r\n        if (o instanceof Array) {\r\n          for (let i = 0, n = o.length; i < n; i++) o[i] = X.toJson(o[i], \"\", ind + \"\\t\");\r\n          json +=\r\n            (name ? \":[\" : \"[\") +\r\n            (o.length > 1 ? \"\\n\" + ind + \"\\t\" + o.join(\",\\n\" + ind + \"\\t\") + \"\\n\" + ind : o.join(\"\")) +\r\n            \"]\";\r\n        } else if (o == null) json += (name && \":\") + \"null\";\r\n        else if (typeof o == \"object\") {\r\n          let arr = [];\r\n          for (let m in o) arr[arr.length] = X.toJson(o[m], m, ind + \"\\t\");\r\n          json +=\r\n            (name ? \":{\" : \"{\") +\r\n            (arr.length > 1 ? \"\\n\" + ind + \"\\t\" + arr.join(\",\\n\" + ind + \"\\t\") + \"\\n\" + ind : arr.join(\"\")) +\r\n            \"}\";\r\n        } else if (typeof o == \"string\") json += (name && \":\") + '\"' + o.toString() + '\"';\r\n        else json += (name && \":\") + o.toString();\r\n        return json;\r\n      },\r\n      innerXml: function (node) {\r\n        let s = \"\";\r\n        if (\"innerHTML\" in node) s = node.innerHTML;\r\n        else {\r\n          let asXml = function (n) {\r\n            let s = \"\";\r\n            if (n.nodeType == 1) {\r\n              s += \"<\" + n.nodeName;\r\n              for (let i = 0; i < n.attributes.length; i++)\r\n                s += \" \" + n.attributes[i].nodeName + '=\"' + (n.attributes[i].nodeValue || \"\").toString() + '\"';\r\n              if (n.firstChild) {\r\n                s += \">\";\r\n                for (let c = n.firstChild; c; c = c.nextSibling) s += asXml(c);\r\n                s += \"</\" + n.nodeName + \">\";\r\n              } else s += \"/>\";\r\n            } else if (n.nodeType == 3) s += n.nodeValue;\r\n            else if (n.nodeType == 4) s += \"<![CDATA[\" + n.nodeValue + \"]]>\";\r\n            return s;\r\n          };\r\n          for (let c = node.firstChild; c; c = c.nextSibling) s += asXml(c);\r\n        }\r\n        return s;\r\n      },\r\n      escape: function (txt) {\r\n        return txt.replace(/[\\\\]/g, \"\\\\\\\\\").replace(/[\\\"]/g, '\\\\\"').replace(/[\\n]/g, \"\\\\n\").replace(/[\\r]/g, \"\\\\r\");\r\n      },\r\n      removeWhite: function (e) {\r\n        e.normalize();\r\n        for (let n = e.firstChild; n; ) {\r\n          if (n.nodeType == 3) {\r\n            // text node\r\n            if (!n.nodeValue.match(/[^ \\f\\n\\r\\t\\v]/)) {\r\n              // pure whitespace text node\r\n              let nxt = n.nextSibling;\r\n              e.removeChild(n);\r\n              n = nxt;\r\n            } else n = n.nextSibling;\r\n          } else if (n.nodeType == 1) {\r\n            // element node\r\n            X.removeWhite(n);\r\n            n = n.nextSibling;\r\n          } // any other node\r\n          else n = n.nextSibling;\r\n        }\r\n        return e;\r\n      },\r\n    };\r\n    if (xml.nodeType == 9)\r\n      // document node\r\n      xml = xml.documentElement;\r\n    let json = X.toJson(X.toObj(X.removeWhite(xml)), xml.nodeName, \"\\t\");\r\n    return JSON.parse(\"{\\n\" + tab + (tab ? json.replace(/\\t/g, tab) : json.replace(/\\t|\\n/g, \"\")) + \"\\n}\");\r\n  }\r\n}\r\n","import { StiChangesInterceptor } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\n\r\nexport default class StiPadding {\r\n  private savedPadding: StiPadding;\r\n  public changesInterceptor: StiChangesInterceptor;\r\n  private _left = 0;\r\n  private _right = 0;\r\n  private _top = 0;\r\n  private _bottom = 0;\r\n\r\n  constructor(\r\n    left: number = 0,\r\n    top: number = 0,\r\n    right: number = 0,\r\n    bottom: number = 0,\r\n    changesInterceptor?: StiChangesInterceptor\r\n  ) {\r\n    this._left = left;\r\n    this._right = right;\r\n    this._top = top;\r\n    this._bottom = bottom;\r\n    this.changesInterceptor = changesInterceptor;\r\n  }\r\n\r\n  public get left(): number {\r\n    return this._left;\r\n  }\r\n\r\n  public set left(value: number) {\r\n    let oldPadding = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._left;\r\n    this._left = value;\r\n    if (this.changesInterceptor && oldValue != value) {\r\n      this.changesInterceptor.propertyChanged(\"padding.left\", value, oldPadding);\r\n    }\r\n  }\r\n\r\n  public get right(): number {\r\n    return this._right;\r\n  }\r\n\r\n  public set right(value: number) {\r\n    let oldPadding = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._right;\r\n    this._right = value;\r\n    if (this.changesInterceptor && oldValue != value) {\r\n      this.changesInterceptor.propertyChanged(\"padding.right\", value, oldPadding);\r\n    }\r\n  }\r\n\r\n  public get top(): number {\r\n    return this._top;\r\n  }\r\n\r\n  public set top(value: number) {\r\n    let oldPadding = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._top;\r\n    this._top = value;\r\n    if (this.changesInterceptor && oldValue != value) {\r\n      this.changesInterceptor.propertyChanged(\"padding.top\", value, oldPadding);\r\n    }\r\n  }\r\n\r\n  public get bottom(): number {\r\n    return this._bottom;\r\n  }\r\n\r\n  public set bottom(value: number) {\r\n    let oldPadding = this.changesInterceptor ? this.clone() : null;\r\n    let oldValue = this._bottom;\r\n    this._bottom = value;\r\n    if (this.changesInterceptor && oldValue != value) {\r\n      this.changesInterceptor.propertyChanged(\"padding.bottom\", value, oldPadding);\r\n    }\r\n  }\r\n\r\n  public isChanged(): boolean {\r\n    return this.savedPadding == null || !this.savedPadding.equals(this);\r\n  }\r\n\r\n  public resetChanged() {\r\n    this.savedPadding = this.clone();\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyNumber(\"Left\", this.left);\r\n    json.addPropertyNumber(\"Top\", this.top);\r\n    json.addPropertyNumber(\"Right\", this.right);\r\n    json.addPropertyNumber(\"Bottom\", this.bottom);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Left\":\r\n          this.left = property.value;\r\n          break;\r\n        case \"Top\":\r\n          this.top = property.value;\r\n          break;\r\n        case \"Right\":\r\n          this.right = property.value;\r\n          break;\r\n        case \"Bottom\":\r\n          this.bottom = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  public clone(): StiPadding {\r\n    return new StiPadding(this.left, this.top, this.right, this.bottom);\r\n  }\r\n\r\n  public equals(padding: StiPadding): boolean {\r\n    return (\r\n      this.left == padding.left &&\r\n      this.top == padding.top &&\r\n      this.right == padding.right &&\r\n      this.bottom == padding.bottom\r\n    );\r\n  }\r\n}\r\n","/*\r\n{*******************************************************************}\r\n{                                                                   }\r\n\r\n{                                                                   }\r\n{                                                                   }\r\n{   Copyright (C)  Stimulsoft                                       }\r\n{   ALL RIGHTS RESERVED                                             }\r\n{                                                                   }\r\n{   The entire contents of this file is protected by U.S. and       }\r\n{   International Copyright Laws. Unauthorized reproduction,        }\r\n{   reverse-engineering, and distribution of all or any portion of  }\r\n{   the code contained in this file is strictly prohibited and may  }\r\n{   result in severe civil and criminal penalties and will be       }\r\n{   prosecuted to the maximum extent possible under the law.        }\r\n{                                                                   }\r\n{   RESTRICTIONS                                                    }\r\n{                                                                   }\r\n{   THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES           }\r\n{   ARE CONFIDENTIAL AND PROPRIETARY                                }\r\n{   TRADE SECRETS OF Stimulsoft                                     }\r\n{                                                                   }\r\n{   CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON       }\r\n{   ADDITIONAL RESTRICTIONS.                                        }\r\n{                                                                   }\r\n{*******************************************************************}\r\n*/\r\n\r\nexport default class Guid {\r\n\r\n  private id: string;\r\n\r\n  static newGuid(): Guid {\r\n    return new Guid(\r\n      Guid.s4() + Guid.s4() + \"-\" + Guid.s4() + \"-\" + Guid.s4() + \"-\" +\r\n      Guid.s4() + \"-\" + Guid.s4() + Guid.s4() + Guid.s4()\r\n    );\r\n  }\r\n\r\n  static newGuidString(): string {\r\n    return Guid.s4() + Guid.s4() + Guid.s4() + Guid.s4() +\r\n      Guid.s4() + Guid.s4() + Guid.s4() + Guid.s4();\r\n  }\r\n\r\n  private static s4(): string {\r\n    return Math\r\n      .floor((1 + Math.random()) * 0x10000)\r\n      .toString(16)\r\n      .substring(1);\r\n  }\r\n\r\n  toString() {\r\n    return this.id;\r\n  }\r\n\r\n  static empty(): Guid {\r\n    return new Guid(\"00000000-0000-0000-0000-000000000000\");\r\n  }\r\n\r\n  static compareTo(value: Guid): number {\r\n    let x = this.toString();\r\n    let y = value.toString();\r\n    return (x < y ? -1 : (x > y ? 1 : 0));\r\n  }\r\n\r\n  constructor(id: string) {\r\n    this.id = id.toLowerCase();\r\n  }\r\n}\r\n\r\n","import { ElementRef } from \"@angular/core\";\r\nimport Guid from \"../../system/Guid\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiForm } from \"../StiForm\";\r\n\r\nexport default abstract class StiFormObject {\r\n  public static readonly TYPE_PROPERTY_NAME: string = \"Type\";\r\n\r\n  public guid = Guid.newGuid().toString();\r\n\r\n  public type: string;\r\n\r\n  public element: ElementRef;\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    if (this.type) {\r\n      json.addPropertyString(StiFormObject.TYPE_PROPERTY_NAME, this.type.replace(\"_\", \"\"));\r\n    }\r\n    json.addPropertyString(\"Guid\", this.guid);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Guid\":\r\n          this.guid = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  public deserializeCollection(jObject: StiJson): any[] {\r\n    let result = [];\r\n    for (let property of jObject.properties()) {\r\n      let typeJson = property.value.value.filter((x) => x.name == StiFormObject.TYPE_PROPERTY_NAME);\r\n      if (typeJson.length == 1) {\r\n        let inst = this.createElementClass(typeJson[0].value);\r\n        inst.loadFromJsonObject(property.value);\r\n        result.push(inst);\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  public createElementClass(type: string): any {\r\n    return {};\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiLabelAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiTextItem } from \"./StiTextItem\";\r\n\r\nexport class StiLabelItem extends StiTextItem {\r\n  private _alignment: StiLabelAlignment;\r\n  private _verticalAlignment: StiVerticalAlignment;\r\n  private _width: number;\r\n  public eParent: any;\r\n\r\n  constructor(\r\n    parent: any,\r\n    value: string = \"\",\r\n    public font: Font = new Font(\"Segoe UI\", 10),\r\n    public color: Color = Color.black(),\r\n    alignment: StiLabelAlignment = StiLabelAlignment.Left,\r\n    verticalAlignment: StiVerticalAlignment = StiVerticalAlignment.Top,\r\n    width: number = 150\r\n  ) {\r\n    super(value, font, color, null);\r\n    this.alignment = alignment;\r\n    this.eVerticalAlignment = verticalAlignment;\r\n    this.width = width;\r\n    this.eParent = parent;\r\n  }\r\n\r\n  public get alignment(): StiLabelAlignment {\r\n    return this._alignment;\r\n  }\r\n\r\n  public set alignment(value: StiLabelAlignment) {\r\n    this._alignment = value;\r\n    this._isChanged = true;\r\n    if (this.eParent?.fitTable) {\r\n      this.eParent?.fitTable();\r\n    }\r\n  }\r\n  public get eVerticalAlignment(): StiVerticalAlignment {\r\n    return this._verticalAlignment;\r\n  }\r\n\r\n  public set eVerticalAlignment(value: StiVerticalAlignment) {\r\n    this._verticalAlignment = value;\r\n    this._isChanged = true;\r\n  }\r\n\r\n  public get verticalAlignment(): StiVerticalAlignment {\r\n    return this.isUnchangedVAlign() ? StiVerticalAlignment.Center : this.eVerticalAlignment;\r\n  }\r\n\r\n  public set verticalAlignment(value: StiVerticalAlignment) {\r\n    this.eVerticalAlignment = value;\r\n  }\r\n\r\n  public get width(): number {\r\n    return this._width;\r\n  }\r\n\r\n  public set width(value: number) {\r\n    if (value <= 0) {\r\n      this._width = 0;\r\n    } else {\r\n      this._width = value;\r\n    }\r\n    this._isChanged = true;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return false;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return true;\r\n  }\r\n  setProperty(propName: string, value: any, oldObject: any) {\r\n    super.setProperty(propName, value, oldObject);\r\n    if (this[propName] && (oldObject === null || this[propName] == oldObject)) {\r\n      this[propName] = value.clone ? value.clone() : value;\r\n    }\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = super.saveToJsonObject(options);\r\n    json.addPropertyEnum(\"Alignment\", StiLabelAlignment, this.alignment);\r\n    json.addPropertyEnum(\r\n      \"VerticalAlignment\",\r\n      StiVerticalAlignment,\r\n      this.isUnchangedVAlign() ? StiVerticalAlignment.Center : this.eVerticalAlignment\r\n    );\r\n    if (this.width != null) {\r\n      json.addPropertyNumber(\"Width\", this.width);\r\n    }\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Alignment\":\r\n          this.alignment = Enum.parse(StiLabelAlignment, property.value);\r\n          break;\r\n        case \"Width\":\r\n          this.width = property.value;\r\n          break;\r\n        case \"VerticalAlignment\":\r\n          this._verticalAlignment = Enum.parse(StiVerticalAlignment, property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  public htmlStyle(): string {\r\n    return `${super.htmlStyle()};text-align:${\r\n      this.alignment == StiLabelAlignment.Top ? \"Center\" : Enum.getName(StiLabelAlignment, this.alignment)\r\n    }`;\r\n  }\r\n\r\n  public isUnchangedVAlign(): boolean {\r\n    return (\r\n      this.eParent.type == \"Text_BoxElement\" ||\r\n      this.eParent.type == \"Number_BoxElement\" ||\r\n      this.eParent.type == \"Combo_BoxElement\" ||\r\n      this.eParent.type == \"Check_BoxElement\" ||\r\n      this.eParent.type == \"DateTime_BoxElement\"\r\n    );\r\n  }\r\n}\r\n","import StiPadding from \"../../properties/StiPadding\";\r\nimport StiRectangleGeometry from \"../../properties/StiRectangleGeometry\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiChangesInterceptor, StiContainer, StiEditableContent, StiSetProperty } from \"../../system/interfaces\";\r\nimport StiFormObject from \"./StiFormObject\";\r\nimport { StiLabel, StiDescription } from \"../../system/interfaces\";\r\nimport { StiLabelItem } from \"../text/StiLabelItem\";\r\nimport { StiLabelAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiUsedFontsList } from \"../../services/objects\";\r\nimport { StiForm } from \"../StiForm\";\r\nimport Color from \"../../system/Color\";\r\n\r\nexport abstract class StiFormElement extends StiFormObject implements StiChangesInterceptor, StiSetProperty {\r\n  private _visible = true;\r\n  private _geometry: StiRectangleGeometry = new StiRectangleGeometry(0, 0, this);\r\n  private _padding: StiPadding = new StiPadding(8, 8, 8, 8, this);\r\n  private _label: StiLabelItem = new StiLabelItem(this, \"\");\r\n  private _name: string;\r\n  private _readOnly = false;\r\n\r\n  protected _isChanged = true;\r\n\r\n  public render = true;\r\n  public position = \"absolute\";\r\n  // public label: StiLabelItem = new StiLabelItem(this, \"\");\r\n  public hasGeometry = false;\r\n\r\n  public isAdded = false;\r\n\r\n  public get maxWidth() {\r\n    if (this.label.alignment == StiLabelAlignment.Top || this.label.eValue.length == 0) {\r\n      return this.geometry.width - this.padding.left - this.padding.right;\r\n    } else {\r\n      return this.geometry.width - this.label.width - this.padding.left - this.padding.right;\r\n    }\r\n  }\r\n  public needToSelectComponent;\r\n  setDefaultValues() {}\r\n  public isChanged(): boolean {\r\n    return this._isChanged || this._geometry.isChanged() || this._padding.isChanged();\r\n  }\r\n\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    return null;\r\n  }\r\n\r\n  public canUpdateProperty(propName: string) {\r\n    return true;\r\n  }\r\n\r\n  isLabelTopAlignment(): boolean {\r\n    return this.label.alignment == StiLabelAlignment.Top ? true : false;\r\n  }\r\n  getVerticalAlignment(): string {\r\n    if (this.label.verticalAlignment == StiVerticalAlignment.Top) {\r\n      return \"start\";\r\n    } else if (this.label.verticalAlignment == StiVerticalAlignment.Center) {\r\n      return \"center\";\r\n    } else {\r\n      return \"flex-end\";\r\n    }\r\n  }\r\n  public resetChanged() {\r\n    this._isChanged = false;\r\n    this._geometry.resetChanged();\r\n    this._padding.resetChanged();\r\n  }\r\n\r\n  public get visible(): boolean {\r\n    return this._visible;\r\n  }\r\n\r\n  public set visible(value: boolean) {\r\n    this._visible = value;\r\n    this._isChanged = true;\r\n  }\r\n\r\n  public get label(): StiLabelItem {\r\n    return this._label;\r\n  }\r\n\r\n  public set label(value: StiLabelItem) {\r\n    let oldValue = this._label;\r\n    if (oldValue != value) {\r\n      this._label = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get geometry(): StiRectangleGeometry {\r\n    return this._geometry;\r\n  }\r\n\r\n  public set geometry(value: StiRectangleGeometry) {\r\n    if (!this.geometry || !value || !this.geometry.equals(value)) {\r\n      this._isChanged = true;\r\n    } else {\r\n      value.resetChanged();\r\n    }\r\n    this._geometry = value;\r\n    this._geometry.changesInterceptor = this;\r\n  }\r\n\r\n  public get padding(): StiPadding {\r\n    return this._padding;\r\n  }\r\n\r\n  public set padding(value: StiPadding) {\r\n    let oldValue = this._padding;\r\n    if (oldValue != value) {\r\n      this._padding = value;\r\n      this._padding.changesInterceptor = this;\r\n      this._isChanged = true;\r\n      this.propertyChanged(\"padding\");\r\n    }\r\n  }\r\n\r\n  public get name(): string {\r\n    return this._name;\r\n  }\r\n\r\n  public set name(value: string) {\r\n    this._name = value;\r\n    this._isChanged = true;\r\n  }\r\n\r\n  public get readOnly(): boolean {\r\n    return this._readOnly;\r\n  }\r\n\r\n  public set readOnly(value: boolean) {\r\n    this._readOnly = value;\r\n    this._isChanged = true;\r\n  }\r\n\r\n  public get computedHeight(): number {\r\n    return Number(this.height) + Number(this.padding.top) + Number(this.padding.bottom);\r\n  }\r\n\r\n  public get computedWidth(): number {\r\n    return Number(this.width) - Number(this.padding.left) - Number(this.padding.right);\r\n  }\r\n  public get height(): number {\r\n    return this.geometry.height;\r\n  }\r\n\r\n  public set height(value: number) {\r\n    this.geometry.height = value;\r\n  }\r\n\r\n  public get width(): number {\r\n    return this.geometry.width;\r\n  }\r\n\r\n  public set width(value: number) {\r\n    this.geometry.width = value;\r\n  }\r\n\r\n  public get x(): number {\r\n    return this.geometry.x;\r\n  }\r\n\r\n  public set x(value: number) {\r\n    this.geometry.x = value;\r\n  }\r\n\r\n  public get y(): number {\r\n    return this.geometry.y;\r\n  }\r\n\r\n  public set y(value: number) {\r\n    this.geometry.y = value;\r\n  }\r\n\r\n  public hasText(): boolean {\r\n    return false;\r\n  }\r\n\r\n  propertyChanged(propName: string) {}\r\n\r\n  public showLabelPlaceholder(isSelected: boolean): boolean {\r\n    return this.label.alignment == StiLabelAlignment.Top || this.label.width < 15 || !isSelected ? true : false;\r\n  }\r\n  public getContentAlign() {\r\n    return this.label.alignment == StiLabelAlignment.Right ? \"end\" : \"start\";\r\n  }\r\n  public getLabelWidth() {\r\n    return this.label.alignment == StiLabelAlignment.Top ? \"100%\" : this.label.width + \"px\";\r\n  }\r\n  public getTopMargin() {\r\n    return this.label.alignment == StiLabelAlignment.Top && this.label.value ? \"8\" : \"0\";\r\n  }\r\n\r\n  setProperty(propName: string, value: any, oldObject: any) {\r\n    if (!this.canUpdateProperty(propName)) {\r\n      return;\r\n    }\r\n\r\n    if (propName.startsWith(\"label\") && \"label\" in this) {\r\n      (this as StiLabel).label.setProperty(\r\n        propName.replace(\"label.\", \"\"),\r\n        value.clone ? value.clone() : value,\r\n        oldObject\r\n      );\r\n    } else if (propName.startsWith(\"description\") && \"description\" in this) {\r\n      (this as StiDescription).description.setProperty(\r\n        propName.replace(\"description.\", \"\"),\r\n        value.clone ? value.clone() : value,\r\n        oldObject\r\n      );\r\n    } else if (\r\n      this[propName] &&\r\n      (oldObject === null ||\r\n        (propName == \"padding\" && (this[propName] as StiPadding).equals(oldObject)) ||\r\n        this[propName] == oldObject)\r\n    ) {\r\n      this[propName] = value.clone ? value.clone() : value;\r\n    } else if (\r\n      propName == \"innerText.color\" &&\r\n      this[\"textColor\"] &&\r\n      (oldObject === null || (oldObject as Color).equals(this[\"textColor\"]))\r\n    ) {\r\n      this[\"textColor\"] = value.clone();\r\n    } else if (\r\n      propName == \"innerText.backgroundColor\" &&\r\n      this[\"backgroundColor\"] &&\r\n      (oldObject === null || (oldObject as Color).equals(this[\"backgroundColor\"]))\r\n    ) {\r\n      this[\"backgroundColor\"] = value.clone();\r\n    } else if (\r\n      propName == \"innerText.borderColor\" &&\r\n      this[\"borderColor\"] &&\r\n      (oldObject === null || (oldObject as Color).equals(this[\"borderColor\"]))\r\n    ) {\r\n      this[\"borderColor\"] = value.clone();\r\n    } else if (\r\n      propName == \"innerText.checkColor\" &&\r\n      this[\"checkColor\"] &&\r\n      (oldObject === null || (oldObject as Color).equals(this[\"checkColor\"]))\r\n    ) {\r\n      this[\"checkColor\"] = value.clone();\r\n    } else if (\r\n      propName == \"innerText.borderWeight\" &&\r\n      this[\"borderWeight\"] &&\r\n      (oldObject === null || this[\"borderWeight\"] == oldObject)\r\n    ) {\r\n      this[\"borderWeight\"] = value;\r\n    } else if (\r\n      propName == \"innerText.contentAlignment\" &&\r\n      this[\"contentAlignment\"] &&\r\n      (oldObject === null || this[\"contentAlignment\"] == oldObject)\r\n    ) {\r\n      this[\"contentAlignment\"] = value;\r\n    } else if (\r\n      propName.startsWith(\"innerText.font\") &&\r\n      this[\"font\"] &&\r\n      (oldObject === null || (oldObject as Font).equals(this[\"font\"]))\r\n    ) {\r\n      (this[\"font\"] as Font).setProperty(propName.replace(\"innerText.font.\", \"\"), value);\r\n    } else if (\r\n      propName.startsWith(\"padding.\") &&\r\n      this[\"padding\"] &&\r\n      (oldObject === null || (oldObject as StiPadding).equals(this[\"padding\"]))\r\n    ) {\r\n      let opt = propName.replace(\"padding.\", \"\");\r\n      this[\"padding\"][opt] = value;\r\n    }\r\n  }\r\n  public arrayOfStylesToString(array: string[]): string {\r\n    let styles: string[] = [];\r\n    if (array.length > 0) {\r\n      array.forEach((item) => {\r\n        if (item != \"Underline\") {\r\n          styles.push(item);\r\n        }\r\n      });\r\n    }\r\n    return styles.length > 0 ? styles.join(\" \").toLocaleLowerCase() : \"\";\r\n  }\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    usedFonts.add(this._label.font.family, this.arrayOfStylesToString(this._label.font.style), this._label.font.size);\r\n  }\r\n\r\n  public getParent(form: StiForm): StiContainer {\r\n    let container: StiContainer;\r\n    form.pages.forEach((page) => {\r\n      if (page.elements.indexOf(this) >= 0) {\r\n        container = page;\r\n      } else {\r\n        page.allElements.forEach((e) => {\r\n          let elements = (e as any as StiContainer).elements;\r\n          if (elements && elements.indexOf(this) >= 0) {\r\n            container = e as any as StiContainer;\r\n          }\r\n        });\r\n      }\r\n    });\r\n    return container;\r\n  }\r\n\r\n  public getOverPageGeometry(form: StiForm): StiRectangleGeometry {\r\n    let geometry = this.geometry.clone();\r\n    form.pages.forEach((page) => {\r\n      let allElements = page.allElements;\r\n      let child: StiFormElement = this;\r\n      let find = true;\r\n      while (find) {\r\n        find = false;\r\n        allElements.forEach((e) => {\r\n          let elements = (e as any as StiContainer).elements;\r\n          if (elements && elements.indexOf(child) >= 0) {\r\n            geometry.x += e.geometry.x + e.padding.left;\r\n            geometry.y += e.geometry.y + e.padding.top;\r\n            child = e;\r\n            find = true;\r\n          }\r\n        });\r\n      }\r\n    });\r\n    return geometry;\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyBool(\"Visible\", this.visible);\r\n    jObject.addPropertyBool(\"ReadOnly\", this.readOnly);\r\n    jObject.addPropertyJObject(\"Padding\", this.padding.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Geometry\", this.geometry.saveToJsonObject(options));\r\n    jObject.addPropertyStringNullOrEmpty(\"Name\", this.name);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    this.isAdded = true;\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Visible\":\r\n          this.visible = property.value;\r\n          break;\r\n        case \"Enabled\":\r\n        case \"ReadOnly\":\r\n          if (property.name == \"Enabled\") {\r\n            this.readOnly = !property.value;\r\n          } else {\r\n            this.readOnly = property.value;\r\n          }\r\n          break;\r\n        case \"Padding\":\r\n          this.padding = new StiPadding();\r\n          this.padding.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Geometry\":\r\n          this.geometry = new StiRectangleGeometry();\r\n          this.geometry.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiHorizontalAlignment, StiLineWeight, StiVerticalAlignment } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport {\r\n  StiLabel,\r\n  StiDescription,\r\n  StiEditableContent,\r\n  StiOptionsElement,\r\n  StiValueElement,\r\n  StiTabIndex,\r\n} from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiComboBoxElement\r\n  extends StiFormElement\r\n  implements StiLabel, StiDescription, StiEditableContent, StiOptionsElement, StiValueElement, StiTabIndex\r\n{\r\n  public type: string = \"Combo_BoxElement\";\r\n  public tooltip = \"\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public backgroundColor: Color = Color.white();\r\n  public textColor: Color = Color.black();\r\n  public borderColor: Color = Color.lightGray();\r\n  public borderWeight: StiLineWeight = StiLineWeight.Thin;\r\n  public editable = false;\r\n  public options: string[] = [];\r\n  public selectedOption = \"\";\r\n  public tabIndex: number;\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(150, 40);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiComboBox\"));\r\n\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"First\"));\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"Second\"));\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"Third\"));\r\n  }\r\n  setDefaultValues() {\r\n    this.selectedOption = \"\";\r\n  }\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value++;\r\n    return value;\r\n  }\r\n  eContentAlignment?: StiHorizontalAlignment;\r\n  eVerticalAlignment?: StiVerticalAlignment;\r\n  eParent?: any;\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(this.selectedOption, this.font, this.textColor, this.backgroundColor);\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n\r\n  get eFont(): Font {\r\n    return this.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.font = value;\r\n  }\r\n\r\n  get eBackgroundColor(): Color {\r\n    return this.backgroundColor;\r\n  }\r\n\r\n  set eBackgroundColor(value: Color) {\r\n    this.backgroundColor = value;\r\n  }\r\n\r\n  eValue: string;\r\n\r\n  get eColor(): Color {\r\n    return this.textColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.textColor = value;\r\n  }\r\n\r\n  get value() {\r\n    return this.selectedOption;\r\n  }\r\n\r\n  haveBackgoundColor(): boolean {\r\n    return true;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return false;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n  htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.eColor.toHtmlColor()}}`;\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"TextColor\", this.textColor);\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    jObject.addPropertyEnum(\"BorderWeight\", StiLineWeight, this.borderWeight);\r\n    jObject.addPropertyBool(\"Editable\", this.editable);\r\n    jObject.addPropertyString(\"SelectedOption\", this.selectedOption);\r\n    jObject.addPropertyArray(\"Options\", this.options);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TextColor\":\r\n          this.textColor = new Color();\r\n          this.textColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BorderWeight\":\r\n          this.borderWeight = Enum.parse(StiLineWeight, property.value);\r\n          break;\r\n        case \"Editable\":\r\n          this.editable = property.value;\r\n          break;\r\n        case \"SelectedOption\":\r\n          this.selectedOption = property.value;\r\n          break;\r\n        case \"Options\":\r\n          this.options = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.options.push(p.value));\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { StiHorizontalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiEditableContent } from \"../../system/interfaces\";\r\n\r\nexport class StiAddressLabelItem implements StiEditableContent {\r\n  get eFont(): Font {\r\n    return this.parent.descriptionFont;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.parent.descriptionFont = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.parent.descriptionColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.parent.descriptionColor = value;\r\n  }\r\n\r\n  haveBackgoundColor(): boolean {\r\n    return false;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.parent.contentAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.parent.contentAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return true;\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return this.parent ? `${this.eFont.htmlStyle()};color:${this.eColor.toHtmlColor()}` : \"\";\r\n  }\r\n\r\n  private property: string;\r\n\r\n  set eValue(value: string) {\r\n    this.parent[this.property] = value;\r\n  }\r\n\r\n  get eValue(): string {\r\n    return this.parent[this.property];\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n\r\n  constructor(value: string, public parent: any) {\r\n    this.property = value;\r\n  }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiHorizontalAlignment, StiLineWeight } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport { StiLabel, StiEditableContent, StiTabIndex } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiAddressLabelItem } from \"./text/StiAddressLabelItem\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\n\r\nexport class StiAddressElement extends StiFormElement implements StiLabel, StiTabIndex {\r\n  public type: string = \"AddressElement\";\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public descriptionFont: Font = new Font(\"Segoe UI\", 9);\r\n  public descriptionColor: Color = Color.black();\r\n\r\n  public backgroundColor: Color = Color.white();\r\n  public textColor: Color = Color.black();\r\n  public borderColor: Color = Color.lightGray();\r\n  public borderWeight: StiLineWeight = StiLineWeight.Thin;\r\n  public contentAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n\r\n  public streetAddress: string = \"\";\r\n  public streetAddress2: string = \"\";\r\n  public city: string = \"\";\r\n  public state: string = \"\";\r\n  public zipCode: string = \"\";\r\n  public country: string = \"\";\r\n\r\n  public streetAddressLabel = StiLocalizationService.get(\"PropertyMain\", \"StreetAddress\");\r\n  public streetAddress2Label = StiLocalizationService.get(\"PropertyMain\", \"StreetAddress\") + \" 2\";\r\n  public cityLabel = StiLocalizationService.get(\"PropertyMain\", \"City\");\r\n  public stateLabel = StiLocalizationService.get(\"PropertyMain\", \"State\");\r\n  public zipCodeLabel = StiLocalizationService.get(\"Components\", \"StiZipCode\");\r\n  public countryLabel = StiLocalizationService.get(\"PropertyMain\", \"Country\");\r\n\r\n  public streetAddressLabelItem: StiAddressLabelItem = new StiAddressLabelItem(\"streetAddressLabel\", this);\r\n  public streetAddress2LabelItem: StiAddressLabelItem = new StiAddressLabelItem(\"streetAddress2Label\", this);\r\n  public cityLabelItem: StiAddressLabelItem = new StiAddressLabelItem(\"cityLabel\", this);\r\n  public stateLabelItem: StiAddressLabelItem = new StiAddressLabelItem(\"stateLabel\", this);\r\n  public zipCodeLabelItem: StiAddressLabelItem = new StiAddressLabelItem(\"zipCodeLabel\", this);\r\n  public countryLabelItem: StiAddressLabelItem = new StiAddressLabelItem(\"countryLabel\", this);\r\n\r\n  public useStreetAddress: boolean = true;\r\n  public useStreetAddress2: boolean = true;\r\n  public useCity: boolean = true;\r\n  public useState: boolean = true;\r\n  public useZipCode: boolean = true;\r\n  public useCountry: boolean = true;\r\n  public maximum: number = 255;\r\n  public tabIndex: number;\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(150, 200);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Report\", \"Address\"));\r\n\r\n    this.geometry.minWidth = 150;\r\n    this.geometry.minHeight = 50;\r\n  }\r\n  setDefaultValues() {\r\n    this.streetAddress = \"\";\r\n    this.streetAddress2 = \"\";\r\n    this.city = \"\";\r\n    this.state = \"\";\r\n    this.zipCode = \"\";\r\n    this.country = \"\";\r\n  }\r\n\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value;\r\n    return value + 6;\r\n  }\r\n\r\n  public get contentAreaWidth(): number {\r\n    let margin = this.padding;\r\n    return this.width - margin.left - margin.right;\r\n  }\r\n\r\n  public get contentAreaHeight(): number {\r\n    let margin = this.padding;\r\n    return this.height - margin.top - margin.bottom - 35;\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.descriptionFont.family,\r\n      this.arrayOfStylesToString(this.descriptionFont.style),\r\n      this.descriptionFont.size\r\n    );\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\"\", this.font, this.textColor, this.backgroundColor, this.contentAlignment);\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n\r\n  setProperty(propName: string, value: any, oldObject: any) {\r\n    super.setProperty(propName, value, oldObject);\r\n    if (\r\n      propName.startsWith(\"description.font\") &&\r\n      (oldObject === null || (oldObject as Font).equals(this.descriptionFont))\r\n    ) {\r\n      this.descriptionFont.setProperty(propName.replace(\"description.font.\", \"\"), value);\r\n    } else if (\r\n      propName == \"description.color\" &&\r\n      (oldObject === null || (oldObject as Color).equals(this.descriptionColor))\r\n    ) {\r\n      this.descriptionColor = value.clone();\r\n    }\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"TextColor\", this.textColor);\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"DescriptionFont\", this.descriptionFont.saveToJsonObject(options));\r\n    jObject.addPropertyColor(\"DescriptionColor\", this.descriptionColor);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    jObject.addPropertyString(\"StreetAddress\", this.streetAddress);\r\n    jObject.addPropertyString(\"StreetAddress2\", this.streetAddress2);\r\n    jObject.addPropertyString(\"City\", this.city);\r\n    jObject.addPropertyString(\"State\", this.state);\r\n    jObject.addPropertyString(\"ZipCode\", this.zipCode);\r\n    jObject.addPropertyString(\"Country\", this.country);\r\n    jObject.addPropertyString(\"StreetAddressLabel\", this.streetAddressLabel);\r\n    jObject.addPropertyString(\"StreetAddress2Label\", this.streetAddress2Label);\r\n    jObject.addPropertyString(\"CityLabel\", this.cityLabel);\r\n    jObject.addPropertyString(\"StateLabel\", this.stateLabel);\r\n    jObject.addPropertyString(\"ZipCodeLabel\", this.zipCodeLabel);\r\n    jObject.addPropertyString(\"CountryLabel\", this.countryLabel);\r\n    jObject.addPropertyEnum(\"BorderWeight\", StiLineWeight, this.borderWeight);\r\n    jObject.addPropertyEnum(\"ContentAlignment\", StiHorizontalAlignment, this.contentAlignment);\r\n    jObject.addPropertyBool(\"UseCity\", this.useCity);\r\n    jObject.addPropertyBool(\"UseCountry\", this.useCountry);\r\n    jObject.addPropertyBool(\"UseState\", this.useState);\r\n    jObject.addPropertyBool(\"UseStreetAddress\", this.useStreetAddress);\r\n    jObject.addPropertyBool(\"UseStreetAddress2\", this.useStreetAddress2);\r\n    jObject.addPropertyBool(\"UseZipCode\", this.useZipCode);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"DescriptionColor\":\r\n          this.descriptionColor = new Color();\r\n          this.descriptionColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TextColor\":\r\n          this.textColor = new Color();\r\n          this.textColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"DescriptionFont\":\r\n          this.descriptionFont = new Font();\r\n          this.descriptionFont.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"StreetAddress\":\r\n          this.streetAddress = property.value;\r\n          break;\r\n        case \"StreetAddress2\":\r\n          this.streetAddress2 = property.value;\r\n          break;\r\n        case \"City\":\r\n          this.city = property.value;\r\n          break;\r\n        case \"State\":\r\n          this.state = property.value;\r\n          break;\r\n        case \"ZipCode\":\r\n          this.zipCode = property.value;\r\n          break;\r\n        case \"Country\":\r\n          this.country = property.value;\r\n          break;\r\n        case \"StreetAddressLabel\":\r\n          this.streetAddressLabel = property.value;\r\n          break;\r\n        case \"StreetAddress2Label\":\r\n          this.streetAddress2Label = property.value;\r\n          break;\r\n        case \"CityLabel\":\r\n          this.cityLabel = property.value;\r\n          break;\r\n        case \"StateLabel\":\r\n          this.stateLabel = property.value;\r\n          break;\r\n        case \"ZipCodeLabel\":\r\n          this.zipCodeLabel = property.value;\r\n          break;\r\n        case \"CountryLabel\":\r\n          this.countryLabel = property.value;\r\n          break;\r\n        case \"BorderWeight\":\r\n          this.borderWeight = Enum.parse(StiLineWeight, property.value);\r\n          break;\r\n        case \"ContentAlignment\":\r\n          this.contentAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"UseCity\":\r\n          this.useCity = property.value;\r\n          break;\r\n        case \"UseCountry\":\r\n          this.useCountry = property.value;\r\n          break;\r\n        case \"UseState\":\r\n          this.useState = property.value;\r\n          break;\r\n        case \"UseStreetAddress\":\r\n          this.useStreetAddress = property.value;\r\n          break;\r\n        case \"UseStreetAddress2\":\r\n          this.useStreetAddress2 = property.value;\r\n          break;\r\n        case \"UseZipCode\":\r\n          this.useZipCode = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n  htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.textColor.toHtmlColor()};text-align:${Enum.getName(\r\n      StiHorizontalAlignment,\r\n      this.contentAlignment\r\n    )}`;\r\n  }\r\n  comboBoxHtmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.textColor.toHtmlColor()}}`;\r\n  }\r\n}\r\n","import StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport {\r\n  HatchStyle,\r\n  StiBarcodeType,\r\n  StiBodyBrush,\r\n  StiQRCodeBodyShapeType,\r\n  StiQRCodeErrorCorrectionLevel,\r\n  StiQRCodeEyeBallShapeType,\r\n  StiQRCodeEyeFrameShapeType,\r\n  StiQRCodeSize,\r\n} from \"../system/enums\";\r\nimport { StiLabel, StiDescription, StiChangesInterceptor } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiBarcodeElement extends StiFormElement implements StiLabel, StiDescription, StiChangesInterceptor {\r\n  public type: string = \"BarCodeElement\";\r\n  public tooltip = \"\";\r\n  private _description: StiTextItem = new StiTextItem();\r\n  private _barcodeType: StiBarcodeType = StiBarcodeType.QRCode;\r\n  private _matrixSize: StiQRCodeSize = StiQRCodeSize.Automatic;\r\n  private _errorCorrectionLevel: StiQRCodeErrorCorrectionLevel = StiQRCodeErrorCorrectionLevel.Level1;\r\n\r\n  private _bodyBrushType: StiBodyBrush = StiBodyBrush.Solid;\r\n  private _bodyBrushColor: Color = Color.black();\r\n  private _startBodyBrushColor: Color = Color.black();\r\n  private _endBodyBrushColor: Color = Color.black();\r\n  private _bodyBrushBackColor: Color = Color.transparent();\r\n  private _bodyBrushForeColor: Color = Color.black();\r\n  private _bodyShapeType: StiQRCodeBodyShapeType = StiQRCodeBodyShapeType.Square;\r\n  private _bodyBrushAngle: number = 0;\r\n  private _bodyBrushHatchStyle: HatchStyle = HatchStyle.Horizontal;\r\n  private _bodyBrushFocus: number = 0.5;\r\n  private _bodyBrushBlend: number = 0.2;\r\n  private _bodyBrushDrawHatch: boolean = false;\r\n\r\n  private _eyeBallBrushType: StiBodyBrush = StiBodyBrush.Solid;\r\n  private _eyeBallBrushColor: Color = Color.black();\r\n  private _startEyeBallBrushColor: Color = Color.black();\r\n  private _endEyeBallBrushColor: Color = Color.black();\r\n  private _eyeBallBrushBackColor: Color = Color.transparent();\r\n  private _eyeBallBrushForeColor: Color = Color.black();\r\n  private _eyeBallShapeType: StiQRCodeEyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n  private _eyeBallBrushAngle: number = 0;\r\n  private _eyeBallBrushHatchStyle: HatchStyle = HatchStyle.Horizontal;\r\n  private _eyeBallBrushFocus: number = 0.5;\r\n  private _eyeBallBrushBlend: number = 0.2;\r\n  private _eyeBallBrushDrawHatch: boolean = false;\r\n\r\n  private _eyeFrameBrushType: StiBodyBrush = StiBodyBrush.Solid;\r\n  private _eyeFrameBrushColor: Color = Color.black();\r\n  private _startEyeFrameBrushColor: Color = Color.black();\r\n  private _endEyeFrameBrushColor: Color = Color.black();\r\n  private _eyeFrameBrushBackColor: Color = Color.transparent();\r\n  private _eyeFrameBrushForeColor: Color = Color.black();\r\n  private _eyeFrameShapeType: StiQRCodeEyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n  private _eyeFrameBrushAngle: number = 0;\r\n  private _eyeFrameBrushHatchStyle: HatchStyle = HatchStyle.Horizontal;\r\n  private _eyeFrameBrushFocus: number = 0.5;\r\n  private _eyeFrameBrushBlend: number = 0.2;\r\n  private _eyeFrameBrushDrawHatch: boolean = false;\r\n\r\n  private _codeString = StiLocalizationService.get(\"Components\", \"StiBarCode\");\r\n  private _width: number = 90;\r\n  private _height: number = 90;\r\n  private _style: number = 1;\r\n  private _backColor: Color = Color.transparent();\r\n  private _foreColor: Color = Color.black();\r\n  public showProgress = false;\r\n  public img: string;\r\n\r\n  public showBodyBrushEditor: boolean = false;\r\n  public showEyeBallBrushEditor: boolean = false;\r\n  public showEyeFrameBrushEditor: boolean = false;\r\n\r\n  propertyChanged(propName: string) {\r\n    this._isChanged = true;\r\n  }\r\n\r\n  public get backColor() {\r\n    return this._backColor;\r\n  }\r\n  public set backColor(value: Color) {\r\n    let oldValue = this._backColor;\r\n    if (oldValue != value) {\r\n      this._backColor = value;\r\n      this._backColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get foreColor() {\r\n    return this._foreColor;\r\n  }\r\n  public set foreColor(value: Color) {\r\n    let oldValue = this._foreColor;\r\n    if (oldValue != value) {\r\n      this._foreColor = value;\r\n      value.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get style() {\r\n    return this._style;\r\n  }\r\n  public set style(value: number) {\r\n    let oldValue = this._style;\r\n    if (oldValue != value) {\r\n      this._style = value;\r\n      this.setStyle(value);\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n  public get Width() {\r\n    return this._width;\r\n  }\r\n  public set Width(value: number) {\r\n    let oldValue = this._width;\r\n    if (oldValue != value) {\r\n      this._width = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n  public get Height() {\r\n    return this._height;\r\n  }\r\n  public set Height(value: number) {\r\n    let oldValue = this._height;\r\n    if (oldValue != value) {\r\n      this._height = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(170, 110);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiBarCode\"));\r\n    this.backColor = Color.transparent();\r\n    this.foreColor = Color.black();\r\n\r\n    this.bodyBrushColor = Color.black();\r\n    this.startBodyBrushColor = Color.black();\r\n    this.endBodyBrushColor = Color.black();\r\n    this.bodyBrushBackColor = Color.transparent();\r\n    this.bodyBrushForeColor = Color.black();\r\n\r\n    this.eyeBallBrushColor = Color.black();\r\n    this.startEyeBallBrushColor = Color.black();\r\n    this.endEyeBallBrushColor = Color.black();\r\n    this.eyeBallBrushBackColor = Color.transparent();\r\n    this.eyeBallBrushForeColor = Color.black();\r\n\r\n    this.eyeFrameBrushColor = Color.black();\r\n    this.startEyeFrameBrushColor = Color.black();\r\n    this.endEyeFrameBrushColor = Color.black();\r\n    this.eyeFrameBrushBackColor = Color.transparent();\r\n    this.eyeFrameBrushForeColor = Color.black();\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n  public isChanged(): boolean {\r\n    return super.isChanged() || this.label?.isChanged() || this.description?.isChanged();\r\n  }\r\n  public setStyle(value: number) {\r\n    switch (value) {\r\n      case 1:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Solid;\r\n        this.bodyBrushColor = Color.black();\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Square;\r\n        this.eyeBallBrushType = StiBodyBrush.Solid;\r\n        this.eyeBallBrushColor = Color.black();\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Solid;\r\n        this.eyeFrameBrushColor = Color.black();\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 2:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Solid;\r\n        this.bodyBrushColor = Color.fromArgb(96, 75, 117);\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Diamond;\r\n        this.eyeBallBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeBallBrushColor = Color.fromArgb(3, 152, 152);\r\n        this.endEyeBallBrushColor = Color.fromArgb(44, 110, 154);\r\n        this.eyeBallBrushAngle = 30;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Round1;\r\n        this.eyeFrameBrushType = StiBodyBrush.Glass;\r\n        this.eyeFrameBrushColor = Color.fromArgb(118, 202, 226);\r\n        this.eyeFrameBrushDrawHatch = false;\r\n        this.eyeFrameBrushBlend = 0.2;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Round1;\r\n        break;\r\n      case 3:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Solid;\r\n        this.bodyBrushColor = Color.fromArgb(85, 85, 85);\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Circle;\r\n        this.eyeBallBrushType = StiBodyBrush.Glare;\r\n        this.startEyeBallBrushColor = Color.fromArgb(100, 115, 53);\r\n        this.endEyeBallBrushColor = Color.fromArgb(137, 73, 106);\r\n        this.eyeBallBrushAngle = 5;\r\n        this.eyeBallBrushFocus = 0.5;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Circle;\r\n        this.eyeFrameBrushType = StiBodyBrush.Glass;\r\n        this.eyeFrameBrushColor = Color.fromArgb(57, 94, 133);\r\n        this.eyeFrameBrushDrawHatch = false;\r\n        this.eyeFrameBrushBlend = 0.2;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Circle;\r\n        break;\r\n      case 4:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Glare;\r\n        this.startBodyBrushColor = Color.fromArgb(116, 46, 44);\r\n        this.endBodyBrushColor = Color.fromArgb(33, 77, 132);\r\n        this.bodyBrushAngle = 7;\r\n        this.bodyBrushFocus = 0.9;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.RoundedSquare;\r\n        this.eyeBallBrushType = StiBodyBrush.Hatch;\r\n        this.eyeBallBrushHatchStyle = HatchStyle.LargeCheckerBoard;\r\n        this.eyeBallBrushForeColor = Color.fromArgb(120, 57, 72);\r\n        this.eyeBallBrushBackColor = Color.fromArgb(105, 82, 137);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Round;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(90, 1, 179);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(59, 73, 144);\r\n        this.eyeFrameBrushAngle = 30;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Round;\r\n        break;\r\n      case 5:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Glare;\r\n        this.startBodyBrushColor = Color.fromArgb(184, 5, 8);\r\n        this.endBodyBrushColor = Color.fromArgb(48, 117, 132);\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyBrushFocus = 0.5;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.ZebraCross1;\r\n        this.eyeBallBrushType = StiBodyBrush.Solid;\r\n        this.eyeBallBrushColor = Color.fromArgb(12, 172, 172);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Circle;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(191, 0, 178);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(193, 0, 64);\r\n        this.eyeFrameBrushAngle = 10;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Round1;\r\n        break;\r\n      case 6:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Glare;\r\n        this.startBodyBrushColor = Color.fromArgb(73, 57, 99);\r\n        this.endBodyBrushColor = Color.fromArgb(1, 123, 46);\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyBrushFocus = 0.5;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Dot;\r\n        this.eyeBallBrushType = StiBodyBrush.Solid;\r\n        this.eyeBallBrushColor = Color.fromArgb(36, 82, 143);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Dots;\r\n        this.eyeFrameBrushType = StiBodyBrush.Glare;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(179, 1, 166);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(49, 53, 28);\r\n        this.eyeFrameBrushAngle = 10;\r\n        this.eyeFrameBrushFocus = 0.8;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Dots;\r\n        break;\r\n      case 7:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Hatch;\r\n        this.bodyBrushHatchStyle = HatchStyle.DashedHorizontal;\r\n        this.bodyBrushForeColor = Color.fromArgb(216, 238, 243);\r\n        this.bodyBrushBackColor = Color.fromArgb(229, 185, 183);\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Square;\r\n        this.eyeBallBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeBallBrushColor = Color.fromArgb(242, 242, 242);\r\n        this.endEyeBallBrushColor = Color.fromArgb(255, 147, 147);\r\n        this.eyeBallBrushAngle = 4;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Glare;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(178, 161, 199);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(253, 234, 218);\r\n        this.eyeFrameBrushAngle = 4;\r\n        this.eyeFrameBrushFocus = 0.5;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 8:\r\n        this.backColor = Color.fromArgb(87, 118, 157);\r\n        this.bodyBrushType = StiBodyBrush.Gradient;\r\n        this.startBodyBrushColor = Color.fromArgb(219, 238, 243);\r\n        this.endBodyBrushColor = Color.fromArgb(203, 184, 168);\r\n        this.bodyBrushAngle = 5;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Dot;\r\n        this.eyeBallBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeBallBrushColor = Color.fromArgb(219, 238, 243);\r\n        this.endEyeBallBrushColor = Color.fromArgb(203, 184, 168);\r\n        this.eyeBallBrushAngle = 5;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(219, 238, 243);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(203, 184, 168);\r\n        this.eyeFrameBrushAngle = 5;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 9:\r\n        this.backColor = Color.fromArgb(144, 60, 57);\r\n        this.bodyBrushType = StiBodyBrush.Gradient;\r\n        this.startBodyBrushColor = Color.fromArgb(219, 238, 243);\r\n        this.endBodyBrushColor = Color.fromArgb(251, 213, 181);\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Square;\r\n        this.eyeBallBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeBallBrushColor = Color.fromArgb(219, 238, 243);\r\n        this.endEyeBallBrushColor = Color.fromArgb(251, 213, 181);\r\n        this.eyeBallBrushAngle = 3;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(219, 238, 243);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(251, 213, 181);\r\n        this.eyeFrameBrushAngle = 3;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 10:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Hatch;\r\n        this.bodyBrushHatchStyle = HatchStyle.DashedHorizontal;\r\n        this.bodyBrushForeColor = Color.fromArgb(219, 238, 243);\r\n        this.bodyBrushBackColor = Color.fromArgb(229, 185, 183);\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Square;\r\n        this.eyeBallBrushType = StiBodyBrush.Hatch;\r\n        this.eyeBallBrushHatchStyle = HatchStyle.DashedHorizontal;\r\n        this.eyeBallBrushForeColor = Color.fromArgb(219, 238, 243);\r\n        this.eyeBallBrushBackColor = Color.fromArgb(229, 185, 183);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Hatch;\r\n        this.eyeFrameBrushHatchStyle = HatchStyle.DashedHorizontal;\r\n        this.eyeFrameBrushForeColor = Color.fromArgb(219, 238, 243);\r\n        this.eyeFrameBrushBackColor = Color.fromArgb(229, 185, 183);\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 11:\r\n        this.foreColor = Color.fromArgb(191, 178, 205);\r\n        this.backColor = Color.fromArgb(38, 38, 38);\r\n        this.bodyBrushType = StiBodyBrush.Gradient;\r\n        this.startBodyBrushColor = Color.fromArgb(254, 243, 255);\r\n        this.endBodyBrushColor = Color.fromArgb(154, 143, 167);\r\n        this.bodyBrushAngle = 1;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Diamond;\r\n        this.eyeBallBrushType = StiBodyBrush.Empty;\r\n        this.startEyeBallBrushColor = Color.fromArgb(254, 243, 255);\r\n        this.endEyeBallBrushColor = Color.fromArgb(154, 143, 167);\r\n        this.eyeBallBrushAngle = 3;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Empty;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(254, 243, 255);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(154, 143, 16);\r\n        this.eyeFrameBrushAngle = 1;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 12:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Glare;\r\n        this.startBodyBrushColor = Color.fromArgb(178, 161, 199);\r\n        this.endBodyBrushColor = Color.fromArgb(0, 255, 120);\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyBrushFocus = 0.5;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Dot;\r\n        this.eyeBallBrushType = StiBodyBrush.Solid;\r\n        this.eyeBallBrushColor = Color.fromArgb(141, 179, 226);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Dots;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(255, 147, 251);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(146, 208, 80);\r\n        this.eyeFrameBrushAngle = 4;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Dots;\r\n        break;\r\n      case 13:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Solid;\r\n        this.bodyBrushColor = Color.fromArgb(28, 125, 138);\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.ZebraVertical;\r\n        this.eyeBallBrushType = StiBodyBrush.Solid;\r\n        this.eyeBallBrushColor = Color.fromArgb(211, 136, 84);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.ZebraHorizontal;\r\n        this.eyeFrameBrushType = StiBodyBrush.Solid;\r\n        this.eyeFrameBrushColor = Color.fromArgb(88, 66, 111);\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Round;\r\n        break;\r\n      case 14:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Solid;\r\n        this.bodyBrushColor = Color.fromArgb(34, 82, 94);\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.RoundedSquare;\r\n        this.eyeBallBrushType = StiBodyBrush.Solid;\r\n        this.eyeBallBrushColor = Color.fromArgb(34, 82, 94);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Solid;\r\n        this.eyeFrameBrushColor = Color.fromArgb(34, 82, 94);\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 15:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Hatch;\r\n        this.bodyBrushHatchStyle = HatchStyle.DarkHorizontal;\r\n        this.bodyBrushForeColor = Color.fromArgb(176, 71, 67);\r\n        this.bodyBrushBackColor = Color.fromArgb(91, 139, 150);\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Square;\r\n        this.eyeBallBrushType = StiBodyBrush.Glare;\r\n        this.startEyeBallBrushColor = Color.fromArgb(191, 183, 184);\r\n        this.endEyeBallBrushColor = Color.fromArgb(199, 29, 28);\r\n        this.eyeBallBrushAngle = 30;\r\n        this.eyeBallBrushFocus = 0.5;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Glare;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(102, 79, 128);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(189, 95, 32);\r\n        this.eyeFrameBrushAngle = 0;\r\n        this.eyeFrameBrushFocus = 0;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 16:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Gradient;\r\n        this.startBodyBrushColor = Color.fromArgb(147, 60, 53);\r\n        this.endBodyBrushColor = Color.fromArgb(122, 106, 66);\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.ZebraCross2;\r\n        this.eyeBallBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeBallBrushColor = Color.fromArgb(147, 60, 53);\r\n        this.endEyeBallBrushColor = Color.fromArgb(122, 106, 66);\r\n        this.eyeBallBrushAngle = 3;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(147, 60, 53);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(122, 106, 66);\r\n        this.eyeFrameBrushAngle = 3;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 17:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Gradient;\r\n        this.startBodyBrushColor = Color.fromArgb(203, 7, 203);\r\n        this.endBodyBrushColor = Color.fromArgb(18, 158, 177);\r\n        this.bodyBrushAngle = 5;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Square;\r\n        this.eyeBallBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeBallBrushColor = Color.fromArgb(203, 7, 203);\r\n        this.endEyeBallBrushColor = Color.fromArgb(18, 158, 177);\r\n        this.eyeBallBrushAngle = 5;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Square;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(203, 7, 203);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(18, 158, 177);\r\n        this.eyeFrameBrushAngle = 5;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Square;\r\n        break;\r\n      case 18:\r\n        this.backColor = Color.transparent();\r\n        this.bodyBrushType = StiBodyBrush.Gradient;\r\n        this.startBodyBrushColor = Color.fromArgb(138, 57, 0);\r\n        this.endBodyBrushColor = Color.fromArgb(137, 3, 15);\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Star;\r\n        this.eyeBallBrushType = StiBodyBrush.Hatch;\r\n        this.eyeBallBrushHatchStyle = HatchStyle.Plaid;\r\n        this.eyeBallBrushForeColor = Color.fromArgb(81, 68, 115);\r\n        this.eyeBallBrushBackColor = Color.fromArgb(125, 42, 35);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Round3;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(131, 50, 49);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(42, 82, 92);\r\n        this.eyeFrameBrushAngle = 8;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Round3;\r\n        break;\r\n      case 19:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Glare;\r\n        this.startBodyBrushColor = Color.fromArgb(0, 226, 120);\r\n        this.endBodyBrushColor = Color.yellow();\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyBrushFocus = 0.5;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.ZebraCross1;\r\n        this.eyeBallBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeBallBrushColor = Color.fromArgb(178, 161, 199);\r\n        this.endEyeBallBrushColor = Color.white();\r\n        this.eyeBallBrushAngle = 4;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.ZebraVertical;\r\n        this.eyeFrameBrushType = StiBodyBrush.Hatch;\r\n        this.eyeFrameBrushHatchStyle = HatchStyle.DarkVertical;\r\n        this.eyeFrameBrushForeColor = Color.fromArgb(253, 234, 218);\r\n        this.eyeFrameBrushBackColor = Color.fromArgb(198, 217, 240);\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Dots;\r\n        break;\r\n      case 20:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Glare;\r\n        this.startBodyBrushColor = Color.fromArgb(255, 147, 147);\r\n        this.endBodyBrushColor = Color.fromArgb(219, 238, 243);\r\n        this.bodyBrushAngle = 0;\r\n        this.bodyBrushFocus = 0.5;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.ZebraCross2;\r\n        this.eyeBallBrushType = StiBodyBrush.Glass;\r\n        this.eyeBallBrushColor = Color.fromArgb(147, 255, 255);\r\n        this.eyeBallBrushDrawHatch = false;\r\n        this.eyeBallBrushBlend = 0.2;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Circle;\r\n        this.eyeFrameBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(255, 147, 251);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(255, 147, 14);\r\n        this.eyeFrameBrushAngle = 5;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Round1;\r\n        break;\r\n      case 21:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Gradient;\r\n        this.startBodyBrushColor = Color.white();\r\n        this.endBodyBrushColor = Color.fromArgb(165, 165, 165);\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Circle;\r\n        this.eyeBallBrushType = StiBodyBrush.Glare;\r\n        this.startEyeBallBrushColor = Color.fromArgb(215, 227, 188);\r\n        this.endEyeBallBrushColor = Color.fromArgb(255, 147, 251);\r\n        this.eyeBallBrushAngle = 5;\r\n        this.eyeBallBrushFocus = 0.5;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Circle;\r\n        this.eyeFrameBrushType = StiBodyBrush.Glass;\r\n        this.eyeFrameBrushColor = Color.fromArgb(219, 229, 241);\r\n        this.eyeFrameBrushDrawHatch = false;\r\n        this.eyeFrameBrushBlend = 0.2;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Circle;\r\n        break;\r\n      case 22:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Glare;\r\n        this.startBodyBrushColor = Color.fromArgb(229, 182, 183);\r\n        this.endBodyBrushColor = Color.fromArgb(141, 179, 226);\r\n        this.bodyBrushAngle = 7;\r\n        this.bodyBrushFocus = 0.9;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.RoundedSquare;\r\n        this.eyeBallBrushType = StiBodyBrush.Hatch;\r\n        this.eyeBallBrushHatchStyle = HatchStyle.LargeCheckerBoard;\r\n        this.eyeBallBrushForeColor = Color.fromArgb(204, 193, 217);\r\n        this.eyeBallBrushBackColor = Color.fromArgb(242, 220, 219);\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Round;\r\n        this.eyeFrameBrushType = StiBodyBrush.Glare;\r\n        this.startEyeFrameBrushColor = Color.fromArgb(201, 147, 255);\r\n        this.endEyeFrameBrushColor = Color.fromArgb(219, 229, 241);\r\n        this.eyeFrameBrushAngle = 5;\r\n        this.eyeFrameBrushFocus = 0.5;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Round;\r\n        break;\r\n      case 23:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Gradient;\r\n        this.startBodyBrushColor = Color.fromArgb(165, 165, 165);\r\n        this.endBodyBrushColor = Color.white();\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.Diamond;\r\n        this.eyeBallBrushType = StiBodyBrush.Glare;\r\n        this.startEyeBallBrushColor = Color.fromArgb(147, 255, 255);\r\n        this.endEyeBallBrushColor = Color.fromArgb(112, 48, 160);\r\n        this.eyeBallBrushAngle = 5;\r\n        this.eyeBallBrushFocus = 0.5;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Round1;\r\n        this.eyeFrameBrushType = StiBodyBrush.Glass;\r\n        this.eyeFrameBrushColor = Color.fromArgb(216, 238, 243);\r\n        this.eyeFrameBrushDrawHatch = false;\r\n        this.eyeFrameBrushBlend = 0.2;\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Round1;\r\n        break;\r\n      case 24:\r\n        this.backColor = Color.fromArgb(37, 86, 99);\r\n        this.bodyBrushType = StiBodyBrush.Glare;\r\n        this.startBodyBrushColor = Color.fromArgb(255, 40, 100);\r\n        this.endBodyBrushColor = Color.fromArgb(146, 215, 80);\r\n        this.bodyBrushAngle = 3;\r\n        this.bodyBrushFocus = 0.5;\r\n        this.bodyShapeType = StiQRCodeBodyShapeType.ZebraHorizontal;\r\n        this.eyeBallBrushType = StiBodyBrush.Gradient;\r\n        this.startEyeBallBrushColor = Color.fromArgb(0, 176, 240);\r\n        this.endEyeBallBrushColor = Color.fromArgb(229, 224, 236);\r\n        this.eyeBallBrushAngle = 0;\r\n        this.eyeBallShapeType = StiQRCodeEyeBallShapeType.Star;\r\n        this.eyeFrameBrushType = StiBodyBrush.Hatch;\r\n        this.eyeFrameBrushHatchStyle = HatchStyle.DashedUpwardDiagonal;\r\n        this.eyeFrameBrushForeColor = Color.fromArgb(184, 204, 228);\r\n        this.eyeFrameBrushBackColor = Color.fromArgb(178, 161, 199);\r\n        this.eyeFrameShapeType = StiQRCodeEyeFrameShapeType.Circle;\r\n        break;\r\n    }\r\n  }\r\n\r\n  public resetChanged() {\r\n    super.resetChanged();\r\n    if (this.label != null) {\r\n      this.label.resetChanged();\r\n    }\r\n    if (this.description != null) {\r\n      this.description.resetChanged();\r\n    }\r\n  }\r\n\r\n  public get description(): StiTextItem {\r\n    return this._description;\r\n  }\r\n\r\n  public set description(value: StiTextItem) {\r\n    let oldValue = this._description;\r\n    if (oldValue != value) {\r\n      this._description = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get barcodeType(): StiBarcodeType {\r\n    return this._barcodeType;\r\n  }\r\n\r\n  public set barcodeType(value: StiBarcodeType) {\r\n    let oldValue = this._barcodeType;\r\n    if (oldValue != value) {\r\n      this._barcodeType = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n  public get matrixSize(): StiQRCodeSize {\r\n    return this._matrixSize;\r\n  }\r\n\r\n  public set matrixSize(value: StiQRCodeSize) {\r\n    let oldValue = this._matrixSize;\r\n    if (oldValue != value) {\r\n      this._matrixSize = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n  public get errorCorrectionLevel(): StiQRCodeErrorCorrectionLevel {\r\n    return this._errorCorrectionLevel;\r\n  }\r\n\r\n  public set errorCorrectionLevel(value: StiQRCodeErrorCorrectionLevel) {\r\n    let oldValue = this._errorCorrectionLevel;\r\n    if (oldValue != value) {\r\n      this._errorCorrectionLevel = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get codeString(): string {\r\n    return this._codeString;\r\n  }\r\n\r\n  public set codeString(value: string) {\r\n    let oldValue = this._codeString;\r\n    if (oldValue != value) {\r\n      this._codeString = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallBrushType(): StiBodyBrush {\r\n    return this._eyeBallBrushType;\r\n  }\r\n\r\n  public set eyeBallBrushType(value: StiBodyBrush) {\r\n    let oldValue = this._eyeBallBrushType;\r\n    if (oldValue != value) {\r\n      this._eyeBallBrushType = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallBrushColor(): Color {\r\n    return this._eyeBallBrushColor;\r\n  }\r\n\r\n  public set eyeBallBrushColor(value: Color) {\r\n    let oldValue = this._eyeBallBrushColor;\r\n    if (oldValue != value) {\r\n      this._eyeBallBrushColor = value;\r\n      this._eyeBallBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get startEyeBallBrushColor(): Color {\r\n    return this._startEyeBallBrushColor;\r\n  }\r\n\r\n  public set startEyeBallBrushColor(value: Color) {\r\n    let oldValue = this._startEyeBallBrushColor;\r\n    if (oldValue != value) {\r\n      this._startEyeBallBrushColor = value;\r\n      this._startEyeBallBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get endEyeBallBrushColor(): Color {\r\n    return this._endEyeBallBrushColor;\r\n  }\r\n\r\n  public set endEyeBallBrushColor(value: Color) {\r\n    let oldValue = this._endEyeBallBrushColor;\r\n    if (oldValue != value) {\r\n      this._endEyeBallBrushColor = value;\r\n      this._endEyeBallBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallBrushBackColor(): Color {\r\n    return this._eyeBallBrushBackColor;\r\n  }\r\n\r\n  public set eyeBallBrushBackColor(value: Color) {\r\n    let oldValue = this._eyeBallBrushBackColor;\r\n    if (oldValue != value) {\r\n      this._eyeBallBrushBackColor = value;\r\n      this._eyeBallBrushBackColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallBrushForeColor(): Color {\r\n    return this._eyeBallBrushForeColor;\r\n  }\r\n\r\n  public set eyeBallBrushForeColor(value: Color) {\r\n    let oldValue = this._eyeBallBrushForeColor;\r\n    if (oldValue != value) {\r\n      this._eyeBallBrushForeColor = value;\r\n      this._eyeBallBrushForeColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallShapeType(): StiQRCodeEyeBallShapeType {\r\n    return this._eyeBallShapeType;\r\n  }\r\n\r\n  public set eyeBallShapeType(value: StiQRCodeEyeBallShapeType) {\r\n    let oldValue = this._eyeBallShapeType;\r\n    if (oldValue != value) {\r\n      this._eyeBallShapeType = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallBrushAngle(): number {\r\n    return this._eyeBallBrushAngle;\r\n  }\r\n\r\n  public set eyeBallBrushAngle(value: number) {\r\n    let oldValue = this._eyeBallBrushAngle;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._eyeBallBrushAngle = 0;\r\n      } else {\r\n        this._eyeBallBrushAngle = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n  public get eyeBallBrushHatchStyle(): HatchStyle {\r\n    return this._eyeBallBrushHatchStyle;\r\n  }\r\n\r\n  public set eyeBallBrushHatchStyle(value: HatchStyle) {\r\n    let oldValue = this._eyeBallBrushHatchStyle;\r\n    if (oldValue != value) {\r\n      this._eyeBallBrushHatchStyle = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallBrushFocus(): number {\r\n    return this._eyeBallBrushFocus;\r\n  }\r\n\r\n  public set eyeBallBrushFocus(value: number) {\r\n    let oldValue = this._eyeBallBrushFocus;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._eyeBallBrushFocus = 0;\r\n      } else {\r\n        this._eyeBallBrushFocus = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallBrushBlend(): number {\r\n    return this._eyeBallBrushBlend;\r\n  }\r\n\r\n  public set eyeBallBrushBlend(value: number) {\r\n    let oldValue = this._eyeBallBrushBlend;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._eyeBallBrushBlend = 0;\r\n      } else {\r\n        this._eyeBallBrushBlend = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeBallBrushDrawHatch(): boolean {\r\n    return this._eyeBallBrushDrawHatch;\r\n  }\r\n\r\n  public set eyeBallBrushDrawHatch(value: boolean) {\r\n    let oldValue = this._eyeBallBrushDrawHatch;\r\n    if (oldValue != value) {\r\n      this._eyeBallBrushDrawHatch = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyBrushType(): StiBodyBrush {\r\n    return this._bodyBrushType;\r\n  }\r\n\r\n  public set bodyBrushType(value: StiBodyBrush) {\r\n    let oldValue = this._bodyBrushType;\r\n    if (oldValue != value) {\r\n      this._bodyBrushType = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyBrushColor(): Color {\r\n    return this._bodyBrushColor;\r\n  }\r\n\r\n  public set bodyBrushColor(value: Color) {\r\n    let oldValue = this._bodyBrushColor;\r\n    if (oldValue != value) {\r\n      this._bodyBrushColor = value;\r\n      this._bodyBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get startBodyBrushColor(): Color {\r\n    return this._startBodyBrushColor;\r\n  }\r\n\r\n  public set startBodyBrushColor(value: Color) {\r\n    let oldValue = this._startBodyBrushColor;\r\n    if (oldValue != value) {\r\n      this._startBodyBrushColor = value;\r\n      this._startBodyBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get endBodyBrushColor(): Color {\r\n    return this._endBodyBrushColor;\r\n  }\r\n\r\n  public set endBodyBrushColor(value: Color) {\r\n    let oldValue = this._endBodyBrushColor;\r\n    if (oldValue != value) {\r\n      this._endBodyBrushColor = value;\r\n      this._endBodyBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyBrushBackColor(): Color {\r\n    return this._bodyBrushBackColor;\r\n  }\r\n\r\n  public set bodyBrushBackColor(value: Color) {\r\n    let oldValue = this._bodyBrushBackColor;\r\n    if (oldValue != value) {\r\n      this._bodyBrushBackColor = value;\r\n      this._bodyBrushBackColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyBrushForeColor(): Color {\r\n    return this._bodyBrushForeColor;\r\n  }\r\n\r\n  public set bodyBrushForeColor(value: Color) {\r\n    let oldValue = this._bodyBrushForeColor;\r\n    if (oldValue != value) {\r\n      this._bodyBrushForeColor = value;\r\n      this._bodyBrushForeColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyShapeType(): StiQRCodeBodyShapeType {\r\n    return this._bodyShapeType;\r\n  }\r\n\r\n  public set bodyShapeType(value: StiQRCodeBodyShapeType) {\r\n    let oldValue = this._bodyShapeType;\r\n    if (oldValue != value) {\r\n      this._bodyShapeType = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyBrushAngle(): number {\r\n    return this._bodyBrushAngle;\r\n  }\r\n\r\n  public set bodyBrushAngle(value: number) {\r\n    let oldValue = this._bodyBrushAngle;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._bodyBrushAngle = 0;\r\n      } else {\r\n        this._bodyBrushAngle = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n  public get bodyBrushHatchStyle(): HatchStyle {\r\n    return this._bodyBrushHatchStyle;\r\n  }\r\n\r\n  public set bodyBrushHatchStyle(value: HatchStyle) {\r\n    let oldValue = this._bodyBrushHatchStyle;\r\n    if (oldValue != value) {\r\n      this._bodyBrushHatchStyle = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyBrushFocus(): number {\r\n    return this._bodyBrushFocus;\r\n  }\r\n\r\n  public set bodyBrushFocus(value: number) {\r\n    let oldValue = this._bodyBrushFocus;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._bodyBrushFocus = 0;\r\n      } else {\r\n        this._bodyBrushFocus = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyBrushBlend(): number {\r\n    return this._bodyBrushBlend;\r\n  }\r\n\r\n  public set bodyBrushBlend(value: number) {\r\n    let oldValue = this._bodyBrushBlend;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._bodyBrushBlend = 0;\r\n      } else {\r\n        this._bodyBrushBlend = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get bodyBrushDrawHatch(): boolean {\r\n    return this._bodyBrushDrawHatch;\r\n  }\r\n\r\n  public set bodyBrushDrawHatch(value: boolean) {\r\n    let oldValue = this._bodyBrushDrawHatch;\r\n    if (oldValue != value) {\r\n      this._bodyBrushDrawHatch = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameBrushType(): StiBodyBrush {\r\n    return this._eyeFrameBrushType;\r\n  }\r\n\r\n  public set eyeFrameBrushType(value: StiBodyBrush) {\r\n    let oldValue = this._eyeFrameBrushType;\r\n    if (oldValue != value) {\r\n      this._eyeFrameBrushType = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameBrushColor(): Color {\r\n    return this._eyeFrameBrushColor;\r\n  }\r\n\r\n  public set eyeFrameBrushColor(value: Color) {\r\n    let oldValue = this._eyeFrameBrushColor;\r\n    if (oldValue != value) {\r\n      this._eyeFrameBrushColor = value;\r\n      this._eyeFrameBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get startEyeFrameBrushColor(): Color {\r\n    return this._startEyeFrameBrushColor;\r\n  }\r\n\r\n  public set startEyeFrameBrushColor(value: Color) {\r\n    let oldValue = this._startEyeFrameBrushColor;\r\n    if (oldValue != value) {\r\n      this._startEyeFrameBrushColor = value;\r\n      this._startEyeFrameBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get endEyeFrameBrushColor(): Color {\r\n    return this._endEyeFrameBrushColor;\r\n  }\r\n\r\n  public set endEyeFrameBrushColor(value: Color) {\r\n    let oldValue = this._endEyeFrameBrushColor;\r\n    if (oldValue != value) {\r\n      this._endEyeFrameBrushColor = value;\r\n      this._endEyeFrameBrushColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameBrushBackColor(): Color {\r\n    return this._eyeFrameBrushBackColor;\r\n  }\r\n\r\n  public set eyeFrameBrushBackColor(value: Color) {\r\n    let oldValue = this._eyeFrameBrushBackColor;\r\n    if (oldValue != value) {\r\n      this._eyeFrameBrushBackColor = value;\r\n      this._eyeFrameBrushBackColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameBrushForeColor(): Color {\r\n    return this._eyeFrameBrushForeColor;\r\n  }\r\n\r\n  public set eyeFrameBrushForeColor(value: Color) {\r\n    let oldValue = this._eyeFrameBrushForeColor;\r\n    if (oldValue != value) {\r\n      this._eyeFrameBrushForeColor = value;\r\n      this._eyeFrameBrushForeColor.changesInterceptor = this;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameShapeType(): StiQRCodeEyeFrameShapeType {\r\n    return this._eyeFrameShapeType;\r\n  }\r\n\r\n  public set eyeFrameShapeType(value: StiQRCodeEyeFrameShapeType) {\r\n    let oldValue = this._eyeFrameShapeType;\r\n    if (oldValue != value) {\r\n      this._eyeFrameShapeType = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameBrushAngle(): number {\r\n    return this._eyeFrameBrushAngle;\r\n  }\r\n\r\n  public set eyeFrameBrushAngle(value: number) {\r\n    let oldValue = this._eyeFrameBrushAngle;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._eyeFrameBrushAngle = 0;\r\n      } else {\r\n        this._eyeFrameBrushAngle = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n  public get eyeFrameBrushHatchStyle(): HatchStyle {\r\n    return this._eyeFrameBrushHatchStyle;\r\n  }\r\n\r\n  public set eyeFrameBrushHatchStyle(value: HatchStyle) {\r\n    let oldValue = this._eyeFrameBrushHatchStyle;\r\n    if (oldValue != value) {\r\n      this._eyeFrameBrushHatchStyle = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameBrushFocus(): number {\r\n    return this._eyeFrameBrushFocus;\r\n  }\r\n\r\n  public set eyeFrameBrushFocus(value: number) {\r\n    let oldValue = this._eyeFrameBrushFocus;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._eyeFrameBrushFocus = 0;\r\n      } else {\r\n        this._eyeFrameBrushFocus = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameBrushBlend(): number {\r\n    return this._eyeFrameBrushBlend;\r\n  }\r\n\r\n  public set eyeFrameBrushBlend(value: number) {\r\n    let oldValue = this._eyeFrameBrushBlend;\r\n    if (oldValue != value) {\r\n      if (value <= 0) {\r\n        this._eyeFrameBrushBlend = 0;\r\n      } else {\r\n        this._eyeFrameBrushBlend = value;\r\n      }\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  public get eyeFrameBrushDrawHatch(): boolean {\r\n    return this._eyeFrameBrushDrawHatch;\r\n  }\r\n\r\n  public set eyeFrameBrushDrawHatch(value: boolean) {\r\n    let oldValue = this._eyeFrameBrushDrawHatch;\r\n    if (oldValue != value) {\r\n      this._eyeFrameBrushDrawHatch = value;\r\n      this._isChanged = true;\r\n    }\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    if (this.element && this.element.nativeElement) {\r\n      if (\r\n        this.element.nativeElement?.offsetWidth > 0 &&\r\n        this.element.nativeElement?.offsetHeight > 0 &&\r\n        (this.barcodeType == StiBarcodeType.Aztec ||\r\n          this.barcodeType == StiBarcodeType.QRCode ||\r\n          this.barcodeType == StiBarcodeType.DataMatrix ||\r\n          this.barcodeType == StiBarcodeType.Maxicode)\r\n      ) {\r\n        if (this.element.nativeElement?.offsetWidth < this.element.nativeElement?.offsetHeight) {\r\n          this.Width = this.element.nativeElement?.offsetWidth;\r\n          this.Height = this.element.nativeElement?.offsetWidth;\r\n        } else {\r\n          this.Width = this.element.nativeElement?.offsetHeight;\r\n          this.Height = this.element.nativeElement?.offsetHeight;\r\n        }\r\n      } else {\r\n        this.Width = this.element.nativeElement?.offsetWidth;\r\n        this.Height = this.element.nativeElement?.offsetHeight;\r\n      }\r\n    }\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyEnum(\"BarcodeType\", StiBarcodeType, this.barcodeType);\r\n    jObject.addPropertyString(\"CodeString\", this.codeString);\r\n    // jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyNumber(\"Width\", this.Width);\r\n    jObject.addPropertyNumber(\"Height\", this.Height);\r\n    jObject.addPropertyNumber(\"Style\", this.style);\r\n    jObject.addPropertyColor(\"BackColor\", this.backColor);\r\n    jObject.addPropertyColor(\"ForeColor\", this.foreColor);\r\n    jObject.addPropertyEnum(\"MatrixSize\", StiQRCodeSize, this.matrixSize);\r\n    jObject.addPropertyEnum(\"ErrorCorrectionLevel\", StiQRCodeErrorCorrectionLevel, this.errorCorrectionLevel);\r\n\r\n    jObject.addPropertyEnum(\"BodyBrushType\", StiBodyBrush, this.bodyBrushType);\r\n    jObject.addPropertyEnum(\"EyeBallBrushType\", StiBodyBrush, this.eyeBallBrushType);\r\n    jObject.addPropertyEnum(\"EyeFrameBrushType\", StiBodyBrush, this.eyeFrameBrushType);\r\n    jObject.addPropertyEnum(\"BodyShapeType\", StiQRCodeBodyShapeType, this.bodyShapeType);\r\n    jObject.addPropertyColor(\"BodyBrushColor\", this.bodyBrushColor);\r\n    jObject.addPropertyColor(\"StartBodyBrushColor\", this.startBodyBrushColor);\r\n    jObject.addPropertyColor(\"EndBodyBrushColor\", this.endBodyBrushColor);\r\n    jObject.addPropertyColor(\"BodyBrushForeColor\", this.bodyBrushForeColor);\r\n    jObject.addPropertyColor(\"BodyBrushBackColor\", this.bodyBrushBackColor);\r\n    jObject.addPropertyNumber(\"BodyBrushAngle\", this.bodyBrushAngle);\r\n    jObject.addPropertyEnum(\"BodyBrushHatchStyle\", HatchStyle, this.bodyBrushHatchStyle);\r\n    jObject.addPropertyNumber(\"BodyBrushFocus\", this.bodyBrushFocus);\r\n    jObject.addPropertyNumber(\"BodyBrushBlend\", this.bodyBrushBlend);\r\n    jObject.addPropertyBool(\"BodyBrushDrawHatch\", this.bodyBrushDrawHatch);\r\n\r\n    jObject.addPropertyColor(\"EyeBallBrushColor\", this.eyeBallBrushColor);\r\n    jObject.addPropertyColor(\"StartEyeBallBrushColor\", this.startEyeBallBrushColor);\r\n    jObject.addPropertyColor(\"EndEyeBallBrushColor\", this.endEyeBallBrushColor);\r\n    jObject.addPropertyEnum(\"EyeBallShapeType\", StiQRCodeEyeBallShapeType, this.eyeBallShapeType);\r\n    jObject.addPropertyColor(\"EyeBallBrushForeColor\", this.eyeBallBrushForeColor);\r\n    jObject.addPropertyColor(\"EyeBallBrushBackColor\", this.eyeBallBrushBackColor);\r\n    jObject.addPropertyNumber(\"EyeBallBrushAngle\", this.eyeBallBrushAngle);\r\n    jObject.addPropertyNumber(\"EyeBallBrushBlend\", this.eyeBallBrushBlend);\r\n    jObject.addPropertyEnum(\"EyeBallBrushHatchStyle\", HatchStyle, this.eyeBallBrushHatchStyle);\r\n    jObject.addPropertyNumber(\"EyeBallBrushFocus\", this.eyeBallBrushFocus);\r\n    jObject.addPropertyBool(\"EyeBallBrushDrawHatch\", this.eyeBallBrushDrawHatch);\r\n\r\n    jObject.addPropertyColor(\"EyeFrameBrushColor\", this.eyeFrameBrushColor);\r\n    jObject.addPropertyColor(\"StartEyeFrameBrushColor\", this.startEyeFrameBrushColor);\r\n    jObject.addPropertyColor(\"EndEyeFrameBrushColor\", this.endEyeFrameBrushColor);\r\n    jObject.addPropertyEnum(\"EyeFrameShapeType\", StiQRCodeEyeFrameShapeType, this.eyeFrameShapeType);\r\n    jObject.addPropertyColor(\"EyeFrameBrushForeColor\", this.eyeFrameBrushForeColor);\r\n    jObject.addPropertyColor(\"EyeFrameBrushBackColor\", this.eyeFrameBrushBackColor);\r\n    jObject.addPropertyNumber(\"EyeFrameBrushAngle\", this.eyeFrameBrushAngle);\r\n    jObject.addPropertyNumber(\"EyeFrameBrushBlend\", this.eyeFrameBrushBlend);\r\n    jObject.addPropertyEnum(\"EyeFrameBrushHatchStyle\", HatchStyle, this.eyeFrameBrushHatchStyle);\r\n    jObject.addPropertyNumber(\"EyeFrameBrushFocus\", this.eyeFrameBrushFocus);\r\n    jObject.addPropertyBool(\"EyeFrameBrushDrawHatch\", this.eyeFrameBrushDrawHatch);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"BarcodeType\":\r\n          this.barcodeType = Enum.parse(StiBarcodeType, property.value);\r\n          break;\r\n        case \"CodeString\":\r\n          this.codeString = property.value;\r\n          break;\r\n        /*  case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break; */\r\n        case \"Width\":\r\n          this.Width = property.value;\r\n          break;\r\n        case \"Height\":\r\n          this.Height = property.value;\r\n          break;\r\n        case \"Style\":\r\n          this.style = property.value;\r\n          break;\r\n        case \"BackColor\":\r\n          this.backColor = new Color();\r\n          this.backColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"ForeColor\":\r\n          this.foreColor = new Color();\r\n          this.foreColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"MatrixSize\":\r\n          this.matrixSize = Enum.parse(StiQRCodeSize, property.value, false);\r\n          break;\r\n        case \"ErrorCorrectionLevel\":\r\n          this.errorCorrectionLevel = Enum.parse(StiQRCodeErrorCorrectionLevel, property.value);\r\n          break;\r\n        case \"BodyBrushType\":\r\n          this.bodyBrushType = Enum.parse(StiBodyBrush, property.value);\r\n          break;\r\n        case \"EyeBallBrushType\":\r\n          this.eyeBallBrushType = Enum.parse(StiBodyBrush, property.value);\r\n          break;\r\n        case \"EyeFrameBrushType\":\r\n          this.eyeFrameBrushType = Enum.parse(StiBodyBrush, property.value);\r\n          break;\r\n        case \"BodyShapeType\":\r\n          this.bodyShapeType = Enum.parse(StiQRCodeBodyShapeType, property.value);\r\n          break;\r\n        case \"BodyBrushColor\":\r\n          this.bodyBrushColor = new Color();\r\n          this.bodyBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"StartBodyBrushColor\":\r\n          this.startBodyBrushColor = new Color();\r\n          this.startBodyBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EndBodyBrushColor\":\r\n          this.endBodyBrushColor = new Color();\r\n          this.endBodyBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BodyBrushForeColor\":\r\n          this.bodyBrushForeColor = new Color();\r\n          this.bodyBrushForeColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BodyBrushBackColor\":\r\n          this.bodyBrushBackColor = new Color();\r\n          this.bodyBrushBackColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BodyBrushAngle\":\r\n          this.bodyBrushAngle = property.value;\r\n          break;\r\n        case \"BodyBrushBlend\":\r\n          this.bodyBrushBlend = property.value;\r\n          break;\r\n        case \"EyeBallBrushBlend\":\r\n          this.eyeBallBrushBlend = property.value;\r\n          break;\r\n        case \"EyeFrameBrushBlend\":\r\n          this.eyeFrameBrushBlend = property.value;\r\n          break;\r\n        case \"BodyBrushHatchStyle\":\r\n          this.bodyBrushHatchStyle = Enum.parse(HatchStyle, property.value);\r\n          break;\r\n        case \"BodyBrushFocus\":\r\n          this.bodyBrushFocus = property.value;\r\n          break;\r\n        case \"BodyBrushDrawHatch\":\r\n          this.bodyBrushDrawHatch = property.value;\r\n          break;\r\n        case \"EyeBallBrushColor\":\r\n          this.eyeBallBrushColor = new Color();\r\n          this.eyeBallBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"StartEyeBallBrushColor\":\r\n          this.startEyeBallBrushColor = new Color();\r\n          this.startEyeBallBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EndEyeBallBrushColor\":\r\n          this.endEyeBallBrushColor = new Color();\r\n          this.endEyeBallBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EyeBallShapeType\":\r\n          this.eyeBallShapeType = Enum.parse(StiQRCodeEyeBallShapeType, property.value);\r\n          break;\r\n        case \"EyeBallBrushForeColor\":\r\n          this.eyeBallBrushForeColor = new Color();\r\n          this.eyeBallBrushForeColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EyeBallBrushBackColor\":\r\n          this.eyeBallBrushBackColor = new Color();\r\n          this.eyeBallBrushBackColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EyeBallBrushAngle\":\r\n          this.eyeBallBrushAngle = property.value;\r\n          break;\r\n        case \"EyeBallBrushHatchStyle\":\r\n          this.eyeBallBrushHatchStyle = Enum.parse(HatchStyle, property.value);\r\n          break;\r\n        case \"EyeBallBrushFocus\":\r\n          this.eyeBallBrushFocus = property.value;\r\n          break;\r\n        case \"EyeBallBrushDrawHatch\":\r\n          this.eyeBallBrushDrawHatch = property.value;\r\n          break;\r\n        case \"EyeFrameBrushColor\":\r\n          this.eyeFrameBrushColor = new Color();\r\n          this.eyeFrameBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"StartEyeFrameBrushColor\":\r\n          this.startEyeFrameBrushColor = new Color();\r\n          this.startEyeFrameBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EndEyeFrameBrushColor\":\r\n          this.endEyeFrameBrushColor = new Color();\r\n          this.endEyeFrameBrushColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EyeFrameShapeType\":\r\n          this.eyeFrameShapeType = Enum.parse(StiQRCodeEyeFrameShapeType, property.value);\r\n          break;\r\n        case \"EyeFrameBrushForeColor\":\r\n          this.eyeFrameBrushForeColor = new Color();\r\n          this.eyeFrameBrushForeColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EyeFrameBrushBackColor\":\r\n          this.eyeFrameBrushBackColor = new Color();\r\n          this.eyeFrameBrushBackColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"EyeFrameBrushAngle\":\r\n          this.eyeFrameBrushAngle = property.value;\r\n          break;\r\n        case \"EyeFrameBrushHatchStyle\":\r\n          this.eyeFrameBrushHatchStyle = Enum.parse(HatchStyle, property.value);\r\n          break;\r\n        case \"EyeFrameBrushFocus\":\r\n          this.eyeFrameBrushFocus = property.value;\r\n          break;\r\n        case \"EyeFrameBrushDrawHatch\":\r\n          this.eyeFrameBrushDrawHatch = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Font } from \"../../system/Font\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiTextItem } from \"./StiTextItem\";\r\n\r\nexport class StiBackgroundedTextItem extends StiTextItem {\r\n  constructor(\r\n    value: string = \"\",\r\n    public font: Font = new Font(\"Segoe UI\", 9),\r\n    public color: Color = Color.black(),\r\n    public backgroundColor: Color = Color.white()\r\n  ) {\r\n    super(value, font, color, backgroundColor);\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = super.saveToJsonObject(options);\r\n    json.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  getBackgroundColor(): Color {\r\n    return this.backgroundColor;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return false;\r\n  }\r\n  haveBackgoundColor(): boolean {\r\n    return true;\r\n  }\r\n}\r\n","import StiPadding from \"../properties/StiPadding\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiButtonType, StiButtonSendType } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport { StiEditableContent } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiBackgroundedTextItem } from \"./text/StiBackgroundedTextItem\";\r\n\r\nexport class StiButtonElement extends StiFormElement {\r\n  public type: string = \"ButtonElement\";\r\n  public tooltip = \"\";\r\n  public submissionMessage: string = \"Thank you! Your submission has been sent.\";\r\n  public text: StiBackgroundedTextItem = new StiBackgroundedTextItem(\r\n    StiLocalizationService.get(\"Buttons\", \"Submit\"),\r\n    new Font(\"Segoe UI\", 14),\r\n    Color.black(),\r\n    Color.lightGray()\r\n  );\r\n  public buttonType: StiButtonType = StiButtonType.SendForm;\r\n  public formSendURL = \"\";\r\n  public buttonSendType: StiButtonSendType = StiButtonSendType.XFDF;\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(100, 40);\r\n    this.padding = new StiPadding(4, 0, 4, 0, this);\r\n  }\r\n\r\n  public canUpdateProperty(propName: string) {\r\n    return !(propName.indexOf(\"padding\") >= 0);\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.text.font.family, this.arrayOfStylesToString(this.text.font.style), this.text.font.size);\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    return this.text;\r\n  }\r\n  setProperty(propName: string, value: any, oldObject: any) {\r\n    super.setProperty(propName, value, oldObject);\r\n    if (propName.startsWith(\"label.font\") || propName == \"label.color\") {\r\n      this.text.setProperty(propName.replace(\"label.\", \"\"), value.clone ? value.clone() : value, oldObject);\r\n    }\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyJObject(\"Text\", this.text.saveToJsonObject(options));\r\n    jObject.addPropertyEnum(\"ButtonType\", StiButtonType, this.buttonType);\r\n    jObject.addPropertyString(\"FormSendURL\", this.formSendURL);\r\n    jObject.addPropertyEnum(\"ButtonSendType\", StiButtonSendType, this.buttonSendType);\r\n    jObject.addPropertyString(\"SubmissionMessage\", this.submissionMessage);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Text\":\r\n          this.text = new StiBackgroundedTextItem();\r\n          this.text.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"ButtonType\":\r\n          this.buttonType = Enum.parse(StiButtonType, property.value);\r\n          break;\r\n        case \"FormSendURL\":\r\n          this.formSendURL = property.value;\r\n          break;\r\n        case \"ButtonSendType\":\r\n          this.buttonSendType = Enum.parse(StiButtonSendType, property.value);\r\n          break;\r\n        case \"SubmissionMessage\":\r\n          this.submissionMessage = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n  htmlStyle(): string {\r\n    return `${this.text.htmlStyle()};\r\n    )}`;\r\n  }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Font } from \"../system/Font\";\r\nimport {\r\n  StiLabel,\r\n  StiDescription,\r\n  StiBorderElement,\r\n  StiBackgroundElement,\r\n  StiValueElement,\r\n  StiEditableContent,\r\n  StiTabIndex,\r\n} from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiCheckBoxElement\r\n  extends StiFormElement\r\n  implements StiLabel, StiDescription, StiBorderElement, StiBackgroundElement, StiValueElement, StiTabIndex\r\n{\r\n  public type: string = \"Check_BoxElement\";\r\n  public tooltip = \"\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public text: StiTextItem = new StiTextItem(\r\n    StiLocalizationService.get(\"Components\", \"StiCheckBox\"),\r\n    new Font(\"Segoe UI\", 9)\r\n  );\r\n  public isChecked = false;\r\n  public backgroundColor: Color = Color.white();\r\n  public checkColor: Color = Color.black();\r\n  public borderColor: Color = Color.lightGray();\r\n  public tabIndex: number;\r\n\r\n  public initialState: boolean = false;\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(100, 40);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiCheckBox\"));\r\n  }\r\n\r\n  setDefaultValues() {\r\n    this.isChecked = false;\r\n  }\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value++;\r\n    return value;\r\n  }\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.text.font.family, this.arrayOfStylesToString(this.text.font.style), this.text.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n\r\n  get value(): any {\r\n    return this.isChecked;\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\"\", this.text.font, this.text.color);\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n\r\n  setProperty(propName: string, value: any, oldObject: any) {\r\n    super.setProperty(propName, value, oldObject);\r\n    if (\r\n      propName == \"innerText.backgroundColor\" &&\r\n      (oldObject === null || this.text.backgroundColor.equals(oldObject))\r\n    ) {\r\n      this.text.backgroundColor = value.clone();\r\n    } else if (propName == \"innerText.borderColor\" && (oldObject === null || this.borderColor.equals(oldObject))) {\r\n      this.borderColor = value.clone();\r\n    } else if (propName.startsWith(\"innerText.font\") || propName == \"innerText.color\") {\r\n      this.text.setProperty(propName.replace(\"innerText.\", \"\"), value.clone ? value.clone() : value, oldObject);\r\n    }\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyJObject(\"Text\", this.text.saveToJsonObject(options));\r\n    jObject.addPropertyBool(\"IsChecked\", this.isChecked);\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"CheckColor\", this.checkColor);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Text\":\r\n          this.text = new StiTextItem();\r\n          this.text.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"IsChecked\":\r\n          this.isChecked = property.value;\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CheckColor\":\r\n          this.checkColor = new Color();\r\n          this.checkColor.deserializeFromString(property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n  htmlStyle(): string {\r\n    return `${this.text.htmlStyle()};\r\n    )}`;\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport * as _ from \"lodash\";\r\n\r\n@Injectable()\r\nexport class StiStaticHelperService {\r\n\r\n  public static browserLanguage = navigator[\"defaultLocalization\"] || navigator.language || navigator[\"browserLanguage\"];\r\n\r\n  static dateToJsonDate(date: Date): string {\r\n    let offset: number = date.getTimezoneOffset() * -1;\r\n    let hoursOffset: string = Math.abs(Math.floor(offset / 60)).toString();\r\n    let minutesOffset: string = Math.abs(offset % 60).toString();\r\n    if (hoursOffset.length == 1) hoursOffset = \"0\" + hoursOffset;\r\n    if (minutesOffset.length == 1) minutesOffset = \"0\" + minutesOffset;\r\n    return (\r\n      \"/Date(\" + Date.parse(date.toString()).toString() + (offset >= 0 ? \"+\" : \"-\") + hoursOffset + minutesOffset + \")/\"\r\n    );\r\n  }\r\n  static jsonDateFormatToDate(dateJSONFormat, format) {\r\n    if (dateJSONFormat.substring(0, 6) == \"/Date(\") {\r\n      var dateStr = dateJSONFormat.replace(\"/Date(\", \"\").replace(\")/\", \"\");\r\n      return typeof format == \"boolean\"\r\n        ? this.formatDate2(new Date(parseInt(dateStr)), \"m/d/yy h:MM tt\")\r\n        : format\r\n          ? this.formatDate2(new Date(parseInt(dateStr)), format)\r\n          : new Date(parseInt(dateStr));\r\n    } else {\r\n      return dateJSONFormat;\r\n    }\r\n  }\r\n  static formatDate2(formatDate, formatString) {\r\n    let yyyy = formatDate.getFullYear();\r\n    let yy = yyyy.toString().substring(2);\r\n    let m = formatDate.getMonth() + 1;\r\n    let mm = m < 10 ? \"0\" + m : m;\r\n    let d = formatDate.getDate();\r\n    let dd = d < 10 ? \"0\" + d : d;\r\n\r\n    let h = formatDate.getHours();\r\n    let hh = h < 10 ? \"0\" + h : h;\r\n    let n = formatDate.getMinutes();\r\n    let nn = n < 10 ? \"0\" + n : n;\r\n    let s = formatDate.getSeconds();\r\n    let ss = s < 10 ? \"0\" + s : s;\r\n\r\n    formatString = formatString.replace(/yyyy/i, yyyy);\r\n    formatString = formatString.replace(/yy/i, yy);\r\n    formatString = formatString.replace(/mm/i, mm);\r\n    formatString = formatString.replace(/m/i, m);\r\n    formatString = formatString.replace(/dd/i, dd);\r\n    formatString = formatString.replace(/d/i, d);\r\n    formatString = formatString.replace(/hh/i, hh);\r\n    formatString = formatString.replace(/h/i, h);\r\n    formatString = formatString.replace(/nn/i, nn);\r\n    formatString = formatString.replace(/n/i, n);\r\n    formatString = formatString.replace(/ss/i, ss);\r\n    formatString = formatString.replace(/s/i, s);\r\n\r\n    return formatString;\r\n  }\r\n\r\n  private static formats: any[] = [\r\n    { format: \"mmmm\", option: \"month\", options: { month: \"long\" } },\r\n    { format: \"mmm\", option: \"month\", options: { month: \"short\" } },\r\n    { format: \"mm\", option: \"month\", options: { month: \"2-digit\" }, digits: 2 },\r\n    { format: \"m\", option: \"month\", options: { month: \"numeric\" } },\r\n    { format: \"dd\", option: \"day\", options: { day: \"2-digit\" }, digits: 2 },\r\n    { format: \"d\", option: \"day\", options: { day: \"numeric\" } },\r\n    { format: \"yyyy\", option: \"year\", options: { year: \"numeric\" } },\r\n    { format: \"yy\", option: \"year\", options: { year: \"2-digit\" }, digits: 2 },\r\n    { format: \"HH\", option: \"hour\", options: { hour: \"2-digit\", hour12: false }, digits: 2 },\r\n    { format: \"h\", option: \"hour\", options: { hour: \"numeric\", hour12: true } },\r\n    { format: \"MM\", option: \"minute\", options: { minute: \"2-digit\", hourCycle: \"h24\" }, digits: 2 },\r\n    { format: \"ss\", option: \"second\", options: { second: \"2-digit\", hour12: false }, digits: 2 },\r\n    { format: \"tt\", option: \"dayPeriod\", options: { dayPeriod: \"narrow\", hourCycle: \"h12\", hour12: true } }\r\n  ];\r\n\r\n  public static formatDate(date: Date, format: string, locale?: string): string {\r\n    var result = [];\r\n    locale = locale?.length > 0 ? locale : (this.browserLanguage ?? \"en-us\");\r\n    var parseFormat = format;\r\n\r\n    try {\r\n      this.formats.forEach((dtFormat) => {\r\n        if (parseFormat.indexOf(dtFormat.format) >= 0) {\r\n          var formatResult = dtFormat.format == \"tt\" ? (date.getHours() < 12 ? [{ value: \"am\" }] : [{ value: \"pm\" }]) :\r\n            new Intl.DateTimeFormat(locale, dtFormat.options).formatToParts(date);\r\n\r\n          result.push({ format: dtFormat.format, result: this.fixParsedValue(formatResult[0].value, dtFormat) });\r\n          parseFormat = parseFormat.replace(new RegExp(dtFormat.format, \"g\"), \"\");\r\n        }\r\n      });\r\n    } catch (e) {\r\n      console.error(e);\r\n    }\r\n\r\n    result.forEach((option) => {\r\n      format = format.replace(new RegExp(option.format, \"g\"), option.result);\r\n    });\r\n\r\n    return format;\r\n  }\r\n\r\n  private static fixParsedValue(value: string, format): string {\r\n    if (format.digits) value = _.padStart(value, format.digits, \"0\");\r\n    return value;\r\n  }\r\n\r\n  constructor() { }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport { StiStaticHelperService } from \"../services/sti-static-helper.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiHorizontalAlignment, StiLineWeight, StiDateTimeBoxType, StiDateTimeBoxValueChoise } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport { StiLabel, StiDescription, StiValueElement, StiEditableContent, StiTabIndex, UpdateToViewerMode } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiForm } from \"./StiForm\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiDateTimeBoxElement\r\n  extends StiFormElement\r\n  implements StiLabel, StiDescription, StiValueElement, StiTabIndex, UpdateToViewerMode {\r\n\r\n  public type: string = \"DateTime_BoxElement\";\r\n  public tooltip = \"\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public contentAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n  public backgroundColor: Color = Color.white();\r\n  public textColor: Color = Color.black();\r\n  public borderColor: Color = Color.lightGray();\r\n  public borderWeight: StiLineWeight = StiLineWeight.Thin;\r\n  public allowNull = false;\r\n  public tabIndex: number;\r\n\r\n  private _dateTimeValueIsNotNull = true;\r\n  private _form: StiForm;\r\n  private _dateTimeFormat: string = \"m/d/yy h:MM tt\";\r\n  private _dateFomat: string = \"dd.mm.yyyy\";\r\n  private _timeFormat: string = \"HH:MM:ss\";\r\n  private _initialState: StiDateTimeBoxValueChoise = StiDateTimeBoxValueChoise.Custom;\r\n  private _dateValue: Date = new Date();\r\n  private _valueType: StiDateTimeBoxType = StiDateTimeBoxType.Date;\r\n  private _dateValueString: string = \"\";\r\n\r\n  constructor(form?: StiForm) {\r\n    super();\r\n    this.form = form;\r\n    this.geometry = new StiRectangleGeometry(150, 40);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Dialogs\", \"StiDateTimePickerControl\"));\r\n    this.updateDateValueString();\r\n  }\r\n\r\n  updateToViewerMode() {\r\n    this.initialState = StiDateTimeBoxValueChoise.Custom;\r\n  }\r\n\r\n  public get dateValueString(): string {\r\n    return this._dateValueString;\r\n  }\r\n\r\n  public get dateTimeValueIsNotNull(): boolean {\r\n    return this._dateTimeValueIsNotNull;\r\n  }\r\n\r\n  public set dateTimeValueIsNotNull(value: boolean) {\r\n    this._dateTimeValueIsNotNull = value;\r\n    this.updateDateValueString();\r\n  }\r\n\r\n  public set form(value: StiForm) {\r\n    this._form = value;\r\n    this.updateDateValueString();\r\n  }\r\n\r\n  public get form(): StiForm {\r\n    return this._form;\r\n  }\r\n\r\n  public get initialState(): StiDateTimeBoxValueChoise {\r\n    return this._initialState;\r\n  }\r\n\r\n  public get dateValue(): Date {\r\n    return this._dateValue;\r\n  }\r\n\r\n  public set dateValue(value: Date) {\r\n    this._dateValue = value;\r\n    this._initialState = StiDateTimeBoxValueChoise.Custom;\r\n    this.updateDateValueString();\r\n  }\r\n\r\n  public updateDateValueString() {\r\n    if ((this.allowNull && !this.dateTimeValueIsNotNull) || (this.dateValue == null)) {\r\n      this._dateValueString = \"\";\r\n    } else {\r\n      this._dateValueString = StiStaticHelperService.formatDate(this.dateValue, this.format, this.form?.settings.culture);\r\n    }\r\n  }\r\n\r\n  public set initialState(value: StiDateTimeBoxValueChoise) {\r\n    if (value != this._initialState && value == StiDateTimeBoxValueChoise.Current) {\r\n      this._dateValue = new Date();\r\n    }\r\n    this._initialState = value;\r\n    this.updateDateValueString();\r\n  }\r\n\r\n  setDefaultValues() {\r\n    this.initialState = StiDateTimeBoxValueChoise.Current;\r\n  }\r\n\r\n  get valueType(): StiDateTimeBoxType {\r\n    return this._valueType;\r\n  }\r\n\r\n  public set valueType(value: StiDateTimeBoxType) {\r\n    this._valueType = value;\r\n    this.updateDateValueString();\r\n  }\r\n\r\n  get value(): any {\r\n    return this.dateValue;\r\n  }\r\n\r\n  get format(): string {\r\n    let format = this.valueType == StiDateTimeBoxType.Date ? this._dateFomat :\r\n      (this.valueType == StiDateTimeBoxType.DateTime ? this._dateTimeFormat : this._timeFormat);\r\n    return format ?? \"\";\r\n  }\r\n\r\n  get dateTimeFormat(): string {\r\n    return this._dateTimeFormat;\r\n  }\r\n\r\n  set dateTimeFormat(value: string) {\r\n    this._dateTimeFormat = value;\r\n    this.updateDateValueString();\r\n  }\r\n  get dateFormat(): string {\r\n    return this._dateFomat;\r\n  }\r\n\r\n  set dateFormat(value: string) {\r\n    this._dateFomat = value;\r\n    this.updateDateValueString();\r\n  }\r\n  get timeFormat(): string {\r\n    return this._timeFormat;\r\n  }\r\n\r\n  set timeFormat(value: string) {\r\n    this._timeFormat = value;\r\n    this.updateDateValueString();\r\n  }\r\n\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value++;\r\n    return value;\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\"\", this.font, this.textColor, this.backgroundColor, this.contentAlignment);\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.textColor.toHtmlColor()};text-align:${Enum.getName(\r\n      StiHorizontalAlignment,\r\n      this.contentAlignment\r\n    )}`;\r\n  }\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"TextColor\", this.textColor);\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyString(\"DateTimeFormat\", this.dateTimeFormat);\r\n    jObject.addPropertyString(\"DateFormat\", this.dateFormat);\r\n    jObject.addPropertyString(\"TimeFormat\", this.timeFormat);\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    jObject.addPropertyEnum(\"BorderWeight\", StiLineWeight, this.borderWeight);\r\n    jObject.addPropertyEnum(\"HorizontalAlignment\", StiHorizontalAlignment, this.contentAlignment);\r\n    jObject.addPropertyEnum(\"ValueType\", StiDateTimeBoxType, this.valueType);\r\n    jObject.addPropertyEnum(\"InitialState\", StiDateTimeBoxValueChoise, this.initialState);\r\n    jObject.addPropertyBool(\"AllowNull\", this.allowNull);\r\n    jObject.addPropertyBool(\"DateTimeValueIsNotNull\", this.dateTimeValueIsNotNull);\r\n    jObject.addPropertyString(\"DateValue\", this.dateValue?.toJSON(), \"\");\r\n    jObject.addPropertyString(\"DateValueString\", this._dateValueString, \"\");\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    let dateValue: Date;\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TextColor\":\r\n          this.textColor = new Color();\r\n          this.textColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"DateTimeFormat\":\r\n          this.dateTimeFormat = property.value;\r\n          break;\r\n        case \"DateFormat\":\r\n          this.dateFormat = property.value;\r\n          break;\r\n        case \"TimeFormat\":\r\n          this.timeFormat = property.value;\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"HorizontalAlignment\":\r\n          this.contentAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"BorderWeight\":\r\n          this.borderWeight = Enum.parse(StiLineWeight, property.value);\r\n          break;\r\n        case \"ValueType\":\r\n          this.valueType = Enum.parse(StiDateTimeBoxType, property.value);\r\n          break;\r\n        case \"InitialState\":\r\n          this.initialState = Enum.parse(StiDateTimeBoxValueChoise, property.value);\r\n          break;\r\n        case \"AllowNull\":\r\n          this.allowNull = property.value;\r\n          break;\r\n        case \"DateTimeValueIsNotNull\":\r\n          this.dateTimeValueIsNotNull = property.value;\r\n          break;\r\n        case \"DateValue\":\r\n          if (property.value?.length > 0) {\r\n            dateValue = new Date(property.value);\r\n          }\r\n          break;\r\n        case \"DateValueString\":\r\n          //this.dateValueString = property.value;\r\n          break;\r\n      }\r\n    }\r\n    this._dateValue = this.initialState == StiDateTimeBoxValueChoise.Current || dateValue == null ? new Date() : dateValue;\r\n    this.updateDateValueString();\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiChangesInterceptor } from \"../../system/interfaces\";\r\nimport StiJson from \"../../system/StiJson\";\r\n\r\nexport class StiDescriptionSettings implements StiChangesInterceptor {\r\n  protected _font: Font = new Font(\"Segoe UI\", 9, [], this);\r\n  protected _color: Color;\r\n\r\n  constructor(public changesInterceptor: StiChangesInterceptor) {\r\n    this._color = Color.gray();\r\n    this._color.changesInterceptor = this;\r\n  }\r\n\r\n  propertyChanged(propName: string, value: any, oldObject: any) {\r\n    this.changesInterceptor.propertyChanged(`description.${propName}`, value, oldObject);\r\n  }\r\n\r\n  get color(): Color {\r\n    return this._color;\r\n  }\r\n\r\n  set color(value: Color) {\r\n    let oldValue = this._color.clone();\r\n    this._color = value;\r\n    value.changesInterceptor = this;\r\n    if (oldValue && !oldValue.equals(value)) {\r\n      this.propertyChanged(\"color\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get font(): Font {\r\n    return this._font;\r\n  }\r\n\r\n  set font(value: Font) {\r\n    let oldValue = this._font;\r\n    this._font = value;\r\n    if (oldValue && oldValue.equals(oldValue)) {\r\n      this._font.changesInterceptor = this;\r\n    }\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    json.addPropertyColor(\"Color\", this.color);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Font\":\r\n          this._font = new Font(\"Segoe UI\", 9, [], this);\r\n          this._font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Color\":\r\n          this._color = new Color();\r\n          this._color.changesInterceptor = this;\r\n          this._color.deserializeFromString(property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiHorizontalAlignment, StiLineWeight } from \"../../system/enums\";\r\nimport { StiChangesInterceptor } from \"../../system/interfaces\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiDescriptionSettings } from \"./StiDescriptionSettings\";\r\n\r\nexport class StiInnerTextSettings extends StiDescriptionSettings {\r\n  protected _backgroundColor: Color;\r\n  protected _borderColor: Color;\r\n  protected _checkColor: Color;\r\n  protected _borderWeight: StiLineWeight = StiLineWeight.Thin;\r\n  protected _contentAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n\r\n  constructor(public changesInterceptor: StiChangesInterceptor) {\r\n    super(changesInterceptor);\r\n    this._backgroundColor = Color.white();\r\n    this._backgroundColor.changesInterceptor = this;\r\n    this._backgroundColor.propertyName = \"backgroundColor\";\r\n    this._borderColor = Color.lightGray();\r\n    this._borderColor.changesInterceptor = this;\r\n    this._borderColor.propertyName = \"borderColor\";\r\n    this._checkColor = Color.black();\r\n    this._checkColor.changesInterceptor = this;\r\n    this._checkColor.propertyName = \"checkColor\";\r\n    this._color = Color.black();\r\n    this._color.changesInterceptor = this;\r\n    this._font._size = 10;\r\n  }\r\n\r\n  propertyChanged(propName: string, value: any, oldObject: any) {\r\n    this.changesInterceptor.propertyChanged(`innerText.${propName}`, value, oldObject);\r\n  }\r\n\r\n  get backgroundColor(): Color {\r\n    return this._backgroundColor;\r\n  }\r\n\r\n  set backgroundColor(value: Color) {\r\n    let oldValue = this._backgroundColor.clone();\r\n    this._backgroundColor = value;\r\n    this._backgroundColor.changesInterceptor = this;\r\n    if (oldValue && !oldValue.equals(value)) {\r\n      this.propertyChanged(\"backgroundColor\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get borderColor(): Color {\r\n    return this._borderColor;\r\n  }\r\n\r\n  set borderColor(value: Color) {\r\n    let oldValue = this._borderColor.clone();\r\n    this._borderColor = value;\r\n    this._borderColor.changesInterceptor = this;\r\n    if (oldValue && !oldValue.equals(value)) {\r\n      this.propertyChanged(\"borderColor\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get checkColor(): Color {\r\n    return this._checkColor;\r\n  }\r\n\r\n  set checkColor(value: Color) {\r\n    let oldValue = this._checkColor.clone();\r\n    this._checkColor = value;\r\n    this._checkColor.changesInterceptor = this;\r\n    if (oldValue && !oldValue.equals(value)) {\r\n      this.propertyChanged(\"checkColor\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get borderWeight(): StiLineWeight {\r\n    return this._borderWeight;\r\n  }\r\n\r\n  set borderWeight(value: StiLineWeight) {\r\n    let oldValue = this._borderWeight;\r\n    this._borderWeight = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"borderWeight\", value, oldValue);\r\n    }\r\n  }\r\n  get contentAlignment(): StiHorizontalAlignment {\r\n    return this._contentAlignment;\r\n  }\r\n\r\n  set contentAlignment(value: StiHorizontalAlignment) {\r\n    let oldValue = this._contentAlignment;\r\n    this._contentAlignment = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"contentAlignment\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = super.saveToJsonObject(options);\r\n    json.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    json.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    json.addPropertyColor(\"CheckColor\", this.checkColor);\r\n    json.addPropertyEnum(\"BorderWeight\", StiLineWeight, this.borderWeight);\r\n    json.addPropertyEnum(\"ContentAlignment\", StiHorizontalAlignment, this.contentAlignment);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"BackgroundColor\":\r\n        case \"BackColor\":\r\n          this._backgroundColor = new Color();\r\n          this._backgroundColor.changesInterceptor = this;\r\n          this._backgroundColor.propertyName = \"backgroundColor\";\r\n          this._backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BorderColor\":\r\n          this._borderColor = new Color();\r\n          this._borderColor.changesInterceptor = this;\r\n          this._borderColor.propertyName = \"borderColor\";\r\n          this._borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CheckColor\":\r\n          this._checkColor = new Color();\r\n          this._checkColor.changesInterceptor = this;\r\n          this._checkColor.propertyName = \"checkColor\";\r\n          this._checkColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BorderWeight\":\r\n          this._borderWeight = Enum.parse(StiLineWeight, property.value);\r\n          break;\r\n        case \"contentAlignment\":\r\n        case \"ContentAlignment\":\r\n          this._contentAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiLabelAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiChangesInterceptor } from \"../../system/interfaces\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiDescriptionSettings } from \"./StiDescriptionSettings\";\r\n\r\nexport class StiLabelSettings extends StiDescriptionSettings {\r\n  protected _alignment: StiLabelAlignment = StiLabelAlignment.Left;\r\n  protected _verticalAlignment: StiVerticalAlignment = StiVerticalAlignment.Center;\r\n  protected _width: number = 150;\r\n\r\n  constructor(public changesInterceptor: StiChangesInterceptor) {\r\n    super(changesInterceptor);\r\n    this._font = new Font(\"Segoe UI\", 10, [], this);\r\n    this._color = Color.black();\r\n    this._color.changesInterceptor = this;\r\n  }\r\n\r\n  propertyChanged(propName: string, value: any, oldObject: any) {\r\n    this.changesInterceptor.propertyChanged(`label.${propName}`, value, oldObject);\r\n  }\r\n\r\n  get alignment(): StiLabelAlignment {\r\n    return this._alignment;\r\n  }\r\n\r\n  set alignment(value: StiLabelAlignment) {\r\n    let oldValue = this._alignment;\r\n    this._alignment = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"alignment\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get verticalAlignment(): StiVerticalAlignment {\r\n    return this._verticalAlignment;\r\n  }\r\n  set verticalAlignment(value: StiVerticalAlignment) {\r\n    let oldValue = this._verticalAlignment;\r\n    this._verticalAlignment = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"verticalAlignment\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get width(): number {\r\n    return this._width;\r\n  }\r\n\r\n  set width(value: number) {\r\n    let oldValue = this._width;\r\n    this._width = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"width\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = super.saveToJsonObject(options);\r\n    json.addPropertyEnum(\"Alignment\", StiLabelAlignment, this.alignment);\r\n    json.addPropertyEnum(\"VerticalAlignment\", StiVerticalAlignment, this.verticalAlignment);\r\n    json.addPropertyNumber(\"Width\", this.width);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Alignment\":\r\n          this._alignment = Enum.parse(StiLabelAlignment, property.value);\r\n          break;\r\n        case \"VerticalAlignment\":\r\n          this._verticalAlignment = Enum.parse(StiVerticalAlignment, property.value);\r\n          break;\r\n        case \"Width\":\r\n          this._width = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import StiPadding from \"../../properties/StiPadding\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiDisplayCurrencyAs, StiThousandSeparator, StiUnitAlignment } from \"../../system/enums\";\r\nimport { StiChangesInterceptor, StiFormattedElement, StiSetProperty } from \"../../system/interfaces\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiForm } from \"../StiForm\";\r\nimport { StiDescriptionSettings } from \"./StiDescriptionSettings\";\r\nimport { StiInnerTextSettings } from \"./StiInnerTextSettings\";\r\nimport { StiLabelSettings } from \"./StiLabelSettings\";\r\n\r\nexport class StiFormSettings implements StiChangesInterceptor, StiFormattedElement {\r\n  private _label: StiLabelSettings = new StiLabelSettings(this);\r\n  private _description: StiDescriptionSettings = new StiDescriptionSettings(this);\r\n  private _innerText: StiInnerTextSettings = new StiInnerTextSettings(this);\r\n  private _dateTimeFormat: string = \"m/d/yy h:MM tt\";\r\n  private _dateFomat: string = \"dd.mm.yyyy\";\r\n  private _timeFormat: string = \"HH:MM:ss\";\r\n  private _currency = \"USD\";\r\n  private _currencyFormat: StiDisplayCurrencyAs = StiDisplayCurrencyAs.Code;\r\n  private _unitAlignment: StiUnitAlignment = StiUnitAlignment.Prefix;\r\n  private _thousandSeparator: StiThousandSeparator = StiThousandSeparator.Comma;\r\n  private _decimalDigits = 2;\r\n  private _padding: StiPadding = new StiPadding(8, 8, 8, 8, this);\r\n  private _gridColumns: number = 12;\r\n  private _gridVerticalStep: number = 5;\r\n  private _culture: string;\r\n\r\n  constructor(public form: StiForm) { }\r\n\r\n  public getCulture(): string {\r\n    return this.culture || navigator.language || (navigator as any).userLanguage;\r\n  }\r\n\r\n  public set culture(value: string) {\r\n    this._culture = value;\r\n    this.form?.updateCultureDependecies();\r\n  }\r\n\r\n  public get culture(): string {\r\n    return this._culture;\r\n  }\r\n\r\n  public get reportImage(): string {\r\n    return this.form.reportImage;\r\n  }\r\n  public set reportImage(value: string) {\r\n    let oldValue = this.reportImage;\r\n    this.form.reportImage = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"reportImage\", value, {});\r\n    }\r\n  }\r\n  public get formName(): string {\r\n    return this.form.formName;\r\n  }\r\n  public set formName(value: string) {\r\n    let oldValue = this.form.formName;\r\n    this.form.formName = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"formName\", value, {});\r\n    }\r\n  }\r\n  public get gridColumns(): number {\r\n    return this._gridColumns;\r\n  }\r\n  public set gridColumns(value: number) {\r\n    let oldValue = this._gridColumns;\r\n    if (typeof value != \"number\" ? Number(value) < 12 : value < 12) {\r\n      this._gridColumns = 12;\r\n    } else {\r\n      this._gridColumns = value;\r\n    }\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"gridColumns\", value, {});\r\n    }\r\n  }\r\n  public get gridVerticalStep(): number {\r\n    return this._gridVerticalStep;\r\n  }\r\n  public set gridVerticalStep(value: number) {\r\n    let oldValue = this._gridVerticalStep;\r\n    if (value <= 1) {\r\n      this._gridVerticalStep = 1;\r\n    } else if (this.form?.pages.length > 0 && value > this.form.pages[this.form.pages.length - 1].contentAreaHeight) {\r\n      this._gridVerticalStep = this.form.pages[this.form.pages.length - 1].contentAreaHeight;\r\n    } else {\r\n      this._gridVerticalStep = value;\r\n    }\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"gridVerticalStep\", value, {});\r\n    }\r\n  }\r\n\r\n  get padding(): StiPadding {\r\n    return this._padding;\r\n  }\r\n\r\n  set padding(value: StiPadding) {\r\n    let oldObject = this._padding.clone();\r\n    this._padding = value;\r\n    this._padding.changesInterceptor = this;\r\n    this.propertyChanged(\"padding\", value, oldObject);\r\n  }\r\n\r\n  get label(): StiLabelSettings {\r\n    return this._label;\r\n  }\r\n\r\n  set label(value: StiLabelSettings) {\r\n    this._label = value;\r\n  }\r\n\r\n  get description(): StiDescriptionSettings {\r\n    return this._description;\r\n  }\r\n\r\n  set description(value: StiDescriptionSettings) {\r\n    this._description = value;\r\n  }\r\n\r\n  get innerText(): StiInnerTextSettings {\r\n    return this._innerText;\r\n  }\r\n\r\n  set innerText(value: StiInnerTextSettings) {\r\n    this._innerText = value;\r\n  }\r\n\r\n  get dateTimeFormat(): string {\r\n    return this._dateTimeFormat;\r\n  }\r\n\r\n  set dateTimeFormat(value: string) {\r\n    let oldValue = this._dateTimeFormat;\r\n    this._dateTimeFormat = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"dateTimeFormat\", value, oldValue);\r\n    }\r\n  }\r\n  get dateFormat(): string {\r\n    return this._dateFomat;\r\n  }\r\n  set dateFormat(value: string) {\r\n    let oldValue = this._dateFomat;\r\n    this._dateFomat = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"dateFormat\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get timeFormat(): string {\r\n    return this._timeFormat;\r\n  }\r\n\r\n  set timeFormat(value: string) {\r\n    let oldValue = this._timeFormat;\r\n    this._timeFormat = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"timeFormat\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get currency(): string {\r\n    return this._currency;\r\n  }\r\n\r\n  set currency(value: string) {\r\n    let oldValue = this._currency;\r\n    this._currency = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"currency\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get currencyFormat(): StiDisplayCurrencyAs {\r\n    return this._currencyFormat;\r\n  }\r\n\r\n  set currencyFormat(value: StiDisplayCurrencyAs) {\r\n    let oldValue = this._currencyFormat;\r\n    this._currencyFormat = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"currencyFormat\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get unitAlignment(): StiUnitAlignment {\r\n    return this._unitAlignment;\r\n  }\r\n\r\n  set unitAlignment(value: StiUnitAlignment) {\r\n    let oldValue = this._unitAlignment;\r\n    this._unitAlignment = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"unitAlignment\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get thousandSeparator(): StiThousandSeparator {\r\n    return this._thousandSeparator;\r\n  }\r\n\r\n  set thousandSeparator(value: StiThousandSeparator) {\r\n    let oldValue = this._thousandSeparator;\r\n    this._thousandSeparator = value;\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"thousandSeparator\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  get decimalDigits(): number {\r\n    return this._decimalDigits;\r\n  }\r\n\r\n  set decimalDigits(value: number) {\r\n    let oldValue = this._decimalDigits;\r\n    if (value <= 0) {\r\n      this._decimalDigits = 0;\r\n    } else {\r\n      this._decimalDigits = value;\r\n    }\r\n    if (oldValue != value) {\r\n      this.propertyChanged(\"decimalDigits\", value, oldValue);\r\n    }\r\n  }\r\n\r\n  propertyChanged(propName: string, value: any, oldObject: any) {\r\n    this.form.pages.forEach((p) =>\r\n      p.allElements.forEach((el) => {\r\n        el.setProperty(propName, value[\"clone\"] ? value.clone() : value, oldObject);\r\n      })\r\n    );\r\n\r\n    if (propName.toLowerCase().indexOf(\"color\") == -1) {\r\n      this.form.formEvents.next({ name: \"UpdateAllSizes\" });\r\n    }\r\n\r\n    if (propName == \"thousandSeparator\" || propName == \"decimalDigits\") {\r\n      this.form.formEvents.next({ name: \"UpdateForm\" });\r\n    }\r\n  }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    json.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    json.addPropertyJObject(\"InnerText\", this.innerText.saveToJsonObject(options));\r\n    json.addPropertyString(\"TimeFormat\", this.timeFormat);\r\n    json.addPropertyString(\"DateFormat\", this.dateFormat);\r\n    json.addPropertyString(\"DateTimeFormat\", this.dateTimeFormat);\r\n    json.addPropertyNumber(\"DecimalDigits\", this.decimalDigits);\r\n    json.addPropertyNumber(\"GridColumns\", this.gridColumns);\r\n    json.addPropertyNumber(\"GridVerticalStep\", this.gridVerticalStep);\r\n    json.addPropertyString(\"Currency\", this.currency);\r\n    json.addPropertyEnum(\"CurrencyFormat\", StiDisplayCurrencyAs, this.currencyFormat);\r\n    json.addPropertyEnum(\"UnitAlignment\", StiUnitAlignment, this.unitAlignment);\r\n    json.addPropertyEnum(\"ThousandSeparator\", StiThousandSeparator, this.thousandSeparator);\r\n    json.addPropertyJObject(\"Padding\", this.padding.saveToJsonObject(options));\r\n    json.addPropertyString(\"Culture\", this.culture);\r\n    return json;\r\n  }\r\n  public loadFormJsonString(text: string) {\r\n    let jObject = new StiJson();\r\n    jObject.deserialize(text);\r\n    this.loadFromJsonObject(jObject);\r\n  }\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this._label = new StiLabelSettings(this);\r\n          this._label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this._description = new StiDescriptionSettings(this);\r\n          this._description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"InnerText\":\r\n          this._innerText = new StiInnerTextSettings(this);\r\n          this._innerText.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"TimeFormat\":\r\n          this.timeFormat = property.value;\r\n          break;\r\n        case \"DateFormat\":\r\n          this.dateFormat = property.value;\r\n          break;\r\n        case \"DateTimeFormat\":\r\n          this.dateTimeFormat = property.value;\r\n          break;\r\n        case \"DecimalDigits\":\r\n          this.decimalDigits = property.value;\r\n          break;\r\n        case \"Culture\":\r\n          this.culture = property.value;\r\n          break;\r\n        case \"GridColumns\":\r\n          this.gridColumns = property.value < 12 ? 12 : property.value;\r\n          break;\r\n        case \"GridVerticalStep\":\r\n          this.gridVerticalStep = property.value;\r\n          break;\r\n        case \"Currency\":\r\n          this._currency = property.value;\r\n          break;\r\n        case \"CurrencyFormat\":\r\n          this._currencyFormat = Enum.parse(StiDisplayCurrencyAs, property.value);\r\n          break;\r\n        case \"UnitAlignment\":\r\n          this._unitAlignment = Enum.parse(StiUnitAlignment, property.value);\r\n          break;\r\n        case \"Separator\":\r\n        case \"ThousandSeparator\":\r\n          this._thousandSeparator = Enum.parse(StiThousandSeparator, property.value);\r\n          break;\r\n        case \"Padding\":\r\n          this._padding = new StiPadding();\r\n          this._padding.loadFromJsonObject(property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  public applySettings(element: StiSetProperty) {\r\n    element.setProperty(\"label.font.family\", this.label.font.family, null);\r\n    element.setProperty(\"label.font.style\", this.label.font.cloneStyle, null);\r\n    element.setProperty(\"label.font.size\", this.label.font.size, null);\r\n    element.setProperty(\"label.color\", this.label.color, null);\r\n    element.setProperty(\"label.alignment\", this.label.alignment, null);\r\n    element.setProperty(\"label.width\", this.label.width, null);\r\n    element.setProperty(\"padding\", this.padding, null);\r\n\r\n    element.setProperty(\"description.font.family\", this.description.font.family, null);\r\n    element.setProperty(\"description.font.style\", this.description.font.cloneStyle, null);\r\n    element.setProperty(\"description.font.size\", this.description.font.size, null);\r\n    element.setProperty(\"description.color\", this.description.color.clone(), null);\r\n\r\n    element.setProperty(\"innerText.font.family\", this.innerText.font.family, null);\r\n    element.setProperty(\"innerText.font.style\", this.innerText.font.cloneStyle, null);\r\n    element.setProperty(\"innerText.font.size\", this.innerText.font.size, null);\r\n    element.setProperty(\"innerText.color\", this.innerText.color.clone(), null);\r\n    element.setProperty(\"innerText.backgroundColor\", this.innerText.backgroundColor.clone(), null);\r\n    element.setProperty(\"innerText.borderColor\", this.innerText.borderColor.clone(), null);\r\n    element.setProperty(\"innerText.borderWeight\", this.innerText.borderWeight, null);\r\n    element.setProperty(\"innerText.checkColor\", this.innerText.checkColor.clone(), null);\r\n    element.setProperty(\"innerText.contentAlignment\", this.innerText.contentAlignment, null);\r\n\r\n    element.setProperty(\"timeFormat\", this.timeFormat, null);\r\n    element.setProperty(\"dateFormat\", this.dateFormat, null);\r\n    element.setProperty(\"dateTimeFormat\", this.dateTimeFormat, null);\r\n\r\n    element.setProperty(\"currency\", this.currency, null);\r\n    element.setProperty(\"currencyFormat\", this.currencyFormat, null);\r\n    element.setProperty(\"unitAlignment\", this.unitAlignment, null);\r\n    element.setProperty(\"thousandSeparator\", this.thousandSeparator, null);\r\n    element.setProperty(\"decimalDigits\", this.decimalDigits, null);\r\n  }\r\n}\r\n","import StiFormObject from \"../elements/base/StiFormObject\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { PaperKind } from \"../system/enums\";\r\nimport StiJson from \"../system/StiJson\";\r\n\r\nexport default class StiPagePaperKind extends StiFormObject {\r\n  private static readonly _availableStandardKinds: StiPagePaperKind[] = [];\r\n\r\n  private _width: number;\r\n  private _height: number;\r\n\r\n  constructor(public name: string, public kind: PaperKind, width: number, height: number) {\r\n    super();\r\n    this._width = width;\r\n    this._height = height;\r\n  }\r\n\r\n  public get width(): number {\r\n    return this._width;\r\n  }\r\n\r\n  public set width(value: number) {\r\n    this._width = value;\r\n    this.updatePaperKind();\r\n  }\r\n\r\n  public get height(): number {\r\n    return this._height;\r\n  }\r\n\r\n  public set height(value: number) {\r\n    this._height = value;\r\n    this.updatePaperKind();\r\n  }\r\n\r\n  private updatePaperKind() {\r\n    this.kind =\r\n      StiPagePaperKind.availableStandardKinds().find((k) => k.height == this.height && k.width == this.width)?.kind ??\r\n      PaperKind.Custom;\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyEnum(\"Kind\", PaperKind, this.kind);\r\n    if (this.kind == PaperKind.Custom) {\r\n      jObject.addPropertyNumber(\"Width\", this.width);\r\n      jObject.addPropertyNumber(\"Height\", this.height);\r\n    }\r\n    return jObject;\r\n  }\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Kind\":\r\n          this.kind = Enum.parse(PaperKind, property.value);\r\n          break;\r\n        case \"Width\":\r\n          this.width = property.value;\r\n          break;\r\n        case \"Height\":\r\n          this.height = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  clone(): StiPagePaperKind {\r\n    return new StiPagePaperKind(this.name, this.kind, this.width, this.height);\r\n  }\r\n\r\n  static availableStandardKinds(): StiPagePaperKind[] {\r\n    if (this._availableStandardKinds.length == 0) {\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"Custom\", PaperKind.Custom, 794, 1123));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"Letter\", PaperKind.Letter, 816, 1056));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"Tabloid\", PaperKind.Tabloid, 1056, 1632));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"Legal\", PaperKind.Legal, 816, 1344));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"Statement\", PaperKind.Statement, 528, 816));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"Executive\", PaperKind.Executive, 696, 1008));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"A3\", PaperKind.A3, 1123, 1587));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"A4\", PaperKind.A4, 794, 1123));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"A5\", PaperKind.A5, 559, 794));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"B4\", PaperKind.B4, 971, 1376));\r\n      this._availableStandardKinds.push(new StiPagePaperKind(\"B5\", PaperKind.B5, 688, 971));\r\n    }\r\n    return this._availableStandardKinds;\r\n  }\r\n\r\n  static fromStandardPaperKind(standardPaperKind: PaperKind): StiPagePaperKind {\r\n    if (standardPaperKind == PaperKind.Custom) {\r\n      return null;\r\n    }\r\n    return this.availableStandardKinds().filter((k) => k.kind === standardPaperKind)[0].clone();\r\n  }\r\n}\r\n","import Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiPenStyle } from \"../system/enums\";\r\nimport StiJson from \"../system/StiJson\";\r\n\r\nexport class StiPen {\r\n  private _width: number;\r\n  public static dimGraySolid() {\r\n    return new StiPen(Color.dimGray(), StiPenStyle.Solid, 1);\r\n  }\r\n\r\n  constructor(public color?: Color, public style: StiPenStyle = StiPenStyle.Solid, width: number = 1) {\r\n    this.width = width;\r\n  }\r\n  public get width(): number {\r\n    return this._width;\r\n  }\r\n\r\n  public set width(value: number) {\r\n    if (value <= 0) {\r\n      this._width = 0;\r\n    } else if (value >= 395) {\r\n      this._width = 395;\r\n    } else {\r\n      this._width = value;\r\n    }\r\n  }\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyColor(\"Color\", this.color);\r\n    json.addPropertyEnum(\"Style\", StiPenStyle, this.style);\r\n    json.addPropertyNumber(\"Width\", this.width);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Color\":\r\n          this.color = new Color();\r\n          this.color.deserializeFromString(property.value);\r\n          break;\r\n        case \"Style\":\r\n          this.style = Enum.parse(StiPenStyle, property.value);\r\n          break;\r\n        case \"Width\":\r\n          this.width = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  public toHtmlBorder(): string {\r\n    return `${this.width}px ${this.getHtmlStyle()} ${this.color.toHtmlColor()}`;\r\n  }\r\n\r\n  public getHtmlStyle(): string {\r\n    switch (this.style) {\r\n      case StiPenStyle.Solid:\r\n        return \"solid\";\r\n      case StiPenStyle.Dash:\r\n        return \"dashed\";\r\n      case StiPenStyle.Dot:\r\n        return \"dotted\";\r\n    }\r\n  }\r\n}\r\n","import StiJson from \"../system/StiJson\";\r\nimport { StiPen } from \"./StiPen\";\r\n\r\nexport class StiBorder {\r\n  constructor(\r\n    public pen?: StiPen,\r\n    public drawLeft?: boolean,\r\n    public drawTop?: boolean,\r\n    public drawRight?: boolean,\r\n    public drawBottom?: boolean\r\n  ) {}\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyJObject(\"Pen\", this.pen.saveToJsonObject(options));\r\n    json.addPropertyBool(\"DrawLeft\", this.drawLeft);\r\n    json.addPropertyBool(\"DrawTop\", this.drawTop);\r\n    json.addPropertyBool(\"DrawRight\", this.drawRight);\r\n    json.addPropertyBool(\"DrawBottom\", this.drawBottom);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Pen\":\r\n          this.pen = new StiPen();\r\n          this.pen.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"DrawLeft\":\r\n          this.drawLeft = property.value;\r\n          break;\r\n        case \"DrawTop\":\r\n          this.drawTop = property.value;\r\n          break;\r\n        case \"DrawBottom\":\r\n          this.drawBottom = property.value;\r\n          break;\r\n        case \"DrawRight\":\r\n          this.drawRight = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiBorder } from \"../properties/StiBorder\";\r\nimport StiPadding from \"../properties/StiPadding\";\r\nimport { StiPen } from \"../properties/StiPen\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLabelAlignment } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport { StiLabel, StiDescription } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiImageElement extends StiFormElement implements StiLabel, StiDescription {\r\n  public type: string = \"ImageElement\";\r\n  public tooltip = \"\";\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public description: StiTextItem = new StiTextItem();\r\n  public canvasHeight: number = 195;\r\n  public border: StiBorder = new StiBorder(StiPen.dimGraySolid(), false, false, false, false);\r\n  public showBorderEditor: boolean = true;\r\n  public image: any;\r\n  public preserveAspectRatio = true;\r\n  public hyperlink: string = \"\";\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(170, 195);\r\n    this.label = new StiLabelItem(this, \"\");\r\n    this.label.alignment = StiLabelAlignment.Top;\r\n    this.padding = new StiPadding(0, 0, 0, 0, this);\r\n  }\r\n\r\n  public canUpdateProperty(propName: string) {\r\n    return !(propName.indexOf(\"padding\") >= 0 || propName == \"label.alignment\");\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyStringNullOrEmpty(\"Hyperlink\", this.hyperlink);\r\n    jObject.addPropertyJObject(\"Border\", this.border.saveToJsonObject(options));\r\n    if (!(options && options[\"notSerializeImages\"])) {\r\n      jObject.addPropertyStringNullOrEmpty(\"Image\", this.image?.substring(this.image.indexOf(\"base64,\") + 7));\r\n    }\r\n    jObject.addPropertyBool(\"PreserveAspectRatio\", this.preserveAspectRatio);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"Image\":\r\n        case \"BackgroundImage\":\r\n          this.image = `data:image/png;base64,${property.value}`;\r\n          break;\r\n        case \"PreserveAspectRatio\":\r\n          this.preserveAspectRatio = property.value;\r\n          break;\r\n        case \"Border\":\r\n          this.border = new StiBorder();\r\n          this.border.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Hyperlink\":\r\n          this.hyperlink = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","export class StiExceedMargins {\r\n  constructor(\r\n    public drawLeft?: boolean,\r\n    public drawTop?: boolean,\r\n    public drawRight?: boolean,\r\n    public drawBottom?: boolean\r\n  ) {}\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiHorizontalAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiBackgroundedTextItem } from \"./StiBackgroundedTextItem\";\r\n\r\nexport class StiBackgroundedAlignedTextItem extends StiBackgroundedTextItem {\r\n  constructor(\r\n    value: string = \"\",\r\n    public font: Font = new Font(\"Segoe UI\", 15),\r\n    public color: Color = Color.black(),\r\n    public backgroundColor: Color = Color.white(),\r\n    public horizontalAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Center,\r\n    public verticalAlignment: StiVerticalAlignment = StiVerticalAlignment.Center\r\n  ) {\r\n    super(value, font, color, backgroundColor);\r\n  }\r\n\r\n  get eContentAlignment() {\r\n    return this.horizontalAlignment;\r\n  }\r\n  set eContentAlignment(value) {\r\n    this.horizontalAlignment = value;\r\n  }\r\n  get eVerticalAlignment() {\r\n    return this.verticalAlignment;\r\n  }\r\n  set eVerticalAlignment(value) {\r\n    this.verticalAlignment = value;\r\n  }\r\n  haveVerticalAlignment() {\r\n    return true;\r\n  }\r\n  haveContentAlignment() {\r\n    return true;\r\n  }\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = super.saveToJsonObject(options);\r\n    json.addPropertyEnum(\"HorizontalAlignment\", StiHorizontalAlignment, this.horizontalAlignment);\r\n    json.addPropertyEnum(\"VerticalAlignment\", StiVerticalAlignment, this.verticalAlignment);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"HorizontalAlignment\":\r\n          this.horizontalAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"VerticalAlignment\":\r\n          this.verticalAlignment = Enum.parse(StiVerticalAlignment, property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiBorder } from \"../properties/StiBorder\";\r\nimport { StiExceedMargins } from \"../properties/StiExceedMargins\";\r\nimport StiPadding from \"../properties/StiPadding\";\r\nimport { StiPen } from \"../properties/StiPen\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiHorizontalAlignment, StiVerticalAlignment } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport { StiEditableContent, StiValueElement } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiBackgroundedAlignedTextItem } from \"./text/StiBackgroundedAlignedTextItem\";\r\n\r\nexport class StiLabelElement extends StiFormElement implements StiValueElement {\r\n  public type: string = \"LabelElement\";\r\n  public exceedMargins: StiExceedMargins = new StiExceedMargins(false, false, false, false);\r\n  public text: StiBackgroundedAlignedTextItem = new StiBackgroundedAlignedTextItem(\r\n    \"\",\r\n    new Font(\"Segoe UI\", 9),\r\n    Color.black(),\r\n    Color.transparent()\r\n  );\r\n  public border: StiBorder = new StiBorder(StiPen.dimGraySolid(), false, false, false, false);\r\n  public showBorderEditor: boolean = true;\r\n  public displayValue: string;\r\n  public value: any;\r\n  public hyperlink: string = \"\";\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(100, 40);\r\n    this.padding = new StiPadding(0, 0, 0, 0, this);\r\n  }\r\n\r\n  public get expression(): string {\r\n    return this.text?.value;\r\n  }\r\n\r\n  public canUpdateProperty(propName: string) {\r\n    return !(propName.indexOf(\"padding\") >= 0);\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.text.font.family, this.arrayOfStylesToString(this.text.font.style), this.text.font.size);\r\n  }\r\n\r\n  setProperty(propName: string, value: any, oldObject: any) {\r\n    super.setProperty(propName, value, oldObject);\r\n    if (propName == \"innerText.backgroundColor\") {\r\n      //this.text.backgroundColor = value.clone();\r\n    } else if (propName == \"innerText.contentAlignment\") {\r\n      //this.text.horizontalAlignment = value;\r\n    } else if (propName.startsWith(\"label.font\") || propName == \"label.color\") {\r\n      this.text.setProperty(propName.replace(\"label.\", \"\"), value.clone ? value.clone() : value, oldObject);\r\n    }\r\n  }\r\n\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    return this.text;\r\n  }\r\n  htmlStyle(): string {\r\n    return `${this.text.font.htmlStyle()};color:${this.text.color.toHtmlColor()};justify-content:${Enum.getName(\r\n      StiHorizontalAlignment,\r\n      this.text.horizontalAlignment\r\n    )};align-items:${Enum.getName(StiVerticalAlignment, this.text.verticalAlignment)}`;\r\n  }\r\n  saveToJsonObject(options: any): StiJson {\r\n    let states = [];\r\n    if (\r\n      this.exceedMargins.drawTop &&\r\n      this.exceedMargins.drawBottom &&\r\n      this.exceedMargins.drawLeft &&\r\n      this.exceedMargins.drawRight\r\n    ) {\r\n      states.push(\"All\");\r\n    } else if (\r\n      !this.exceedMargins.drawTop &&\r\n      !this.exceedMargins.drawBottom &&\r\n      !this.exceedMargins.drawLeft &&\r\n      !this.exceedMargins.drawRight\r\n    ) {\r\n      states.push(\"None\");\r\n    } else {\r\n      if (this.exceedMargins.drawTop) {\r\n        states.push(\"Top\");\r\n      }\r\n      if (this.exceedMargins.drawLeft) {\r\n        states.push(\"Left\");\r\n      }\r\n      if (this.exceedMargins.drawRight) {\r\n        states.push(\"Right\");\r\n      }\r\n      if (this.exceedMargins.drawBottom) {\r\n        states.push(\"Bottom\");\r\n      }\r\n    }\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Text\", this.text.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Border\", this.border.saveToJsonObject(options));\r\n    jObject.addPropertyString(\"ExceededMargins\", states.join());\r\n    jObject.addPropertyStringNullOrEmpty(\"Hyperlink\", this.hyperlink);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Hyperlink\":\r\n          this.hyperlink = property.value;\r\n          break;\r\n        case \"Text\":\r\n          this.text = new StiBackgroundedAlignedTextItem();\r\n          this.text.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Border\":\r\n          this.border = new StiBorder();\r\n          this.border.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"ExceededMargins\":\r\n          let string = property.value;\r\n          this.exceedMargins.drawBottom = false;\r\n          this.exceedMargins.drawLeft = false;\r\n          this.exceedMargins.drawRight = false;\r\n          this.exceedMargins.drawTop = false;\r\n          if (string.indexOf(\"All\") >= 0) {\r\n            this.exceedMargins.drawBottom = true;\r\n            this.exceedMargins.drawLeft = true;\r\n            this.exceedMargins.drawRight = true;\r\n            this.exceedMargins.drawTop = true;\r\n          } else {\r\n            if (string.indexOf(\"Top\") >= 0) {\r\n              this.exceedMargins.drawTop = true;\r\n            }\r\n            if (string.indexOf(\"Left\") >= 0) {\r\n              this.exceedMargins.drawLeft = true;\r\n            }\r\n            if (string.indexOf(\"Right\") >= 0) {\r\n              this.exceedMargins.drawRight = true;\r\n            }\r\n            if (string.indexOf(\"Bottom\") >= 0) {\r\n              this.exceedMargins.drawBottom = true;\r\n            }\r\n          }\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import StiPadding from \"../properties/StiPadding\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiPenStyle, StiVerticalAlignment } from \"../system/enums\";\r\nimport { StiDescription } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport default class StiLineElement extends StiFormElement implements StiDescription {\r\n  public type: string = \"LineElement\";\r\n  public description: StiTextItem = new StiTextItem();\r\n  public lineColor: Color = Color.fromArgb(255, 192, 191, 192);\r\n  public verticalAlignment: StiVerticalAlignment = StiVerticalAlignment.Center;\r\n  public style: StiPenStyle = StiPenStyle.Solid;\r\n  public lineThickness = 1;\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(100, 20);\r\n    this.padding = new StiPadding(0, 0, 0, 0);\r\n  }\r\n\r\n  public canUpdateProperty(propName: string) {\r\n    return !propName.startsWith(\"padding\");\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyColor(\"LineColor\", this.lineColor);\r\n    jObject.addPropertyNumber(\"LineThickness\", this.lineThickness);\r\n    jObject.addPropertyEnum(\"VerticalAlignment\", StiVerticalAlignment, this.verticalAlignment);\r\n    jObject.addPropertyEnum(\"Style\", StiPenStyle, this.style);\r\n    return jObject;\r\n  }\r\n  public toHtmlBorder(): string {\r\n    return `${this.lineThickness}px ${this.getHtmlStyle()} ${this.lineColor.toHtmlColor()}`;\r\n  }\r\n  public getHtmlStyle(): string {\r\n    switch (this.style) {\r\n      case StiPenStyle.Solid:\r\n        return \"solid\";\r\n      case StiPenStyle.Dash:\r\n        return \"dashed\";\r\n      case StiPenStyle.Dot:\r\n        return \"dotted\";\r\n    }\r\n  }\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"LineColor\":\r\n          this.lineColor = new Color();\r\n          this.lineColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"LineThickness\":\r\n          this.lineThickness = property.value;\r\n          break;\r\n        case \"VerticalAlignment\":\r\n          this.verticalAlignment = Enum.parse(StiVerticalAlignment, property.value);\r\n          break;\r\n        case \"Style\":\r\n          this.style = Enum.parse(StiPenStyle, property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiLineWeight } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport {\r\n  StiLabel,\r\n  StiDescription,\r\n  StiOptionsElement,\r\n  StiHtmlStyle,\r\n  StiValueElement,\r\n  StiEditableContent,\r\n  StiTabIndex,\r\n} from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiListBoxElement\r\n  extends StiFormElement\r\n  implements StiLabel, StiDescription, StiOptionsElement, StiHtmlStyle, StiValueElement, StiTabIndex {\r\n  public type: string = \"List_BoxElement\";\r\n  public tooltip = \"\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public backgroundColor: Color = Color.white();\r\n  public textColor: Color = Color.black();\r\n  public borderColor: Color = Color.lightGray();\r\n  public borderWeight: StiLineWeight = StiLineWeight.Thin;\r\n  public allowMultiselection = false;\r\n  public options: string[] = [];\r\n  public selectedOptions: string[] = [];\r\n  public tabIndex: number;\r\n\r\n  setDefaultValues() {\r\n    this.selectedOptions = [];\r\n  }\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(150, 90);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiListBox\"));\r\n\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"First\"));\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"Second\"));\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"Third\"));\r\n  }\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value++;\r\n    return value;\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.textColor.toHtmlColor()};`;\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\"\", this.font, this.textColor, this.backgroundColor);\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n\r\n  get value(): any {\r\n    if (this.selectedOptions) {\r\n      return this.selectedOptions.length == 1 ? this.selectedOptions[0] : this.selectedOptions;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"TextColor\", this.textColor);\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    jObject.addPropertyEnum(\"BorderWeight\", StiLineWeight, this.borderWeight);\r\n    jObject.addPropertyBool(\"AllowMultiselection\", this.allowMultiselection);\r\n    jObject.addPropertyArray(\"SelectedOptions\", this.selectedOptions);\r\n    jObject.addPropertyArray(\"Options\", this.options);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TextColor\":\r\n          this.textColor = new Color();\r\n          this.textColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BorderWeight\":\r\n          this.borderWeight = Enum.parse(StiLineWeight, property.value);\r\n          break;\r\n        case \"AllowMultiselection\":\r\n          this.allowMultiselection = property.value;\r\n          break;\r\n        case \"SelectedOptions\":\r\n          this.selectedOptions = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.selectedOptions.push(p.value));\r\n          break;\r\n        case \"Options\":\r\n          this.options = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.options.push(p.value));\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiEditableContent } from \"../../system/interfaces\";\r\n\r\nexport class StiOptionItem implements StiEditableContent {\r\n  get eFont(): Font {\r\n    return this.element.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.element.font = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.element.textColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.element.textColor = value;\r\n  }\r\n\r\n  haveBackgoundColor(): boolean {\r\n    return false;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return false;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n  htmlStyle(): string {\r\n    return this.element ? `${this.eFont.htmlStyle()};color:${this.eColor.toHtmlColor()}` : \"\";\r\n  }\r\n\r\n  private value: string;\r\n\r\n  set eValue(value: string) {\r\n    this.value = value;\r\n    this.element.nativeOptions[this.index] = value;\r\n  }\r\n\r\n  get eValue(): string {\r\n    return this.value;\r\n  }\r\n\r\n  constructor(value: string, public element: any, public index: number) {\r\n    this.value = value;\r\n  }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Font } from \"../system/Font\";\r\nimport {\r\n  StiLabel,\r\n  StiDescription,\r\n  StiOptionsElement,\r\n  StiHtmlStyle,\r\n  StiBorderElement,\r\n  StiBackgroundElement,\r\n  StiValueElement,\r\n  StiEditableContent,\r\n  StiTabIndex,\r\n} from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiOptionItem } from \"./text/StiOptionItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiMultipleSelectionElement\r\n  extends StiFormElement\r\n  implements\r\n    StiLabel,\r\n    StiDescription,\r\n    StiOptionsElement,\r\n    StiHtmlStyle,\r\n    StiBorderElement,\r\n    StiBackgroundElement,\r\n    StiValueElement,\r\n    StiTabIndex\r\n{\r\n  public type: string = \"Multiple_SelectionElement\";\r\n  public tooltip = \"\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  private _columns = 1;\r\n  public backgroundColor: Color = Color.white();\r\n  public textColor: Color = Color.black();\r\n  public checkColor: Color = Color.black();\r\n  public borderColor: Color = Color.lightGray();\r\n  public prefix: string = \"\";\r\n  public suffix: string = \"\";\r\n  private _options: string[];\r\n  public nativeOptions: string[];\r\n  public optionsContentEditable: StiOptionItem[] = [];\r\n  public useCustomOption = false;\r\n  public customOptionText = \"\";\r\n  public selectedOptions: string[] = [];\r\n  public tabIndex;\r\n  setDefaultValues() {\r\n    this.selectedOptions = [];\r\n  }\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(150, 80);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiMultipleSelection\"));\r\n\r\n    this.options = [];\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"First\"));\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"Second\"));\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"Third\"));\r\n  }\r\n\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value++;\r\n    return value;\r\n  }\r\n\r\n  set options(value: string[]) {\r\n    this.nativeOptions = value;\r\n    let this_ = this;\r\n    this._options = new Proxy(value, {\r\n      deleteProperty: function (target, property) {\r\n        setTimeout(() => {\r\n          this_.updateOptionsContentEditable();\r\n        }, 0);\r\n        return true;\r\n      },\r\n      set: function (target, property, value, receiver) {\r\n        target[property] = value;\r\n        this_.updateOptionsContentEditable();\r\n        return true;\r\n      },\r\n    });\r\n    this.updateOptionsContentEditable();\r\n  }\r\n  updateOptionsContentEditable() {\r\n    this.optionsContentEditable = [];\r\n    this.options.forEach((l, index) => this.optionsContentEditable.push(new StiOptionItem(l, this, index)));\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\"\", this.font, this.textColor);\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n  get options(): string[] {\r\n    return this._options;\r\n  }\r\n\r\n  get value(): any {\r\n    if (this.selectedOptions) {\r\n      return this.selectedOptions.length == 1 ? this.selectedOptions[0] : this.selectedOptions;\r\n    }\r\n    return null;\r\n  }\r\n\r\n  public get columns(): number {\r\n    return this._columns;\r\n  }\r\n  public set columns(value: number) {\r\n    if (value <= 1) {\r\n      this._columns = 1;\r\n    } else {\r\n      this._columns = value;\r\n    }\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n  htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.textColor.toHtmlColor()};`;\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyNumber(\"Columns\", this.columns);\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"TextColor\", this.textColor);\r\n    jObject.addPropertyColor(\"CheckColor\", this.checkColor);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    jObject.addPropertyArray(\"Options\", this.options);\r\n    jObject.addPropertyBool(\"UseCustomOption\", this.useCustomOption);\r\n    jObject.addPropertyString(\"CustomOptionText\", this.customOptionText);\r\n    jObject.addPropertyArray(\"SelectedOptions\", this.selectedOptions);\r\n    jObject.addPropertyString(\"Prefix\", this.prefix);\r\n    jObject.addPropertyString(\"Suffix\", this.suffix);\r\n\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TextColor\":\r\n          this.textColor = new Color();\r\n          this.textColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"Columns\":\r\n          this.columns = property.value;\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CheckColor\":\r\n          this.checkColor = new Color();\r\n          this.checkColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CustomOptionText\":\r\n          this.customOptionText = property.value;\r\n          break;\r\n        case \"UseCustomOption\":\r\n          this.useCustomOption = property.value;\r\n          break;\r\n        case \"Prefix\":\r\n          this.prefix = property.value;\r\n          break;\r\n        case \"Suffix\":\r\n          this.suffix = property.value;\r\n          break;\r\n        case \"SelectedOptions\":\r\n          this.selectedOptions = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.selectedOptions.push(p.value));\r\n          break;\r\n        case \"Options\":\r\n          this.options = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.options.push(p.value));\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport {\r\n  StiHorizontalAlignment,\r\n  StiNumberType,\r\n  StiThousandSeparator,\r\n  StiNumberRangeFormat,\r\n  StiUnitAlignment,\r\n  StiDisplayCurrencyAs,\r\n  StiLineWeight,\r\n} from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport {\r\n  StiLabel,\r\n  StiDescription,\r\n  StiEditableContent,\r\n  StiValueElement,\r\n  StiNumberElement,\r\n  StiTabIndex,\r\n} from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiNumberBoxElement\r\n  extends StiFormElement\r\n  implements StiLabel, StiDescription, StiEditableContent, StiValueElement, StiNumberElement, StiTabIndex\r\n{\r\n  private _decimalDigits: number = 2;\r\n  private _maximum: number = 15;\r\n  public type: string = \"Number_BoxElement\";\r\n  public tooltip = \"\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public contentAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Right;\r\n  public backgroundColor: Color = Color.white();\r\n  public textColor: Color = Color.black();\r\n  public value = 0;\r\n  public allowNegative = true;\r\n  public numberType: StiNumberType = StiNumberType.Decimal;\r\n  public thousandSeparator: StiThousandSeparator = StiThousandSeparator.None;\r\n  public useRange = false;\r\n  private _minimum = 0;\r\n  public rangeFormat: StiNumberRangeFormat = StiNumberRangeFormat.Digits;\r\n  public unitLabel = \"\";\r\n  public unitAlignment: StiUnitAlignment = StiUnitAlignment.Suffix;\r\n  public unitForeground: Color = Color.black();\r\n  public currencyLabelFormat: StiDisplayCurrencyAs = StiDisplayCurrencyAs.Code;\r\n  public currency = \"USD\";\r\n  public borderColor: Color = Color.lightGray();\r\n  public borderWeight: StiLineWeight = StiLineWeight.Thin;\r\n  public tabIndex: number;\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(150, 40);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiNumberBox\"));\r\n  }\r\n  setDefaultValues() {\r\n    this.value = 0;\r\n  }\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value++;\r\n    return value;\r\n  }\r\n\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\r\n      this.value?.toString(),\r\n      this.font,\r\n      this.textColor,\r\n      this.backgroundColor,\r\n      this.contentAlignment\r\n    );\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n\r\n  get isCurrency(): boolean {\r\n    return this.numberType == StiNumberType.Currency ? true : false;\r\n  }\r\n  get eValue(): string {\r\n    return this.value.toString();\r\n  }\r\n  get decimalDigits() {\r\n    return this._decimalDigits;\r\n  }\r\n  set decimalDigits(value: number) {\r\n    this._decimalDigits = Math.max(0, Math.min(10, value));\r\n  }\r\n  get maximum() {\r\n    return this._maximum;\r\n  }\r\n  set maximum(value: number) {\r\n    this._maximum = value <= this.minimum ? this.minimum : value;\r\n  }\r\n\r\n  get minimum() {\r\n    return this._minimum;\r\n  }\r\n  set minimum(value: number) {\r\n    this._minimum = value >= this.maximum ? this.maximum : value;\r\n  }\r\n\r\n  set eValue(value: string) {\r\n    try {\r\n      this.value = parseFloat(value);\r\n    } catch {\r\n      this.value = 0;\r\n    }\r\n  }\r\n\r\n  get eFont(): Font {\r\n    return this.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.font = value;\r\n  }\r\n\r\n  get eBackgroundColor(): Color {\r\n    return this.backgroundColor;\r\n  }\r\n\r\n  set eBackgroundColor(value: Color) {\r\n    this.backgroundColor = value;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.contentAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.contentAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return true;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n  haveBackgoundColor(): boolean {\r\n    return true;\r\n  }\r\n\r\n  public get eColor(): Color {\r\n    return this.textColor;\r\n  }\r\n\r\n  public set eColor(value: Color) {\r\n    this.textColor = value;\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.textColor.toHtmlColor()};text-align:${Enum.getName(\r\n      StiHorizontalAlignment,\r\n      this.contentAlignment\r\n    )}`;\r\n  }\r\n\r\n  setProperty(propName: string, value: any, oldObject: any) {\r\n    super.setProperty(propName, value, oldObject);\r\n    if (propName == \"thousandSeparator\" && (oldObject === null || oldObject == this.thousandSeparator)) {\r\n      this.thousandSeparator = value;\r\n    } else if (propName == \"currencyFormat\" && (oldObject === null || oldObject == this.currencyLabelFormat)) {\r\n      this.currencyLabelFormat = value;\r\n    }\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyNumber(\"Value\", this.value);\r\n    jObject.addPropertyBool(\"AllowNegative\", this.allowNegative);\r\n    jObject.addPropertyEnum(\"NumberType\", StiNumberType, this.numberType);\r\n    jObject.addPropertyEnum(\"ThousandSeparator\", StiThousandSeparator, this.thousandSeparator);\r\n    jObject.addPropertyNumber(\"DecimalDigits\", this.decimalDigits);\r\n    jObject.addPropertyEnum(\"ContentAlignment\", StiHorizontalAlignment, this.contentAlignment);\r\n    jObject.addPropertyBool(\"UseRange\", this.useRange);\r\n    jObject.addPropertyNumber(\"Minimum\", this.minimum);\r\n    jObject.addPropertyNumber(\"Maximum\", this.maximum);\r\n    jObject.addPropertyEnum(\"RangeFormat\", StiNumberRangeFormat, this.rangeFormat);\r\n    jObject.addPropertyString(\"UnitLabel\", this.unitLabel);\r\n    jObject.addPropertyEnum(\"UnitAlignment\", StiUnitAlignment, this.unitAlignment);\r\n    jObject.addPropertyColor(\"UnitForeground\", this.unitForeground);\r\n    jObject.addPropertyEnum(\"CurrencyLabelFormat\", StiDisplayCurrencyAs, this.currencyLabelFormat);\r\n    jObject.addPropertyString(\"Currency\", this.currency);\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"TextColor\", this.textColor);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    jObject.addPropertyEnum(\"BorderWeight\", StiLineWeight, this.borderWeight);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Value\":\r\n          this.value = property.value;\r\n          break;\r\n        case \"AllowNegative\":\r\n          this.allowNegative = property.value;\r\n          break;\r\n        case \"NumberType\":\r\n          this.numberType = Enum.parse(StiNumberType, property.value);\r\n          break;\r\n        case \"ThousandSeparator\":\r\n          this.thousandSeparator = Enum.parse(StiThousandSeparator, property.value);\r\n          break;\r\n        case \"DecimalDigits\":\r\n          this.decimalDigits = property.value;\r\n          break;\r\n        case \"ContentAlignment\":\r\n          this.contentAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"UseRange\":\r\n          this.useRange = property.value;\r\n          break;\r\n        case \"Minimum\":\r\n          this.minimum = property.value;\r\n          break;\r\n        case \"Maximum\":\r\n          this.maximum = property.value;\r\n          break;\r\n        case \"RangeFormat\":\r\n          this.rangeFormat = Enum.parse(StiNumberRangeFormat, property.value);\r\n          break;\r\n        case \"UnitLabel\":\r\n          this.unitLabel = property.value;\r\n          break;\r\n        case \"UnitAlignment\":\r\n          this.unitAlignment = Enum.parse(StiUnitAlignment, property.value);\r\n          break;\r\n        case \"UnitForeground\":\r\n          this.unitForeground = new Color();\r\n          this.unitForeground.deserializeFromString(property.value);\r\n          break;\r\n        case \"CurrencyLabelFormat\":\r\n          this.currencyLabelFormat = Enum.parse(StiDisplayCurrencyAs, property.value);\r\n          break;\r\n        case \"Currency\":\r\n          this.currency = property.value;\r\n          break;\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TextColor\":\r\n          this.textColor = new Color();\r\n          this.textColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BorderWeight\":\r\n          this.borderWeight = Enum.parse(StiLineWeight, property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { StiLabel, StiDescription } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiPDFSignatureElement extends StiFormElement implements StiLabel, StiDescription {\r\n  public type: string = \"PDFSignatureElement\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public signaturePanelWidth = 185;\r\n  public signaturePanelHeight = 100;\r\n  public placeholder: string = \"Place for Digital Signature\";\r\n  public placeholderBackColor: Color = Color.transparent();\r\n  public canvasHeight: number = 120;\r\n  public loadWithAspectRatio: boolean = false;\r\n  SignatureTextBoxText: string;\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(180, 145);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiPdfDigitalSignature\"));\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    if (this.element) {\r\n      if (this.element.nativeElement?.offsetWidth > 0 && this.element.nativeElement?.offsetHeight > 0) {\r\n        this.signaturePanelWidth = this.element.nativeElement?.offsetWidth;\r\n        this.signaturePanelHeight = this.element.nativeElement?.offsetHeight;\r\n      }\r\n    }\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyStringNullOrEmpty(\"Placeholder\", this.placeholder);\r\n    jObject.addPropertyColor(\"PlaceholderBackColor\", this.placeholderBackColor);\r\n    jObject.addPropertyNumber(\"SignaturePanelWidth\", this.signaturePanelWidth);\r\n    jObject.addPropertyNumber(\"SignaturePanelHeight\", this.signaturePanelHeight);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"SignaturePanelWidth\":\r\n          this.signaturePanelWidth = property.value;\r\n          break;\r\n        case \"SignaturePanelHeight\":\r\n          this.signaturePanelHeight = property.value;\r\n          break;\r\n        case \"Placeholder\":\r\n          this.placeholder = property.value;\r\n          break;\r\n        case \"PlaceholderBackColor\":\r\n          this.placeholderBackColor = new Color();\r\n          this.placeholderBackColor.deserializeFromString(property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Enum } from \"../../system/Enum\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiVerticalAlignment, StiHorizontalAlignment } from \"../../system/enums\";\r\nimport { StiImageEditorResultObject } from \"../../system/interfaces\";\r\n\r\nexport class StiImageEditorResult implements StiImageEditorResultObject {\r\n  loadedImage: any = \"\";\r\n  verticalAlignment: StiVerticalAlignment = StiVerticalAlignment.Center;\r\n  horizontalAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Center;\r\n  aspectRatio: boolean = false;\r\n  stretch: boolean = false;\r\n  naturalWidth: number = 0;\r\n  naturalHeight: number = 0;\r\n  constructor() {}\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyBool(\"AspectRatio\", this.aspectRatio);\r\n    json.addPropertyBool(\"Stretch\", this.stretch);\r\n    if (!(options && options[\"notSerializeImages\"])) {\r\n      json.addPropertyStringNullOrEmpty(\r\n        \"LoadedImage\",\r\n        this.loadedImage?.substring(this.loadedImage.indexOf(\"base64,\") + 7)\r\n      );\r\n    }\r\n    json.addPropertyNumber(\"NaturalWidth\", this.naturalWidth);\r\n    json.addPropertyNumber(\"NaturalHeight\", this.naturalHeight);\r\n    json.addPropertyEnum(\"HorizontalAlignment\", StiHorizontalAlignment, this.horizontalAlignment);\r\n    json.addPropertyEnum(\"VerticalAlignment\", StiVerticalAlignment, this.verticalAlignment);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"AspectRatio\":\r\n          this.aspectRatio = property.value;\r\n          break;\r\n        case \"Stretch\":\r\n          this.stretch = property.value;\r\n          break;\r\n        case \"LoadedImage\":\r\n          this.loadedImage = `data:image/png;base64,${property.value}`;\r\n          break;\r\n        case \"NaturalWidth\":\r\n          this.naturalWidth = property.value;\r\n          break;\r\n        case \"NaturalHeight\":\r\n          this.naturalHeight = property.value;\r\n          break;\r\n        case \"HorizontalAlignment\":\r\n          this.horizontalAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"VerticalAlignment\":\r\n          this.verticalAlignment = Enum.parse(StiVerticalAlignment, property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { StiHorizontalAlignment } from \"../system/enums\";\r\nimport { StiLabel, StiDescription } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiImageEditorResult } from \"./signature/StiImageEditorResult\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiSignatureElement extends StiFormElement implements StiLabel, StiDescription {\r\n  public type: string = \"SignatureElement\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public signaturePanelWidth = 185;\r\n  public signaturePanelHeight = 100;\r\n  public backgroundImage: any;\r\n  public insertedImage: StiImageEditorResult = new StiImageEditorResult();\r\n  public insertedText: StiTextItem = new StiTextItem();\r\n  public penColor: Color = Color.black();\r\n  public drawedImage;\r\n  public fullName: string = \"\";\r\n  public initials: string = \"\";\r\n  public specialFont: string = \"Teddy Bear\";\r\n  public currentSignatureMode: string = \"Type\";\r\n  public canvasHeight: number = 120;\r\n  public isSigned: boolean = false;\r\n\r\n  public get value() {\r\n    return this.currentSignatureMode == \"Draw\" ? this.backgroundImage : this.getTypeImage();\r\n  }\r\n\r\n  public getTypeImage() {\r\n    if (this.element?.nativeElement) {\r\n      let canvas = document.createElement('canvas');\r\n      canvas.width = this.element?.nativeElement.offsetWidth;\r\n      canvas.height = this.element?.nativeElement.offsetHeight;\r\n      var ctx = canvas.getContext(\"2d\");\r\n      ctx.font = \"16pt \" + this.specialFont;\r\n      ctx.fillText(`${this.fullName} ${this.initials}`, 0, this.element?.nativeElement.offsetHeight - (this.specialFont == \"Teddy Bear\" ? 20 : (this.specialFont == \"MADE Likes Script\" ? 11 : 4)));\r\n      return canvas.toDataURL('image/png');\r\n    }\r\n    return \"\";\r\n  }\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(180, 145);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiElectronicSignature\"));\r\n    this.description.value = \"Signature\";\r\n    this.insertedText.font.size = 20;\r\n    this.insertedText.horizontalAlignment = StiHorizontalAlignment.Center;\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    if (this.element) {\r\n      if (this.element.nativeElement?.offsetWidth > 0 && this.element.nativeElement?.offsetHeight > 0) {\r\n        this.signaturePanelWidth = this.element.nativeElement?.offsetWidth;\r\n        this.signaturePanelHeight = this.element.nativeElement?.offsetHeight;\r\n      }\r\n    }\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyNumber(\"SignaturePanelWidth\", this.signaturePanelWidth);\r\n    jObject.addPropertyNumber(\"SignaturePanelHeight\", this.signaturePanelHeight);\r\n    jObject.addPropertyColor(\"PenColor\", this.penColor);\r\n    jObject.addPropertyJObject(\"InsertedImage\", this.insertedImage?.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"InsertedText\", this.insertedText?.saveToJsonObject(options));\r\n    if (!(options && options[\"notSerializeImages\"])) {\r\n      jObject.addPropertyStringNullOrEmpty(\r\n        \"DrawedImage\",\r\n        this.drawedImage?.substring(this.drawedImage.indexOf(\"base64,\") + 7)\r\n      );\r\n    }\r\n    jObject.addPropertyStringNullOrEmpty(\"FullName\", this.fullName);\r\n    jObject.addPropertyStringNullOrEmpty(\"Initials\", this.initials);\r\n    jObject.addPropertyStringNullOrEmpty(\"SpecialFont\", this.specialFont);\r\n    jObject.addPropertyStringNullOrEmpty(\"CurrentSignatureMode\", this.currentSignatureMode);\r\n    if (!(options && options[\"notSerializeImages\"])) {\r\n      jObject.addPropertyStringNullOrEmpty(\r\n        \"BackgroundImage\",\r\n        this.backgroundImage?.substring(this.backgroundImage.indexOf(\"base64,\") + 7)\r\n      );\r\n    }\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"SignaturePanelWidth\":\r\n          this.signaturePanelWidth = property.value;\r\n          break;\r\n        case \"PenColor\":\r\n          this.penColor = new Color();\r\n          this.penColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"SignaturePanelHeight\":\r\n          this.signaturePanelHeight = property.value;\r\n          break;\r\n        case \"InsertedImage\":\r\n          this.insertedImage = new StiImageEditorResult();\r\n          this.insertedImage.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"InsertedText\":\r\n          this.insertedText = new StiTextItem();\r\n          this.insertedText.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"DrawedImage\":\r\n          this.drawedImage = `data:image/png;base64,${property.value}`;\r\n          break;\r\n        case \"FullName\":\r\n          this.fullName = property.value;\r\n          break;\r\n        case \"Initials\":\r\n          this.initials = property.value;\r\n          break;\r\n        case \"SpecialFont\":\r\n          this.specialFont = property.value;\r\n          break;\r\n        case \"CurrentSignatureMode\":\r\n          this.currentSignatureMode = property.value;\r\n          break;\r\n        case \"BackgroundImage\":\r\n          this.backgroundImage = `data:image/png;base64,${property.value}`;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Font } from \"../system/Font\";\r\nimport {\r\n  StiLabel,\r\n  StiDescription,\r\n  StiOptionsElement,\r\n  StiHtmlStyle,\r\n  StiValueElement,\r\n  StiEditableContent,\r\n  StiTabIndex,\r\n} from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiOptionItem } from \"./text/StiOptionItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiSingleSelectionElement\r\n  extends StiFormElement\r\n  implements StiLabel, StiDescription, StiOptionsElement, StiHtmlStyle, StiValueElement, StiTabIndex\r\n{\r\n  public type: string = \"Single_SelectionElement\";\r\n  public tooltip = \"\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  private _columns = 1;\r\n  public backgroundColor: Color = Color.white();\r\n  public textColor: Color = Color.black();\r\n  public checkColor: Color = Color.black();\r\n  public borderColor: Color = Color.lightGray();\r\n  public prefix: string = \"\";\r\n  public suffix: string = \"\";\r\n  private _options: string[];\r\n  public nativeOptions: string[];\r\n  public optionsContentEditable: StiOptionItem[] = [];\r\n  public useCustomOption = false;\r\n  public customOptionText = \"\";\r\n  public selectedOption = \"\";\r\n  public tabIndex: number;\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(150, 80);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiSingleSelection\"));\r\n\r\n    this.options = [];\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"First\"));\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"Second\"));\r\n    this.options.push(StiLocalizationService.get(\"PropertyMain\", \"Third\"));\r\n  }\r\n\r\n  setDefaultValues() {\r\n    this.selectedOption = \"\";\r\n  }\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value;\r\n    return value + (this.options?.length ?? 0);\r\n  }\r\n\r\n  public get columns(): number {\r\n    return this._columns;\r\n  }\r\n  public set columns(value: number) {\r\n    if (value <= 1) {\r\n      this._columns = 1;\r\n    } else {\r\n      this._columns = value;\r\n    }\r\n  }\r\n\r\n  set options(value: string[]) {\r\n    this.nativeOptions = value;\r\n    let this_ = this;\r\n    this._options = new Proxy(value, {\r\n      deleteProperty: function (target, property) {\r\n        setTimeout(() => {\r\n          this_.updateOptionsContentEditable();\r\n        }, 0);\r\n        return true;\r\n      },\r\n      set: function (target, property, value, receiver) {\r\n        target[property] = value;\r\n        this_.updateOptionsContentEditable();\r\n        return true;\r\n      },\r\n    });\r\n    this.updateOptionsContentEditable();\r\n  }\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n  updateOptionsContentEditable() {\r\n    this.optionsContentEditable = [];\r\n    this.options.forEach((l, index) => this.optionsContentEditable.push(new StiOptionItem(l, this, index)));\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\"\", this.font, this.textColor);\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n\r\n  get value(): string {\r\n    return this.selectedOption;\r\n  }\r\n\r\n  get options(): string[] {\r\n    return this._options;\r\n  }\r\n  htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.textColor.toHtmlColor()};`;\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyNumber(\"Columns\", this.columns);\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"TextColor\", this.textColor);\r\n    jObject.addPropertyColor(\"CheckColor\", this.checkColor);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    jObject.addPropertyArray(\"Options\", this.options);\r\n    jObject.addPropertyBool(\"UseCustomOption\", this.useCustomOption);\r\n    jObject.addPropertyString(\"CustomOptionText\", this.customOptionText);\r\n    jObject.addPropertyString(\"SelectedOption\", this.selectedOption);\r\n    jObject.addPropertyString(\"Prefix\", this.prefix);\r\n    jObject.addPropertyString(\"Suffix\", this.suffix);\r\n\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TextColor\":\r\n          this.textColor = new Color();\r\n          this.textColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"Columns\":\r\n          this.columns = property.value;\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CheckColor\":\r\n          this.checkColor = new Color();\r\n          this.checkColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CustomOptionText\":\r\n          this.customOptionText = property.value;\r\n          break;\r\n        case \"UseCustomOption\":\r\n          this.useCustomOption = property.value;\r\n          break;\r\n        case \"SelectedOption\":\r\n          this.selectedOption = property.value;\r\n          break;\r\n        case \"Prefix\":\r\n          this.prefix = property.value;\r\n          break;\r\n        case \"Suffix\":\r\n          this.suffix = property.value;\r\n          break;\r\n        case \"Options\":\r\n          this.options = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.options.push(p.value));\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import StiJson from \"../system/StiJson\";\r\nimport { StiPen } from \"./StiPen\";\r\n\r\nexport default class StiInnerBorder {\r\n  constructor(public pen?: StiPen, public drawHorizontal?: boolean, public drawVertical?: boolean) {}\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyJObject(\"Pen\", this.pen?.saveToJsonObject(options));\r\n    json.addPropertyBool(\"DrawHorizontal\", this.drawHorizontal);\r\n    json.addPropertyBool(\"DrawVertical\", this.drawVertical);\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Pen\":\r\n          this.pen = new StiPen();\r\n          this.pen.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"DrawHorizontal\":\r\n          this.drawHorizontal = property.value;\r\n          break;\r\n        case \"DrawVertical\":\r\n          this.drawVertical = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\n\r\nexport class StiCheckBoxCellItem implements StiValueElement {\r\n\r\n  constructor(public name?: string, public isChecked?: boolean) { }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = new StiJson();\r\n    jObject.addPropertyString(\"Name\", this.name);\r\n    jObject.addPropertyBool(\"IsChecked\", this.isChecked);\r\n    return jObject;\r\n  }\r\n\r\n  public get value(): Object {\r\n    return this.isChecked;\r\n  }\r\n\r\n  public createCell(): any {\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n        case \"IsChecked\":\r\n          this.isChecked = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiHorizontalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiEditableContent } from \"../../system/interfaces\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport StiFormObject from \"../base/StiFormObject\";\r\nimport { StiForm } from \"../StiForm\";\r\nimport { StiTableElement } from \"../StiTableElement\";\r\nimport { StiLabelColumnItem } from \"./columns/StiLabelColumnItem\";\r\n\r\nexport class StiColumnItem extends StiFormObject implements StiEditableContent {\r\n  public headerAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n  public cellAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n  public headerForeColor: Color = Color.black();\r\n  public headerBackColor: Color = Color.transparent();\r\n  public backgroundColor: Color = Color.transparent();\r\n  public cellBackColor: Color = Color.white();\r\n  public cellForeColor: Color = Color.black();\r\n  public cellBorderColor: Color = Color.lightGray();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public eParent: StiTableElement;\r\n  public width: number;\r\n  public useWordWrap: boolean = false;\r\n\r\n  constructor(public label?: string, public form?: StiForm) {\r\n    super();\r\n  }\r\n\r\n  setDefaultValues() { }\r\n\r\n  public copyFrom(parentItem: StiColumnItem) {\r\n    this.headerAlignment = parentItem.headerAlignment;\r\n    this.cellAlignment = parentItem.cellAlignment;\r\n    this.headerForeColor = parentItem.headerForeColor.clone();\r\n    this.headerBackColor = parentItem.headerBackColor.clone();\r\n    this.backgroundColor = parentItem.backgroundColor.clone();\r\n    this.cellBackColor = parentItem.cellBackColor.clone();\r\n    this.cellForeColor = parentItem.cellForeColor.clone();\r\n    this.cellBorderColor = parentItem.cellBorderColor.clone();\r\n    this.font = parentItem.font.clone();\r\n    this.useWordWrap = parentItem.useWordWrap;\r\n  }\r\n\r\n  public createCell(): any {\r\n    return null;\r\n  }\r\n\r\n  get eValue(): string {\r\n    return this.label;\r\n  }\r\n\r\n  set eValue(value: string) {\r\n    this.label = value;\r\n  }\r\n\r\n  get eFont(): Font {\r\n    return this.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.font = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.headerForeColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.headerForeColor = value;\r\n  }\r\n\r\n  get eBackgroundColor(): Color {\r\n    return this.headerBackColor;\r\n  }\r\n\r\n  set eBackgroundColor(value: Color) {\r\n    this.headerBackColor = value;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.headerAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.headerAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return true;\r\n  }\r\n\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n  haveBackgoundColor(): boolean {\r\n    return true;\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return this.eParent\r\n      ? `${this.eFont.htmlStyle()};color:${this.eColor.toHtmlColor()};text-align:${Enum.getName(\r\n        StiHorizontalAlignment,\r\n        this.cellAlignment\r\n      )}`\r\n      : \"\";\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyString(\"Label\", this.label);\r\n    jObject.addPropertyEnum(\"HeaderAlignment\", StiHorizontalAlignment, this.headerAlignment);\r\n    jObject.addPropertyEnum(\"CellAlignment\", StiHorizontalAlignment, this.cellAlignment);\r\n    jObject.addPropertyColor(\"HeaderBackColor\", this.headerBackColor);\r\n    jObject.addPropertyColor(\"HeaderForeColor\", this.headerForeColor);\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"CellBackColor\", this.cellBackColor);\r\n    jObject.addPropertyColor(\"CellForeColor\", this.cellForeColor);\r\n    jObject.addPropertyColor(\"CellBorderColor\", this.cellBorderColor);\r\n    jObject.addPropertyBool(\"UseWordWrap\", this.useWordWrap);\r\n    jObject.addPropertyNumber(\"Width\", this.width);\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = property.value;\r\n          break;\r\n        case \"Width\":\r\n          this.width = property.value;\r\n          break;\r\n        case \"UseWordWrap\":\r\n          this.useWordWrap = property.value;\r\n          break;\r\n        case \"HeaderAlignment\":\r\n          this.headerAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"CellAlignment\":\r\n          this.cellAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"HeaderBackColor\":\r\n          this.headerBackColor = new Color();\r\n          this.headerBackColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"HeaderForeColor\":\r\n          this.headerForeColor = new Color();\r\n          this.headerForeColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CellBackColor\":\r\n          this.cellBackColor = new Color();\r\n          this.cellBackColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CellForeColor\":\r\n          this.cellForeColor = new Color();\r\n          this.cellForeColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"CellBorderColor\":\r\n          this.cellBorderColor = new Color();\r\n          this.cellBorderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n      }\r\n    }\r\n    if (!json.properties().find((property) => property.name == \"Font\")) {\r\n      this.font = this.eParent.font.clone();\r\n    }\r\n  }\r\n}\r\n","import { StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\nimport { StiCheckBoxCellItem } from \"../cells/StiCheckBoxCellItem\";\r\nimport { StiColumnItem } from \"../StiColumnItem\";\r\n\r\nexport class StiCheckBoxColumnItem extends StiColumnItem implements StiValueElement {\r\n  public type = \"CheckBoxColumn\";\r\n  public cells: StiCheckBoxCellItem[] = [];\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyArray(\"Cells\", this.cells);\r\n    return jObject;\r\n  }\r\n  setDefaultValues() {\r\n    this.cells.forEach((cell) => {\r\n      cell.isChecked = false;\r\n    });\r\n  }\r\n\r\n  public get value(): Object {\r\n    let result = [];\r\n    this.cells.forEach((c) => result.push(c.isChecked));\r\n    return result;\r\n  }\r\n\r\n  public createCell(): any {\r\n    return new StiCheckBoxCellItem(\"\", false);\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Cells\":\r\n          this.cells = [];\r\n          for (let cellJson of property.value.value) {\r\n            let cell = new StiCheckBoxCellItem();\r\n            cell.loadFromJsonObject(cellJson);\r\n            this.cells.push(cell);\r\n          }\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\n\r\nexport class StiComboBoxCellItem implements StiValueElement {\r\n  constructor(public name?: string, public selectedIndex?: number) {}\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = new StiJson();\r\n    jObject.addPropertyString(\"Name\", this.name);\r\n    jObject.addPropertyNumber(\"SelectedIndex\", this.selectedIndex);\r\n    return jObject;\r\n  }\r\n\r\n  public get value(): Object {\r\n    return this.selectedIndex ? this.selectedIndex : 0;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n        case \"SelectedIndex\":\r\n          this.selectedIndex = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\nimport { StiComboBoxCellItem } from \"../cells/StiComboBoxCellItem\";\r\nimport { StiColumnItem } from \"../StiColumnItem\";\r\n\r\nexport class StiComboBoxColumnItem extends StiColumnItem implements StiValueElement {\r\n  public type = \"ComboBoxColumn\";\r\n  public cells: StiComboBoxCellItem[] = [];\r\n  public comboBoxOptions: string[] = [];\r\n\r\n  public get value(): Object {\r\n    let result = [];\r\n    this.cells.forEach((c) =>\r\n      result.push(\r\n        c.selectedIndex > 0 && this.comboBoxOptions.length < c.selectedIndex\r\n          ? this.comboBoxOptions[c.selectedIndex]\r\n          : null\r\n      )\r\n    );\r\n    return result;\r\n  }\r\n  setDefaultValues() {\r\n    this.cells.forEach((cell) => {\r\n      cell.selectedIndex = 0;\r\n    });\r\n  }\r\n\r\n  public createCell(): any {\r\n    return new StiComboBoxCellItem(\"\", 0);\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyArray(\"Cells\", this.cells);\r\n    jObject.addPropertyArray(\"ComboBoxOptions\", this.comboBoxOptions);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Cells\":\r\n          this.cells = [];\r\n          for (let cellJson of property.value.value) {\r\n            let cell = new StiComboBoxCellItem();\r\n            cell.loadFromJsonObject(cellJson);\r\n            this.cells.push(cell);\r\n          }\r\n          break;\r\n        case \"ComboBoxOptions\":\r\n          this.comboBoxOptions = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.comboBoxOptions.push(p.value));\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiModelService } from \"../../../services/model.service\";\r\nimport { Enum } from \"../../../system/Enum\";\r\nimport { StiThousandSeparator, StiUnitAlignment } from \"../../../system/enums\";\r\nimport { StiFormattedElement, StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\nimport { StiForm } from \"../../StiForm\";\r\nimport { StiColumnItem } from \"../StiColumnItem\";\r\n\r\nexport class StiLabelColumnItem extends StiColumnItem implements StiValueElement, StiFormattedElement {\r\n  private _decimalDigits: number = 2;\r\n\r\n  public type = \"LabelColumn\";\r\n  public expression: string = \"\";\r\n  public prefix: string = \"\";\r\n  public suffix: string = \"\";\r\n  public cells = [];\r\n  public thousandSeparator: StiThousandSeparator = StiThousandSeparator.None;\r\n\r\n  constructor(public label?: string, public form?: StiForm) {\r\n    super(label, form);\r\n    if (form) {\r\n      this._decimalDigits = form.settings.decimalDigits;\r\n      this.thousandSeparator = form.settings.thousandSeparator;\r\n    }\r\n  }\r\n\r\n\r\n  public copyFrom(parentItem: StiColumnItem) {\r\n    super.copyFrom(parentItem);\r\n    if (parentItem instanceof StiLabelColumnItem) {\r\n      let label: StiLabelColumnItem = parentItem as StiLabelColumnItem;\r\n      this._decimalDigits = label._decimalDigits;\r\n      this.thousandSeparator = label.thousandSeparator;\r\n      this.prefix = label.prefix;\r\n      this.suffix = label.suffix;\r\n    }\r\n  }\r\n\r\n  public createCell(): any {\r\n    return \"\";\r\n  }\r\n\r\n  setDefaultValues() {\r\n    this.cells.forEach((cell) => {\r\n      cell = \"\";\r\n    });\r\n  }\r\n  public get value(): any {\r\n    let result = [];\r\n    this.cells.forEach((c) => result.push(c));\r\n    return result;\r\n  }\r\n\r\n  public set value(value: any) { }\r\n\r\n  get decimalDigits() {\r\n    return this.expression?.indexOf(\"{Line}\") >= 0 ? 0 : this._decimalDigits;\r\n  }\r\n  set decimalDigits(value: number) {\r\n    this._decimalDigits = Math.max(0, Math.min(value, 10));\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyArray(\"Cells\", this.cells);\r\n    jObject.addPropertyString(\"Expression\", this.expression);\r\n    jObject.addPropertyString(\"Prefix\", this.prefix);\r\n    jObject.addPropertyString(\"Suffix\", this.suffix);\r\n    jObject.addPropertyNumber(\"DecimalDigits\", this.decimalDigits);\r\n    jObject.addPropertyEnum(\"ThousandSeparator\", StiThousandSeparator, this.thousandSeparator);\r\n\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Expression\":\r\n          this.expression = property.value;\r\n          break;\r\n        case \"Cells\":\r\n          this.cells = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.cells.push(p.value));\r\n          break;\r\n        case \"ThousandSeparator\":\r\n          this.thousandSeparator = Enum.parse(StiThousandSeparator, property.value);\r\n          break;\r\n        case \"DecimalDigits\":\r\n          this.decimalDigits = property.value;\r\n          break;\r\n        case \"Prefix\":\r\n          this.prefix = property.value;\r\n          break;\r\n        case \"Suffix\":\r\n          this.suffix = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\n\r\nexport class StiNumberBoxCellItem implements StiValueElement {\r\n  constructor(public name: string, public number: number = 0) {}\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = new StiJson();\r\n    jObject.addPropertyString(\"Name\", this.name);\r\n    jObject.addPropertyNumber(\"Number\", this.number);\r\n    return jObject;\r\n  }\r\n\r\n  public get value(): any {\r\n    return this.number ? this.number : 0;\r\n  }\r\n\r\n  public set value(value: any) {\r\n    this.number = value;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n        case \"Number\":\r\n          this.number = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Enum } from \"../../../system/Enum\";\r\nimport {\r\n  StiDisplayCurrencyAs,\r\n  StiHorizontalAlignment,\r\n  StiNumberType,\r\n  StiThousandSeparator,\r\n  StiUnitAlignment,\r\n} from \"../../../system/enums\";\r\nimport { StiNumberElement, StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\nimport { StiForm } from \"../../StiForm\";\r\nimport { StiNumberBoxCellItem } from \"../cells/StiNumberBoxCellItem\";\r\nimport { StiColumnItem } from \"../StiColumnItem\";\r\n\r\nexport class StiNumberBoxColumnItem extends StiColumnItem implements StiValueElement, StiNumberElement {\r\n  private _decimalDigits: number = 2;\r\n\r\n  public type = \"NumberBoxColumn\";\r\n  public unitLabel: string = \"\";\r\n  public cells: StiNumberBoxCellItem[] = [];\r\n  public thousandSeparator: StiThousandSeparator = StiThousandSeparator.None;\r\n  public numberType: StiNumberType = StiNumberType.Decimal;\r\n  public unitAlignment: StiUnitAlignment = StiUnitAlignment.Suffix;\r\n  public currencyLabelFormat: StiDisplayCurrencyAs = StiDisplayCurrencyAs.Code;\r\n  public currency = \"USD\";\r\n\r\n  constructor(public label?: string, public form?: StiForm) {\r\n    super(label, form);\r\n    if (form) {\r\n      this._decimalDigits = form.settings.decimalDigits;\r\n      this.thousandSeparator = form.settings.thousandSeparator;\r\n      this.unitAlignment = form.settings.unitAlignment;\r\n      this.currency = form.settings.currency;\r\n      this.currencyLabelFormat = form.settings.currencyFormat;\r\n    }\r\n  }\r\n\r\n  public copyFrom(parentItem: StiColumnItem) {\r\n    super.copyFrom(parentItem);\r\n    if (parentItem instanceof StiNumberBoxColumnItem) {\r\n      let numberBox: StiNumberBoxColumnItem = parentItem as StiNumberBoxColumnItem;\r\n      this.unitLabel = numberBox.unitLabel;\r\n      this.thousandSeparator = numberBox.thousandSeparator;\r\n      this.numberType = numberBox.numberType;\r\n      this.unitAlignment = numberBox.unitAlignment;\r\n      this.currencyLabelFormat = numberBox.currencyLabelFormat;\r\n      this.currency = numberBox.currency;\r\n    }\r\n  }\r\n\r\n  public createCell(): any {\r\n    return new StiNumberBoxCellItem(\"\", 0)\r\n  }\r\n\r\n  setDefaultValues() {\r\n    this.cells.forEach((cell) => {\r\n      cell.number = 0;\r\n    });\r\n  }\r\n  get decimalDigits() {\r\n    return this._decimalDigits;\r\n  }\r\n  set decimalDigits(value: number) {\r\n    if (value <= 0) {\r\n      this._decimalDigits = 0;\r\n    } else {\r\n      this._decimalDigits = value;\r\n    }\r\n  }\r\n\r\n  public get value(): Object {\r\n    let result = [];\r\n    this.cells.forEach((c) => result.push(c.number));\r\n    return result;\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyArray(\"Cells\", this.cells);\r\n    jObject.addPropertyEnum(\"CurrencyLabelFormat\", StiDisplayCurrencyAs, this.currencyLabelFormat);\r\n    jObject.addPropertyString(\"Currency\", this.currency);\r\n    jObject.addPropertyString(\"UnitLabel\", this.unitLabel);\r\n    jObject.addPropertyEnum(\"UnitAlignment\", StiUnitAlignment, this.unitAlignment);\r\n    jObject.addPropertyEnum(\"NumberType\", StiNumberType, this.numberType);\r\n    jObject.addPropertyEnum(\"ThousandSeparator\", StiThousandSeparator, this.thousandSeparator);\r\n    jObject.addPropertyNumber(\"DecimalDigits\", this.decimalDigits);\r\n    return jObject;\r\n  }\r\n  htmlStyle(): string {\r\n    if (this.eParent) {\r\n      return super.htmlStyle();\r\n    } else\r\n      return `${this.eParent ? super.htmlStyle() + \";\" : \"\"\r\n        }color:${this.cellForeColor?.toHtmlColor()};text-align:${Enum.getName(\r\n          StiHorizontalAlignment,\r\n          this.cellAlignment\r\n        )}`;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Cells\":\r\n          this.cells = [];\r\n          for (let cellJson of property.value.value) {\r\n            let cell = new StiNumberBoxCellItem(\"\", 0);\r\n            cell.loadFromJsonObject(cellJson);\r\n            this.cells.push(cell);\r\n          }\r\n          break;\r\n        case \"NumberType\":\r\n          this.numberType = Enum.parse(StiNumberType, property.value);\r\n          break;\r\n        case \"ThousandSeparator\":\r\n          this.thousandSeparator = Enum.parse(StiThousandSeparator, property.value);\r\n          break;\r\n        case \"DecimalDigits\":\r\n          this.decimalDigits = property.value;\r\n          break;\r\n        case \"UnitLabel\":\r\n          this.unitLabel = property.value;\r\n          break;\r\n        case \"UnitAlignment\":\r\n          this.unitAlignment = Enum.parse(StiUnitAlignment, property.value);\r\n          break;\r\n        case \"CurrencyLabelFormat\":\r\n          this.currencyLabelFormat = Enum.parse(StiDisplayCurrencyAs, property.value);\r\n          break;\r\n        case \"Currency\":\r\n          this.currency = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\n\r\nexport class StiRadioButtonCellItem implements StiValueElement {\r\n  constructor(public name?: string, public isChecked?: boolean) {}\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = new StiJson();\r\n    jObject.addPropertyString(\"Name\", this.name);\r\n    jObject.addPropertyBool(\"IsChecked\", this.isChecked);\r\n    return jObject;\r\n  }\r\n\r\n  public get value(): Object {\r\n    return this.isChecked;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n        case \"IsChecked\":\r\n          this.isChecked = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import StiJson from \"../../../system/StiJson\";\r\nimport { StiRadioButtonCellItem } from \"../cells/StiRadioButtonCellItem\";\r\nimport { StiColumnItem } from \"../StiColumnItem\";\r\n\r\nexport class StiRadioButtonColumnItem extends StiColumnItem {\r\n  public type = \"RadioButtonColumn\";\r\n  public cells: StiRadioButtonCellItem[] = [];\r\n  public name: string;\r\n\r\n  public get value(): Object {\r\n    let result = [];\r\n    this.cells.forEach((c) => result.push(c.isChecked));\r\n    return result;\r\n  }\r\n  setDefaultValues() {\r\n    this.cells.forEach((cell) => {\r\n      cell.isChecked = false;\r\n    });\r\n  }\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyArray(\"Cells\", this.cells);\r\n    jObject.addPropertyString(\"Name\", this.name);\r\n    return jObject;\r\n  }\r\n\r\n  public createCell(): any {\r\n    return new StiRadioButtonCellItem(\"\", false);\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Cells\":\r\n          this.cells = [];\r\n          for (let cellJson of property.value.value) {\r\n            let cell = new StiRadioButtonCellItem();\r\n            cell.loadFromJsonObject(cellJson);\r\n            this.cells.push(cell);\r\n          }\r\n          break;\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\n\r\nexport class StiTextBoxCellItem implements StiValueElement {\r\n  constructor(public name?: string, public text?: string) {}\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = new StiJson();\r\n    jObject.addPropertyString(\"Name\", this.name);\r\n    jObject.addPropertyString(\"Text\", this.text);\r\n    return jObject;\r\n  }\r\n\r\n  public get value(): Object {\r\n    return this.text ? this.text : \"\";\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n        case \"Text\":\r\n          this.text = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiValueElement } from \"../../../system/interfaces\";\r\nimport StiJson from \"../../../system/StiJson\";\r\nimport { StiTableElement } from \"../../StiTableElement\";\r\nimport { StiTextBoxCellItem } from \"../cells/StiTextBoxCellItem\";\r\nimport { StiColumnItem } from \"../StiColumnItem\";\r\n\r\nexport class StiTextBoxColumnItem extends StiColumnItem implements StiValueElement {\r\n  public type = \"TextBoxColumn\";\r\n  public cells: StiTextBoxCellItem[] = [];\r\n\r\n  public get value(): Object {\r\n    let result = [];\r\n    this.cells.forEach((c) => result.push(c.text));\r\n    return result;\r\n  }\r\n  setDefaultValues() {\r\n    this.cells.forEach((cell) => {\r\n      cell.text = \"\";\r\n    });\r\n  }\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyArray(\"Cells\", this.cells);\r\n    return jObject;\r\n  }\r\n\r\n  public createCell(): any {\r\n    return new StiTextBoxCellItem(\"\", \"\");\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Cells\":\r\n          this.cells = [];\r\n          for (let cellJson of property.value.value) {\r\n            let cell = new StiTextBoxCellItem();\r\n            cell.loadFromJsonObject(cellJson);\r\n            this.cells.push(cell);\r\n          }\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { StiHorizontalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiEditableContent, StiValueElement } from \"../../system/interfaces\";\r\nimport { StiTableElement } from \"../StiTableElement\";\r\n\r\nexport class StiRowLabel implements StiEditableContent, StiValueElement {\r\n  get eFont(): Font {\r\n    return this.table.font;\r\n  }\r\n  public displayValue: string;\r\n\r\n  set eFont(value: Font) {\r\n    this.table.font = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.table.rowHeadersColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.table.rowHeadersColor = value;\r\n  }\r\n\r\n  get eBackgroundColor(): Color {\r\n    return this.table.rowHeadersBackground;\r\n  }\r\n\r\n  set eBackgroundColor(value: Color) {\r\n    this.table.rowHeadersBackground = value;\r\n  }\r\n\r\n  public get expression(): string {\r\n    return this.value;\r\n  }\r\n\r\n  haveBackgoundColor(): boolean {\r\n    return true;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.table.rowLabelsHorizontalAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.table.rowLabelsHorizontalAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return true;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    return this;\r\n  }\r\n  htmlStyle(): string {\r\n    return this.table ? `${this.eFont.htmlStyle()};color: inherit` : \"\";\r\n  }\r\n  private _value: string;\r\n\r\n  set value(value: string) {\r\n    this._value = value;\r\n    this.table.nativeRowLabels[this.index] = value;\r\n  }\r\n\r\n  get value(): string {\r\n    return this._value;\r\n  }\r\n  set eValue(value: string) {\r\n    this.value = value;\r\n  }\r\n\r\n  get eValue(): string {\r\n    return this.value;\r\n  }\r\n\r\n  constructor(value: string, public table: StiTableElement, public index: number) {\r\n    this._value = value;\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiHorizontalAlignment, StiThousandSeparator } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiEditableContent, StiFormattedElement, StiValueElement } from \"../../system/interfaces\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport StiFormObject from \"../base/StiFormObject\";\r\nimport { StiForm } from \"../StiForm\";\r\nimport { StiTableElement } from \"../StiTableElement\";\r\n\r\nexport class StiTotalsFieldItem\r\n  extends StiFormObject\r\n  implements StiEditableContent, StiValueElement, StiFormattedElement {\r\n  private _decimalDigits: number = 2;\r\n  eParent?: StiTableElement;\r\n  public prefix: string = \"\";\r\n  public suffix: string = \"\";\r\n  public thousandSeparator: StiThousandSeparator = StiThousandSeparator.None;\r\n  public _value: any;\r\n  public name = \"\";\r\n  public form: StiForm;\r\n  public headerAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Right;\r\n  public headerColor: Color = Color.black();\r\n  public valueAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Right;\r\n  public header: string;\r\n  public expression: string;\r\n\r\n\r\n  setDefaultValues() {\r\n    this.value = 0;\r\n  }\r\n  public get value(): any {\r\n    return this._value !== undefined ? this._value : this.expression;\r\n  }\r\n\r\n  public set value(value: any) {\r\n    this._value = value;\r\n  }\r\n\r\n  get decimalDigits() {\r\n    return this._decimalDigits;\r\n  }\r\n  set decimalDigits(value: number) {\r\n    if (value <= 0) {\r\n      this._decimalDigits = 0;\r\n    } else {\r\n      this._decimalDigits = value;\r\n    }\r\n  }\r\n\r\n  get eValue(): string {\r\n    return this.header;\r\n  }\r\n\r\n  set eValue(value: string) {\r\n    this.header = value;\r\n  }\r\n\r\n  get eFont(): Font {\r\n    return this.eParent.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.eParent.font = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.headerColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.headerColor = value;\r\n  }\r\n\r\n  eBackgroundColor: Color;\r\n\r\n  constructor(header: string, expression: string, form?: StiForm) {\r\n    super();\r\n    this.header = header;\r\n    this.expression = expression;\r\n\r\n    if (form) {\r\n      this.thousandSeparator = form.settings.thousandSeparator;\r\n      this.decimalDigits = form.settings.decimalDigits;\r\n    }\r\n  }\r\n\r\n  haveBackgoundColor(): boolean {\r\n    return false;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.headerAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.headerAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return true;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n  htmlStyle(): string {\r\n    return this.eParent ? `${this.eFont.htmlStyle()};color:${this.eColor.toHtmlColor()}` : \"\";\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyString(\"Header\", this.header);\r\n    jObject.addPropertyString(\"Name\", this.name);\r\n    jObject.addPropertyEnum(\"HeaderAlignment\", StiHorizontalAlignment, this.headerAlignment);\r\n    jObject.addPropertyEnum(\"ValueAlignment\", StiHorizontalAlignment, this.valueAlignment);\r\n    jObject.addPropertyColor(\"HeaderColor\", this.headerColor);\r\n    jObject.addPropertyString(\"Expression\", this.expression);\r\n    jObject.addPropertyString(\"Prefix\", this.prefix);\r\n    jObject.addPropertyString(\"Suffix\", this.suffix);\r\n    jObject.addPropertyNumber(\"DecimalDigits\", this.decimalDigits);\r\n    jObject.addPropertyEnum(\"ThousandSeparator\", StiThousandSeparator, this.thousandSeparator);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Header\":\r\n          this.header = property.value;\r\n          break;\r\n        case \"HeaderAlignment\":\r\n          this.headerAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"ValueAlignment\":\r\n          this.valueAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"HeaderColor\":\r\n          this.headerColor = new Color();\r\n          this.headerColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Expression\":\r\n          this.expression = property.value;\r\n          break;\r\n        case \"ThousandSeparator\":\r\n          this.thousandSeparator = Enum.parse(StiThousandSeparator, property.value);\r\n          break;\r\n        case \"DecimalDigits\":\r\n          this.decimalDigits = property.value;\r\n          break;\r\n        case \"Prefix\":\r\n          this.prefix = property.value;\r\n          break;\r\n        case \"Suffix\":\r\n          this.suffix = property.value;\r\n          break;\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import Color from \"../../system/Color\";\r\nimport { StiHorizontalAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport { StiEditableContent } from \"../../system/interfaces\";\r\nimport { StiTableElement } from \"../StiTableElement\";\r\n\r\nexport class StiTotalsRowHeaderEditableContent implements StiEditableContent {\r\n  constructor(public table: StiTableElement) {}\r\n  get eValue(): string {\r\n    return this.table.totalsRowHeader;\r\n  }\r\n\r\n  set eValue(value: string) {\r\n    this.table.totalsRowHeader = value;\r\n  }\r\n\r\n  get eFont(): Font {\r\n    return this.table.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.table.font = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.table.totalsRowHeaderColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.table.totalsRowHeaderColor = value;\r\n  }\r\n\r\n  eBackgroundColor: Color;\r\n\r\n  haveBackgoundColor(): boolean {\r\n    return false;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.table.totalsRowHeaderHorizontalAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.table.totalsRowHeaderHorizontalAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return true;\r\n  }\r\n  get eVerticalAlignment(): StiVerticalAlignment {\r\n    return this.table.totalsRowHeaderVerticalAlignment;\r\n  }\r\n  set eVerticalAlignment(value: StiVerticalAlignment) {\r\n    this.table.totalsRowHeaderVerticalAlignment = value;\r\n  }\r\n\r\n  haveVerticalAlignment(): boolean {\r\n    return true;\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return `${this.eFont.htmlStyle()};color:${this.eColor.toHtmlColor()}`;\r\n  }\r\n}\r\n","import StiInnerBorder from \"../properties/StiInnerBorder\";\r\nimport { StiBorder } from \"../properties/StiBorder\";\r\nimport { StiPen } from \"../properties/StiPen\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiHorizontalAlignment, StiVerticalAlignment, StiLabelAlignment } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport { StiEditableContent, StiTabIndex } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiCheckBoxCellItem } from \"./table/cells/StiCheckBoxCellItem\";\r\nimport { StiComboBoxCellItem } from \"./table/cells/StiComboBoxCellItem\";\r\nimport { StiNumberBoxCellItem } from \"./table/cells/StiNumberBoxCellItem\";\r\nimport { StiRadioButtonCellItem } from \"./table/cells/StiRadioButtonCellItem\";\r\nimport { StiTextBoxCellItem } from \"./table/cells/StiTextBoxCellItem\";\r\nimport { StiCheckBoxColumnItem } from \"./table/columns/StiCheckBoxColumnItem\";\r\nimport { StiComboBoxColumnItem } from \"./table/columns/StiComboBoxColumnItem\";\r\nimport { StiLabelColumnItem } from \"./table/columns/StiLabelColumnItem\";\r\nimport { StiNumberBoxColumnItem } from \"./table/columns/StiNumberBoxColumnItem\";\r\nimport { StiRadioButtonColumnItem } from \"./table/columns/StiRadioButtonColumnItem\";\r\nimport { StiTextBoxColumnItem } from \"./table/columns/StiTextBoxColumnItem\";\r\nimport { StiColumnItem } from \"./table/StiColumnItem\";\r\nimport { StiRowLabel } from \"./table/StiRowLabel\";\r\nimport { StiTotalsFieldItem } from \"./table/StiTotalsFieldItem\";\r\nimport { StiTotalsRowHeaderEditableContent } from \"./table/StiTotalsRowHeaderEditableContent\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\nimport { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiForm } from \"./StiForm\";\r\n\r\nexport class StiTableElement extends StiFormElement implements StiEditableContent, StiTabIndex {\r\n  public type: string = \"TableElement\";\r\n  public description: StiTextItem = new StiTextItem();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public border: StiBorder = new StiBorder(StiPen.dimGraySolid(), true, true, true, true);\r\n  public gridLines: StiInnerBorder = new StiInnerBorder(StiPen.dimGraySolid(), true, true);\r\n  public backgroundColor: Color = Color.transparent();\r\n  public alternateRowColors = false;\r\n  public evenRowsStyle: Color = Color.fromArgb(0xff, 0xf9, 0xf9, 0xf9);\r\n  public evenRowsTextColor: Color = Color.black();\r\n  public oddRowsStyle: Color = Color.fromArgb(0xff, 0xf3, 0xf3, 0xf3);\r\n  public oddRowsTextColor: Color = Color.black();\r\n  public tableHeaderText: string = \"\";\r\n  public tableHeaderAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n  public tableHeaderColor: Color = Color.black();\r\n  public tableHeaderHeight: number = 0;\r\n  public tableHeaderBackgroundColor: Color = Color.transparent();\r\n  public rowLabelsWidth: number = 100;\r\n  private _showRowLabels: boolean = false;\r\n  public dynamicRows = false;\r\n  public useWordWrap = false;\r\n  private _rowLabels: string[];\r\n  public nativeRowLabels: string[];\r\n  public rowLabelsContentEditable: StiRowLabel[] = [];\r\n  public rowLabelsHorizontalAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n  public rowHeadersBackground: Color = Color.transparent();\r\n  public rowHeadersColor: Color = Color.black();\r\n  public rowHeadersBorder: StiBorder = new StiBorder(StiPen.dimGraySolid(), true, true, true, true);\r\n  public columnHeadersBorder: StiBorder = new StiBorder(StiPen.dimGraySolid(), true, true, true, true);\r\n  private _columns: StiColumnItem[] = [];\r\n  public useTotals: boolean = true;\r\n  public totalsRowHeader = StiLocalizationService.get(\"PropertyMain\", \"Totals\");\r\n  public totalsRowHeaderHorizontalAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n  public totalsRowHeaderVerticalAlignment: StiVerticalAlignment = StiVerticalAlignment.Top;\r\n  public totalsRowHeaderColor: Color = Color.black();\r\n  private _totalsValuesWidth: number = 100;\r\n  private _totalsHeadersWidth: number = 100;\r\n  public totalsFields: StiTotalsFieldItem[] = [];\r\n  public showBorderEditor: boolean = false;\r\n  public showGridLinesEditor: boolean = false;\r\n\r\n  private _showHeaderEditor: boolean = true;\r\n  private _showColumnsEditor: boolean = false;\r\n  private _showRowsEditor: boolean = false;\r\n  private _showTotalsEditor: boolean = false;\r\n  private stopFit = false;\r\n\r\n  public showColumnsBorderEditor: boolean = true;\r\n  public showRowsBorderEditor: boolean = false;\r\n  public minColumnWidth: number = 40;\r\n  public totalsRowHeaderEditableContent = new StiTotalsRowHeaderEditableContent(this);\r\n  public tabIndex: number;\r\n  public form: StiForm;\r\n\r\n  public get showRowLabels(): boolean {\r\n    return this._showRowLabels;\r\n  }\r\n  public set showRowLabels(value: boolean) {\r\n    let previousValue = this._showRowLabels;\r\n    if (previousValue != value) {\r\n      this._showRowLabels = value;\r\n      this.fitTable();\r\n    }\r\n  }\r\n\r\n  public get showHeaderEditor(): boolean {\r\n    return this._showHeaderEditor;\r\n  }\r\n  public set showHeaderEditor(value: boolean) {\r\n    this._showHeaderEditor = value;\r\n    if (value == true) {\r\n      this._showColumnsEditor = false;\r\n      this._showRowsEditor = false;\r\n      this._showTotalsEditor = false;\r\n    }\r\n  }\r\n\r\n  public set name(value: string) {\r\n    let oldName = this.name;\r\n    super.name = value;\r\n    this.nameChanged(oldName);\r\n  }\r\n\r\n  public get name(): string {\r\n    return super.name;\r\n  }\r\n\r\n  public get totalsValuesWidth(): number {\r\n    return this._totalsValuesWidth;\r\n  }\r\n\r\n  public set totalsValuesWidth(value: number) {\r\n    if (value > 0) {\r\n      this._totalsValuesWidth = value;\r\n    } else {\r\n      this._totalsValuesWidth = 0;\r\n    }\r\n  }\r\n  public get totalsHeadersWidth(): number {\r\n    return this._totalsHeadersWidth;\r\n  }\r\n\r\n  public set totalsHeadersWidth(value: number) {\r\n    if (value > 0) {\r\n      this._totalsHeadersWidth = value;\r\n    } else {\r\n      this._totalsHeadersWidth = 0;\r\n    }\r\n  }\r\n\r\n  public get showColumnsEditor(): boolean {\r\n    return this._showColumnsEditor;\r\n  }\r\n  public set showColumnsEditor(value: boolean) {\r\n    this._showColumnsEditor = value;\r\n    if (value == true) {\r\n      this._showHeaderEditor = false;\r\n      this._showRowsEditor = false;\r\n      this._showTotalsEditor = false;\r\n    }\r\n  }\r\n  public get showRowsEditor(): boolean {\r\n    return this._showRowsEditor;\r\n  }\r\n  public set showRowsEditor(value: boolean) {\r\n    this._showRowsEditor = value;\r\n    if (value == true) {\r\n      this._showHeaderEditor = false;\r\n      this._showColumnsEditor = false;\r\n      this._showTotalsEditor = false;\r\n    }\r\n  }\r\n  public get showTotalsEditor(): boolean {\r\n    return this._showTotalsEditor;\r\n  }\r\n  public set showTotalsEditor(value: boolean) {\r\n    this._showTotalsEditor = value;\r\n    if (value == true) {\r\n      this._showHeaderEditor = false;\r\n      this._showColumnsEditor = false;\r\n      this._showRowsEditor = false;\r\n    }\r\n  }\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\"\", this.font);\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n\r\n  constructor(form: StiForm) {\r\n    super();\r\n    this.form = form;\r\n    this.geometry = new StiRectangleGeometry(320, 245);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Components\", \"StiTable\"));\r\n    this.columns = [];\r\n    this.rowLabels = [\"\", \"\", \"\"];\r\n    this.columns.push(this.createColumn(\"textbox\"));\r\n\r\n    /*this.columns.push(new StiComboBoxColumnItem(StiLocalizationService.get(\"PropertyMain\", \"Second\")));\r\n    this.columns.push(new StiRadioButtonColumnItem(StiLocalizationService.get(\"PropertyMain\", \"Third\")));\r\n    this.columns.push(new StiTextBoxColumnItem(StiLocalizationService.get(\"PropertyMain\", \"Fourth\")));\r\n    this.columns.push(new StiNumberBoxColumnItem(StiLocalizationService.get(\"PropertyMain\", \"Fifth\")));\r\n    this.columns.push(new StiLabelColumnItem(StiLocalizationService.get(\"PropertyMain\", \"Labels\")));\r\n    this.rowLabels = [];\r\n    this.rowLabels.push(StiLocalizationService.get(\"PropertyMain\", \"First\"));\r\n    this.rowLabels.push(StiLocalizationService.get(\"PropertyMain\", \"Second\"));\r\n    this.rowLabels.push(StiLocalizationService.get(\"PropertyMain\", \"Third\"));\r\n    this.totalsFields.push(new StiTotalsFieldItem(StiLocalizationService.get(\"PropertyMain\", \"First\"), \"{Cell(5,1)}\", this.form));\r\n    this.totalsFields.push(\r\n      new StiTotalsFieldItem(StiLocalizationService.get(\"PropertyMain\", \"Maximum\"), \"{Max(Col(5))}\", this.form)\r\n    );\r\n    this.totalsFields.push(\r\n      new StiTotalsFieldItem(StiLocalizationService.get(\"PropertyMain\", \"Summary\"), \"{Sum(Col(5))}\", this.form)\r\n    );\r\n    this.totalsFields.push(\r\n      new StiTotalsFieldItem(StiLocalizationService.get(\"PropertyMain\", \"Count\"), \"{Count(Col(5))}\", this.form)\r\n    );\r\n    this.columns.forEach((column) => {\r\n      if (column.type == \"CheckBoxColumn\" && column instanceof StiCheckBoxColumnItem) {\r\n        this.rowLabels.forEach((row) => {\r\n          column.cells.push(new StiCheckBoxCellItem(\"\", false));\r\n        });\r\n      } else if (column.type == \"ComboBoxColumn\" && column instanceof StiComboBoxColumnItem) {\r\n        column.comboBoxOptions.push(\"yes\");\r\n        column.comboBoxOptions.push(\"no\");\r\n        this.rowLabels.forEach((row) => {\r\n          column.cells.push(new StiComboBoxCellItem(\"\", 0));\r\n        });\r\n      } else if (column.type == \"RadioButtonColumn\" && column instanceof StiRadioButtonColumnItem) {\r\n        this.rowLabels.forEach((row) => {\r\n          column.cells.push(new StiRadioButtonCellItem(\"\", false));\r\n        });\r\n      } else if (column.type == \"TextBoxColumn\" && column instanceof StiTextBoxColumnItem) {\r\n        this.rowLabels.forEach((row) => {\r\n          column.cells.push(new StiTextBoxCellItem(\"\", \"\"));\r\n        });\r\n      } else if (column.type == \"NumberBoxColumn\" && column instanceof StiNumberBoxColumnItem) {\r\n        this.rowLabels.forEach((row) => {\r\n          column.cells.push(new StiNumberBoxCellItem(\"\", 0));\r\n        });\r\n      } else if (column.type == \"LabelColumn\" && column instanceof StiLabelColumnItem) {\r\n        this.rowLabels.forEach((row) => {\r\n          column.cells.push(\"\");\r\n        });\r\n      }\r\n    });*/\r\n  }\r\n\r\n  public createColumn(type: string, label?: string, parentItem?: StiColumnItem): StiColumnItem {\r\n    type = type.toLocaleLowerCase();\r\n    label = label ?? \"\";\r\n    let columnItem: StiColumnItem;\r\n    if (type.startsWith(\"checkbox\")) {\r\n      columnItem = new StiCheckBoxColumnItem(label, this.form);\r\n    } else if (type.startsWith(\"combobox\")) {\r\n      columnItem = new StiComboBoxColumnItem(label, this.form);\r\n    } else if (type.startsWith(\"numberbox\")) {\r\n      columnItem = new StiNumberBoxColumnItem(label, this.form);\r\n    } else if (type.startsWith(\"radiobutton\")) {\r\n      columnItem = new StiRadioButtonColumnItem(label, this.form);\r\n    } else if (type.startsWith(\"textbox\")) {\r\n      columnItem = new StiTextBoxColumnItem(label, this.form);\r\n    } else if (type.startsWith(\"label\")) {\r\n      columnItem = new StiLabelColumnItem(label, this.form);\r\n    }\r\n\r\n    if (parentItem) {\r\n      columnItem.copyFrom(parentItem);\r\n    }\r\n\r\n    return columnItem;\r\n  }\r\n\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value;\r\n    return value + (this.columns?.length * (this._rowLabels?.length ?? 0));\r\n  }\r\n  public get maxTableWidth(): number {\r\n    return (\r\n      this.width -\r\n      this.padding.left -\r\n      this.padding.right -\r\n      (this.label.alignment != StiLabelAlignment.Top && this.label.value.length > 0 ? this.label.width : 0)\r\n    );\r\n  }\r\n  set rowLabels(value: string[]) {\r\n    this.nativeRowLabels = value;\r\n    let this_ = this;\r\n    this._rowLabels = new Proxy(value, {\r\n      deleteProperty: function (target, property) {\r\n        setTimeout(() => {\r\n          this_.updateRowLabelsContentEditable();\r\n        }, 0);\r\n        return true;\r\n      },\r\n      set: function (target, property, value, receiver) {\r\n        target[property] = value;\r\n        this_.updateRowLabelsContentEditable();\r\n        return true;\r\n      },\r\n    });\r\n    this.updateRowLabelsContentEditable();\r\n  }\r\n\r\n  get rowLabels(): string[] {\r\n    return this._rowLabels;\r\n  }\r\n  setDefaultValues() {\r\n    this.columns.forEach((column) => {\r\n      column.setDefaultValues();\r\n    });\r\n    this.totalsFields.forEach((total) => {\r\n      total.setDefaultValues();\r\n    });\r\n  }\r\n  set columns(value: StiColumnItem[]) {\r\n    let this_ = this;\r\n    this._columns = new Proxy(value, {\r\n      deleteProperty: function (target, property) {\r\n        setTimeout(() => {\r\n          this_.fitTable();\r\n        }, 0);\r\n        return true;\r\n      },\r\n      set: function (target: any, property, value, receiver) {\r\n        target[property] = value;\r\n        let column = value as StiColumnItem;\r\n        if (column instanceof StiColumnItem && !column.width) {\r\n          column.width = this_.maxTableWidth / (this_.columns.length + (this_.showRowLabels ? 1 : 0));\r\n        }\r\n\r\n        if (value.cells && value.cells.length < this_.rowLabels.length) {\r\n          for (let i = value.cells.length; i < this_.rowLabels.length; i++)\r\n            value.cells.push(column.createCell());\r\n        }\r\n\r\n        if (!target.stopFit) {\r\n          this_.fitTable();\r\n        }\r\n        return true;\r\n      },\r\n    });\r\n    this_.fitTable();\r\n  }\r\n\r\n  public fitTable() {\r\n    if (this.stopFit) {\r\n      return;\r\n    }\r\n    let currentWidth = this.showRowLabels ? this.rowLabelsWidth : 0;\r\n    this.columns.forEach((c) => (currentWidth += c.width));\r\n    let pc = this.maxTableWidth / currentWidth;\r\n    if (currentWidth != 0 && currentWidth && pc) {\r\n      if (this.showRowLabels) {\r\n        this.rowLabelsWidth *= pc;\r\n      }\r\n      this.columns.forEach((c) => (c.width *= pc));\r\n    }\r\n\r\n    pc = this.maxTableWidth / (this.totalsHeadersWidth + this.totalsValuesWidth);\r\n    if (pc < 1) {\r\n      this.totalsHeadersWidth *= pc;\r\n      this.totalsValuesWidth *= pc;\r\n    }\r\n  }\r\n  public deleteLastRow() {\r\n    this.rowLabels.splice(this.rowLabels.length - 1, 1);\r\n  }\r\n  public deleteLastColumn() {\r\n    this.columns.splice(this.columns.length - 1, 1);\r\n  }\r\n  public addColumnLikeLast() {\r\n    let newColumnWidth = (this.maxTableWidth - this.rowLabelsWidth) / (this.columns.length + 1);\r\n    let maxChangeableWidth = 0;\r\n    if (this.columns.length > 0) {\r\n      this.columns.forEach((column) => {\r\n        if (column.width > this.minColumnWidth) {\r\n          maxChangeableWidth += column.width - this.minColumnWidth;\r\n        }\r\n      });\r\n    } else {\r\n      maxChangeableWidth = this.maxTableWidth - this.rowLabelsWidth;\r\n    }\r\n    if (newColumnWidth <= maxChangeableWidth) {\r\n      if (this.columns.length > 0) {\r\n        let lastColumn = this.columns[this.columns.length - 1]\r\n        this.columns.push(this.createColumn(lastColumn.type, \"\", lastColumn));\r\n      } else {\r\n        this.columns.push(new StiNumberBoxColumnItem(\"\", this.form));\r\n      }\r\n    }\r\n  }\r\n\r\n  public addRow() {\r\n    this.rowLabels.push(\"\");\r\n    this.columns.forEach((column) => (column as any).cells.push(column.createCell()));\r\n  }\r\n\r\n  setProperty(propName: string, value: any, oldValue: any) {\r\n    super.setProperty(propName, value, oldValue);\r\n    if (propName == \"thousandSeparator\") {\r\n      this.columns.forEach((column) => {\r\n        if (\r\n          (column instanceof StiNumberBoxColumnItem || column instanceof StiLabelColumnItem) &&\r\n          (oldValue === null || column.thousandSeparator == oldValue)\r\n        ) {\r\n          column.thousandSeparator = value;\r\n        }\r\n      });\r\n      this.totalsFields.forEach((field) => {\r\n        if (oldValue === null || oldValue == field.thousandSeparator) {\r\n          field.thousandSeparator = value;\r\n        }\r\n      });\r\n    } else if (propName == \"decimalDigits\") {\r\n      this.columns.forEach((column) => {\r\n        if (\r\n          (column instanceof StiNumberBoxColumnItem || column instanceof StiLabelColumnItem) &&\r\n          (oldValue === null || column.decimalDigits == oldValue)\r\n        ) {\r\n          column.decimalDigits = value;\r\n        }\r\n      });\r\n      this.totalsFields.forEach((field) => {\r\n        if (oldValue === null || oldValue == field.decimalDigits) {\r\n          field.decimalDigits = value;\r\n        }\r\n      });\r\n    }\r\n  }\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n  propertyChanged(propName: string) {\r\n    this.fitTable();\r\n  }\r\n\r\n  get columns(): StiColumnItem[] {\r\n    return this._columns;\r\n  }\r\n\r\n  get eValue(): string {\r\n    return this.tableHeaderText;\r\n  }\r\n\r\n  set eValue(value: string) {\r\n    this.tableHeaderText = value;\r\n  }\r\n\r\n  get eFont(): Font {\r\n    return this.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.font = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.tableHeaderColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.tableHeaderColor = value;\r\n  }\r\n\r\n  get eBackgroundColor(): Color {\r\n    return this.tableHeaderBackgroundColor;\r\n  }\r\n\r\n  set eBackgroundColor(value: Color) {\r\n    this.tableHeaderBackgroundColor = value;\r\n  }\r\n  haveBackgoundColor(): boolean {\r\n    return true;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.tableHeaderAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.tableHeaderAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return true;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return `${this.eFont.htmlStyle()};color:${this.eColor.toHtmlColor()};`;\r\n  }\r\n\r\n  updateRowLabelsContentEditable() {\r\n    this.rowLabelsContentEditable = [];\r\n    this.rowLabels.forEach((l, index) => this.rowLabelsContentEditable.push(new StiRowLabel(l, this, index)));\r\n  }\r\n\r\n  public set width(value: number) {\r\n    let needToFit = this.geometry.width != value;\r\n    this.geometry.width = value;\r\n    if (needToFit) {\r\n      this.fitTable();\r\n    }\r\n  }\r\n\r\n  public get width(): number {\r\n    return this.geometry.width;\r\n  }\r\n\r\n  private nameChanged(oldName: string) {\r\n    this.columns.filter(c => c instanceof StiLabelColumnItem).forEach((column: StiLabelColumnItem) => {\r\n      column.expression = column.expression ? column.expression.replace(new RegExp(oldName, \"g\"), this.name) : column.expression;\r\n    });\r\n\r\n    this.totalsFields.forEach((total: StiTotalsFieldItem) => {\r\n      total.expression = total.expression ? total.expression.replace(new RegExp(oldName, \"g\"), this.name) : total.expression;\r\n    });\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    this.tableHeaderHeight = this.element?.nativeElement?.offsetHeight ?? this.tableHeaderHeight;\r\n    this.columns?.forEach((column) => {\r\n      if (column[\"cells\"] && column[\"cells\"].length != this.rowLabels.length) {\r\n        column[\"cells\"].splice(this.rowLabels.length, column[\"cells\"].length);\r\n      }\r\n    });\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Border\", this.border.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"GridLines\", this.gridLines.saveToJsonObject(options));\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyBool(\"AlternateRowColors\", this.alternateRowColors);\r\n    jObject.addPropertyColor(\"EvenRowsStyle\", this.evenRowsStyle);\r\n    jObject.addPropertyColor(\"EvenRowsTextColor\", this.evenRowsTextColor);\r\n    jObject.addPropertyColor(\"OddRowsStyle\", this.oddRowsStyle);\r\n    jObject.addPropertyColor(\"OddRowsTextColor\", this.oddRowsTextColor);\r\n    jObject.addPropertyNumber(\"TableHeaderHeight\", this.tableHeaderHeight);\r\n    jObject.addPropertyString(\"TableHeaderText\", this.tableHeaderText);\r\n    jObject.addPropertyEnum(\"TableHeaderAlignment\", StiHorizontalAlignment, this.tableHeaderAlignment);\r\n    jObject.addPropertyColor(\"TableHeaderColor\", this.tableHeaderColor);\r\n    jObject.addPropertyColor(\"TableHeaderBackgroundColor\", this.tableHeaderBackgroundColor);\r\n    jObject.addPropertyBool(\"ShowRowLabels\", this.showRowLabels);\r\n    jObject.addPropertyArray(\"RowLabels\", this.rowLabels);\r\n    jObject.addPropertyEnum(\"RowLabelsHorizontalAlignment\", StiHorizontalAlignment, this.rowLabelsHorizontalAlignment);\r\n    jObject.addPropertyColor(\"RowHeadersBackground\", this.rowHeadersBackground);\r\n    jObject.addPropertyColor(\"RowHeadersColor\", this.rowHeadersColor);\r\n    jObject.addPropertyJObject(\"RowHeadersBorder\", this.rowHeadersBorder.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"ColumnHeadersBorder\", this.columnHeadersBorder.saveToJsonObject(options));\r\n    jObject.addPropertyArray(\"Columns\", this.columns);\r\n    jObject.addPropertyBool(\"UseTotals\", this.useTotals);\r\n    // jObject.addPropertyBool(\"DynamicRows\", this.dynamicRows);\r\n    jObject.addPropertyBool(\"UseWordWrap\", this.useWordWrap);\r\n    jObject.addPropertyString(\"TotalsRowHeader\", this.totalsRowHeader);\r\n    jObject.addPropertyNumber(\"RowLabelsWidth\", this.rowLabelsWidth);\r\n    jObject.addPropertyEnum(\r\n      \"TotalsRowHeaderHorizontalAlignment\",\r\n      StiHorizontalAlignment,\r\n      this.totalsRowHeaderHorizontalAlignment\r\n    );\r\n    jObject.addPropertyEnum(\r\n      \"TotalsRowHeaderVerticalAlignment\",\r\n      StiVerticalAlignment,\r\n      this.totalsRowHeaderVerticalAlignment\r\n    );\r\n    jObject.addPropertyColor(\"TotalsRowHeaderColor\", this.totalsRowHeaderColor);\r\n    jObject.addPropertyNumber(\"TotalsValuesWidth\", this.totalsValuesWidth);\r\n    jObject.addPropertyNumber(\"TotalsHeadersWidth\", this.totalsHeadersWidth);\r\n    jObject.addPropertyArray(\"TotalsFields\", this.totalsFields);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    this.stopFit = true;\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Border\":\r\n          this.border = new StiBorder();\r\n          this.border.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"GridLines\":\r\n          this.gridLines = new StiInnerBorder();\r\n          this.gridLines.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"AlternateRowColors\":\r\n          this.alternateRowColors = property.value;\r\n          break;\r\n        case \"EvenRowsStyle\":\r\n          this.evenRowsStyle = new Color();\r\n          this.evenRowsStyle.deserializeFromString(property.value);\r\n          break;\r\n        case \"EvenRowsTextColor\":\r\n          this.evenRowsTextColor = new Color();\r\n          this.evenRowsTextColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"OddRowsStyle\":\r\n          this.oddRowsStyle = new Color();\r\n          this.oddRowsStyle.deserializeFromString(property.value);\r\n          break;\r\n        case \"OddRowsTextColor\":\r\n          this.oddRowsTextColor = new Color();\r\n          this.oddRowsTextColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TableHeaderText\":\r\n          this.tableHeaderText = property.value;\r\n          break;\r\n        case \"TableHeaderAlignment\":\r\n          this.tableHeaderAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"TableHeaderColor\":\r\n          this.tableHeaderColor = new Color();\r\n          this.tableHeaderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TableHeaderBackgroundColor\":\r\n          this.tableHeaderBackgroundColor = new Color();\r\n          this.tableHeaderBackgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"ShowRowLabels\":\r\n          this.showRowLabels = property.value;\r\n          break;\r\n        /* case \"DynamicRows\":\r\n          this.dynamicRows = property.value;\r\n          break; */\r\n        case \"RowLabels\":\r\n          this.rowLabels = [];\r\n          (property.value as StiJson).properties().forEach((p) => this.rowLabels.push(p.value));\r\n          break;\r\n        case \"RowLabelsHorizontalAlignment\":\r\n          this.rowLabelsHorizontalAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"RowLabelsWidth\":\r\n          this.rowLabelsWidth = property.value;\r\n          break;\r\n        case \"RowHeadersBackground\":\r\n          this.rowHeadersBackground = new Color();\r\n          this.rowHeadersBackground.deserializeFromString(property.value);\r\n          break;\r\n        case \"RowHeadersColor\":\r\n          this.rowHeadersColor = new Color();\r\n          this.rowHeadersColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"RowHeadersBorder\":\r\n          this.rowHeadersBorder = new StiBorder();\r\n          this.rowHeadersBorder.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"ColumnHeadersBorder\":\r\n          this.columnHeadersBorder = new StiBorder();\r\n          this.columnHeadersBorder.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Columns\":\r\n        case \"ColumnCollection\":\r\n          this.columns = [];\r\n          for (let colJson of property.value.value) {\r\n            let type = colJson.properties().find((p) => p.name == \"Type\").value;\r\n            let column: StiColumnItem = this.createColumn(type);\r\n            column.eParent = this;\r\n            column.loadFromJsonObject(colJson);\r\n            this.columns.push(column);\r\n          }\r\n          break;\r\n        case \"UseTotals\":\r\n          this.useTotals = property.value;\r\n          break;\r\n        case \"UseWordWrap\":\r\n          this.useWordWrap = property.value;\r\n          break;\r\n        case \"TotalsRowHeader\":\r\n          this.totalsRowHeader = property.value;\r\n          break;\r\n        case \"TotalsRowHeaderHorizontalAlignment\":\r\n          this.totalsRowHeaderHorizontalAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"TotalsRowHeaderVerticalAlignment\":\r\n          this.totalsRowHeaderVerticalAlignment = Enum.parse(StiVerticalAlignment, property.value);\r\n          break;\r\n        case \"TotalsRowHeaderColor\":\r\n          this.totalsRowHeaderColor = new Color();\r\n          this.totalsRowHeaderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TotalsValuesWidth\":\r\n          this.totalsValuesWidth = property.value;\r\n          break;\r\n        case \"TotalsHeadersWidth\":\r\n          this.totalsHeadersWidth = property.value;\r\n          break;\r\n        case \"TotalsFields\":\r\n          this.totalsFields = [];\r\n          for (let totalJson of property.value.value) {\r\n            let total = new StiTotalsFieldItem(\"\", \"\", this.form);\r\n            total.loadFromJsonObject(totalJson);\r\n            this.totalsFields.push(total);\r\n          }\r\n          break;\r\n      }\r\n    }\r\n    this.stopFit = false;\r\n    this.fitTable();\r\n  }\r\n}\r\n","import { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiHorizontalAlignment, StiTextRangeFormat, StiLineWeight } from \"../system/enums\";\r\nimport { Font } from \"../system/Font\";\r\nimport { StiLabel, StiDescription, StiEditableContent, StiValueElement, StiTabIndex } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiTextBoxElement\r\n  extends StiFormElement\r\n  implements StiLabel, StiDescription, StiEditableContent, StiValueElement, StiTabIndex {\r\n  private _linesCount: number = 1;\r\n  private _maximum: number = 255;\r\n  public type: string = \"Text_BoxElement\";\r\n  public tooltip = \"\";\r\n  public required = false;\r\n  public description: StiTextItem = new StiTextItem();\r\n  public font: Font = new Font(\"Segoe UI\", 10);\r\n  public text = \"\";\r\n  public backgroundColor: Color = Color.white();\r\n  public textColor: Color = Color.black();\r\n  public borderColor: Color = Color.lightGray();\r\n  public contentAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Left;\r\n  public isMultiline = false;\r\n  public password: string = \"\";\r\n  public isPassword = false;\r\n  public useRange = false;\r\n  public minimum: number = 0;\r\n  public rangeFormat: StiTextRangeFormat = StiTextRangeFormat.Characters;\r\n  public borderWeight: StiLineWeight = StiLineWeight.Thin;\r\n  public heightForExport: number;\r\n  public tabIndex: number;\r\n  public mask: string = \"\";\r\n\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(150, 40);\r\n    this.label = new StiLabelItem(this, StiLocalizationService.get(\"Dialogs\", \"StiTextBoxControl\"));\r\n  }\r\n  setDefaultValues() {\r\n    this.value = \"\";\r\n  }\r\n\r\n  setTabIndex(value: number): number {\r\n    this.tabIndex = value++;\r\n    return value;\r\n  }\r\n\r\n  public getDefaultEditableContent(): StiEditableContent {\r\n    let textItem = new StiInputTextItem(\r\n      this.text,\r\n      this.font,\r\n      this.textColor,\r\n      this.backgroundColor,\r\n      this.contentAlignment\r\n    );\r\n    textItem.element = this;\r\n    return textItem;\r\n  }\r\n  get maximum() {\r\n    return this._maximum;\r\n  }\r\n  set maximum(value: number) {\r\n    this._maximum = Math.max(1, value);\r\n  }\r\n  public get linesCount() {\r\n    return this._linesCount;\r\n  }\r\n  public set linesCount(value: number) {\r\n    if (value <= 1) {\r\n      this._linesCount = 1;\r\n    } else if (value >= 10) {\r\n      this._linesCount = 10;\r\n    } else {\r\n      this._linesCount = value;\r\n    }\r\n  }\r\n  get value(): string {\r\n    return this.text;\r\n  }\r\n\r\n  set value(value: string) {\r\n    this.text = value;\r\n  }\r\n\r\n  get eValue(): string {\r\n    return this.value;\r\n  }\r\n\r\n  set eValue(value: string) {\r\n    this.value = value;\r\n  }\r\n\r\n  get eFont(): Font {\r\n    return this.font;\r\n  }\r\n\r\n  set eFont(value: Font) {\r\n    this.font = value;\r\n  }\r\n\r\n  get eColor(): Color {\r\n    return this.textColor;\r\n  }\r\n\r\n  set eColor(value: Color) {\r\n    this.textColor = value;\r\n  }\r\n\r\n  get eBackgroundColor(): Color {\r\n    return this.backgroundColor;\r\n  }\r\n\r\n  set eBackgroundColor(value: Color) {\r\n    this.backgroundColor = value;\r\n  }\r\n  get eContentAlignment(): StiHorizontalAlignment {\r\n    return this.contentAlignment;\r\n  }\r\n  set eContentAlignment(value: StiHorizontalAlignment) {\r\n    this.contentAlignment = value;\r\n  }\r\n  haveContentAlignment(): boolean {\r\n    return true;\r\n  }\r\n  haveVerticalAlignment(): boolean {\r\n    return false;\r\n  }\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(this.font.family, this.arrayOfStylesToString(this.font.style), this.font.size);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n  haveBackgoundColor(): boolean {\r\n    return true;\r\n  }\r\n\r\n  htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.eColor.toHtmlColor()};text-align:${Enum.getName(\r\n      StiHorizontalAlignment,\r\n      this.contentAlignment\r\n    )}`;\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    if (this.element?.nativeElement) {\r\n      this.heightForExport = this.element.nativeElement.offsetHeight;\r\n    }\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    jObject.addPropertyString(\"Text\", this.text);\r\n    jObject.addPropertyString(\"Mask\", this.mask);\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyColor(\"TextColor\", this.textColor);\r\n    jObject.addPropertyEnum(\"ContentAlignment\", StiHorizontalAlignment, this.contentAlignment);\r\n    jObject.addPropertyString(\"Tooltip\", this.tooltip);\r\n    jObject.addPropertyBool(\"Required\", this.required);\r\n    jObject.addPropertyBool(\"IsPassword\", this.isPassword);\r\n    jObject.addPropertyBool(\"IsMultiline\", this.isMultiline);\r\n    jObject.addPropertyNumber(\"LinesCount\", this.linesCount);\r\n    jObject.addPropertyBool(\"UseRange\", this.useRange);\r\n    jObject.addPropertyNumber(\"Minimum\", this.minimum);\r\n    jObject.addPropertyNumber(\"Maximum\", this.maximum);\r\n    jObject.addPropertyEnum(\"RangeFormat\", StiTextRangeFormat, this.rangeFormat);\r\n    jObject.addPropertyColor(\"BorderColor\", this.borderColor);\r\n    jObject.addPropertyEnum(\"BorderWeight\", StiLineWeight, this.borderWeight);\r\n    if (this.element?.nativeElement) {\r\n      jObject.addPropertyNumber(\"HeightForExport\", this.heightForExport);\r\n    }\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"ContentAlignment\":\r\n          this.contentAlignment = Enum.parse(StiHorizontalAlignment, property.value);\r\n          break;\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"TextColor\":\r\n          this.textColor = new Color();\r\n          this.textColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Text\":\r\n          this.text = property.value;\r\n          break;\r\n        case \"Mask\":\r\n          this.mask = property.value;\r\n          break;\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Tooltip\":\r\n          this.tooltip = property.value;\r\n          break;\r\n        case \"Required\":\r\n          this.required = property.value;\r\n          break;\r\n        case \"IsPassword\":\r\n          this.isPassword = property.value;\r\n          break;\r\n        case \"IsMultiline\":\r\n          this.isMultiline = property.value;\r\n          break;\r\n        case \"LinesCount\":\r\n          this.linesCount = property.value;\r\n          break;\r\n        case \"UseRange\":\r\n          this.useRange = property.value;\r\n          break;\r\n        case \"Minimum\":\r\n          this.minimum = property.value;\r\n          break;\r\n        case \"Maximum\":\r\n          this.maximum = property.value;\r\n          break;\r\n        case \"RangeFormat\":\r\n          this.rangeFormat = Enum.parse(StiTextRangeFormat, property.value);\r\n          break;\r\n        case \"BorderColor\":\r\n          this.borderColor = new Color();\r\n          this.borderColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"BorderWeight\":\r\n          this.borderWeight = Enum.parse(StiLineWeight, property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { StiBorder } from \"../properties/StiBorder\";\r\nimport { StiPen } from \"../properties/StiPen\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport Color from \"../system/Color\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiTextHorAlignment, StiHorizontalAlignment } from \"../system/enums\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\n\r\nexport class StiTextElement extends StiFormElement {\r\n  public type: string = \"TextElement\";\r\n  public htmlTextString = \"\";\r\n  public textColor: Color = Color.black();\r\n  public textHorizontalAlignment: StiTextHorAlignment = StiTextHorAlignment.Left;\r\n  public border: StiBorder = new StiBorder(StiPen.dimGraySolid(), false, false, false, false);\r\n  public showBorderEditor: boolean = true;\r\n  constructor() {\r\n    super();\r\n    this.geometry = new StiRectangleGeometry(100, 35);\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyString(\"HtmlTextString\", this.htmlTextString);\r\n    jObject.addPropertyEnum(\"TextHorizontalAlignment\", StiTextHorAlignment, this.textHorizontalAlignment);\r\n    jObject.addPropertyJObject(\"Border\", this.border.saveToJsonObject(options));\r\n    return jObject;\r\n  }\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"HtmlTextString\":\r\n          this.htmlTextString = property.value;\r\n          break;\r\n        case \"TextHorizontalAlignment\":\r\n          this.textHorizontalAlignment = Enum.parse(StiTextHorAlignment, property.value);\r\n          break;\r\n        case \"Border\":\r\n          this.border = new StiBorder();\r\n          this.border.loadFromJsonObject(property.value);\r\n          break;\r\n      }\r\n    }\r\n    this.isAdded = true;\r\n  }\r\n  htmlStyle(): string {\r\n    return `color:${this.textColor.toHtmlColor()};text-align:${Enum.getName(\r\n      StiHorizontalAlignment,\r\n      this.textHorizontalAlignment\r\n    )}`;\r\n  }\r\n}\r\n","import { StiBorder } from \"../properties/StiBorder\";\r\nimport StiPadding from \"../properties/StiPadding\";\r\nimport { StiPen } from \"../properties/StiPen\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiUsedFontsList } from \"../services/objects\";\r\nimport Color from \"../system/Color\";\r\nimport { StiLabelAlignment } from \"../system/enums\";\r\nimport { StiLabel, StiDescription } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiAddressElement } from \"./StiAddressElement\";\r\nimport { StiBarcodeElement } from \"./StiBarcodeElement\";\r\nimport { StiButtonElement } from \"./StiButtonElement\";\r\nimport { StiCheckBoxElement } from \"./StiCheckBoxElement\";\r\nimport { StiComboBoxElement } from \"./StiComboBoxElement\";\r\nimport { StiDateTimeBoxElement } from \"./StiDateTimeBoxElement\";\r\nimport { StiForm } from \"./StiForm\";\r\nimport { StiImageElement } from \"./StiImageElement\";\r\nimport { StiLabelElement } from \"./StiLabelElement\";\r\nimport StiLineElement from \"./StiLineElement\";\r\nimport { StiListBoxElement } from \"./StiListBoxElement\";\r\nimport { StiMultipleSelectionElement } from \"./StiMultipleSelectionElement\";\r\nimport { StiNumberBoxElement } from \"./StiNumberBoxElement\";\r\nimport { StiPDFSignatureElement } from \"./StiPDFSignatureElement\";\r\nimport { StiSignatureElement } from \"./StiSignatureElement\";\r\nimport { StiSingleSelectionElement } from \"./StiSingleSelectionElement\";\r\nimport { StiTableElement } from \"./StiTableElement\";\r\nimport { StiTextBoxElement } from \"./StiTextBoxElement\";\r\nimport { StiTextElement } from \"./StiTextElement\";\r\nimport { StiLabelItem } from \"./text/StiLabelItem\";\r\nimport { StiTextItem } from \"./text/StiTextItem\";\r\n\r\nexport class StiPanelElement extends StiFormElement implements StiLabel, StiDescription {\r\n  public type: string = \"PanelElement\";\r\n  public description: StiTextItem = new StiTextItem();\r\n  public Width = 0; //TODO\r\n  public Height = 0; //TODO\r\n  public backgroundColor = Color.transparent();\r\n  public border: StiBorder = new StiBorder(StiPen.dimGraySolid(), true, true, true, true);\r\n  public showBorderEditor: boolean = true;\r\n  public elements: StiFormElement[] = new Array<StiFormElement>();\r\n  public form: StiForm\r\n\r\n  constructor(form: StiForm) {\r\n    super();\r\n    this.form = form;\r\n    this.geometry = new StiRectangleGeometry(150, 120);\r\n    this.label = new StiLabelItem(this, \"\");\r\n    this.padding = new StiPadding(0, 0, 0, 0, this);\r\n    this.label.alignment = StiLabelAlignment.Top;\r\n    this.geometry.minWidth = 150;\r\n    this.geometry.minHeight = 90;\r\n  }\r\n\r\n  public canUpdateProperty(propName: string) {\r\n    return !(propName.indexOf(\"padding\") >= 0 || propName == \"label.alignment\");\r\n  }\r\n\r\n  public get contentAreaWidth(): number {\r\n    if (this.label.alignment != StiLabelAlignment.Top) {\r\n      return this.width - (this.label.value.length > 0 ? this.label.width : 0) - this.padding.right - this.padding.left;\r\n    } else {\r\n      return this.width - this.padding.right - this.padding.left;\r\n    }\r\n  }\r\n\r\n  public get contentAreaHeight(): number {\r\n    if (this.label.alignment != StiLabelAlignment.Top) {\r\n      return this.height - this.padding.top - this.padding.bottom;\r\n    } else {\r\n      if (this.element?.nativeElement) {\r\n        if (this.element.nativeElement.offsetHeight > 0) {\r\n          return this.element.nativeElement.offsetHeight + this.padding.bottom;\r\n        }\r\n      } else {\r\n        return this.height - this.padding.top - this.padding.bottom - 35;\r\n      }\r\n    }\r\n  }\r\n\r\n  public getColumnWidth(columnsCount: number): number {\r\n    return Number((this.contentAreaWidth / columnsCount).toFixed(2));\r\n  }\r\n\r\n  public getUsedFonts(usedFonts: StiUsedFontsList) {\r\n    super.getUsedFonts(usedFonts);\r\n    usedFonts.add(\r\n      this.description.font.family,\r\n      this.arrayOfStylesToString(this.description.font.style),\r\n      this.description.font.size\r\n    );\r\n  }\r\n\r\n  public get allElements(): StiFormElement[] {\r\n    let elements = [];\r\n    this.getAllElements(elements);\r\n    return elements;\r\n  }\r\n\r\n  public getAllElements(elements: StiFormElement[]) {\r\n    this.elements.forEach((element) => {\r\n      if (element instanceof StiPanelElement) {\r\n        (element as StiPanelElement).getAllElements(elements);\r\n      }\r\n      elements.push(element);\r\n    });\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    if (this.element?.nativeElement) {\r\n      if (this.label.alignment != StiLabelAlignment.Top) {\r\n        this.Width = this.width - (this.label.value.length > 0 ? this.label.width + this.padding.left : 0);\r\n        this.Height = this.height;\r\n      } else {\r\n        this.Width = this.width;\r\n        if (this.element.nativeElement.offsetHeight > 0) {\r\n          this.Height = this.element.nativeElement.offsetHeight + this.padding.bottom;\r\n        }\r\n      }\r\n    }\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.addPropertyJObject(\"Label\", this.label.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"Description\", this.description.saveToJsonObject(options));\r\n    jObject.addPropertyNumber(\"Width\", this.Width);\r\n    jObject.addPropertyNumber(\"Height\", this.Height);\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyArray(\"Elements\", this.elements);\r\n    jObject.addPropertyJObject(\"Border\", this.border.saveToJsonObject(options));\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Label\":\r\n          this.label = new StiLabelItem(this);\r\n          this.label.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Description\":\r\n          this.description = new StiTextItem();\r\n          this.description.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Width\":\r\n          this.Width = property.value;\r\n          break;\r\n        case \"Height\":\r\n          this.Height = property.value;\r\n          break;\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor = new Color();\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          break;\r\n        case \"Elements\":\r\n          this.elements = this.deserializeCollection(property.value);\r\n          break;\r\n        case \"Border\":\r\n          this.border = new StiBorder();\r\n          this.border.loadFromJsonObject(property.value);\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  public createElementClass(type: string): any {\r\n    type = type.toLowerCase();\r\n    if (type == \"textelement\" || type == \"textelement\") {\r\n      return new StiTextElement();\r\n    } else if (type == \"text_boxelement\" || type == \"textboxelement\") {\r\n      return new StiTextBoxElement();\r\n    } else if (type == \"tableelement\" || type == \"tableelement\") {\r\n      return new StiTableElement(this.form);\r\n    } else if (type == \"single_selectionelement\" || type == \"singleselectionelement\") {\r\n      return new StiSingleSelectionElement();\r\n    } else if (type == \"signatureelement\" || type == \"signatureelement\") {\r\n      return new StiSignatureElement();\r\n    } else if (type == \"pdfsignatureelement\" || type == \"pdfsignatureelement\") {\r\n      return new StiPDFSignatureElement();\r\n    } else if (type == \"panelelement\" || type == \"panelelement\") {\r\n      return new StiPanelElement(this.form);\r\n    } else if (type == \"number_boxelement\" || type == \"numberboxelement\") {\r\n      return new StiNumberBoxElement();\r\n    } else if (type == \"multiple_selectionelement\" || type == \"multipleselectionelement\") {\r\n      return new StiMultipleSelectionElement();\r\n    } else if (type == \"list_boxelement\" || type == \"listboxelement\") {\r\n      return new StiListBoxElement();\r\n    } else if (type == \"lineelement\" || type == \"lineelement\") {\r\n      return new StiLineElement();\r\n    } else if (type == \"labelelement\" || type == \"labelelement\") {\r\n      return new StiLabelElement();\r\n    } else if (type == \"imageelement\" || type == \"imageelement\") {\r\n      return new StiImageElement();\r\n    } else if (type == \"datetime_boxelement\" || type == \"datetimeboxelement\") {\r\n      return new StiDateTimeBoxElement(this.form);\r\n    } else if (type == \"combo_boxelement\" || type == \"comboboxelement\") {\r\n      return new StiComboBoxElement();\r\n    } else if (type == \"check_boxelement\" || type == \"checkboxelement\") {\r\n      return new StiCheckBoxElement();\r\n    } else if (type == \"buttonelement\" || type == \"buttonelement\") {\r\n      return new StiButtonElement();\r\n    } else if (type == \"barcodeelement\" || type == \"barcodeelement\") {\r\n      return new StiBarcodeElement();\r\n    } else if (type == \"addresselement\" || type == \"addresselement\") {\r\n      return new StiAddressElement();\r\n    }\r\n  }\r\n}\r\n","import StiPadding from \"../properties/StiPadding\";\r\nimport StiPagePaperKind from \"../properties/StiPagePaperKind\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport StiFormObject from \"./base/StiFormObject\";\r\nimport { StiPanelElement } from \"./StiPanelElement\";\r\nimport { StiBarcodeElement } from \"./StiBarcodeElement\";\r\nimport { StiButtonElement } from \"./StiButtonElement\";\r\nimport { StiCheckBoxElement } from \"./StiCheckBoxElement\";\r\nimport { StiComboBoxElement } from \"./StiComboBoxElement\";\r\nimport { StiDateTimeBoxElement } from \"./StiDateTimeBoxElement\";\r\nimport { StiImageElement } from \"./StiImageElement\";\r\nimport { StiLabelElement } from \"./StiLabelElement\";\r\nimport StiLineElement from \"./StiLineElement\";\r\nimport { StiListBoxElement } from \"./StiListBoxElement\";\r\nimport { StiMultipleSelectionElement } from \"./StiMultipleSelectionElement\";\r\nimport { StiSignatureElement } from \"./StiSignatureElement\";\r\nimport { StiSingleSelectionElement } from \"./StiSingleSelectionElement\";\r\nimport { StiTableElement } from \"./StiTableElement\";\r\nimport { StiTextBoxElement } from \"./StiTextBoxElement\";\r\nimport { StiTextElement } from \"./StiTextElement\";\r\nimport { StiNumberBoxElement } from \"./StiNumberBoxElement\";\r\nimport Color from \"../system/Color\";\r\nimport { PaperKind } from \"../system/enums\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiAddressElement } from \"./StiAddressElement\";\r\nimport { StiPDFSignatureElement } from \"./StiPDFSignatureElement\";\r\nimport { StiForm } from \"./StiForm\";\r\n\r\nexport class StiFormPageElement extends StiFormObject {\r\n  private _name: string;\r\n  public static PAGE_ELEMENTS = [\r\n    StiBarcodeElement,\r\n    StiButtonElement,\r\n    StiCheckBoxElement,\r\n    StiComboBoxElement,\r\n    StiDateTimeBoxElement,\r\n    StiImageElement,\r\n    StiLabelElement,\r\n    StiLineElement,\r\n    StiListBoxElement,\r\n    StiMultipleSelectionElement,\r\n    StiSignatureElement,\r\n    StiPDFSignatureElement,\r\n    StiSingleSelectionElement,\r\n    StiTableElement,\r\n    StiTextBoxElement,\r\n    StiTextElement,\r\n    StiNumberBoxElement,\r\n    StiPanelElement,\r\n    StiAddressElement,\r\n  ];\r\n\r\n  public type = \"StiPageElement\";\r\n  public elements: StiFormElement[] = new Array<StiFormElement>();\r\n  public visible = true;\r\n  public padding: StiPadding = new StiPadding(39, 39, 39, 39);\r\n  public paperKind: StiPagePaperKind = StiPagePaperKind.fromStandardPaperKind(PaperKind.A4);\r\n  public backgroundColor: Color = Color.white();\r\n  public backgroundImage: string;\r\n  public form: StiForm;\r\n\r\n  public get width(): number {\r\n    return this.paperKind.width;\r\n  }\r\n\r\n  public get height(): number {\r\n    return this.paperKind.height;\r\n  }\r\n\r\n  public set width(value) {\r\n    this.paperKind.width = Number(value);\r\n  }\r\n\r\n  public set height(value) {\r\n    this.paperKind.height = Number(value);\r\n  }\r\n\r\n  public get contentAreaWidth(): number {\r\n    let padding = this.padding;\r\n    return this.width - padding.left - padding.right;\r\n  }\r\n\r\n  public get contentAreaHeight(): number {\r\n    let padding = this.padding;\r\n    return this.height - padding.top - padding.bottom;\r\n  }\r\n  public get name(): string {\r\n    return this._name;\r\n  }\r\n\r\n  public set name(value: string) {\r\n    let oldValue = this._name;\r\n    if (oldValue != value) {\r\n      this._name = value;\r\n    }\r\n  }\r\n  public get allElements(): StiFormElement[] {\r\n    let elements = [];\r\n    this.elements.forEach((element) => {\r\n      if (element instanceof StiPanelElement) {\r\n        (element as StiPanelElement).getAllElements(elements);\r\n      }\r\n      elements.push(element);\r\n    });\r\n\r\n    return elements;\r\n  }\r\n\r\n  public getColumnWidth(columnsCount: number): number {\r\n    return Number((this.contentAreaWidth / columnsCount).toFixed(2));\r\n  }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = super.saveToJsonObject(options);\r\n    jObject.removeProperty(StiFormObject.TYPE_PROPERTY_NAME);\r\n    jObject.addPropertyJObject(\"Margins\", this.padding.saveToJsonObject(options));\r\n    jObject.addPropertyJObject(\"PaperKind\", this.paperKind.saveToJsonObject(options));\r\n    jObject.addPropertyColor(\"BackgroundColor\", this.backgroundColor);\r\n    jObject.addPropertyBool(\"Visible\", this.visible);\r\n    if (!(options && options[\"notSerializeImages\"])) {\r\n      jObject.addPropertyString(\r\n        \"BackgroundImage\",\r\n        this.backgroundImage?.substring(this.backgroundImage.indexOf(\",\") + 1)\r\n      );\r\n    }\r\n    jObject.addPropertyArray(\"Elements\", this.elements);\r\n    jObject.addPropertyStringNullOrEmpty(\"Name\", this.name);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    super.loadFromJsonObject(json);\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Visible\":\r\n          this.visible = property.value;\r\n          break;\r\n        case \"Margins\":\r\n          this.padding.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"PaperKind\":\r\n          this.paperKind.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"BackgroundColor\":\r\n          this.backgroundColor.deserializeFromString(property.value);\r\n          this.backgroundColor.a = 255;\r\n          break;\r\n        case \"BackgroundImage\":\r\n          if (property.value) {\r\n            this.backgroundImage = \"data:image/png;base64,\" + property.value;\r\n          }\r\n          break;\r\n        case \"Elements\":\r\n          this.elements = this.deserializeCollection(property.value);\r\n          break;\r\n        case \"Name\":\r\n          this.name = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n\r\n  constructor(form: StiForm) {\r\n    super();\r\n    this.form = form;\r\n  }\r\n\r\n  public createElementClass(type: string): any {\r\n    type = type.toLowerCase();\r\n    if (type == \"textelement\" || type == \"textelement\") {\r\n      return new StiTextElement();\r\n    } else if (type == \"text_boxelement\" || type == \"textboxelement\") {\r\n      return new StiTextBoxElement();\r\n    } else if (type == \"tableelement\" || type == \"tableelement\") {\r\n      return new StiTableElement(this.form);\r\n    } else if (type == \"single_selectionelement\" || type == \"singleselectionelement\") {\r\n      return new StiSingleSelectionElement();\r\n    } else if (type == \"signatureelement\" || type == \"signatureelement\") {\r\n      return new StiSignatureElement();\r\n    } else if (type == \"pdfsignatureelement\" || type == \"pdfsignatureelement\") {\r\n      return new StiPDFSignatureElement();\r\n    } else if (type == \"panelelement\" || type == \"panelelement\") {\r\n      return new StiPanelElement(this.form);\r\n    } else if (type == \"number_boxelement\" || type == \"numberboxelement\") {\r\n      return new StiNumberBoxElement();\r\n    } else if (type == \"multiple_selectionelement\" || type == \"multipleselectionelement\") {\r\n      return new StiMultipleSelectionElement();\r\n    } else if (type == \"list_boxelement\" || type == \"listboxelement\") {\r\n      return new StiListBoxElement();\r\n    } else if (type == \"lineelement\" || type == \"lineelement\") {\r\n      return new StiLineElement();\r\n    } else if (type == \"labelelement\" || type == \"labelelement\") {\r\n      return new StiLabelElement();\r\n    } else if (type == \"imageelement\" || type == \"imageelement\") {\r\n      return new StiImageElement();\r\n    } else if (type == \"datetime_boxelement\" || type == \"datetimeboxelement\") {\r\n      return new StiDateTimeBoxElement(this.form);\r\n    } else if (type == \"combo_boxelement\" || type == \"comboboxelement\") {\r\n      return new StiComboBoxElement();\r\n    } else if (type == \"check_boxelement\" || type == \"checkboxelement\") {\r\n      return new StiCheckBoxElement();\r\n    } else if (type == \"buttonelement\" || type == \"buttonelement\") {\r\n      return new StiButtonElement();\r\n    } else if (type == \"barcodeelement\" || type == \"barcodeelement\") {\r\n      return new StiBarcodeElement();\r\n    } else if (type == \"addresselement\" || type == \"addresselement\") {\r\n      return new StiAddressElement();\r\n    }\r\n  }\r\n}\r\n","import StiJson from \"../system/StiJson\";\r\n\r\nexport class StiAdditionalField {\r\n  public key: string;\r\n  public value: any;\r\n  constructor() {}\r\n  saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyString(\"Key\", this.key);\r\n    json.addPropertyString(\"Value\", this.value);\r\n    return json;\r\n  }\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Key\":\r\n          this.key = property.value;\r\n          break;\r\n        case \"Value\":\r\n          this.value = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { camelCase, indexOf } from \"lodash\";\r\nimport { Subject } from \"rxjs\";\r\nimport type { StiComponent } from \"../components/sti-component\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiForm } from \"../elements/StiForm\";\r\nimport { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport { StiNumberBoxElement } from \"../elements/StiNumberBoxElement\";\r\nimport { StiPanelElement } from \"../elements/StiPanelElement\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport StiPadding from \"../properties/StiPadding\";\r\nimport type { StimulsoftFormsComponent } from \"../stimulsoft-forms.component\";\r\nimport { StiNumberRangeFormat, StiThousandSeparator, StiUnitAlignment } from \"../system/enums\";\r\nimport { StiFormattedElement } from \"../system/interfaces\";\r\nimport { FormEvent, StiInterfaceEvent, StiWebFormOptions } from \"./objects\";\r\nimport { StiStaticHelperService } from \"./sti-static-helper.service\";\r\n\r\n@Injectable()\r\nexport class StiModelService {\r\n  public static PAGE_CLASS = \"sti-page\";\r\n  public static PANEL_CLASS = \"sti-panel\";\r\n  public static THEMES = [\"Light\", \"Dark\"];\r\n\r\n  private _showTrialBar: boolean = false;\r\n  private _showTrialModalWindow: boolean = false;\r\n  private _showTrialTitle: boolean = false;\r\n  private _canCloseTrialWindow: boolean = true;\r\n  private _elementToUpdate: StiFormElement;\r\n  private _selectedComponent: StiComponent;\r\n  private _selectedPage: StiFormPageElement;\r\n  private _lastUsedPage: StiFormPageElement;\r\n  private _zoom: number = 1;\r\n  private _form: StiForm;\r\n  private _cursor: string = \"default\";\r\n  private _requestUrl: string;\r\n  private _ribbon = \"Home\";\r\n\r\n  public interfaceEvent = new Subject<StiInterfaceEvent>();\r\n  public isMobileViewer = new Subject<boolean>();\r\n  public needToRefresh = new Subject<boolean>();\r\n  public needToUpdateHelper = new Subject<boolean>();\r\n  public startPdfExportEvent = new Subject<boolean>();\r\n  public needToRefreshInnerProperties = new Subject<boolean>();\r\n  public currentContentEditableItem = new Subject<any>();\r\n  public retryButtonRequest = new Subject<any>();\r\n\r\n  public component: StimulsoftFormsComponent;\r\n  public fontFamilies = [];\r\n  public assemblyInfo = [];\r\n  public formTreeInnerItemsStates = [];\r\n  public imagesArray;\r\n  public lastFormState;\r\n  public userName: string = \"\";\r\n  public currentEditor: any;\r\n  public currentPropertyGridMode: string = \"Properties\";\r\n  public showFormElementsList: boolean = false;\r\n  public sortFormElementsList: boolean = false;\r\n  public showComponentsTab: boolean = true;\r\n  public showInsertTab = true;\r\n  public rootFormElement: any;\r\n  public hideActiveDropdown = new Subject<boolean>();\r\n  public showSignatureEditor: boolean = false;\r\n  public showDraggableModalWindow: boolean = false;\r\n  public showFormTreeWarningWindow: boolean = false;\r\n  public hideActiveAutocompleteList = new Subject<boolean>();\r\n  public formTreeWarningMessage: string = \"\";\r\n  public needToSelectedComponent = new Subject<StiFormElement>();\r\n  public showButtonMessageWindow: boolean = false;\r\n  public showTieredMenu: boolean = false;\r\n  public showTrialTimerWindow: boolean = false;\r\n  public isInitialized: boolean = false;\r\n  public showContextMenu: boolean = false;\r\n  public showHelpWindow: boolean = false;\r\n  public showSaveDialog: boolean = false;\r\n  public showErrorWindow: boolean = false;\r\n  public basePlanIsTrial: boolean = false;\r\n  public viewerMode: boolean = false;\r\n  public isCloudMode: boolean = false;\r\n  public disableCloseButton: boolean = false;\r\n  public showCornerRadius: boolean = true;\r\n  public showAboutWindow: boolean = false;\r\n  public showGroupPreview: boolean = false;\r\n  public showToolboxSetup: boolean = false;\r\n  public showModalWindow: boolean = false;\r\n  public showProgressAfterUpdatePage: boolean = false;\r\n  public canDrag: boolean = true;\r\n  public tieredMenuX: number = 0;\r\n  public tieredMenuY: number = 0;\r\n  public currentExpressionInfo = 0; //0-none,1-label column,2-totals,3-label component.\r\n  public buildVersion: string = \"\";\r\n  public buildDate: string = \"\";\r\n  public errorWindowMessage: string = \"\";\r\n  public firstFormState: any;\r\n  public propertyGridWidth: number = 395;\r\n  public pageWithGrid: StiFormPageElement;\r\n  public currentContentEditableItemIndex: number;\r\n  public currentTablePropertyHeader = new Subject<string>();\r\n  public currentUsedButtonElement: any;\r\n  public currentTableHeader = \"Main\";\r\n  public formEvents = new Subject<FormEvent>();\r\n  public lastSavedFormState;\r\n  public currentFormState;\r\n  public saveDialogFromNew: boolean = false;\r\n  public saveDialogFromOpen: boolean = false;\r\n  public addTotalMenu: any;\r\n  public contextMenuX: number;\r\n  public contextMenuY: number;\r\n  public sendedFromButton: boolean = false;\r\n  public loadingFromCloud: boolean = false;\r\n  public showColorDialog: boolean = false;\r\n  public showMoreColorDialog: boolean = false;\r\n  public userIsAuthorized: boolean = false;\r\n  public userWasChecked: boolean = false;\r\n  public showSaveDialogFromCloud: boolean = false;\r\n  public settings: any;\r\n  public hasEmptyReuiredFields: boolean = false;\r\n\r\n  public options: StiWebFormOptions;\r\n  public showExpressionEditor: boolean = false;\r\n  public properties: any;\r\n  public previousPadding: StiPadding;\r\n  public previousContentAreaWidth: number;\r\n  public showProgress = false;\r\n  public draggingElement: StiFormElement;\r\n  public previousSelectedComponent: StiComponent;\r\n  public isWebView = false;\r\n  public currentSelectedFileOption = \"Open\";\r\n  public _embeddedMode = false;\r\n  public embeddedEvent = function (data) { };\r\n  public login: any;\r\n  public fileName = \"Form.mrt\";\r\n  public enteredUrls = [];\r\n\r\n  public toggleTieredMenu(element) {\r\n    let elementRect = this.getPositionRelativeToForm(element);\r\n    let menuWidth = 104;\r\n    let menuHeight = 165;\r\n    this.tieredMenuY =\r\n      window.innerHeight - elementRect.bottom >= menuHeight ? elementRect.bottom : elementRect.top - menuHeight;\r\n    this.tieredMenuX =\r\n      window.innerWidth - elementRect.left > menuWidth ? elementRect.left : elementRect.right - menuWidth;\r\n    this.showTieredMenu = true;\r\n  }\r\n\r\n  public get showTrialBar(): boolean {\r\n    return this._showTrialBar;\r\n  }\r\n  public set showTrialBar(value: boolean) {\r\n    let lastState = this._showTrialBar;\r\n    if (value != lastState) {\r\n      this._showTrialBar = value;\r\n    }\r\n  }\r\n  public get showTrialModalWindow(): boolean {\r\n    return this._showTrialModalWindow;\r\n  }\r\n  public set showTrialModalWindow(value: boolean) {\r\n    let lastState = this._showTrialModalWindow;\r\n    if (value != lastState) {\r\n      this._showTrialModalWindow = value;\r\n    }\r\n  }\r\n  public get showTrialTitle(): boolean {\r\n    return this._showTrialTitle;\r\n  }\r\n  public set showTrialTitle(value: boolean) {\r\n    let lastState = this._showTrialTitle;\r\n    if (value != lastState) {\r\n      this._showTrialTitle = value;\r\n    }\r\n  }\r\n  public get canCloseTrialWindow(): boolean {\r\n    return this._canCloseTrialWindow;\r\n  }\r\n  public set canCloseTrialWindow(value: boolean) {\r\n    let lastState = this._canCloseTrialWindow;\r\n    if (value != lastState) {\r\n      this._canCloseTrialWindow = value;\r\n    }\r\n  }\r\n\r\n  public set ribbon(value: string) {\r\n    if ((value == \"Insert\" && !this.showInsertTab) || (this.viewerMode && value != \"Preview\")) return;\r\n\r\n    if (value != this._ribbon) {\r\n      let oldRibbon = this._ribbon;\r\n      this._ribbon = value;\r\n      this.interfaceEvent.next({ name: \"setRibbon\", data: { ribbon: value, oldRibbon: oldRibbon } });\r\n    }\r\n  }\r\n\r\n  public get ribbon(): string {\r\n    return this._ribbon;\r\n  }\r\n\r\n  public get previewMode(): boolean {\r\n    return this._ribbon == \"Preview\";\r\n  }\r\n\r\n  public get pdfPreviewMode(): boolean {\r\n    return this._ribbon == \"PDFPreview\";\r\n  }\r\n\r\n  public get fileMenuMode(): boolean {\r\n    return this._ribbon == \"File\";\r\n  }\r\n\r\n  public canDelete(): boolean {\r\n    return (\r\n      window.getSelection().toString().length == 0 &&\r\n      document.activeElement.tagName.toLocaleLowerCase() == \"body\" &&\r\n      !this.draggingElement &&\r\n      !this.showSignatureEditor\r\n    );\r\n  }\r\n\r\n  public get showSaveToPdfButton(): boolean {\r\n    return this.settings?.showSaveToPdfButton ?? true;\r\n  }\r\n\r\n  public get showEditButton(): boolean {\r\n    return this.settings?.showEditButton ?? false;\r\n  }\r\n\r\n  public set embeddedMode(value) {\r\n    this._embeddedMode = value;\r\n  }\r\n\r\n  public get embeddedMode(): boolean {\r\n    return this._embeddedMode || this.properties?.embeddedMode === true;\r\n  }\r\n\r\n  public get cursor(): string {\r\n    return this._cursor;\r\n  }\r\n  public get zoom() {\r\n    return this._zoom;\r\n  }\r\n\r\n  public set requestUrl(value: string) {\r\n    this._requestUrl = value;\r\n    this.isWebView = value == \"WebView\";\r\n  }\r\n\r\n  public get requestUrl(): string {\r\n    return this._requestUrl;\r\n  }\r\n\r\n  public set zoom(value: number) {\r\n    if (value <= 0.1) {\r\n      this._zoom = 0.1;\r\n    } else if (value >= 4) {\r\n      this._zoom = 4;\r\n    } else {\r\n      this._zoom = value;\r\n    }\r\n  }\r\n  public set cursor(value: string) {\r\n    if (value == \"default\" && this.selectedComponent?.hover) {\r\n      this._cursor = \"move\";\r\n    } else {\r\n      this._cursor = value;\r\n    }\r\n  }\r\n  public formattingDate(dateFormat) {\r\n    let result = dateFormat\r\n      .replace(/M/g, \"k\")\r\n      .replace(/m/g, \"r\")\r\n      .replace(/tt/g, \"a\")\r\n      .replace(/k/g, \"m\")\r\n      .replace(/r/g, \"M\");\r\n    return result;\r\n  }\r\n  public setZoomFromString(zoomString: string) {\r\n    if (typeof zoomString != \"string\") {\r\n      return;\r\n    }\r\n    if (zoomString.includes(\"%\")) {\r\n      let zoom = Number(zoomString.slice(0, zoomString.indexOf(\"%\"))) / 100;\r\n      if (zoom <= 0.1) {\r\n        this.zoom = 0.1;\r\n      } else if (zoom >= 4) {\r\n        this.zoom = 4;\r\n      } else {\r\n        this.zoom = zoom;\r\n      }\r\n    } else {\r\n      switch (zoomString.toLowerCase()) {\r\n        case \"pagewidth\":\r\n          this.formEvents.next({ name: \"SetZoomByPageWidth\" });\r\n          break;\r\n        case \"onepage\":\r\n          this.formEvents.next({ name: \"SetZoomByOnePage\" });\r\n          break;\r\n        default:\r\n          this.formEvents.next({ name: \"SetDefaultZoom\" });\r\n          break;\r\n      }\r\n    }\r\n  }\r\n  public getPositionRelativeToForm(element) {\r\n    let elementRect = element?.getBoundingClientRect();\r\n    let formRect = this.rootFormElement?.getBoundingClientRect();\r\n    if (formRect) {\r\n      return new DOMRect(\r\n        elementRect?.x - formRect?.x,\r\n        elementRect?.y - formRect?.y,\r\n        elementRect?.width,\r\n        elementRect?.height\r\n      );\r\n    } else {\r\n      return elementRect;\r\n    }\r\n  }\r\n  public getBooleanSetting(settingName: string): boolean {\r\n    return this.settings && this.isNotEmpty(this.settings[settingName]) && this.isBoolean(this.settings[settingName])\r\n      ? this.settings[settingName]\r\n      : true;\r\n  }\r\n  public isBoolean(value): boolean {\r\n    return typeof value === \"boolean\";\r\n  }\r\n  public isNotEmpty(value): boolean {\r\n    return value?.toString()?.length > 0;\r\n  }\r\n  public saveLastFormState() {\r\n    this.form.reportVersion = this.buildVersion;\r\n    this.form.reportChanged = StiStaticHelperService.dateToJsonDate(new Date());\r\n    this.lastSavedFormState = this.form.saveToReportJsonObject().serialize();\r\n  }\r\n  public toCamelCase(obj) {\r\n    if (Array.isArray(obj)) {\r\n      return obj.map((v) => this.toCamelCase(v));\r\n    } else if (obj != null && obj.constructor === Object) {\r\n      return Object.keys(obj).reduce(\r\n        (result, key) => ({\r\n          ...result,\r\n          [camelCase(key)]: this.toCamelCase(obj[key]),\r\n        }),\r\n        {}\r\n      );\r\n    }\r\n    return obj;\r\n  }\r\n\r\n  public showColumnPreview(index, type?: string) {\r\n    if (\r\n      !type &&\r\n      this.selectedComponent?.element instanceof StiTableElement &&\r\n      !this.selectedComponent?.element.showColumnsEditor\r\n    ) {\r\n      this.selectedComponent.element.showColumnsEditor = true;\r\n      this.needToRefresh.next(true);\r\n    } else if (\r\n      type == \"totals\" &&\r\n      this.selectedComponent?.element instanceof StiTableElement &&\r\n      !this.selectedComponent?.element.showTotalsEditor\r\n    ) {\r\n      this.selectedComponent.element.showTotalsEditor = true;\r\n      this.needToRefresh.next(true);\r\n    }\r\n    setTimeout(() => {\r\n      if (this.currentContentEditableItemIndex != index || this.previousSelectedComponent != this.selectedComponent)\r\n        this.currentContentEditableItem.next(index);\r\n      this.currentContentEditableItemIndex = index;\r\n    });\r\n  }\r\n  public showError(message: any, sendedFromButton: boolean = false, buttonElement?) {\r\n    if (message instanceof ArrayBuffer) {\r\n      var enc = new TextDecoder(\"utf-8\");\r\n      message = enc.decode(message);\r\n    } else if (message instanceof Event) {\r\n      message = message.type;\r\n    } else if (message?.text) {\r\n      message = message.text;\r\n    }\r\n    if (buttonElement) {\r\n      this.currentUsedButtonElement = buttonElement;\r\n    }\r\n    this.sendedFromButton = sendedFromButton;\r\n    this.errorWindowMessage = message;\r\n    if (this.errorWindowMessage != \"abort\") {\r\n      this.showErrorWindow = true;\r\n    }\r\n  }\r\n  public getImage(fileName) {\r\n    return this.imagesArray && this.imagesArray[fileName] ? this.imagesArray[fileName] : \"\";\r\n  }\r\n  removeUnusedCells(element: StiTableElement) {\r\n    element.columns.forEach((column) => {\r\n      if (column[\"cells\"].length != element.rowLabels.length) {\r\n        column[\"cells\"].splice(element.rowLabels.length, column[\"cells\"].length - 1);\r\n      }\r\n    });\r\n  }\r\n\r\n  public startPdfExport(form: string) {\r\n    if (form) {\r\n      this.setFormFromString(JSON.stringify(form));\r\n    }\r\n    this.startPdfExportEvent.next(true);\r\n  }\r\n\r\n  public setFormFromString(str: string, loadSavedSetings = false) {\r\n    let form: StiForm = new StiForm();\r\n    form.loadFormJsonString(str);\r\n    if (loadSavedSetings) {\r\n      this.loadSavedSettings();\r\n    }\r\n    this.form = form;\r\n  }\r\n\r\n  public get form(): StiForm {\r\n    return this._form;\r\n  }\r\n\r\n  public set form(form: StiForm) {\r\n    this.updateForm(form);\r\n    this.checkOnUniqueNames();\r\n    form.formEvents.next({ name: \"SetForm\" });\r\n    this.firstFormState = this.form.saveToReportJsonObject().serialize();\r\n    if (this.viewerMode && this.isMobile()) {\r\n      setTimeout(() => {\r\n        this.isMobileViewer.next(true);\r\n      });\r\n    }\r\n  }\r\n  public arrayOfStylesToString(array: string[]): string {\r\n    if (!array) return;\r\n    let styles: string[] = [];\r\n    if (array.length > 0) {\r\n      array.forEach((item) => {\r\n        if (item != \"Underline\") {\r\n          styles.push(item);\r\n        }\r\n      });\r\n    }\r\n    return styles.length > 0 ? styles.join(\" \").toLocaleLowerCase() : \"\";\r\n  }\r\n  public checkOnUniqueNames() {\r\n    this.form.allElements.forEach((element) => {\r\n      let currentName = element.name;\r\n      let uniqueElements = this.form.allElements.filter((elem) => elem.name == currentName);\r\n      if (uniqueElements.length > 1) {\r\n        this.setUniqueName(element);\r\n      }\r\n    });\r\n  }\r\n  public setUniqueName(element) {\r\n    let regex = /\\d+$/;\r\n    let currentName = element.name ?? element.type.replace(\"_\", \"\").replace(\"Element\", \"\");\r\n    let index = 0;\r\n    let currentPosition = element.name?.match(regex) ? element.name?.match(regex)[0] : null;\r\n    if (currentPosition) {\r\n      currentName = currentName.slice(0, currentName.length - currentPosition.length);\r\n    }\r\n    while (this.form.allElements.find((element) => element.name == `${currentName + (index != 0 ? index + 1 : \"\")}`)) {\r\n      index++;\r\n    }\r\n    element.name = currentName + (index != 0 ? index + 1 : \"\");\r\n  }\r\n\r\n  checkNumberRange(element: StiNumberBoxElement) {\r\n    if (element.rangeFormat == StiNumberRangeFormat.Digits) {\r\n      let maximumValueString = \"\";\r\n      for (let index = element.maximum; index > 0; index--) {\r\n        maximumValueString += \"9\";\r\n      }\r\n      let maximumValue = Number(maximumValueString);\r\n      let minimumValue = -Number(maximumValueString);\r\n      if (element.value > maximumValue) {\r\n        element.value = maximumValue;\r\n      } else if (element.value < minimumValue) {\r\n        element.value = minimumValue;\r\n      }\r\n    } else {\r\n      if (element.value > element.maximum) {\r\n        element.value = Number(element.maximum);\r\n      } else if (element.value < element.minimum) {\r\n        element.value = Number(element.minimum);\r\n      }\r\n    }\r\n  }\r\n  showTrialLog() {\r\n    if (this.showTrialBar || this.showTrialTitle || this.showTrialModalWindow) {\r\n      console.warn(\"You are using a trial version of the Stimulsoft PDF Forms!\");\r\n    }\r\n  }\r\n  loadSavedSettings() {\r\n    if (\r\n      localStorage.getItem(\"StiFormSettings\") &&\r\n      (this.isWebView || this.isCloudMode || this.properties?.cloudPlanIdent)\r\n    ) {\r\n      this.form?.settings?.loadFormJsonString(localStorage.getItem(\"StiFormSettings\"));\r\n    }\r\n  }\r\n  saveSettings() {\r\n    localStorage.removeItem(\"StiFormSettings\");\r\n    localStorage.setItem(\"StiFormSettings\", this.form.settings.saveToJsonObject({}).serialize());\r\n  }\r\n  public isMobile(): boolean {\r\n    const toMatch = [/Android/i, /webOS/i, /iPhone/i, /iPad/i, /iPod/i, /BlackBerry/i, /Windows Phone/i];\r\n    return toMatch.some((toMatchItem) => {\r\n      return navigator.userAgent.match(toMatchItem);\r\n    });\r\n  }\r\n  public getBrowserType() {\r\n    let userAgent = navigator.userAgent;\r\n    let browserName;\r\n    if (userAgent.match(/chrome|chromium|crios/i)) {\r\n      browserName = \"chrome\";\r\n    } else if (userAgent.match(/firefox|fxios/i)) {\r\n      browserName = \"firefox\";\r\n    } else if (userAgent.match(/safari/i)) {\r\n      browserName = \"safari\";\r\n    } else if (userAgent.match(/opr\\//i)) {\r\n      browserName = \"opera\";\r\n    } else if (userAgent.match(/edg/i)) {\r\n      browserName = \"edge\";\r\n    } else {\r\n      browserName = \"No browser detection\";\r\n    }\r\n    return browserName;\r\n  }\r\n  public getScaleWithTranslate(): string {\r\n    return `translate(${this.zoom <= 1 ? 0 : ((this.zoom - 1) / 2) * 100}%) scale(${this.zoom})`;\r\n  }\r\n  public getScale(): string {\r\n    return `scale(${this.zoom})`;\r\n  }\r\n  public updateForm(form: StiForm) {\r\n    this._form = form;\r\n    this.selectedComponent = null;\r\n    this.lastUsedPage = null;\r\n    form.formEvents.subscribe((e) => this.formEvents.next(e));\r\n    if (form.pages?.length > 0) {\r\n      this.previousPadding = form.pages[0].padding.clone();\r\n      this.previousContentAreaWidth = form.pages[0].contentAreaWidth;\r\n\r\n      setTimeout(() => {\r\n        this.needToRefresh.next(true);\r\n      }, 0);\r\n    }\r\n    form.formEvents.next({ name: \"UpdateForm\" });\r\n  }\r\n\r\n  public set elementToUpdate(value: StiFormElement) {\r\n    let oldValue = this._elementToUpdate;\r\n    this._elementToUpdate = value;\r\n    if (oldValue != value) {\r\n      this.formEvents.next({ name: \"ElementToUpdateChanged\", value: value });\r\n    }\r\n  }\r\n\r\n  public get elementToUpdate(): StiFormElement {\r\n    return this._elementToUpdate;\r\n  }\r\n\r\n  public get selectedComponent(): StiComponent {\r\n    return this._selectedComponent;\r\n  }\r\n\r\n  public set selectedComponent(value: StiComponent) {\r\n    let oldValue = this._selectedComponent;\r\n    this._selectedPage = null;\r\n    this._selectedComponent = value;\r\n    this.needToRefresh.next(true);\r\n    if (oldValue != value) {\r\n      this.formEvents.next({ name: \"SelectedComponentChanged\", value: value });\r\n    }\r\n  }\r\n  public get selectedPage(): StiFormPageElement {\r\n    return this._selectedPage;\r\n  }\r\n  public set selectedPage(value: StiFormPageElement) {\r\n    let oldValue = this._selectedPage;\r\n    this._selectedComponent = null;\r\n    this._selectedPage = value;\r\n    this.needToRefresh.next(true);\r\n    if (oldValue != value) {\r\n      this.formEvents.next({ name: \"SelectedPageChanged\", value: value });\r\n    }\r\n  }\r\n  public get lastUsedPage(): StiFormPageElement {\r\n    return this._lastUsedPage ?? this.selectedPage ?? this.form?.pages[0];\r\n  }\r\n  public set lastUsedPage(value: StiFormPageElement) {\r\n    this._lastUsedPage = value;\r\n  }\r\n\r\n  public getSelectedComponentPage(): StiFormPageElement {\r\n    return this.getElementPage(this._selectedComponent?.element);\r\n  }\r\n\r\n  public getElementPage(element: StiFormElement): StiFormPageElement {\r\n    return this.form?.pages.find((p) => p.elements.find((e) => e == element) != null);\r\n  }\r\n  public getElementPageForScroll(element: StiFormElement): StiFormPageElement {\r\n    return this.form?.pages.find((p) =>\r\n      p.elements.find((e) => e == element) != null\r\n        ? p.elements.find((e) => e == element)\r\n        : this.getElementPanel(element)\r\n    );\r\n  }\r\n  public overToolbar(x: number, y: number): boolean {\r\n    let elementsDiv = document.elementsFromPoint(x, y).find((elem) => elem?.classList.contains(\"elements\"));\r\n    return elementsDiv ? true : false;\r\n  }\r\n  public getElementPanel(element: StiFormElement): StiPanelElement {\r\n    let result: StiPanelElement;\r\n    this.form.pages.forEach((page) => {\r\n      page.allElements.forEach((panel) => {\r\n        if (panel instanceof StiPanelElement && panel.elements.indexOf(element) >= 0) {\r\n          result = panel;\r\n        }\r\n      });\r\n    });\r\n    return result;\r\n  }\r\n\r\n  public formatNumber(\r\n    value: number,\r\n    format: StiThousandSeparator,\r\n    decimalDigits: number,\r\n    unitAlignment: StiUnitAlignment,\r\n    unit: string\r\n  ) {\r\n    let formatedValue = this.formatNumberWithThousandSeparator(value, format, decimalDigits);\r\n    switch (unitAlignment) {\r\n      case StiUnitAlignment.PrefixInside:\r\n        return `${unit}${formatedValue}`;\r\n      case StiUnitAlignment.PrefixInsideSpace:\r\n        return `${unit} ${formatedValue}`;\r\n      case StiUnitAlignment.SuffixInside:\r\n        return `${formatedValue}${unit}`;\r\n      case StiUnitAlignment.SuffixInsideSpace:\r\n        return `${formatedValue} ${unit}`;\r\n    }\r\n    return formatedValue;\r\n  }\r\n\r\n  public getFormattedValue(element: StiFormattedElement, inValue: any) {\r\n    let value = inValue;\r\n    try {\r\n      if (typeof value === \"number\" && !isNaN(value)) {\r\n        value = this.formatNumberWithThousandSeparator(\r\n          parseFloat(value.toFixed(element.decimalDigits)),\r\n          element.thousandSeparator,\r\n          element.decimalDigits\r\n        );\r\n      }\r\n    } catch {\r\n      value = \"\";\r\n    }\r\n    return value;\r\n  }\r\n  public formatNumberWithThousandSeparator(value: number, format: StiThousandSeparator, decimalDigits: number): string {\r\n    let isNegative = false;\r\n    if (value == undefined) {\r\n      return \"\";\r\n    }\r\n    let result;\r\n    if (decimalDigits > 0) {\r\n      result = value.toFixed(decimalDigits);\r\n    } else {\r\n      result = value.toString();\r\n    }\r\n    if (result.indexOf(\"-\") != -1) {\r\n      isNegative = true;\r\n    }\r\n    if (isNegative) {\r\n      result = result.slice(1, result.length);\r\n    }\r\n    if (format == StiThousandSeparator.None) {\r\n      return (isNegative ? \"-\" : \"\") + result;\r\n    } else if (format == StiThousandSeparator.NoneComma) {\r\n      return (isNegative ? \"-\" : \"\") + result.replace(\".\", \",\");\r\n    } else if (format == StiThousandSeparator.Comma) {\r\n      var chars = (decimalDigits > 0 ? result.slice(0, indexOf(result, \".\")) : result).split(\"\").reverse();\r\n      var withCommas = [];\r\n      for (var i = 1; i <= chars.length; i++) {\r\n        withCommas.push(chars[i - 1]);\r\n        if (i % 3 == 0 && i != chars.length) {\r\n          withCommas.push(\",\");\r\n        }\r\n      }\r\n      result =\r\n        decimalDigits > 0\r\n          ? withCommas.reverse().join(\"\") + result.slice(indexOf(result, \".\"), result.length)\r\n          : withCommas.reverse().join(\"\");\r\n      return (isNegative ? \"-\" : \"\") + result;\r\n    } else if (format == StiThousandSeparator.Dot) {\r\n      var chars = (decimalDigits > 0 ? result.slice(0, indexOf(result, \".\")) : result).split(\"\").reverse();\r\n      var withDotts = [];\r\n      for (var i = 1; i <= chars.length; i++) {\r\n        withDotts.push(chars[i - 1]);\r\n        if (i % 3 == 0 && i != chars.length) {\r\n          withDotts.push(\".\");\r\n        }\r\n      }\r\n      result =\r\n        decimalDigits > 0\r\n          ? withDotts.reverse().join(\"\") + \",\" + result.slice(indexOf(result, \".\") + 1, result.length)\r\n          : withDotts.reverse().join(\"\");\r\n      return (isNegative ? \"-\" : \"\") + result;\r\n    } else if (format == StiThousandSeparator.Apostrophe) {\r\n      var chars = (decimalDigits > 0 ? result.slice(0, indexOf(result, \".\")) : result).split(\"\").reverse();\r\n      var withSpaces = [];\r\n      for (var i = 1; i <= chars.length; i++) {\r\n        withSpaces.push(chars[i - 1]);\r\n        if (i % 3 == 0 && i != chars.length) {\r\n          withSpaces.push(\"`\");\r\n        }\r\n      }\r\n      result =\r\n        decimalDigits > 0\r\n          ? withSpaces.reverse().join(\"\") + \".\" + result.slice(indexOf(result, \".\") + 1, result.length)\r\n          : withSpaces.reverse().join(\"\");\r\n      return (isNegative ? \"-\" : \"\") + result;\r\n    }\r\n  }\r\n\r\n  public getWindowScaling() {\r\n    return window.devicePixelRatio * 100;\r\n  }\r\n  public getScaling() {\r\n    if (this.getWindowScaling() < 125) {\r\n      return \"\";\r\n    } else if (125 <= this.getWindowScaling() && this.getWindowScaling() < 150) {\r\n      return \"_x1_25\";\r\n    } else if (150 <= this.getWindowScaling() && this.getWindowScaling() < 175) {\r\n      return \"_x1_5\";\r\n    } else if (175 <= this.getWindowScaling() && this.getWindowScaling() < 200) {\r\n      return \"_x1_75\";\r\n    } else if (200 <= this.getWindowScaling() && this.getWindowScaling() < 300) {\r\n      return \"_x2\";\r\n    } else if (300 <= this.getWindowScaling() && this.getWindowScaling() < 400) {\r\n      return \"_x3\";\r\n    } else if (this.getWindowScaling() > 400) {\r\n      return \"_x4\";\r\n    }\r\n  }\r\n  public getPageFromPoint(x: number, y: number): StiFormPageElement {\r\n    let pageDiv;\r\n    for (let elem of document.elementsFromPoint(x, y)) {\r\n      if (elem?.classList.contains(StiModelService.PAGE_CLASS)) {\r\n        pageDiv = elem;\r\n        break;\r\n      }\r\n    }\r\n    if (pageDiv) {\r\n      for (let page of this.form.pages) {\r\n        if (page.element?.nativeElement == pageDiv) {\r\n          pageDiv = page;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    // let pageDiv = document.elementsFromPoint(x, y).find((elem) => elem?.classList.contains(StiModelService.PAGE_CLASS));\r\n    return pageDiv ? pageDiv : null;\r\n  }\r\n  public getPanelFromPoint(x: number, y: number, excludeId?: string): StiPanelElement {\r\n    let page = this.getPageFromPoint(x, y);\r\n    let panelDivs = document\r\n      .elementsFromPoint(x, y)\r\n      .filter((elem) => elem?.classList.contains(StiModelService.PANEL_CLASS) && elem.id != excludeId);\r\n    return panelDivs && page\r\n      ? (page.allElements.find((e) => panelDivs.find((p) => e.guid == p.id)) as StiPanelElement)\r\n      : null;\r\n  }\r\n\r\n  public getMouseOverPagePosition(event: MouseEvent): any {\r\n    let page = this.getPageFromPoint(event.clientX, event.clientY);\r\n    if (page) {\r\n      let rect = this.getPositionRelativeToForm(page.element.nativeElement);\r\n      return {\r\n        x: event.clientX - (rect.left + page.padding.left * this.zoom),\r\n        y: event.clientY - (rect.top + page.padding.top * this.zoom),\r\n      };\r\n    }\r\n    return null;\r\n  }\r\n  public getMouseOverPanelPosition(event: MouseEvent, excludeId?: string): any {\r\n    let panel = this.getPanelFromPoint(event.clientX, event.clientY, excludeId);\r\n    if (panel) {\r\n      let rect = this.getPositionRelativeToForm(panel.element.nativeElement);\r\n      return { x: event.clientX - rect.left, y: event.clientY - rect.top };\r\n    }\r\n    return null;\r\n  }\r\n  public loadAttachedFile() {\r\n    let input = document.createElement(\"input\");\r\n    input.type = \"file\";\r\n    let this_ = this;\r\n    input.onchange = (_) => {\r\n      let file = Array.from(input.files)[0];\r\n      var reader = new FileReader();\r\n      reader.readAsDataURL(file);\r\n      reader.onload = function () {\r\n        this_.form.attachedFiles.push(reader.result);\r\n        this_.interfaceEvent.next({ name: \"FileAttached\", data: reader.result });\r\n      };\r\n    };\r\n    input.click();\r\n  }\r\n  public downloadFiles(data: any, file_name: string) {\r\n    let file = new Blob([data]);\r\n    let a = document.createElement(\"a\"),\r\n      url = URL.createObjectURL(file);\r\n    a.href = url;\r\n    a.download = file_name;\r\n    document.body.appendChild(a);\r\n    a.click();\r\n    setTimeout(function () {\r\n      document.body.removeChild(a);\r\n      window.URL.revokeObjectURL(url);\r\n    }, 0);\r\n  }\r\n\r\n  constructor() {\r\n    let savedData = {};\r\n    this.interfaceEvent.subscribe(e => {\r\n      switch (e.name) {\r\n        case \"setRibbon\":\r\n          if (!this.viewerMode) {\r\n            if (e.data.ribbon == \"Preview\") {\r\n              savedData = { form: this.form, selectedGuid: this.selectedComponent?.element.guid ?? this.selectedPage?.guid };\r\n              let form = new StiForm();\r\n              form.loadFormJsonString(this.form.saveToJsonObject().serialize());\r\n              this._form = form;\r\n              this.formEvents.next({ name: \"ValueChanged\" });\r\n            } else if (e.data.oldRibbon == \"Preview\") {\r\n              let form: StiForm = new StiForm();\r\n              form.loadFormJsonString(savedData[\"form\"].saveToJsonObject().serialize());\r\n              let selectedElement = form.getElementByGuid(savedData[\"selectedGuid\"]);\r\n              if (selectedElement) {\r\n                if (!(selectedElement instanceof StiFormPageElement)) {\r\n                  selectedElement.needToSelectComponent = true;\r\n                } else {\r\n                  this.selectedPage = selectedElement;\r\n                }\r\n              }\r\n              this._form = form;\r\n              this.formEvents.next({ name: \"ValueChanged\" });\r\n            }\r\n          }\r\n          break;\r\n      }\r\n    });\r\n\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport { StiForm } from \"../elements/StiForm\";\r\n\r\n@Injectable()\r\nexport class StiNameService {\r\n  constructor(public model: StiModelService) { }\r\n\r\n  public getElementName(component: StiFormElement | StiFormPageElement, prefix?: string): string {\r\n    return StiNameService.getElementName2(component, this.model.form, prefix);\r\n  }\r\n\r\n  public checkElementName(element: StiFormElement): string {\r\n    let prefix = element.name;\r\n    while (prefix && prefix.length > 0 && !isNaN(parseFloat(prefix[prefix.length - 1]))) {\r\n      prefix = prefix.substring(0, prefix.length - 1);\r\n    }\r\n    return this.getElementName(element, prefix);\r\n  }\r\n\r\n  public static getElementName2(component: StiFormElement | StiFormPageElement, form: StiForm, prefix?: string): string {\r\n    let index: any = prefix ? \"\" : 1;\r\n    prefix = prefix && prefix.length > 0 ? prefix : component instanceof StiFormPageElement ? \"Page\" : component.type.replace(\"_\", \"\").replace(\"Element\", \"\");\r\n\r\n    while (form.getElementByName(prefix + index) != null) {\r\n      index = index == \"\" ? 2 : index + 1;\r\n    }\r\n\r\n    return prefix + index;\r\n  }\r\n\r\n}\r\n","import { Subject } from \"rxjs\";\r\nimport { FormEvent } from \"../services/objects\";\r\nimport { StiStaticHelperService } from \"../services/sti-static-helper.service\";\r\nimport Guid from \"../system/Guid\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiFormElement } from \"./base/StiFormElement\";\r\nimport { StiFormSettings } from \"./settings/StiFormSettings\";\r\nimport { StiBarcodeElement } from \"./StiBarcodeElement\";\r\nimport { StiCheckBoxElement } from \"./StiCheckBoxElement\";\r\nimport { StiComboBoxElement } from \"./StiComboBoxElement\";\r\nimport { StiDateTimeBoxElement } from \"./StiDateTimeBoxElement\";\r\nimport { StiFormPageElement } from \"./StiFormPageElement\";\r\nimport { StiImageElement } from \"./StiImageElement\";\r\nimport { StiLabelElement } from \"./StiLabelElement\";\r\nimport { StiListBoxElement } from \"./StiListBoxElement\";\r\nimport { StiMultipleSelectionElement } from \"./StiMultipleSelectionElement\";\r\nimport { StiNumberBoxElement } from \"./StiNumberBoxElement\";\r\nimport { StiSignatureElement } from \"./StiSignatureElement\";\r\nimport { StiSingleSelectionElement } from \"./StiSingleSelectionElement\";\r\nimport { StiTableElement } from \"./StiTableElement\";\r\nimport { StiTextBoxElement } from \"./StiTextBoxElement\";\r\nimport { StiCheckBoxColumnItem } from \"./table/columns/StiCheckBoxColumnItem\";\r\nimport { StiComboBoxColumnItem } from \"./table/columns/StiComboBoxColumnItem\";\r\nimport { StiLabelColumnItem } from \"./table/columns/StiLabelColumnItem\";\r\nimport { StiNumberBoxColumnItem } from \"./table/columns/StiNumberBoxColumnItem\";\r\nimport { StiRadioButtonColumnItem } from \"./table/columns/StiRadioButtonColumnItem\";\r\nimport { StiTextBoxColumnItem } from \"./table/columns/StiTextBoxColumnItem\";\r\nimport { StiAdditionalField } from \"./StiAdditionalFieldItem\";\r\nimport { UpdateToViewerMode } from \"../system/interfaces\";\r\nimport { StiNameService } from \"../services/sti-name.service\";\r\n\r\nexport class StiForm {\r\n\r\n  public pages: StiFormPageElement[] = [];\r\n  public attachedFiles: any[] = [];\r\n  public formEvents = new Subject<FormEvent>();\r\n\r\n  private _reportVersion: string = \"\";\r\n  private _reportName: string = \"\";\r\n  private _reportGuid: string = \"\";\r\n  private _reportAlias: string = \"\";\r\n  private _reportCreated: string = \"\";\r\n  private _reportChanged: string = \"\";\r\n  private _reportImage: string = \"\";\r\n  private _versionKey: string = \"\";\r\n  private _userId: string = \"\";\r\n  private _formName: string = \"Form\";\r\n  private _guid = Guid.newGuid().toString();\r\n  private _settings: StiFormSettings = new StiFormSettings(this);\r\n  private _additionalFormFields = new Array<StiAdditionalField>();\r\n\r\n  public get guid(): string {\r\n    return this._guid;\r\n  }\r\n\r\n  public get settings(): StiFormSettings {\r\n    return this._settings;\r\n  }\r\n\r\n  public set settings(value: StiFormSettings) {\r\n    this._settings = value;\r\n  }\r\n\r\n  public addField(name: string, value: string) {\r\n    let field = new StiAdditionalField();\r\n    field.key = name;\r\n    field.value = value;\r\n    this._additionalFormFields.push(field);\r\n  }\r\n\r\n  public clearAdditionalFields() {\r\n    this._additionalFormFields = [];\r\n  }\r\n\r\n  public get additionalFormFields(): StiAdditionalField[] {\r\n    return this._additionalFormFields;\r\n  }\r\n  public get allElements() {\r\n    let elements = [];\r\n    this.pages.forEach((page) => {\r\n      elements.push(page);\r\n      elements.push(page.allElements);\r\n    });\r\n    elements = elements.reduce((a, b) => a.concat(b), []);\r\n    return elements;\r\n  }\r\n  public get formName(): string {\r\n    return this._formName;\r\n  }\r\n  public set formName(value: string) {\r\n    this._formName = value;\r\n  }\r\n  public get reportVersion(): string {\r\n    return this._reportVersion;\r\n  }\r\n  public set reportVersion(value: string) {\r\n    this._reportVersion = value;\r\n  }\r\n  public get reportName(): string {\r\n    return this._reportName;\r\n  }\r\n  public set reportName(value: string) {\r\n    this._reportName = value;\r\n  }\r\n  public get reportGuid(): string {\r\n    return this._reportGuid;\r\n  }\r\n  public set reportGuid(value: string) {\r\n    this._reportGuid = value;\r\n  }\r\n  public get reportAlias(): string {\r\n    return this._reportAlias;\r\n  }\r\n  public set reportAlias(value: string) {\r\n    this._reportAlias = value;\r\n  }\r\n  public get reportCreated(): string {\r\n    return this._reportCreated;\r\n  }\r\n  public set reportCreated(value: string) {\r\n    this._reportCreated = value;\r\n  }\r\n  public get reportChanged(): string {\r\n    return this._reportChanged;\r\n  }\r\n  public set reportChanged(value: string) {\r\n    this._reportChanged = value;\r\n  }\r\n  public get reportImage(): string {\r\n    return this._reportImage;\r\n  }\r\n  public set reportImage(value: string) {\r\n    this._reportImage = value;\r\n  }\r\n  public get versionKey(): string {\r\n    return this._versionKey;\r\n  }\r\n  public set versionKey(value: string) {\r\n    this._versionKey = value;\r\n  }\r\n  public get userId(): string {\r\n    return this._userId;\r\n  }\r\n  public set userId(value: string) {\r\n    this._userId = value;\r\n  }\r\n  constructor() {\r\n    let page = new StiFormPageElement(this);\r\n    page.name = \"Page\";\r\n    this.pages.push(page);\r\n    this.reportCreated = StiStaticHelperService.dateToJsonDate(new Date());\r\n  }\r\n  public createTestValues(): StiJson {\r\n    let jObject = new StiJson();\r\n    jObject.addPropertyString(\"TextBox\", \"Hello\");\r\n    jObject.addPropertyNumberNotNull(\"NumberBox\", 1);\r\n    jObject.addPropertyBool(\"Table.Cell-0-0\", false);\r\n    jObject.addPropertyBool(\"Table.Cell-0-1\", true);\r\n    return jObject;\r\n  }\r\n\r\n  public setFormValues(json: StiJson) {\r\n    let element;\r\n    for (let property of json.properties()) {\r\n      element = { name: property.name, value: property.value };\r\n      this.fillElement(element);\r\n    }\r\n  }\r\n  public fillElement(element) {\r\n    let elem;\r\n    let name;\r\n    let isTable = false;\r\n    if (element.name.indexOf(\".\") != -1) {\r\n      name = element.name.slice(0, element.name.indexOf(\".\"));\r\n      isTable = true;\r\n    } else {\r\n      name = element.name;\r\n    }\r\n    this.pages.forEach((page) => {\r\n      elem = page.allElements.find((elem) => elem.name == name);\r\n    });\r\n    if (elem) {\r\n      if (isTable) {\r\n        let cell = element.name.slice(element.name.indexOf(\".\") + 1, element.name.length);\r\n        this.setTableValue(elem, cell, element.value);\r\n      } else {\r\n        this.setValue(elem, element.value);\r\n      }\r\n    }\r\n  }\r\n  public setValue(element, value) {\r\n    if (element instanceof StiTextBoxElement) {\r\n      element.text = value;\r\n    } else if (element instanceof StiNumberBoxElement) {\r\n      element.value = value;\r\n    } else if (element instanceof StiComboBoxElement) {\r\n      element.selectedOption = value;\r\n    } else if (element instanceof StiListBoxElement) {\r\n      element.selectedOptions = value;\r\n    } else if (element instanceof StiSingleSelectionElement) {\r\n      element.selectedOption = value;\r\n    } else if (element instanceof StiMultipleSelectionElement) {\r\n      element.selectedOptions = value;\r\n    } else if (element instanceof StiCheckBoxElement) {\r\n      element.isChecked = value;\r\n    } /* else if (element instanceof StiSignatureElement) {\r\n      return { name: element.name ?? element.guid, value: element.contentImage };\r\n    }  */ else if (element instanceof StiDateTimeBoxElement) {\r\n      element.dateValue = value;\r\n    } else if (element instanceof StiImageElement) {\r\n      element.image = value;\r\n    } else if (element instanceof StiBarcodeElement) {\r\n      element.img = value;\r\n    } else if (element instanceof StiLabelElement) {\r\n      element.text.value = value;\r\n    }\r\n  }\r\n  public setTableValue(element, cellPath, value) {\r\n    let column = cellPath.split(\"-\")[1];\r\n    let cell = cellPath.split(\"-\")[2];\r\n    let tableColumn = (element as StiTableElement).columns[column];\r\n    if (tableColumn instanceof StiTextBoxColumnItem) {\r\n      tableColumn.cells[cell].text = value;\r\n    } else if (tableColumn instanceof StiNumberBoxColumnItem) {\r\n      tableColumn.cells[cell].value = value;\r\n    } else if (tableColumn instanceof StiComboBoxColumnItem) {\r\n      tableColumn.cells[cell].selectedIndex = value;\r\n    } else if (tableColumn instanceof StiCheckBoxColumnItem) {\r\n      tableColumn.cells[cell].isChecked = value;\r\n    } else if (tableColumn instanceof StiLabelColumnItem) {\r\n      tableColumn.cells[cell] = value;\r\n    } else if (tableColumn instanceof StiRadioButtonColumnItem) {\r\n      tableColumn.cells[cell].isChecked = value;\r\n    }\r\n  }\r\n\r\n  public getElementByName(elementName: string): StiFormElement {\r\n    let finded;\r\n    this.pages.forEach((page) => {\r\n      if (!finded) {\r\n        finded = page.allElements.find((e) => e.name == elementName);\r\n      }\r\n    });\r\n    return finded;\r\n  }\r\n\r\n  public getElementByGuid(guid: string): StiFormElement {\r\n    let finded;\r\n    this.pages.forEach((page) => {\r\n      if (!finded) {\r\n        finded = page.allElements.find((e) => e.guid == guid);\r\n      }\r\n      if (page.guid == guid) {\r\n        finded = page;\r\n      }\r\n    });\r\n    return finded;\r\n  }\r\n\r\n  public saveToJsonObject(options: any = {}): StiJson {\r\n    let rootJsonObject: StiJson = new StiJson(\"\", null, false, options);\r\n    rootJsonObject.addPropertyArray(\"Pages\", this.pages);\r\n    rootJsonObject.addPropertyJObject(\"Settings\", this.settings.saveToJsonObject(options));\r\n    rootJsonObject.addPropertyString(\"Guid\", this.guid);\r\n    rootJsonObject.addPropertyString(\"FormName\", this.formName);\r\n    rootJsonObject.addPropertyString(\"VersionKey\", this.versionKey);\r\n    rootJsonObject.addPropertyString(\"UserId\", this.userId);\r\n    rootJsonObject.addPropertyArray(\"AdditionalFields\", this.additionalFormFields);\r\n    return rootJsonObject;\r\n  }\r\n\r\n  public saveToReportJsonObject(options: any = {}): StiJson {\r\n    let formJson = this.saveToJsonObject(options);\r\n    let root = new StiJson();\r\n    let pages = new StiJson();\r\n    let formContainer = new StiJson();\r\n    formContainer.addPropertyString(\"Ident\", \"StiFormContainer\");\r\n    formContainer.addPropertyJObject(\"Content\", formJson);\r\n    pages.addPropertyJObject(\"0\", formContainer);\r\n    root.addPropertyString(\"ReportVersion\", this.reportVersion);\r\n    root.addPropertyString(\"ReportGuid\", this.reportGuid);\r\n    root.addPropertyString(\"ReportName\", this.reportName);\r\n    root.addPropertyString(\"ReportAlias\", this.reportAlias);\r\n    root.addPropertyString(\"ReportCreated\", this.reportCreated);\r\n    root.addPropertyString(\"ReportChanged\", this.reportChanged);\r\n    root.addPropertyString(\"ReportImage\", this.reportImage);\r\n    root.addPropertyJObject(\"Pages\", pages);\r\n    return root;\r\n  }\r\n\r\n  public loadFormJsonString(text: string) {\r\n    let jObject = new StiJson();\r\n    jObject.deserialize(text);\r\n    this.loadFromJson(jObject);\r\n  }\r\n\r\n  public loadFromJson(jObject: StiJson) {\r\n    var key;\r\n    for (let property of jObject.properties()) {\r\n      if (property.name == \"ReportVersion\") {\r\n        this.reportVersion = property.value;\r\n      } else if (property.name == \"ReportGuid\") {\r\n        this.reportGuid = property.value;\r\n      } else if (property.name == \"ReportName\") {\r\n        this.reportName = property.value;\r\n      } else if (property.name == \"ReportAlias\") {\r\n        this.reportAlias = property.value;\r\n      } else if (property.name == \"ReportCreated\") {\r\n        this.reportCreated = property.value;\r\n      } else if (property.name == \"ReportChanged\") {\r\n        this.reportChanged = property.value;\r\n      } else if (property.name == \"ReportImage\") {\r\n        this.reportImage = property.value;\r\n      } else if (property.name == \"Script\" && property.value && property.value.length < 40) {\r\n        key = property.value;\r\n      }\r\n    }\r\n    try {\r\n      let formContainer = jObject\r\n        .properties()\r\n        .find((p) => p.name == \"Pages\")\r\n        .properties()[0]\r\n        .properties();\r\n      if (formContainer.find((p) => p.name == \"Ident\").value == \"StiFormContainer\") {\r\n        jObject = formContainer.find((p) => p.name == \"Content\").value;\r\n      }\r\n    } catch { }\r\n\r\n    for (let property of jObject.properties()) {\r\n      if (property.name == \"Pages\") {\r\n        this.pages = this.deserializePages(property.value);\r\n      } else if (property.name == \"Settings\" || property.name == \"FormSettings\") {\r\n        this._settings = new StiFormSettings(this);\r\n        this._settings.loadFromJsonObject(property.value);\r\n      } else if (property.name == \"Guid\") {\r\n        this._guid = property.value;\r\n      } else if (property.name == \"FormName\") {\r\n        this._formName = property.value;\r\n      } else if (property.name == \"VersionKey\") {\r\n        this._versionKey = property.value;\r\n      } else if (property.name == \"UserId\") {\r\n        this._userId = property.value;\r\n      } else if (property.name == \"AdditionalFields\") {\r\n        this._additionalFormFields = this.deserializeFields(property.value);\r\n      }\r\n    }\r\n\r\n    if (key && key.length > 0) {\r\n      this._versionKey = key;\r\n    }\r\n\r\n    this.checkElementsName();\r\n  }\r\n\r\n  public deserializePages(jObject: StiJson): any[] {\r\n    let result = [];\r\n    for (let property of jObject.properties()) {\r\n      let page = new StiFormPageElement(this);\r\n      page.loadFromJsonObject(property.value);\r\n      result.push(page);\r\n    }\r\n    return result;\r\n  }\r\n  public deserializeFields(jObject: StiJson): any[] {\r\n    let result = [];\r\n    for (let property of jObject.properties()) {\r\n      let field = new StiAdditionalField();\r\n      field.loadFromJsonObject(property.value);\r\n      result.push(field);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  public updateCultureDependecies() {\r\n    this.pages.forEach((page: StiFormPageElement) => {\r\n      page.allElements.forEach((element: StiFormElement) => {\r\n        if (element.type == \"DateTime_BoxElement\") {\r\n          (element as StiDateTimeBoxElement).updateDateValueString();\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  public updateToViewerMode() {\r\n    this.pages.forEach((page: StiFormPageElement) => {\r\n      page.allElements.forEach((element: StiFormElement) => {\r\n        if (element[\"updateToViewerMode\"]) {\r\n          (element as any as UpdateToViewerMode).updateToViewerMode();\r\n        }\r\n      });\r\n    });\r\n  }\r\n\r\n  private checkElementsName() {\r\n    this.allElements.forEach(e => {\r\n      if (e.name == null || e.name.length == 0) {\r\n        e.name = StiNameService.getElementName2(e, this);\r\n      }\r\n    })\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiComboBoxElement } from \"./elements/StiComboBoxElement\";\r\nimport { StiAddressElement } from \"./elements/StiAddressElement\";\r\nimport { StiBarcodeElement } from \"./elements/StiBarcodeElement\";\r\nimport { StiButtonElement } from \"./elements/StiButtonElement\";\r\nimport { StiCheckBoxElement } from \"./elements/StiCheckBoxElement\";\r\nimport { StiDateTimeBoxElement } from \"./elements/StiDateTimeBoxElement\";\r\nimport { StiForm } from \"./elements/StiForm\";\r\nimport { StiFormPageElement } from \"./elements/StiFormPageElement\";\r\nimport { StiImageElement } from \"./elements/StiImageElement\";\r\nimport { StiLabelElement } from \"./elements/StiLabelElement\";\r\nimport StiLineElement from \"./elements/StiLineElement\";\r\nimport { StiListBoxElement } from \"./elements/StiListBoxElement\";\r\nimport { StiMultipleSelectionElement } from \"./elements/StiMultipleSelectionElement\";\r\nimport { StiNumberBoxElement } from \"./elements/StiNumberBoxElement\";\r\nimport { StiPanelElement } from \"./elements/StiPanelElement\";\r\nimport { StiSignatureElement } from \"./elements/StiSignatureElement\";\r\nimport { StiSingleSelectionElement } from \"./elements/StiSingleSelectionElement\";\r\nimport { StiTableElement } from \"./elements/StiTableElement\";\r\nimport { StiTextBoxElement } from \"./elements/StiTextBoxElement\";\r\nimport { StiTextElement } from \"./elements/StiTextElement\";\r\nimport { Subject } from \"rxjs\";\r\nimport { first } from \"rxjs/operators\";\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class StimulsoftFormsService {\r\n  public serviceEvents = new Subject<any>();\r\n\r\n  public serviceEventsCallbacks = new Subject<any>();\r\n\r\n  constructor() {}\r\n\r\n  /**\r\n   * Post custom data to controller\r\n   * @param data to send to controller\r\n   * @param func callback function\r\n   * @param options to send to controller\r\n   */\r\n  public postData(data: any, func: any, options?: any) {\r\n    this.serviceEvents.next({ action: \"postData\", data: data, func: func, options: options });\r\n  }\r\n  /**\r\n   * Add Element to Form\r\n   * @param elementType\r\n   * Text\r\n   * TextBox\r\n   * Table\r\n   * SingleSelection\r\n   * Signature\r\n   * Panel\r\n   * NumberBox\r\n   * MultipleSelection\r\n   * ListBox\r\n   * Line\r\n   * Label\r\n   * Image\r\n   * DateTimeBox\r\n   * CheckBox\r\n   * ComboBox\r\n   * Button\r\n   * BarCode\r\n   * Address\r\n   */\r\n  public addElementToForm(elementType: string) {\r\n    if (\r\n      !(this.createElement(elementType) instanceof StiFormPageElement) &&\r\n      !(this.createElement(elementType) instanceof StiForm)\r\n    ) {\r\n      this.serviceEvents.next({\r\n        action: \"addElementToForm\",\r\n        element: this.createElement(elementType),\r\n      });\r\n    }\r\n  }\r\n  /**\r\n   * Show form tab\r\n   * @param tabName\r\n   * Home\r\n   * Insert\r\n   * Preview\r\n   * PdfPreview\r\n   */\r\n  public showTab(tabName: string) {\r\n    switch (tabName.toLowerCase()) {\r\n      case \"home\":\r\n        this.serviceEvents.next({ action: \"showTab\", tabName: \"Home\" });\r\n        break;\r\n      case \"insert\":\r\n        this.serviceEvents.next({ action: \"showTab\", tabName: \"Insert\" });\r\n        break;\r\n      case \"preview\":\r\n        this.serviceEvents.next({ action: \"showTab\", tabName: \"Preview\" });\r\n        break;\r\n      case \"pdfpreview\":\r\n        this.serviceEvents.next({ action: \"showTab\", tabName: \"PDFPreview\" });\r\n        break;\r\n      default:\r\n        this.serviceEvents.next({ action: \"showTab\", tabName: \"Home\" });\r\n        break;\r\n    }\r\n  }\r\n  // Showing form file menu\r\n  public showFileMenu() {\r\n    this.serviceEvents.next({ action: \"showFileMenu\" });\r\n  }\r\n  // Showing form save menu\r\n  public showSaveMenu() {\r\n    this.serviceEvents.next({ action: \"showSaveMenu\" });\r\n  }\r\n  // Download pdf file of current form\r\n  public exportToPdf(readOnly: boolean = false, pdfACompliance: boolean = false) {\r\n    this.serviceEvents.next({ action: \"exportToPdf\", readOnly: readOnly, pdfACompliance: pdfACompliance });\r\n  }\r\n  // Return pdf bytes of current form\r\n  public getPdfBytes(readOnly: boolean = false, pdfACompliance: boolean = false) {\r\n    this.serviceEvents.next({ action: \"getPdfBytes\", readOnly: readOnly, pdfACompliance: pdfACompliance });\r\n    return this.serviceEventsCallbacks\r\n      .pipe(first())\r\n      .toPromise()\r\n      .then((data) => {\r\n        if (data.action == \"pdfBytesCallback\") {\r\n          return data.value;\r\n        }\r\n      });\r\n  }\r\n  /**\r\n   * Set form zoom\r\n   * @param zoom\r\n   * PageWidth\r\n   * OnePage\r\n   * from 10%\r\n   * to 400%\r\n   */\r\n  public setZoom(zoom: string) {\r\n    this.serviceEvents.next({ action: \"setZoom\", zoom: zoom });\r\n  }\r\n  /**\r\n   * Create form element\r\n   * @param elementType\r\n   * Text\r\n   * TextBox\r\n   * Table\r\n   * SingleSelection\r\n   * Signature\r\n   * Panel\r\n   * NumberBox\r\n   * MultipleSelection\r\n   * ListBox\r\n   * Line\r\n   * Label\r\n   * Image\r\n   * DateTimeBox\r\n   * CheckBox\r\n   * ComboBox\r\n   * Button\r\n   * BarCode\r\n   * Address\r\n   * Page\r\n   * Form\r\n   * @returns Element object\r\n   */\r\n  public createElement(elementType: string) {\r\n    return new (this.getElementClass(elementType))();\r\n  }\r\n\r\n  /**\r\n   * Get class of form element\r\n   * @param type\r\n   * Text\r\n   * TextBox\r\n   * Table\r\n   * SingleSelection\r\n   * Signature\r\n   * Panel\r\n   * NumberBox\r\n   * MultipleSelection\r\n   * ListBox\r\n   * Line\r\n   * Label\r\n   * Image\r\n   * DateTimeBox\r\n   * CheckBox\r\n   * ComboBox\r\n   * Button\r\n   * BarCode\r\n   * Address\r\n   * Page\r\n   * Form\r\n   * @returns element Class\r\n   */\r\n  public getElementClass(type: string): any {\r\n    if (type == \"TextElement\" || type == \"Text\") {\r\n      return StiTextElement;\r\n    } else if (type == \"Text_BoxElement\" || type == \"TextBox\") {\r\n      return StiTextBoxElement;\r\n    } else if (type == \"TableElement\" || type == \"Table\") {\r\n      return StiTableElement;\r\n    } else if (type == \"Single_SelectionElement\" || type == \"SingleSelection\") {\r\n      return StiSingleSelectionElement;\r\n    } else if (type == \"SignatureElement\" || type == \"Signature\") {\r\n      return StiSignatureElement;\r\n    } else if (type == \"PanelElement\" || type == \"Panel\") {\r\n      return StiPanelElement;\r\n    } else if (type == \"Number_BoxElement\" || type == \"NumberBox\") {\r\n      return StiNumberBoxElement;\r\n    } else if (type == \"Multiple_SelectionElement\" || type == \"MultipleSelection\") {\r\n      return StiMultipleSelectionElement;\r\n    } else if (type == \"List_BoxElement\" || type == \"ListBox\") {\r\n      return StiListBoxElement;\r\n    } else if (type == \"LineElement\" || type == \"Line\") {\r\n      return StiLineElement;\r\n    } else if (type == \"LabelElement\" || type == \"Label\") {\r\n      return StiLabelElement;\r\n    } else if (type == \"ImageElement\" || type == \"Image\") {\r\n      return StiImageElement;\r\n    } else if (type == \"DateTime_BoxElement\" || type == \"DateTimeBox\") {\r\n      return StiDateTimeBoxElement;\r\n    } else if (type == \"Combo_BoxElement\" || type == \"ComboBox\") {\r\n      return StiComboBoxElement;\r\n    } else if (type == \"Check_BoxElement\" || type == \"CheckBox\") {\r\n      return StiCheckBoxElement;\r\n    } else if (type == \"ButtonElement\" || type == \"Button\") {\r\n      return StiButtonElement;\r\n    } else if (type == \"BarCodeElement\" || type == \"BarCode\") {\r\n      return StiBarcodeElement;\r\n    } else if (type == \"AddressElement\" || type == \"Address\") {\r\n      return StiAddressElement;\r\n    } else if (type == \"Page\") {\r\n      return StiFormPageElement;\r\n    } else if (type == \"Form\") {\r\n      return StiForm;\r\n    }\r\n    // return this.pageElement.getElementTypes()[type] ?? StiPanelElement;\r\n  }\r\n\r\n  _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n\r\n  public base64Encode(input) {\r\n    if (input == null) return \"\";\r\n\r\n    // Decode from UTF-8 text\r\n    if (typeof unescape != \"undefined\") {\r\n      input = unescape(encodeURIComponent(input));\r\n    } else {\r\n      input = input.replace(/\\r\\n/g, \"\\n\");\r\n      var utftext = \"\";\r\n      for (var n = 0; n < input.length; n++) {\r\n        var c = input.charCodeAt(n);\r\n\r\n        if (c < 128) {\r\n          utftext += String.fromCharCode(c);\r\n        } else if (c > 127 && c < 2048) {\r\n          utftext += String.fromCharCode((c >> 6) | 192);\r\n          utftext += String.fromCharCode((c & 63) | 128);\r\n        } else {\r\n          utftext += String.fromCharCode((c >> 12) | 224);\r\n          utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n          utftext += String.fromCharCode((c & 63) | 128);\r\n        }\r\n      }\r\n\r\n      input = utftext;\r\n    }\r\n\r\n    // Encode to Base64 string\r\n    if (typeof window.btoa != \"undefined\") return window.btoa(input);\r\n\r\n    var output = \"\";\r\n    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\r\n    var i = 0;\r\n\r\n    while (i < input.length) {\r\n      chr1 = input.charCodeAt(i++);\r\n      chr2 = input.charCodeAt(i++);\r\n      chr3 = input.charCodeAt(i++);\r\n\r\n      enc1 = chr1 >> 2;\r\n      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n      enc4 = chr3 & 63;\r\n\r\n      if (isNaN(chr2)) enc3 = enc4 = 64;\r\n      else if (isNaN(chr3)) enc4 = 64;\r\n\r\n      output =\r\n        output +\r\n        this._keyStr.charAt(enc1) +\r\n        this._keyStr.charAt(enc2) +\r\n        this._keyStr.charAt(enc3) +\r\n        this._keyStr.charAt(enc4);\r\n    }\r\n\r\n    return output;\r\n  }\r\n\r\n  public base64Decode(input) {\r\n    if (input == null) return \"\";\r\n    var output = \"\";\r\n\r\n    // Decode from Base64 string\r\n    if (typeof window.atob != \"undefined\") {\r\n      output = window.atob(input);\r\n    } else {\r\n      var chr1, chr2, chr3;\r\n      var enc1, enc2, enc3, enc4;\r\n      var i = 0;\r\n\r\n      input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n      while (i < input.length) {\r\n        enc1 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc2 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc3 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc4 = this._keyStr.indexOf(input.charAt(i++));\r\n\r\n        chr1 = (enc1 << 2) | (enc2 >> 4);\r\n        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n        chr3 = ((enc3 & 3) << 6) | enc4;\r\n\r\n        output = output + String.fromCharCode(chr1);\r\n\r\n        if (enc3 != 64) {\r\n          output = output + String.fromCharCode(chr2);\r\n        }\r\n        if (enc4 != 64) {\r\n          output = output + String.fromCharCode(chr3);\r\n        }\r\n      }\r\n    }\r\n\r\n    // Encode to UTF-8 string\r\n    if (typeof escape != \"undefined\") return decodeURIComponent(escape(output));\r\n\r\n    var string = \"\";\r\n    var i = 0;\r\n    var c = 0;\r\n    var c1 = 0;\r\n    var c2 = 0;\r\n    var c3 = 0;\r\n\r\n    while (i < output.length) {\r\n      c = output.charCodeAt(i);\r\n\r\n      if (c < 128) {\r\n        string += String.fromCharCode(c);\r\n        i++;\r\n      } else if (c > 191 && c < 224) {\r\n        c2 = output.charCodeAt(i + 1);\r\n        string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\r\n        i += 2;\r\n      } else {\r\n        c2 = output.charCodeAt(i + 1);\r\n        c3 = output.charCodeAt(i + 2);\r\n        string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n        i += 3;\r\n      }\r\n    }\r\n\r\n    return string;\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport StiRectangleGeometry from \"../properties/StiRectangleGeometry\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiNameService } from \"../services/sti-name.service\";\r\n\r\n@Injectable()\r\nexport default class StiRectangleGeometryLayout {\r\n  public width: number;\r\n  public height: number;\r\n  constructor(public model: StiModelService, public nameService: StiNameService) { }\r\n  public insertElement(newElement: StiFormElement, contentAreaWidth: number = 0) {\r\n    // let fixedGeometry = this.fixForInsert(newElement.geometry);\r\n    let parentElement = this.model.getElementPage(newElement) ?? this.model.getElementPanel(newElement);\r\n    let otherElements = Array.from(parentElement.elements);\r\n    otherElements.splice(otherElements.indexOf(newElement), 1);\r\n    if (newElement) {\r\n      let fixedGeometry = newElement.geometry;\r\n      this.insertFixed(fixedGeometry, newElement, otherElements, contentAreaWidth);\r\n    }\r\n  }\r\n\r\n  public isHigherThan(left: StiRectangleGeometry, right: StiRectangleGeometry): boolean {\r\n    return left.bottom <= right.y;\r\n  }\r\n\r\n  public isHigherThan2(left: StiRectangleGeometry, right: StiRectangleGeometry): boolean {\r\n    return left.bottom - left.height / 2 <= right.y;\r\n  }\r\n\r\n  public removeElement(elementToRemove: StiFormElement, otherElements: StiFormElement[]) {\r\n    let elementsAbove: StiFormElement[] = [];\r\n    let elementsBelow: StiFormElement[] = [];\r\n    for (let element of otherElements) {\r\n      if (this.isHigherThan(element.geometry, elementToRemove.geometry)) {\r\n        elementsAbove.push(element);\r\n      } else {\r\n        elementsBelow.push(element);\r\n      }\r\n    }\r\n    this.snapBelowsToAboves(elementsBelow, elementsAbove);\r\n  }\r\n  public changeElementGeometry(\r\n    elementToChange: StiFormElement,\r\n    otherElements: StiFormElement[],\r\n    contentAreaWidth: number = 0\r\n  ) {\r\n    let fixedGeometry = elementToChange.geometry;\r\n    this.insertFixed(fixedGeometry, elementToChange, otherElements, contentAreaWidth);\r\n  }\r\n\r\n  private fitWidth(fixedGeometry: StiRectangleGeometry, otherElements: StiFormElement[], contentAreaWidth: number) {\r\n    if (contentAreaWidth > 0) {\r\n      let right = contentAreaWidth;\r\n      let rect = new StiRectangleGeometry(fixedGeometry.width - fixedGeometry.minWidth, fixedGeometry.height / 2);\r\n      rect.x = fixedGeometry.x + fixedGeometry.minWidth;\r\n      rect.y = fixedGeometry.y;\r\n\r\n      otherElements.forEach((element) => {\r\n        if (element.geometry.intersectWith(rect)) {\r\n          right = Math.min(right, element.geometry.x);\r\n        }\r\n      });\r\n\r\n      let newWidth = fixedGeometry.width - (fixedGeometry.right - right);\r\n      if (\r\n        newWidth + StiRectangleGeometry.DELTA > fixedGeometry.minWidth &&\r\n        newWidth <= fixedGeometry.width + StiRectangleGeometry.DELTA\r\n      ) {\r\n        fixedGeometry.width = newWidth;\r\n      }\r\n    }\r\n  }\r\n\r\n  private insertFixed(\r\n    fixedGeometry: StiRectangleGeometry,\r\n    elementToInsert: StiFormElement,\r\n    otherElements: StiFormElement[],\r\n    contentAreaWidth: number\r\n  ) {\r\n    let elementsAbove: StiFormElement[] = [];\r\n    let elementsBelow: StiFormElement[] = [];\r\n    for (let element of otherElements) {\r\n      if (this.isHigherThan2(element.geometry, fixedGeometry)) {\r\n        elementsAbove.push(element);\r\n      } else {\r\n        elementsBelow.push(element);\r\n      }\r\n    }\r\n\r\n    this.fitWidth(fixedGeometry, otherElements, contentAreaWidth);\r\n\r\n    let snappedNewGeometry = this.snapOneToAboves(fixedGeometry, elementsAbove, true);\r\n    elementToInsert.geometry = snappedNewGeometry;\r\n    elementsAbove.push(elementToInsert);\r\n    this.moveDown(elementsBelow, 2 * snappedNewGeometry.height);\r\n    this.snapBelowsToAboves(elementsBelow, elementsAbove);\r\n\r\n    this.fitWidth(snappedNewGeometry, otherElements, contentAreaWidth);\r\n  }\r\n  private snapOneToAboves(\r\n    geometry: StiRectangleGeometry,\r\n    elementsAboveToSnap: StiFormElement[],\r\n    canShrink = false\r\n  ): StiRectangleGeometry {\r\n    let elementsExcatlyAbove = elementsAboveToSnap.filter((element) =>\r\n      element.geometry.xProjectionIntersectsWith(geometry)\r\n    );\r\n    if (elementsExcatlyAbove.length > 0) {\r\n      let max = elementsExcatlyAbove.reduce((acc, curr) => (acc.geometry.bottom > curr.geometry.bottom ? acc : curr));\r\n      return geometry.withY(max.geometry.bottom);\r\n    } else return geometry.withY(0);\r\n  }\r\n  private moveDown(elementsToMoveDown: StiFormElement[], distance: number) {\r\n    for (let element of elementsToMoveDown) {\r\n      element.geometry = element.geometry.withY(element.geometry.y + distance);\r\n    }\r\n  }\r\n  private snapBelowsToAboves(belows: StiFormElement[], aboves: StiFormElement[]) {\r\n    belows.sort(function (left, right) {\r\n      let difference = left.geometry.y - right.geometry.y;\r\n      if (difference < StiRectangleGeometry.DELTA) {\r\n        return -1;\r\n      } else if (difference > StiRectangleGeometry.DELTA) {\r\n        return 1;\r\n      } else {\r\n        return 0;\r\n      }\r\n    });\r\n    for (let element of belows) {\r\n      let snappedFromBelow = this.snapOneToAboves(element.geometry, aboves);\r\n      element.geometry = snappedFromBelow;\r\n      aboves.push(element);\r\n    }\r\n  }\r\n  public getFreeToBottomResizeArea(currentResizeElement: StiFormElement, otherElements: StiFormElement[]): number {\r\n    let currentContainer =\r\n      this.model.getElementPage(currentResizeElement) ?? this.model.getElementPanel(currentResizeElement);\r\n    let geometry = currentResizeElement.geometry;\r\n    let bottomElements = otherElements?.filter((element) => element.y >= geometry.bottom);\r\n    let elementsExcatlyBelow = bottomElements?.filter((element) =>\r\n      element.geometry.xProjectionIntersectsWith(geometry)\r\n    );\r\n    let bottomPoints = elementsExcatlyBelow?.map((element) => {\r\n      return element.geometry.bottom;\r\n    });\r\n    let topPoints = elementsExcatlyBelow?.map((element) => {\r\n      return element.geometry.y;\r\n    });\r\n    let maxBottomPoint = Math.max(...bottomPoints);\r\n    let minTopPoint = Math.min(...topPoints);\r\n    let bottomElementsHeight = maxBottomPoint - minTopPoint;\r\n\r\n    return (\r\n      currentContainer.contentAreaHeight -\r\n      geometry.bottom -\r\n      (elementsExcatlyBelow.length > 0 ? bottomElementsHeight : 0)\r\n    );\r\n  }\r\n\r\n  public checkOutputs(usedPage: StiFormPageElement) {\r\n    let outputElements = [];\r\n    let summaryHeight: number = 0;\r\n    usedPage?.elements.forEach((element) => {\r\n      if (element.geometry.bottom > usedPage.contentAreaHeight) {\r\n        outputElements.push(element);\r\n      }\r\n    });\r\n    if (outputElements.length > 0) {\r\n      outputElements.forEach((element) => {\r\n        summaryHeight += element.height;\r\n        usedPage.elements.splice(usedPage.elements.indexOf(element), 1);\r\n        this.removeElement(element, usedPage.elements);\r\n      });\r\n      if (this.model.form.pages[this.model.form.pages.indexOf(usedPage) + 1]) {\r\n        let nextPage = this.model.form.pages[this.model.form.pages.indexOf(usedPage) + 1];\r\n        if (\r\n          nextPage.contentAreaHeight - Math.max(...nextPage.elements.map((element) => element.geometry.bottom)) >\r\n          summaryHeight\r\n        ) {\r\n          let currentBottomPoint: number = 0;\r\n          outputElements.forEach((element, index) => {\r\n            nextPage.elements.splice(index, 0, element);\r\n            element.y = currentBottomPoint;\r\n            this.insertElement(element);\r\n            currentBottomPoint += element.height;\r\n          });\r\n        } else {\r\n          let page1 = new StiFormPageElement(this.model.form);\r\n          page1.name = this.nameService.getElementName(page1);\r\n          this.model.form.pages.splice(this.model.form.pages.indexOf(nextPage), 0, page1);\r\n          let currentBottomPoint: number = 0;\r\n          outputElements.forEach((element, index) => {\r\n            page1.elements.splice(index, 0, element);\r\n            element.y = currentBottomPoint;\r\n            this.insertElement(element);\r\n            currentBottomPoint += element.height;\r\n          });\r\n        }\r\n      } else {\r\n        let page1 = new StiFormPageElement(this.model.form);\r\n        page1.name = this.nameService.getElementName(page1);\r\n        this.model.form.pages.push(page1);\r\n        let currentBottomPoint: number = 0;\r\n        outputElements.forEach((element, index) => {\r\n          page1.elements.splice(index, 0, element);\r\n          element.y = currentBottomPoint;\r\n          this.insertElement(element);\r\n          currentBottomPoint += element.geometry.bottom;\r\n        });\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { ElementRef, Injectable } from \"@angular/core\";\r\nimport { StiEditableContent } from \"../system/interfaces\";\r\nimport { StiModelService } from \"./model.service\";\r\n\r\n@Injectable()\r\nexport class StiEditableContentService {\r\n  public usedElement;\r\n  private _editableContent: StiEditableContent;\r\n  public editableElementRef: ElementRef;\r\n  public activeControl = false;\r\n\r\n  constructor(public model: StiModelService) {}\r\n\r\n  public getIntEditableContent(): StiEditableContent {\r\n    return this._editableContent;\r\n  }\r\n\r\n  public get editableContent(): StiEditableContent {\r\n    return this._editableContent || this.model.selectedComponent?.element?.getDefaultEditableContent();\r\n  }\r\n\r\n  public set editableContent(value: StiEditableContent) {\r\n    this._editableContent = value;\r\n  }\r\n\r\n  public startEdit(editableElementRef: ElementRef = null) {\r\n    editableElementRef = editableElementRef ?? this.editableElementRef;\r\n    if (editableElementRef) {\r\n      let caretOffset = this.getCaretOffset(editableElementRef.nativeElement ?? editableElementRef);\r\n      this.activeControl = true;\r\n      setTimeout(() => {\r\n        this.activeControl = false;\r\n        let el = editableElementRef.nativeElement ?? editableElementRef;\r\n        el.focus();\r\n        if (el.tagName.toLowerCase() != \"label\" && el?.innerText?.length > 0) {\r\n          this.setCaret(el, caretOffset);\r\n        }\r\n      }, 0);\r\n    }\r\n  }\r\n\r\n  private getCaretOffset(element): number {\r\n    let caretOffset = 0;\r\n    let doc = element.ownerDocument || element.document;\r\n    let win = doc.defaultView || doc.parentWindow;\r\n    let sel;\r\n    if (typeof win.getSelection != \"undefined\") {\r\n      sel = win.getSelection();\r\n      if (sel.rangeCount > 0) {\r\n        let range = win.getSelection().getRangeAt(0);\r\n        let preCaretRange = range.cloneRange();\r\n        preCaretRange.selectNodeContents(element);\r\n        preCaretRange.setEnd(range.endContainer, range.endOffset);\r\n        caretOffset = preCaretRange.toString().length;\r\n      }\r\n    } else if ((sel = doc.selection) && sel.type != \"Control\") {\r\n      let textRange = sel.createRange();\r\n      let preCaretTextRange = doc.body.createTextRange();\r\n      preCaretTextRange.moveToElementText(element);\r\n      preCaretTextRange.setEndPoint(\"EndToEnd\", textRange);\r\n      caretOffset = preCaretTextRange.text.length;\r\n    }\r\n    return caretOffset;\r\n  }\r\n\r\n  private setCaret(el, caretOffset) {\r\n    var range = document.createRange();\r\n    var sel = window.getSelection();\r\n\r\n    range.setStart(el.childNodes[0], caretOffset);\r\n    range.collapse(true);\r\n\r\n    sel.removeAllRanges();\r\n    sel.addRange(range);\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiLocalizationService } from \"./sti-localization.service\";\r\nimport StiJson from \"../system/StiJson\";\r\n\r\n@Injectable()\r\nexport class StiUserService {\r\n  private _currentUser: any;\r\n  public showLocalizationPreview: boolean = false;\r\n  public showUserInfo: boolean = false;\r\n  public previewX: number;\r\n  public previewY: number;\r\n  public licenseProducts: any;\r\n  public buildDate: Date = new Date(2022, 8, 27);\r\n  public trialMessage: string = \"\";\r\n  constructor(public model: StiModelService) { }\r\n\r\n  public get currentUser() {\r\n    return this._currentUser;\r\n  }\r\n  public set currentUser(value) {\r\n    if (value) {\r\n      if (value == \"empty\") {\r\n        this._currentUser = null;\r\n      } else {\r\n        let user = this.model.toCamelCase(value);\r\n        this._currentUser = user;\r\n        if (user?.created && !this.model.isWebView && (!this.licenseProducts || this.licenseProducts.length == 0)) {\r\n          this.buildDate = StiJson.jsonDateFormatToDate(user.created).date;\r\n        }\r\n\r\n        if (this.model.properties) {\r\n          this.model.properties.developerRole = user.developerRole;\r\n        }\r\n      }\r\n      this.checkLicense();\r\n    }\r\n  }\r\n  getBackground(user: any) {\r\n    let key = user?.userKey ? user?.userKey : user?.key ?? \"key\";\r\n    var r = 0;\r\n    var g = 0;\r\n    var b = 0;\r\n    for (var i = 0; i < key.length / 3; i += 3) {\r\n      r += key.charCodeAt(i);\r\n      g += key.charCodeAt(i + 1);\r\n      b += key.charCodeAt(i + 2);\r\n    }\r\n    r = (r % 100) + 100;\r\n    g = (g % 100) + 100;\r\n    b = (b % 100) + 100;\r\n    return `rgb(${r},${g}, ${b})`;\r\n  }\r\n\r\n  checkLicense() {\r\n    this.model.userWasChecked = true;\r\n    if (this.licenseProducts?.length > 0 || this.currentUser) {\r\n      let expirationDate = 0;\r\n      if (this.licenseProducts?.length > 0) {\r\n        this.licenseProducts.forEach((product) => {\r\n          if (\r\n            product.ident == \"Ultimate\" ||\r\n            product.ident == \"FormsWeb\" ||\r\n            product.ident == 1 ||\r\n            product.ident == 26 ||\r\n            product.ident == \"BICloud\" ||\r\n            product.ident == 18 ||\r\n            product.ident == \"BIDesigner\" ||\r\n            product.ident == 12\r\n          ) {\r\n            expirationDate = Math.max(expirationDate, new Date(product.expirationDate).getTime());\r\n          }\r\n        });\r\n      }\r\n      if (this.currentUser) {\r\n        this.model.userIsAuthorized = true;\r\n      }\r\n      if (expirationDate != 0 && expirationDate > this.buildDate.getTime()) {\r\n        this.model.showTrialBar = this.currentUser?.developerRole == \"Owner\";\r\n        this.model.showTrialModalWindow = false;\r\n        this.model.showTrialTitle = this.currentUser?.developerRole == \"Owner\";\r\n        this.model.userIsAuthorized = true;\r\n      } else {\r\n        this.showTrial();\r\n      }\r\n    } else {\r\n      this.showTrial();\r\n    }\r\n  }\r\n\r\n  resetTrial() {\r\n    this.model.showTrialBar = true;\r\n    this.model.showTrialTitle = true;\r\n    this.model.canCloseTrialWindow = true;\r\n    this.model.disableCloseButton = false;\r\n    this.model.showTrialModalWindow = false;\r\n  }\r\n  showTrial() {\r\n    let currentDate = new Date();\r\n    let trDays = Math.floor((currentDate.getTime() - this.buildDate.getTime()) / 1000 / 60 / 60 / 24);\r\n    this.trialMessage = StiLocalizationService.get(\"Notices\", \"YouUsingTrialVersion\");\r\n    this.resetTrial();\r\n    if (trDays > 30) {\r\n      this.model.disableCloseButton = true;\r\n    }\r\n    if (!this.model.buildDate) {\r\n      return;\r\n    }\r\n    if (trDays > 30) {\r\n      this.model.showTrialTitle = true;\r\n      setTimeout(() => {\r\n        if (this.currentUser) {\r\n          this.model.showTrialModalWindow = true;\r\n        }\r\n      }, 3000);\r\n    }\r\n    if (trDays > 45) {\r\n      if (this.currentUser) {\r\n        this.model.canCloseTrialWindow = false;\r\n      }\r\n      this.trialMessage = StiLocalizationService.get(\"Notices\", \"YourTrialHasExpired\");\r\n      setTimeout(() => {\r\n        if (this.currentUser) {\r\n          this.model.showTrialModalWindow = true;\r\n        }\r\n      }, 3000);\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { StiSignatureElement } from \"../elements/StiSignatureElement\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiTextItem } from \"../elements/text/StiTextItem\";\r\nimport { StiImageEditorResultObject, StiSignatureDrawTemplate, StiSignatureTypeTemplate } from \"../system/interfaces\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiImageEditorResult } from \"../elements/signature/StiImageEditorResult\";\r\nimport { StiHorizontalAlignment, StiVerticalAlignment } from \"../system/enums\";\r\n\r\n@Injectable()\r\nexport class SignatureService {\r\n  private _editorComponentX: number = 0;\r\n  private _editorComponentY: number = 0;\r\n\r\n  public textMode: boolean = false;\r\n  public selectedMode: string = \"Draw\";\r\n  public previewFonts = [\"Teddy Bear\", \"MADE Likes Script\", \"Denistina\"];\r\n  public currentPreviewFont = \"Teddy Bear\";\r\n  public drawingMode: boolean = false;\r\n  public showFontsPreview: boolean = false;\r\n  public loadedImage = new Subject<any>();\r\n  public clearButtonClick = new Subject<boolean>();\r\n  public updateSignature = new Subject<any>();\r\n  public getInsertedInformation = new Subject<any>();\r\n  public currentEditableText: StiTextItem = new StiTextItem();\r\n  public currentEditableImage: any | StiImageEditorResult;\r\n  public currentEditableFullName: string;\r\n  public currentEditableInitials: string;\r\n  public currentCanvasContent: any;\r\n  public editorComponentHeight = 350;\r\n  public editorComponentWidth = 365;\r\n  public fontsPreviewX: number = 0;\r\n  public fontsPreviewY: number = 0;\r\n  public templatesPreviewX: number = 0;\r\n  public templatesPreviewY: number = 0;\r\n  public showSavedTemplates: boolean = false;\r\n  public savedTemplates: any[] = [];\r\n  public currentActiveLoadingImages: number = 0;\r\n  public completedLoadingImages: number = 0;\r\n  public completedLoading = new Subject<any>();\r\n  public currentSignatureElement: StiSignatureElement | null;\r\n  public currentEditableSignatureElement: StiSignatureElement | null;\r\n\r\n  public checkLoading() {\r\n    if (this.completedLoadingImages === this.currentActiveLoadingImages) {\r\n      this.completedLoading.next(true);\r\n      this.completedLoadingImages = 0;\r\n      this.currentActiveLoadingImages = 0;\r\n    } else {\r\n      setTimeout(() => {\r\n        this.checkLoading();\r\n      });\r\n    }\r\n  }\r\n  getVerticalPosition(verticalAlignment: StiVerticalAlignment) {\r\n    switch (verticalAlignment) {\r\n      case StiVerticalAlignment.Top:\r\n        return \"top\";\r\n      case StiVerticalAlignment.Bottom:\r\n        return \"bottom\";\r\n      case StiVerticalAlignment.Center:\r\n        return \"center\";\r\n    }\r\n  }\r\n  getHorizontalPosition(horizontalAlignment: StiHorizontalAlignment) {\r\n    switch (horizontalAlignment) {\r\n      case StiHorizontalAlignment.Left:\r\n        return \"left\";\r\n      case StiHorizontalAlignment.Right:\r\n        return \"right\";\r\n      case StiHorizontalAlignment.Center:\r\n        return \"center\";\r\n    }\r\n  }\r\n  getClass(item) {\r\n    if (item == \"Text\") {\r\n      return StiTextItem;\r\n    } else if (item == \"Image\") {\r\n      return StiImageEditorResult;\r\n    }\r\n  }\r\n  setTemplate(template) {\r\n    if (template.type == \"Image\") {\r\n      this.currentEditableImage = template.image;\r\n      this.currentEditableText = template.text;\r\n      this.currentCanvasContent = template.drawedImage;\r\n      this.selectedMode = \"Draw\";\r\n    } else {\r\n      this.currentPreviewFont = template.specialFont;\r\n      this.currentEditableFullName = template.fullName;\r\n      this.currentEditableInitials = template.initials;\r\n      this.selectedMode = \"Type\";\r\n    }\r\n    this.showSavedTemplates = false;\r\n  }\r\n  getTemplateImage(template) {\r\n    return \"url(\" + template?.image?.loadedImage + \")\";\r\n  }\r\n  getTemplateDrawedImage(template) {\r\n    return \"url(\" + template?.image?.drawedImage + \")\";\r\n  }\r\n  deleteTemplate(index) {\r\n    this.savedTemplates.splice(index, 1);\r\n  }\r\n  getTemplateHorizontalAlignment(template) {\r\n    if (template.image.horizontalAlignment == StiHorizontalAlignment.Center) {\r\n      return \"center\";\r\n    } else if (template.image.horizontalAlignment == StiHorizontalAlignment.Left) {\r\n      return \"start\";\r\n    } else {\r\n      return \"end\";\r\n    }\r\n  }\r\n  getTemplateBackgroundSize(template, container) {\r\n    if (!template?.image?.loadedImage) {\r\n      return;\r\n    }\r\n    if (template?.image?.aspectRatio) {\r\n      return \"contain\";\r\n    }\r\n    if (template?.image?.stretch) {\r\n      return `${container.offsetWidth}px ${container.offsetHeight}px`;\r\n    } else {\r\n      return `${template?.image?.naturalWidth}px ${template?.image?.naturalHeight}px`;\r\n    }\r\n  }\r\n  getTemplateBackgroundPosition(template) {\r\n    if (!template?.image?.aspectRatio && !template?.image?.stretch) {\r\n      if (template?.image?.verticalAlignment == StiVerticalAlignment.Center) {\r\n        return \"center center\";\r\n      } else if (template?.image?.verticalAlignment == StiVerticalAlignment.Top) {\r\n        return \"top center\";\r\n      } else {\r\n        return \"bottom center\";\r\n      }\r\n    } else {\r\n      return \"center\";\r\n    }\r\n  }\r\n  cloneProperty(property: StiTextItem | StiImageEditorResult, propertyClass): any {\r\n    let result = new propertyClass();\r\n    let jObject = new StiJson();\r\n    jObject.deserialize(property.saveToJsonObject({}).serialize());\r\n    result.loadFromJsonObject(jObject);\r\n    return result;\r\n  }\r\n  public get editorComponentX(): number {\r\n    return this._editorComponentX;\r\n  }\r\n  public set editorComponentX(value: number) {\r\n    value <= 0 ? (this._editorComponentX = 0) : (this._editorComponentX = value);\r\n  }\r\n  public get editorComponentY(): number {\r\n    return this._editorComponentY;\r\n  }\r\n  public set editorComponentY(value: number) {\r\n    value <= 0 ? (this._editorComponentY = 0) : (this._editorComponentY = value);\r\n  }\r\n  public get y(): number {\r\n    if (this.isSignature) {\r\n      let container = document.getElementById(this.model.selectedComponent?.element.guid);\r\n      let geom = this.model.getPositionRelativeToForm(container);\r\n      return geom.y;\r\n    } else {\r\n      return 0;\r\n    }\r\n  }\r\n  public get x(): number {\r\n    if (this.isSignature) {\r\n      let container = document.getElementById(this.model.selectedComponent?.element.guid);\r\n      let geom = this.model.getPositionRelativeToForm(container);\r\n      return geom.x + geom.width + 5;\r\n    } else {\r\n      return 0;\r\n    }\r\n  }\r\n  changeDrawingMode() {\r\n    this.textMode = false;\r\n    this.drawingMode = !this.drawingMode;\r\n  }\r\n  changeTextMode() {\r\n    this.drawingMode = false;\r\n    this.textMode = !this.textMode;\r\n  }\r\n  clear() {\r\n    this.clearButtonClick.next(true);\r\n  }\r\n  onFileSelected() {\r\n    let input = document.createElement(\"input\");\r\n    input.type = \"file\";\r\n    input.accept = \".png, .jpg, .jpeg\";\r\n    let this_ = this;\r\n    input.onchange = (_) => {\r\n      this_.clear();\r\n      let file = Array.from(input.files)[0];\r\n      var reader = new FileReader();\r\n      reader.readAsDataURL(file);\r\n      reader.onload = function (e) {\r\n        this_.loadedImage.next(e.target.result);\r\n      };\r\n    };\r\n    input.click();\r\n  }\r\n  public get isSignature(): boolean {\r\n    return this.model.selectedComponent?.element instanceof StiSignatureElement ? true : false;\r\n  }\r\n  constructor(public model: StiModelService) {}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class StiDropdownService {\r\n  public currentOptionList: string | number[] = [];\r\n  public showDropdownList: boolean = false;\r\n  public dropdownX: number;\r\n  public dropdownY: number;\r\n  public optionLabel;\r\n  public optionValue;\r\n  public currentValue: string | number;\r\n  public valueChanged = new Subject<any>();\r\n  public currentUsedComponentId;\r\n  constructor() {}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject, Observable } from \"rxjs\";\r\nimport { StiDropdownService } from \"../components/sti-dropdown-component/sti-dropdown-service\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiEditableContentService } from \"./sti-editable-content.service\";\r\nimport { SignatureService } from \"./sti-signature.service\";\r\nimport { StiUserService } from \"./sti-user-service\";\r\n\r\n@Injectable()\r\nexport class StiMouseService {\r\n  private documetMouseDown = new Subject<any>();\r\n  private documetMouseMove = new Subject<any>();\r\n  private documetMouseUp = new Subject<any>();\r\n  private captureMouseUp = new Subject<any>();\r\n  private captureMouseDown = new Subject<any>();\r\n  private documentTouchStart = new Subject<any>();\r\n  private documentTouchMove = new Subject<any>();\r\n  private documentTouchEnd = new Subject<any>();\r\n\r\n  leftButtonDown = false;\r\n  rightButtonDown = false;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public editableSevice: StiEditableContentService,\r\n    public userService: StiUserService,\r\n    public signatureService: SignatureService,\r\n    public dropdownService: StiDropdownService\r\n  ) {\r\n    document.addEventListener(\"mouseup\", (event) => {\r\n      this.documetMouseUp.next(event);\r\n    });\r\n    document.addEventListener(\r\n      \"touchstart\",\r\n      (event) => {\r\n        this.documentTouchStart.next(event);\r\n      },\r\n      { passive: false }\r\n    );\r\n    document.addEventListener(\r\n      \"touchmove\",\r\n      (event) => {\r\n        this.documentTouchMove.next(event);\r\n      },\r\n      { passive: false }\r\n    );\r\n    document.addEventListener(\r\n      \"touchend\",\r\n      (event) => {\r\n        this.documentTouchEnd.next(event);\r\n      },\r\n      { passive: false }\r\n    );\r\n    document.addEventListener(\r\n      \"mouseup\",\r\n      (event) => {\r\n        let form = document.querySelector(\"stimulsoft-forms\");\r\n        if (form) {\r\n          form?.classList.contains(\"unselectable\") ? form?.classList.remove(\"unselectable\") : \"\";\r\n        }\r\n        let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n        if (!elements.find((elem) => elem?.classList.contains(\"parent-group-container\"))) {\r\n          this.model.showGroupPreview = false;\r\n        }\r\n        if (\r\n          !elements.find((elem) => elem?.classList.contains(\"form-elements-list-item\")) &&\r\n          !elements.find((elem) => elem?.classList.contains(\"form-elements-dropdown\"))\r\n        ) {\r\n          this.model.showFormElementsList = false;\r\n        }\r\n        if (!elements.find((elem) => elem?.classList.contains(\"localization\"))) {\r\n          this.userService.showLocalizationPreview = false;\r\n        }\r\n        if (!elements.find((elem) => elem?.classList.contains(\"user-info\"))) {\r\n          this.userService.showUserInfo = false;\r\n        }\r\n        if (!elements.find((elem) => elem?.classList.contains(\"sti-dropdown-list\"))) {\r\n          this.dropdownService.showDropdownList = false;\r\n        }\r\n        if (!elements.find((elem) => elem?.classList.contains(\"tiered-menu-container\"))) {\r\n          this.model.showTieredMenu = false;\r\n        }\r\n        if (\r\n          !elements.find((elem) => elem?.classList.contains(\"sti-dropdown-editor\")) &&\r\n          !elements.find((elem) => elem?.classList.contains(\"sti-dropdown-items\"))\r\n        ) {\r\n          this.model.hideActiveDropdown.next(true);\r\n        }\r\n        if (event.button == 0) {\r\n          this.leftButtonDown = false;\r\n        }\r\n        if (\r\n          !elements.find((elem) => elem?.classList.contains(\"autoComplete-list-container\")) &&\r\n          !elements.find((elem) => elem?.classList.contains(\"autoComplete-select-button\"))\r\n        ) {\r\n          this.model.hideActiveAutocompleteList.next(true);\r\n        }\r\n        if (\r\n          !elements.find((elem) => elem?.classList.contains(\"home\")) &&\r\n          !elements.find((elem) => elem?.classList.contains(\"sti-dropdown-list\"))\r\n        ) {\r\n          let iframes = document.getElementsByTagName(\"iframe\");\r\n          if (iframes.length > 0) {\r\n            for (let index = 0; index < iframes.length; index++) {\r\n              const element = iframes[index].contentDocument || iframes[index].contentWindow.document;\r\n              if (element.getSelection().toString().length > 0) {\r\n                element.getSelection().removeAllRanges();\r\n              }\r\n            }\r\n          }\r\n        }\r\n        this.model.lastFormState = null;\r\n        this.captureMouseUp.next(event);\r\n      },\r\n      true\r\n    );\r\n    /* document.addEventListener(\r\n      \"mousemove\",\r\n      (event) => {\r\n        this.captureMouseUp.next(event);\r\n      },\r\n      true\r\n    ); */\r\n    document.addEventListener(\"mousemove\", (event) => {\r\n      this.documetMouseMove.next(event);\r\n    });\r\n    window.addEventListener(\"mousedown\", (event) => {\r\n      this.documetMouseDown.next(event);\r\n    });\r\n    window.addEventListener(\r\n      \"mousedown\",\r\n      (event) => {\r\n        if (\r\n          this.editableSevice.usedElement &&\r\n          this.model.selectedComponent &&\r\n          this.model.selectedComponent.element != this.editableSevice.usedElement\r\n        ) {\r\n          this.editableSevice.editableContent = null;\r\n          this.editableSevice.usedElement = null;\r\n        }\r\n        if (event.button == 0) {\r\n          this.leftButtonDown = true;\r\n        }\r\n        let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n        if (this.model.showColorDialog && !this.model.showMoreColorDialog) {\r\n          if (!elements.find((elem) => elem?.classList.contains(\"color-dialog\"))) {\r\n            this.model.showColorDialog = false;\r\n          }\r\n        }\r\n        if (this.model.showContextMenu) {\r\n          let underContextMenu = false;\r\n          for (let elem of document.elementsFromPoint(event.clientX, event.clientY)) {\r\n            if (elem?.classList.contains(\"context-menu\")) {\r\n              underContextMenu = true;\r\n              break;\r\n            }\r\n          }\r\n          if (!underContextMenu) {\r\n            this.model.showContextMenu = false;\r\n          }\r\n        }\r\n        if (this.signatureService.drawingMode) {\r\n          let underCanvas = false;\r\n          for (let elem of document.elementsFromPoint(event.clientX, event.clientY)) {\r\n            if (elem?.classList.contains(\"canvas\")) {\r\n              underCanvas = true;\r\n              break;\r\n            }\r\n          }\r\n          if (!underCanvas) {\r\n            setTimeout(() => {\r\n              this.signatureService.drawingMode = false;\r\n            });\r\n          }\r\n        }\r\n        if (this.signatureService.showFontsPreview) {\r\n          if (!elements.find((elem) => elem?.classList.contains(\"fonts-preview-container\"))) {\r\n            this.signatureService.showFontsPreview = false;\r\n          }\r\n        }\r\n        if (this.signatureService.showSavedTemplates) {\r\n          if (\r\n            !elements.find((elem) => elem?.classList.contains(\"saved-templates-container\")) &&\r\n            !elements.find((elem) => elem?.classList.contains(\"show-button\"))\r\n          ) {\r\n            this.signatureService.showSavedTemplates = false;\r\n          }\r\n        }\r\n        this.captureMouseDown.next(event);\r\n      },\r\n      true\r\n    );\r\n  }\r\n  public getDocumentMouseUp(): Observable<any> {\r\n    return this.documetMouseUp.asObservable();\r\n  }\r\n\r\n  public getDocumentMouseMove(): Observable<any> {\r\n    return this.documetMouseMove.asObservable();\r\n  }\r\n\r\n  public getDocumentMouseDown(): Observable<any> {\r\n    return this.documetMouseDown.asObservable();\r\n  }\r\n\r\n  public getCaptureMouseUp(): Observable<any> {\r\n    return this.captureMouseUp.asObservable();\r\n  }\r\n\r\n  public getCaptureMouseDown(): Observable<any> {\r\n    return this.captureMouseDown.asObservable();\r\n  }\r\n  public getDocumentTouchStart(): Observable<any> {\r\n    return this.documentTouchStart.asObservable();\r\n  }\r\n  public getDocumentTouchMove(): Observable<any> {\r\n    return this.documentTouchMove.asObservable();\r\n  }\r\n  public getDocumentTouchEnd(): Observable<any> {\r\n    return this.documentTouchEnd.asObservable();\r\n  }\r\n}\r\n","import { Injectable, NgZone } from \"@angular/core\";\r\nimport StiRectangleGeometryLayout from \"../computed/StiRectangleGeometryLayout\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiAddressElement } from \"../elements/StiAddressElement\";\r\nimport { StiBarcodeElement } from \"../elements/StiBarcodeElement\";\r\nimport { StiButtonElement } from \"../elements/StiButtonElement\";\r\nimport { StiCheckBoxElement } from \"../elements/StiCheckBoxElement\";\r\nimport { StiComboBoxElement } from \"../elements/StiComboBoxElement\";\r\nimport { StiDateTimeBoxElement } from \"../elements/StiDateTimeBoxElement\";\r\nimport { StiForm } from \"../elements/StiForm\";\r\nimport { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport { StiImageElement } from \"../elements/StiImageElement\";\r\nimport { StiLabelElement } from \"../elements/StiLabelElement\";\r\nimport StiLineElement from \"../elements/StiLineElement\";\r\nimport { StiListBoxElement } from \"../elements/StiListBoxElement\";\r\nimport { StiMultipleSelectionElement } from \"../elements/StiMultipleSelectionElement\";\r\nimport { StiNumberBoxElement } from \"../elements/StiNumberBoxElement\";\r\nimport { StiPanelElement } from \"../elements/StiPanelElement\";\r\nimport { StiPDFSignatureElement } from \"../elements/StiPDFSignatureElement\";\r\nimport { StiSignatureElement } from \"../elements/StiSignatureElement\";\r\nimport { StiSingleSelectionElement } from \"../elements/StiSingleSelectionElement\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport { StiTextBoxElement } from \"../elements/StiTextBoxElement\";\r\nimport { StiTextElement } from \"../elements/StiTextElement\";\r\nimport { StiLabelColumnItem } from \"../elements/table/columns/StiLabelColumnItem\";\r\nimport { StiNumberBoxColumnItem } from \"../elements/table/columns/StiNumberBoxColumnItem\";\r\nimport { StiTotalsFieldItem } from \"../elements/table/StiTotalsFieldItem\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiBarcodeType } from \"../system/enums\";\r\nimport Guid from \"../system/Guid\";\r\nimport StiJson from \"../system/StiJson\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { Item, MenuItem } from \"./objects\";\r\nimport { StiLocalizationService } from \"./sti-localization.service\";\r\n\r\n@Injectable()\r\nexport class StiHelperService {\r\n  public addTotalMenuItems: MenuItem[];\r\n  private _fonts: Item[] = [];\r\n  private _numberTypes: any[] = [];\r\n  private _rangeFormats: any[] = [];\r\n  private _signatureTypes: any[] = [];\r\n  private _dateTimeTypes: any[] = [];\r\n  private _buttonTypes: any[] = [];\r\n  private _columnTypes: any[] = [];\r\n  private _buttonSendTypes: any[] = [];\r\n  private _thousandSeparators: any[] = [];\r\n  private _barcodeTypes: any[] = [];\r\n  private _dateTimeValues: any[] = [];\r\n  private _themes: Item[] = [];\r\n  private _borderWeights: any[] = [];\r\n  private _unitAlignment: any[] = [];\r\n  private _minUnitAlignment: any[] = [];\r\n  private _labelFormat: any[] = [];\r\n  private _penStyles: any[] = [];\r\n  private _algorithmExpressions: any[] = [];\r\n  private _dateTimeFormats: any[] = [];\r\n  private _dateFormats: any[] = [];\r\n  private _timeFormats: any[] = [];\r\n  private _cultures: any[] = [];\r\n  private _signatureEditorModes: any[] = [];\r\n  private _signatureSpecialFonts: any[] = [];\r\n  private _fontSizes = [5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18, 20, 22, 24, 26, 28, 36, 44, 58, 72];\r\n  private _richTextFontSizes: any[] = [];\r\n  private _errorCorrectionLevel = [\"Level1\", \"Level2\", \"Level3\", \"Level4\"];\r\n  private _fileMenuItems: any[] = [];\r\n  private _dataMatrixSize = [\r\n    \"Automatic\",\r\n    \"v1\",\r\n    \"v2\",\r\n    \"v3\",\r\n    \"v4\",\r\n    \"v5\",\r\n    \"v6\",\r\n    \"v7\",\r\n    \"v8\",\r\n    \"v9\",\r\n    \"v10\",\r\n    \"v11\",\r\n    \"v12\",\r\n    \"v13\",\r\n    \"v14\",\r\n    \"v15\",\r\n    \"v16\",\r\n    \"v17\",\r\n    \"v18\",\r\n    \"v19\",\r\n    \"v20\",\r\n    \"v21\",\r\n    \"v22\",\r\n    \"v23\",\r\n    \"v24\",\r\n    \"v25\",\r\n    \"v26\",\r\n    \"v27\",\r\n    \"v28\",\r\n    \"v29\",\r\n    \"v30\",\r\n    \"v31\",\r\n    \"v32\",\r\n    \"v33\",\r\n    \"v34\",\r\n    \"v35\",\r\n    \"v36\",\r\n    \"v37\",\r\n    \"v38\",\r\n    \"v39\",\r\n    \"v40\",\r\n  ];\r\n  private _bodyShapeType = [\r\n    \"Square\",\r\n    \"RoundedSquare\",\r\n    \"Dot\",\r\n    \"Circle\",\r\n    \"Diamond\",\r\n    \"Star\",\r\n    \"ZebraHorizontal\",\r\n    \"ZebraVertical\",\r\n    \"ZebraCross1\",\r\n    \"ZebraCross2\",\r\n    \"Circular\",\r\n    \"DockedDiamonds\",\r\n  ];\r\n  private _eyeFrameShapeType = [\"Square\", \"Dots\", \"Circle\", \"Round\", \"Round1\", \"Round3\"];\r\n  private _eyeBallShapeType = [\r\n    \"Square\",\r\n    \"Dots\",\r\n    \"Circle\",\r\n    \"Round\",\r\n    \"Round1\",\r\n    \"Round3\",\r\n    \"Star\",\r\n    \"ZebraHorizontal\",\r\n    \"ZebraVertical\",\r\n  ];\r\n  private _brushIdent = [\"Empty\", \"Solid\", \"Gradient\", \"Glare\", \"Glass\", \"Hatch\", \"Default\", \"Style\"];\r\n  private _bodyBrush = [\"Empty\", \"Solid\", \"Hatch\", \"Gradient\", \"Glare\", \"Glass\"];\r\n  public hatchStyle: any[] = [\r\n    { name: \"Horizontal\", value: 0 },\r\n    { name: \"Vertical\", value: 1 },\r\n    { name: \"ForwardDiagonal\", value: 2 },\r\n    { name: \"BackwardDiagonal\", value: 3 },\r\n    { name: \"Cross\", value: 4 },\r\n    { name: \"DiagonalCross\", value: 5 },\r\n    { name: \"Percent05\", value: 6 },\r\n    { name: \"Percent10\", value: 7 },\r\n    { name: \"Percent20\", value: 8 },\r\n    { name: \"Percent25\", value: 9 },\r\n    { name: \"Percent30\", value: 10 },\r\n    { name: \"Percent40\", value: 11 },\r\n    { name: \"Percent50\", value: 12 },\r\n    { name: \"Percent60\", value: 13 },\r\n    { name: \"Percent70\", value: 14 },\r\n    { name: \"Percent75\", value: 0xf },\r\n    { name: \"Percent80\", value: 0x10 },\r\n    { name: \"Percent90\", value: 17 },\r\n    { name: \"LightDownwardDiagonal\", value: 18 },\r\n    { name: \"LightUpwardDiagonal\", value: 19 },\r\n    { name: \"DarkDownwardDiagonal\", value: 20 },\r\n    { name: \"DarkUpwardDiagonal\", value: 21 },\r\n    { name: \"WideDownwardDiagonal\", value: 22 },\r\n    { name: \"WideUpwardDiagonal\", value: 23 },\r\n    { name: \"LightVertical\", value: 24 },\r\n    { name: \"LightHorizontal\", value: 25 },\r\n    { name: \"NarrowVertical\", value: 26 },\r\n    { name: \"NarrowHorizontal\", value: 27 },\r\n    { name: \"DarkVertical\", value: 28 },\r\n    { name: \"DarkHorizontal\", value: 29 },\r\n    { name: \"DashedDownwardDiagonal\", value: 30 },\r\n    { name: \"DashedUpwardDiagonal\", value: 0x1f },\r\n    { name: \"DashedHorizontal\", value: 0x20 },\r\n    { name: \"DashedVertical\", value: 33 },\r\n    { name: \"SmallConfetti\", value: 34 },\r\n    { name: \"LargeConfetti\", value: 35 },\r\n    { name: \"ZigZag\", value: 36 },\r\n    { name: \"Wave\", value: 37 },\r\n    { name: \"DiagonalBrick\", value: 38 },\r\n    { name: \"HorizontalBrick\", value: 39 },\r\n    { name: \"Weave\", value: 40 },\r\n    { name: \"Plaid\", value: 41 },\r\n    { name: \"Divot\", value: 42 },\r\n    { name: \"DottedGrid\", value: 43 },\r\n    { name: \"DottedDiamond\", value: 44 },\r\n    { name: \"Shingle\", value: 45 },\r\n    { name: \"Trellis\", value: 46 },\r\n    { name: \"Sphere\", value: 47 },\r\n    { name: \"SmallGrid\", value: 48 },\r\n    { name: \"SmallCheckerBoard\", value: 49 },\r\n    { name: \"LargeCheckerBoard\", value: 50 },\r\n    { name: \"OutlinedDiamond\", value: 51 },\r\n    { name: \"SolidDiamond\", value: 52 },\r\n    { name: \"LargeGrid\", value: 4 },\r\n    { name: \"Min\", value: 0 },\r\n    { name: \"Max\", value: 4 },\r\n  ];\r\n\r\n  public getProperty(element: any, prop: string): any {\r\n    let props = prop.split(\".\");\r\n    return prop.indexOf(\".\") == -1\r\n      ? element[prop]\r\n      : this.getProperty(element[props[0]], props.splice(1, props.length).join(\".\"));\r\n  }\r\n  public setProperty(element: any, prop: string, value: any) {\r\n    let props = prop.split(\".\");\r\n    if (prop.indexOf(\".\") == -1) {\r\n      element[prop] = value;\r\n    } else {\r\n      element[props[0]][props[1]] = value;\r\n    }\r\n  }\r\n\r\n  public justifyOptions: any[] = [\r\n    {\r\n      image: \"images.Properties.AlignLeft.png\",\r\n      value: 1,\r\n      name: \"Left\",\r\n    },\r\n    {\r\n      image: \"images.Properties.AlignCenter.png\",\r\n      value: 2,\r\n      name: \"Center\",\r\n    },\r\n    {\r\n      image: \"images.Properties.AlignRight.png\",\r\n      value: 3,\r\n      name: \"Right\",\r\n    },\r\n  ];\r\n  public labelAlignment: any[] = [\r\n    {\r\n      image: \"images.Properties.Left.png\",\r\n      value: 1,\r\n      name: \"Left\",\r\n    },\r\n    {\r\n      image: \"images.Properties.Right.png\",\r\n      value: 2,\r\n      name: \"Right\",\r\n    },\r\n    {\r\n      image: \"images.Properties.Top.png\",\r\n      value: 3,\r\n      name: \"Top\",\r\n    },\r\n  ];\r\n  public verticalAlignment: any[] = [\r\n    {\r\n      image: \"images.Properties.AlignTop.png\",\r\n      value: 1,\r\n      name: \"Top\",\r\n    },\r\n    {\r\n      image: \"images.Properties.AlignMiddle.png\",\r\n      value: 2,\r\n      name: \"Center\",\r\n    },\r\n    {\r\n      image: \"images.Properties.AlignBottom.png\",\r\n      value: 3,\r\n      name: \"Bottom\",\r\n    },\r\n  ];\r\n\r\n  public styleOptions: any[] = [\r\n    {\r\n      name: \"B\",\r\n      value: \"Bold\",\r\n      image: \"images.Properties.FontStyleBold.png\",\r\n    },\r\n    {\r\n      name: \"I\",\r\n      value: \"Italic\",\r\n      image: \"images.Properties.FontStyleItalic.png\",\r\n    },\r\n    {\r\n      name: \"U\",\r\n      value: \"Underline\",\r\n      image: \"images.Properties.FontStyleUnderline.png\",\r\n    },\r\n  ];\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public render: StiRectangleGeometryLayout,\r\n    public loc: StiLocalizationService,\r\n    private zone: NgZone\r\n  ) {\r\n    StiLocalizationService.needToRefresh.subscribe(() => {\r\n      this.updateHelper();\r\n    });\r\n  }\r\n\r\n  public countries: any[] = [\r\n    { name: \"Afghanistan\", code: \"AF\" },\r\n    { name: \"Åland Islands\", code: \"AX\" },\r\n    { name: \"Albania\", code: \"AL\" },\r\n    { name: \"Algeria\", code: \"DZ\" },\r\n    { name: \"American Samoa\", code: \"AS\" },\r\n    { name: \"AndorrA\", code: \"AD\" },\r\n    { name: \"Angola\", code: \"AO\" },\r\n    { name: \"Anguilla\", code: \"AI\" },\r\n    { name: \"Antarctica\", code: \"AQ\" },\r\n    { name: \"Antigua and Barbuda\", code: \"AG\" },\r\n    { name: \"Argentina\", code: \"AR\" },\r\n    { name: \"Armenia\", code: \"AM\" },\r\n    { name: \"Aruba\", code: \"AW\" },\r\n    { name: \"Australia\", code: \"AU\" },\r\n    { name: \"Austria\", code: \"AT\" },\r\n    { name: \"Azerbaijan\", code: \"AZ\" },\r\n    { name: \"Bahamas\", code: \"BS\" },\r\n    { name: \"Bahrain\", code: \"BH\" },\r\n    { name: \"Bangladesh\", code: \"BD\" },\r\n    { name: \"Barbados\", code: \"BB\" },\r\n    { name: \"Belarus\", code: \"BY\" },\r\n    { name: \"Belgium\", code: \"BE\" },\r\n    { name: \"Belize\", code: \"BZ\" },\r\n    { name: \"Benin\", code: \"BJ\" },\r\n    { name: \"Bermuda\", code: \"BM\" },\r\n    { name: \"Bhutan\", code: \"BT\" },\r\n    { name: \"Bolivia\", code: \"BO\" },\r\n    { name: \"Bosnia and Herzegovina\", code: \"BA\" },\r\n    { name: \"Botswana\", code: \"BW\" },\r\n    { name: \"Bouvet Island\", code: \"BV\" },\r\n    { name: \"Brazil\", code: \"BR\" },\r\n    { name: \"British Indian Ocean Territory\", code: \"IO\" },\r\n    { name: \"Brunei Darussalam\", code: \"BN\" },\r\n    { name: \"Bulgaria\", code: \"BG\" },\r\n    { name: \"Burkina Faso\", code: \"BF\" },\r\n    { name: \"Burundi\", code: \"BI\" },\r\n    { name: \"Cambodia\", code: \"KH\" },\r\n    { name: \"Cameroon\", code: \"CM\" },\r\n    { name: \"Canada\", code: \"CA\" },\r\n    { name: \"Cape Verde\", code: \"CV\" },\r\n    { name: \"Cayman Islands\", code: \"KY\" },\r\n    { name: \"Central African Republic\", code: \"CF\" },\r\n    { name: \"Chad\", code: \"TD\" },\r\n    { name: \"Chile\", code: \"CL\" },\r\n    { name: \"China\", code: \"CN\" },\r\n    { name: \"Christmas Island\", code: \"CX\" },\r\n    { name: \"Cocos (Keeling) Islands\", code: \"CC\" },\r\n    { name: \"Colombia\", code: \"CO\" },\r\n    { name: \"Comoros\", code: \"KM\" },\r\n    { name: \"Congo\", code: \"CG\" },\r\n    { name: \"Congo, The Democratic Republic of the\", code: \"CD\" },\r\n    { name: \"Cook Islands\", code: \"CK\" },\r\n    { name: \"Costa Rica\", code: \"CR\" },\r\n    { name: \"Cote D'Ivoire\", code: \"CI\" },\r\n    { name: \"Croatia\", code: \"HR\" },\r\n    { name: \"Cuba\", code: \"CU\" },\r\n    { name: \"Cyprus\", code: \"CY\" },\r\n    { name: \"Czech Republic\", code: \"CZ\" },\r\n    { name: \"Denmark\", code: \"DK\" },\r\n    { name: \"Djibouti\", code: \"DJ\" },\r\n    { name: \"Dominica\", code: \"DM\" },\r\n    { name: \"Dominican Republic\", code: \"DO\" },\r\n    { name: \"Ecuador\", code: \"EC\" },\r\n    { name: \"Egypt\", code: \"EG\" },\r\n    { name: \"El Salvador\", code: \"SV\" },\r\n    { name: \"Equatorial Guinea\", code: \"GQ\" },\r\n    { name: \"Eritrea\", code: \"ER\" },\r\n    { name: \"Estonia\", code: \"EE\" },\r\n    { name: \"Ethiopia\", code: \"ET\" },\r\n    { name: \"Falkland Islands (Malvinas)\", code: \"FK\" },\r\n    { name: \"Faroe Islands\", code: \"FO\" },\r\n    { name: \"Fiji\", code: \"FJ\" },\r\n    { name: \"Finland\", code: \"FI\" },\r\n    { name: \"France\", code: \"FR\" },\r\n    { name: \"French Guiana\", code: \"GF\" },\r\n    { name: \"French Polynesia\", code: \"PF\" },\r\n    { name: \"French Southern Territories\", code: \"TF\" },\r\n    { name: \"Gabon\", code: \"GA\" },\r\n    { name: \"Gambia\", code: \"GM\" },\r\n    { name: \"Georgia\", code: \"GE\" },\r\n    { name: \"Germany\", code: \"DE\" },\r\n    { name: \"Ghana\", code: \"GH\" },\r\n    { name: \"Gibraltar\", code: \"GI\" },\r\n    { name: \"Greece\", code: \"GR\" },\r\n    { name: \"Greenland\", code: \"GL\" },\r\n    { name: \"Grenada\", code: \"GD\" },\r\n    { name: \"Guadeloupe\", code: \"GP\" },\r\n    { name: \"Guam\", code: \"GU\" },\r\n    { name: \"Guatemala\", code: \"GT\" },\r\n    { name: \"Guernsey\", code: \"GG\" },\r\n    { name: \"Guinea\", code: \"GN\" },\r\n    { name: \"Guinea-Bissau\", code: \"GW\" },\r\n    { name: \"Guyana\", code: \"GY\" },\r\n    { name: \"Haiti\", code: \"HT\" },\r\n    { name: \"Heard Island and Mcdonald Islands\", code: \"HM\" },\r\n    { name: \"Holy See (Vatican City State)\", code: \"VA\" },\r\n    { name: \"Honduras\", code: \"HN\" },\r\n    { name: \"Hong Kong\", code: \"HK\" },\r\n    { name: \"Hungary\", code: \"HU\" },\r\n    { name: \"Iceland\", code: \"IS\" },\r\n    { name: \"India\", code: \"IN\" },\r\n    { name: \"Indonesia\", code: \"ID\" },\r\n    { name: \"Iran, Islamic Republic Of\", code: \"IR\" },\r\n    { name: \"Iraq\", code: \"IQ\" },\r\n    { name: \"Ireland\", code: \"IE\" },\r\n    { name: \"Isle of Man\", code: \"IM\" },\r\n    { name: \"Israel\", code: \"IL\" },\r\n    { name: \"Italy\", code: \"IT\" },\r\n    { name: \"Jamaica\", code: \"JM\" },\r\n    { name: \"Japan\", code: \"JP\" },\r\n    { name: \"Jersey\", code: \"JE\" },\r\n    { name: \"Jordan\", code: \"JO\" },\r\n    { name: \"Kazakhstan\", code: \"KZ\" },\r\n    { name: \"Kenya\", code: \"KE\" },\r\n    { name: \"Kiribati\", code: \"KI\" },\r\n    { name: \"Korea, Democratic People'S Republic of\", code: \"KP\" },\r\n    { name: \"Korea, Republic of\", code: \"KR\" },\r\n    { name: \"Kuwait\", code: \"KW\" },\r\n    { name: \"Kyrgyzstan\", code: \"KG\" },\r\n    { name: \"Lao People'S Democratic Republic\", code: \"LA\" },\r\n    { name: \"Latvia\", code: \"LV\" },\r\n    { name: \"Lebanon\", code: \"LB\" },\r\n    { name: \"Lesotho\", code: \"LS\" },\r\n    { name: \"Liberia\", code: \"LR\" },\r\n    { name: \"Libyan Arab Jamahiriya\", code: \"LY\" },\r\n    { name: \"Liechtenstein\", code: \"LI\" },\r\n    { name: \"Lithuania\", code: \"LT\" },\r\n    { name: \"Luxembourg\", code: \"LU\" },\r\n    { name: \"Macao\", code: \"MO\" },\r\n    { name: \"Macedonia, The Former Yugoslav Republic of\", code: \"MK\" },\r\n    { name: \"Madagascar\", code: \"MG\" },\r\n    { name: \"Malawi\", code: \"MW\" },\r\n    { name: \"Malaysia\", code: \"MY\" },\r\n    { name: \"Maldives\", code: \"MV\" },\r\n    { name: \"Mali\", code: \"ML\" },\r\n    { name: \"Malta\", code: \"MT\" },\r\n    { name: \"Marshall Islands\", code: \"MH\" },\r\n    { name: \"Martinique\", code: \"MQ\" },\r\n    { name: \"Mauritania\", code: \"MR\" },\r\n    { name: \"Mauritius\", code: \"MU\" },\r\n    { name: \"Mayotte\", code: \"YT\" },\r\n    { name: \"Mexico\", code: \"MX\" },\r\n    { name: \"Micronesia, Federated States of\", code: \"FM\" },\r\n    { name: \"Moldova, Republic of\", code: \"MD\" },\r\n    { name: \"Monaco\", code: \"MC\" },\r\n    { name: \"Mongolia\", code: \"MN\" },\r\n    { name: \"Montserrat\", code: \"MS\" },\r\n    { name: \"Morocco\", code: \"MA\" },\r\n    { name: \"Mozambique\", code: \"MZ\" },\r\n    { name: \"Myanmar\", code: \"MM\" },\r\n    { name: \"Namibia\", code: \"NA\" },\r\n    { name: \"Nauru\", code: \"NR\" },\r\n    { name: \"Nepal\", code: \"NP\" },\r\n    { name: \"Netherlands\", code: \"NL\" },\r\n    { name: \"Netherlands Antilles\", code: \"AN\" },\r\n    { name: \"New Caledonia\", code: \"NC\" },\r\n    { name: \"New Zealand\", code: \"NZ\" },\r\n    { name: \"Nicaragua\", code: \"NI\" },\r\n    { name: \"Niger\", code: \"NE\" },\r\n    { name: \"Nigeria\", code: \"NG\" },\r\n    { name: \"Niue\", code: \"NU\" },\r\n    { name: \"Norfolk Island\", code: \"NF\" },\r\n    { name: \"Northern Mariana Islands\", code: \"MP\" },\r\n    { name: \"Norway\", code: \"NO\" },\r\n    { name: \"Oman\", code: \"OM\" },\r\n    { name: \"Pakistan\", code: \"PK\" },\r\n    { name: \"Palau\", code: \"PW\" },\r\n    { name: \"Palestinian Territory, Occupied\", code: \"PS\" },\r\n    { name: \"Panama\", code: \"PA\" },\r\n    { name: \"Papua New Guinea\", code: \"PG\" },\r\n    { name: \"Paraguay\", code: \"PY\" },\r\n    { name: \"Peru\", code: \"PE\" },\r\n    { name: \"Philippines\", code: \"PH\" },\r\n    { name: \"Pitcairn\", code: \"PN\" },\r\n    { name: \"Poland\", code: \"PL\" },\r\n    { name: \"Portugal\", code: \"PT\" },\r\n    { name: \"Puerto Rico\", code: \"PR\" },\r\n    { name: \"Qatar\", code: \"QA\" },\r\n    { name: \"Reunion\", code: \"RE\" },\r\n    { name: \"Romania\", code: \"RO\" },\r\n    { name: \"Russian Federation\", code: \"RU\" },\r\n    { name: \"RWANDA\", code: \"RW\" },\r\n    { name: \"Saint Helena\", code: \"SH\" },\r\n    { name: \"Saint Kitts and Nevis\", code: \"KN\" },\r\n    { name: \"Saint Lucia\", code: \"LC\" },\r\n    { name: \"Saint Pierre and Miquelon\", code: \"PM\" },\r\n    { name: \"Saint Vincent and the Grenadines\", code: \"VC\" },\r\n    { name: \"Samoa\", code: \"WS\" },\r\n    { name: \"San Marino\", code: \"SM\" },\r\n    { name: \"Sao Tome and Principe\", code: \"ST\" },\r\n    { name: \"Saudi Arabia\", code: \"SA\" },\r\n    { name: \"Senegal\", code: \"SN\" },\r\n    { name: \"Serbia and Montenegro\", code: \"CS\" },\r\n    { name: \"Seychelles\", code: \"SC\" },\r\n    { name: \"Sierra Leone\", code: \"SL\" },\r\n    { name: \"Singapore\", code: \"SG\" },\r\n    { name: \"Slovakia\", code: \"SK\" },\r\n    { name: \"Slovenia\", code: \"SI\" },\r\n    { name: \"Solomon Islands\", code: \"SB\" },\r\n    { name: \"Somalia\", code: \"SO\" },\r\n    { name: \"South Africa\", code: \"ZA\" },\r\n    { name: \"South Georgia and the South Sandwich Islands\", code: \"GS\" },\r\n    { name: \"Spain\", code: \"ES\" },\r\n    { name: \"Sri Lanka\", code: \"LK\" },\r\n    { name: \"Sudan\", code: \"SD\" },\r\n    { name: \"Suriname\", code: \"SR\" },\r\n    { name: \"Svalbard and Jan Mayen\", code: \"SJ\" },\r\n    { name: \"Swaziland\", code: \"SZ\" },\r\n    { name: \"Sweden\", code: \"SE\" },\r\n    { name: \"Switzerland\", code: \"CH\" },\r\n    { name: \"Syrian Arab Republic\", code: \"SY\" },\r\n    { name: \"Taiwan, Province of China\", code: \"TW\" },\r\n    { name: \"Tajikistan\", code: \"TJ\" },\r\n    { name: \"Tanzania, United Republic of\", code: \"TZ\" },\r\n    { name: \"Thailand\", code: \"TH\" },\r\n    { name: \"Timor-Leste\", code: \"TL\" },\r\n    { name: \"Togo\", code: \"TG\" },\r\n    { name: \"Tokelau\", code: \"TK\" },\r\n    { name: \"Tonga\", code: \"TO\" },\r\n    { name: \"Trinidad and Tobago\", code: \"TT\" },\r\n    { name: \"Tunisia\", code: \"TN\" },\r\n    { name: \"Turkey\", code: \"TR\" },\r\n    { name: \"Turkmenistan\", code: \"TM\" },\r\n    { name: \"Turks and Caicos Islands\", code: \"TC\" },\r\n    { name: \"Tuvalu\", code: \"TV\" },\r\n    { name: \"Uganda\", code: \"UG\" },\r\n    { name: \"Ukraine\", code: \"UA\" },\r\n    { name: \"United Arab Emirates\", code: \"AE\" },\r\n    { name: \"United Kingdom\", code: \"GB\" },\r\n    { name: \"United States\", code: \"US\" },\r\n    { name: \"United States Minor Outlying Islands\", code: \"UM\" },\r\n    { name: \"Uruguay\", code: \"UY\" },\r\n    { name: \"Uzbekistan\", code: \"UZ\" },\r\n    { name: \"Vanuatu\", code: \"VU\" },\r\n    { name: \"Venezuela\", code: \"VE\" },\r\n    { name: \"Viet Nam\", code: \"VN\" },\r\n    { name: \"Virgin Islands, British\", code: \"VG\" },\r\n    { name: \"Virgin Islands, U.S.\", code: \"VI\" },\r\n    { name: \"Wallis and Futuna\", code: \"WF\" },\r\n    { name: \"Western Sahara\", code: \"EH\" },\r\n    { name: \"Yemen\", code: \"YE\" },\r\n    { name: \"Zambia\", code: \"ZM\" },\r\n    { name: \"Zimbabwe\", code: \"ZW\" },\r\n  ];\r\n  public currencyInfo: any[] = [\r\n    {\r\n      englishName: \"Afghan Afghani (\\u060B)\",\r\n      nativeName: \"\\u0627\\u0641\\u063A\\u0627\\u0646\\u06CC \\u0627\\u0641\\u063A\\u0627\\u0646\\u0633\\u062A\\u0627\\u0646\",\r\n      code: \"AFN\",\r\n      symbol: \"\\u060B\",\r\n    },\r\n    {\r\n      englishName: \"Albanian Lek (Lek\\u00EB)\",\r\n      nativeName: \"Leku shqiptar\",\r\n      code: \"ALL\",\r\n      symbol: \"Lek\\u00EB\",\r\n    },\r\n    {\r\n      englishName: \"Algerian Dinar (\\u062F.\\u062C.\\u200F)\",\r\n      nativeName: \"\\u062F\\u064A\\u0646\\u0627\\u0631 \\u062C\\u0632\\u0627\\u0626\\u0631\\u064A\",\r\n      code: \"DZD\",\r\n      symbol: \"\\u062F.\\u062C.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Angolan Kwanza (Kz)\",\r\n      nativeName: \"Kwanza ya Ang\\u00F3la\",\r\n      code: \"AOA\",\r\n      symbol: \"Kz\",\r\n    },\r\n    {\r\n      englishName: \"Argentine Peso ($)\",\r\n      nativeName: \"peso argentino\",\r\n      code: \"ARS\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Armenian Dram (\\u058F)\",\r\n      nativeName: \"\\u0570\\u0561\\u0575\\u056F\\u0561\\u056F\\u0561\\u0576 \\u0564\\u0580\\u0561\\u0574\",\r\n      code: \"AMD\",\r\n      symbol: \"\\u058F\",\r\n    },\r\n    {\r\n      englishName: \"Aruban Florin (Afl.)\",\r\n      nativeName: \"Arubaanse gulden\",\r\n      code: \"AWG\",\r\n      symbol: \"Afl.\",\r\n    },\r\n    {\r\n      englishName: \"Australian Dollar ($)\",\r\n      nativeName: \"Australian Dollar\",\r\n      code: \"AUD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Azerbaijani Manat (\\u20BC)\",\r\n      nativeName: \"AZN\",\r\n      code: \"AZN\",\r\n      symbol: \"\\u20BC\",\r\n    },\r\n    {\r\n      englishName: \"Bahamian Dollar ($)\",\r\n      nativeName: \"Bahamian Dollar\",\r\n      code: \"BSD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Bahraini Dinar (\\u062F.\\u0628.\\u200F)\",\r\n      nativeName: \"\\u062F\\u064A\\u0646\\u0627\\u0631 \\u0628\\u062D\\u0631\\u064A\\u0646\\u064A\",\r\n      code: \"BHD\",\r\n      symbol: \"\\u062F.\\u0628.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Bangladeshi Taka (\\u09F3)\",\r\n      nativeName: \"\\u09AC\\u09BE\\u0982\\u09B2\\u09BE\\u09A6\\u09C7\\u09B6\\u09C0 \\u099F\\u09BE\\u0995\\u09BE\",\r\n      code: \"BDT\",\r\n      symbol: \"\\u09F3\",\r\n    },\r\n    {\r\n      englishName: \"Barbadian Dollar ($)\",\r\n      nativeName: \"Barbadian Dollar\",\r\n      code: \"BBD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Belarusian Ruble (Br)\",\r\n      nativeName: \"\\u0431\\u0435\\u043B\\u0430\\u0440\\u0443\\u0441\\u043A\\u0456 \\u0440\\u0443\\u0431\\u0435\\u043B\\u044C\",\r\n      code: \"BYN\",\r\n      symbol: \"Br\",\r\n    },\r\n    {\r\n      englishName: \"Belize Dollar ($)\",\r\n      nativeName: \"Belize Dollar\",\r\n      code: \"BZD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Bermudan Dollar ($)\",\r\n      nativeName: \"Bermudan Dollar\",\r\n      code: \"BMD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Bhutanese Ngultrum (Nu.)\",\r\n      nativeName: \"\\u0F51\\u0F44\\u0F74\\u0F63\\u0F0B\\u0F40\\u0FB2\\u0F58\",\r\n      code: \"BTN\",\r\n      symbol: \"Nu.\",\r\n    },\r\n    {\r\n      englishName: \"Bolivian Boliviano (Bs)\",\r\n      nativeName: \"boliviano\",\r\n      code: \"BOB\",\r\n      symbol: \"Bs\",\r\n    },\r\n    {\r\n      englishName: \"Bosnia-Herzegovina Convertible Mark (\\u041A\\u041C)\",\r\n      nativeName:\r\n        \"\\u041A\\u043E\\u043D\\u0432\\u0435\\u0440\\u0442\\u0438\\u0431\\u0438\\u043B\\u043D\\u0430 \\u043C\\u0430\\u0440\\u043A\\u0430\",\r\n      code: \"BAM\",\r\n      symbol: \"\\u041A\\u041C\",\r\n    },\r\n    {\r\n      englishName: \"Botswanan Pula (P)\",\r\n      nativeName: \"Botswanan Pula\",\r\n      code: \"BWP\",\r\n      symbol: \"P\",\r\n    },\r\n    {\r\n      englishName: \"Brazilian Real (R$)\",\r\n      nativeName: \"real brasile\\u00F1o\",\r\n      code: \"BRL\",\r\n      symbol: \"R$\",\r\n    },\r\n    {\r\n      englishName: \"British Pound (\\u00A3)\",\r\n      nativeName: \"Punt Prydain\",\r\n      code: \"GBP\",\r\n      symbol: \"\\u00A3\",\r\n    },\r\n    {\r\n      englishName: \"Brunei Dollar ($)\",\r\n      nativeName: \"Dolar Brunei\",\r\n      code: \"BND\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Bulgarian Lev (\\u043B\\u0432.)\",\r\n      nativeName: \"\\u0411\\u044A\\u043B\\u0433\\u0430\\u0440\\u0441\\u043A\\u0438 \\u043B\\u0435\\u0432\",\r\n      code: \"BGN\",\r\n      symbol: \"\\u043B\\u0432.\",\r\n    },\r\n    {\r\n      englishName: \"Burundian Franc (FBu)\",\r\n      nativeName: \"Burundian Franc\",\r\n      code: \"BIF\",\r\n      symbol: \"FBu\",\r\n    },\r\n    {\r\n      englishName: \"Cambodian Riel (\\u17DB)\",\r\n      nativeName: \"\\u179A\\u17C0\\u179B\\u200B\\u1780\\u1798\\u17D2\\u1796\\u17BB\\u1787\\u17B6\",\r\n      code: \"KHR\",\r\n      symbol: \"\\u17DB\",\r\n    },\r\n    {\r\n      englishName: \"Canadian Dollar ($)\",\r\n      nativeName: \"Canadian Dollar\",\r\n      code: \"CAD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Cape Verdean Escudo (\\u200B)\",\r\n      nativeName: \"Skudu Kabuverdianu\",\r\n      code: \"CVE\",\r\n      symbol: \"\\u200B\",\r\n    },\r\n    {\r\n      englishName: \"Cayman Islands Dollar ($)\",\r\n      nativeName: \"Cayman Islands Dollar\",\r\n      code: \"KYD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Central African CFA Franc (FCFA)\",\r\n      nativeName: \"CFA F\\u00E0l\\u00E2\\u014B BEAC\",\r\n      code: \"XAF\",\r\n      symbol: \"FCFA\",\r\n    },\r\n    {\r\n      englishName: \"CFP Franc (FCFP)\",\r\n      nativeName: \"franc CFP\",\r\n      code: \"XPF\",\r\n      symbol: \"FCFP\",\r\n    },\r\n    {\r\n      englishName: \"Chilean Peso (CLP)\",\r\n      nativeName: \"CLP\",\r\n      code: \"CLP\",\r\n      symbol: \"CLP\",\r\n    },\r\n    {\r\n      englishName: \"Chinese Yuan (\\u00A5)\",\r\n      nativeName: \"\\u0F61\\u0F74\\u0F0B\\u0F68\\u0F53\\u0F0B\",\r\n      code: \"CNY\",\r\n      symbol: \"\\u00A5\",\r\n    },\r\n    {\r\n      englishName: \"Colombian Peso ($)\",\r\n      nativeName: \"peso colombiano\",\r\n      code: \"COP\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Comorian Franc (CF)\",\r\n      nativeName: \"\\u0641\\u0631\\u0646\\u0643 \\u062C\\u0632\\u0631 \\u0627\\u0644\\u0642\\u0645\\u0631\",\r\n      code: \"KMF\",\r\n      symbol: \"CF\",\r\n    },\r\n    {\r\n      englishName: \"Congolese Franc (FC)\",\r\n      nativeName: \"franc congolais\",\r\n      code: \"CDF\",\r\n      symbol: \"FC\",\r\n    },\r\n    {\r\n      englishName: \"Costa Rican Col\\u00F3n (\\u20A1)\",\r\n      nativeName: \"col\\u00F3n costarricense\",\r\n      code: \"CRC\",\r\n      symbol: \"\\u20A1\",\r\n    },\r\n    {\r\n      englishName: \"Croatian Kuna (HRK)\",\r\n      nativeName: \"hrvatska kuna\",\r\n      code: \"HRK\",\r\n      symbol: \"HRK\",\r\n    },\r\n    {\r\n      englishName: \"Cuban Peso ($)\",\r\n      nativeName: \"peso cubano\",\r\n      code: \"CUP\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Czech Koruna (K\\u010D)\",\r\n      nativeName: \"\\u010Desk\\u00E1 koruna\",\r\n      code: \"CZK\",\r\n      symbol: \"K\\u010D\",\r\n    },\r\n    {\r\n      englishName: \"Danish Krone (kr.)\",\r\n      nativeName: \"dansk krone\",\r\n      code: \"DKK\",\r\n      symbol: \"kr.\",\r\n    },\r\n    {\r\n      englishName: \"Djiboutian Franc (Fdj)\",\r\n      nativeName: \"DJF\",\r\n      code: \"DJF\",\r\n      symbol: \"Fdj\",\r\n    },\r\n    {\r\n      englishName: \"Dominican Peso (RD$)\",\r\n      nativeName: \"peso dominicano\",\r\n      code: \"DOP\",\r\n      symbol: \"RD$\",\r\n    },\r\n    {\r\n      englishName: \"East Caribbean Dollar ($)\",\r\n      nativeName: \"East Caribbean Dollar\",\r\n      code: \"XCD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Egyptian Pound (\\u062C.\\u0645.\\u200F)\",\r\n      nativeName: \"\\u062C\\u0646\\u064A\\u0647 \\u0645\\u0635\\u0631\\u064A\",\r\n      code: \"EGP\",\r\n      symbol: \"\\u062C.\\u0645.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Eritrean Nakfa (Nfk)\",\r\n      nativeName: \"ERN\",\r\n      code: \"ERN\",\r\n      symbol: \"Nfk\",\r\n    },\r\n    {\r\n      englishName: \"Ethiopian Birr (Br)\",\r\n      nativeName: \"ETB\",\r\n      code: \"ETB\",\r\n      symbol: \"Br\",\r\n    },\r\n    {\r\n      englishName: \"Euro (\\u20AC)\",\r\n      nativeName: \"euro\",\r\n      code: \"EUR\",\r\n      symbol: \"\\u20AC\",\r\n    },\r\n    {\r\n      englishName: \"Falkland Islands Pound (\\u00A3)\",\r\n      nativeName: \"Falkland Islands Pound\",\r\n      code: \"FKP\",\r\n      symbol: \"\\u00A3\",\r\n    },\r\n    {\r\n      englishName: \"Fijian Dollar ($)\",\r\n      nativeName: \"Fijian Dollar\",\r\n      code: \"FJD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Gambian Dalasi (D)\",\r\n      nativeName: \"Gambian Dalasi\",\r\n      code: \"GMD\",\r\n      symbol: \"D\",\r\n    },\r\n    {\r\n      englishName: \"Georgian Lari (\\u20BE)\",\r\n      nativeName: \"\\u10E5\\u10D0\\u10E0\\u10D7\\u10E3\\u10DA\\u10D8 \\u10DA\\u10D0\\u10E0\\u10D8\",\r\n      code: \"GEL\",\r\n      symbol: \"\\u20BE\",\r\n    },\r\n    {\r\n      englishName: \"Ghanaian Cedi (GH\\u20B5)\",\r\n      nativeName: \"Ghana Sidi\",\r\n      code: \"GHS\",\r\n      symbol: \"GH\\u20B5\",\r\n    },\r\n    {\r\n      englishName: \"Gibraltar Pound (\\u00A3)\",\r\n      nativeName: \"Gibraltar Pound\",\r\n      code: \"GIP\",\r\n      symbol: \"\\u00A3\",\r\n    },\r\n    {\r\n      englishName: \"Guatemalan Quetzal (Q)\",\r\n      nativeName: \"quetzal\",\r\n      code: \"GTQ\",\r\n      symbol: \"Q\",\r\n    },\r\n    {\r\n      englishName: \"Guinean Franc (FG)\",\r\n      nativeName: \"GNF\",\r\n      code: \"GNF\",\r\n      symbol: \"FG\",\r\n    },\r\n    {\r\n      englishName: \"Guyanaese Dollar ($)\",\r\n      nativeName: \"Guyanaese Dollar\",\r\n      code: \"GYD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Haitian Gourde (G)\",\r\n      nativeName: \"gourde ha\\u00EFtienne\",\r\n      code: \"HTG\",\r\n      symbol: \"G\",\r\n    },\r\n    {\r\n      englishName: \"Honduran Lempira (L)\",\r\n      nativeName: \"lempira hondure\\u00F1o\",\r\n      code: \"HNL\",\r\n      symbol: \"L\",\r\n    },\r\n    {\r\n      englishName: \"Hong Kong Dollar (HK$)\",\r\n      nativeName: \"Hong Kong Dollar\",\r\n      code: \"HKD\",\r\n      symbol: \"HK$\",\r\n    },\r\n    {\r\n      englishName: \"Hungarian Forint (Ft)\",\r\n      nativeName: \"magyar forint\",\r\n      code: \"HUF\",\r\n      symbol: \"Ft\",\r\n    },\r\n    {\r\n      englishName: \"Icelandic Kr\\u00F3na (ISK)\",\r\n      nativeName: \"\\u00EDslensk kr\\u00F3na\",\r\n      code: \"ISK\",\r\n      symbol: \"ISK\",\r\n    },\r\n    {\r\n      englishName: \"Indian Rupee (\\u20B9)\",\r\n      nativeName: \"\\u09AD\\u09BE\\u09F0\\u09A4\\u09C0\\u09AF\\u09BC \\u09F0\\u09C1\\u09AA\\u09C0\",\r\n      code: \"INR\",\r\n      symbol: \"\\u20B9\",\r\n    },\r\n    {\r\n      englishName: \"Indonesian Rupiah (Rp)\",\r\n      nativeName: \"Rupiah Indonesia\",\r\n      code: \"IDR\",\r\n      symbol: \"Rp\",\r\n    },\r\n    {\r\n      englishName: \"Iranian Rial (IRR)\",\r\n      nativeName: \"IRR\",\r\n      code: \"IRR\",\r\n      symbol: \"IRR\",\r\n    },\r\n    {\r\n      englishName: \"Iraqi Dinar (\\u062F.\\u0639.\\u200F)\",\r\n      nativeName: \"\\u062F\\u064A\\u0646\\u0627\\u0631 \\u0639\\u0631\\u0627\\u0642\\u064A\",\r\n      code: \"IQD\",\r\n      symbol: \"\\u062F.\\u0639.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Israeli New Shekel (\\u20AA)\",\r\n      nativeName: \"\\u0634\\u064A\\u0643\\u0644 \\u0625\\u0633\\u0631\\u0627\\u0626\\u064A\\u0644\\u064A \\u062C\\u062F\\u064A\\u062F\",\r\n      code: \"ILS\",\r\n      symbol: \"\\u20AA\",\r\n    },\r\n    {\r\n      englishName: \"Jamaican Dollar ($)\",\r\n      nativeName: \"Jamaican Dollar\",\r\n      code: \"JMD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Japanese Yen (\\uFFE5)\",\r\n      nativeName: \"\\u65E5\\u672C\\u5186\",\r\n      code: \"JPY\",\r\n      symbol: \"\\uFFE5\",\r\n    },\r\n    {\r\n      englishName: \"Jordanian Dinar (\\u062F.\\u0623.\\u200F)\",\r\n      nativeName: \"\\u062F\\u064A\\u0646\\u0627\\u0631 \\u0623\\u0631\\u062F\\u0646\\u064A\",\r\n      code: \"JOD\",\r\n      symbol: \"\\u062F.\\u0623.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Kazakhstani Tenge (\\u20B8)\",\r\n      nativeName: \"\\u049A\\u0430\\u0437\\u0430\\u049B\\u0441\\u0442\\u0430\\u043D \\u0442\\u0435\\u04A3\\u0433\\u0435\\u0441\\u0456\",\r\n      code: \"KZT\",\r\n      symbol: \"\\u20B8\",\r\n    },\r\n    {\r\n      englishName: \"Kenyan Shilling (Ksh)\",\r\n      nativeName: \"Shilingi ya Kenya\",\r\n      code: \"KES\",\r\n      symbol: \"Ksh\",\r\n    },\r\n    {\r\n      englishName: \"Kuwaiti Dinar (\\u062F.\\u0643.\\u200F)\",\r\n      nativeName: \"\\u062F\\u064A\\u0646\\u0627\\u0631 \\u0643\\u0648\\u064A\\u062A\\u064A\",\r\n      code: \"KWD\",\r\n      symbol: \"\\u062F.\\u0643.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Kyrgystani Som (\\u0441\\u043E\\u043C)\",\r\n      nativeName: \"\\u041A\\u044B\\u0440\\u0433\\u044B\\u0437\\u0441\\u0442\\u0430\\u043D \\u0441\\u043E\\u043C\\u0443\",\r\n      code: \"KGS\",\r\n      symbol: \"\\u0441\\u043E\\u043C\",\r\n    },\r\n    {\r\n      englishName: \"Laotian Kip (\\u20AD)\",\r\n      nativeName: \"\\u0EA5\\u0EB2\\u0EA7 \\u0E81\\u0EB5\\u0E9A\",\r\n      code: \"LAK\",\r\n      symbol: \"\\u20AD\",\r\n    },\r\n    {\r\n      englishName: \"Lebanese Pound (\\u0644.\\u0644.\\u200F)\",\r\n      nativeName: \"\\u062C\\u0646\\u064A\\u0647 \\u0644\\u0628\\u0646\\u0627\\u0646\\u064A\",\r\n      code: \"LBP\",\r\n      symbol: \"\\u0644.\\u0644.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Liberian Dollar ($)\",\r\n      nativeName: \"Liberian Dollar\",\r\n      code: \"LRD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Libyan Dinar (\\u062F.\\u0644.\\u200F)\",\r\n      nativeName: \"\\u062F\\u064A\\u0646\\u0627\\u0631 \\u0644\\u064A\\u0628\\u064A\",\r\n      code: \"LYD\",\r\n      symbol: \"\\u062F.\\u0644.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Macanese Pataca (MOP$)\",\r\n      nativeName: \"Macanese Pataca\",\r\n      code: \"MOP\",\r\n      symbol: \"MOP$\",\r\n    },\r\n    {\r\n      englishName: \"Macedonian Denar (\\u0434\\u0435\\u043D)\",\r\n      nativeName: \"\\u041C\\u0430\\u043A\\u0435\\u0434\\u043E\\u043D\\u0441\\u043A\\u0438 \\u0434\\u0435\\u043D\\u0430\\u0440\",\r\n      code: \"MKD\",\r\n      symbol: \"\\u0434\\u0435\\u043D\",\r\n    },\r\n    {\r\n      englishName: \"Malagasy Ariary (Ar)\",\r\n      nativeName: \"Malagasy Ariary\",\r\n      code: \"MGA\",\r\n      symbol: \"Ar\",\r\n    },\r\n    {\r\n      englishName: \"Malawian Kwacha (MK)\",\r\n      nativeName: \"Malawian Kwacha\",\r\n      code: \"MWK\",\r\n      symbol: \"MK\",\r\n    },\r\n    {\r\n      englishName: \"Malaysian Ringgit (RM)\",\r\n      nativeName: \"Malaysian Ringgit\",\r\n      code: \"MYR\",\r\n      symbol: \"RM\",\r\n    },\r\n    {\r\n      englishName: \"Maldivian Rufiyaa (\\u0783.)\",\r\n      nativeName: \"MVR\",\r\n      code: \"MVR\",\r\n      symbol: \"\\u0783.\",\r\n    },\r\n    {\r\n      englishName: \"Mauritanian Ouguiya (\\u0623.\\u0645.)\",\r\n      nativeName: \"\\u0623\\u0648\\u0642\\u064A\\u0629 \\u0645\\u0648\\u0631\\u064A\\u062A\\u0627\\u0646\\u064A\\u0629\",\r\n      code: \"MRU\",\r\n      symbol: \"\\u0623.\\u0645.\",\r\n    },\r\n    {\r\n      englishName: \"Mauritian Rupee (Rs)\",\r\n      nativeName: \"Mauritian Rupee\",\r\n      code: \"MUR\",\r\n      symbol: \"Rs\",\r\n    },\r\n    {\r\n      englishName: \"Mexican Peso ($)\",\r\n      nativeName: \"peso mexicano\",\r\n      code: \"MXN\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Moldovan Leu (L)\",\r\n      nativeName: \"leu moldovenesc\",\r\n      code: \"MDL\",\r\n      symbol: \"L\",\r\n    },\r\n    {\r\n      englishName: \"Mongolian Tugrik (\\u20AE)\",\r\n      nativeName: \"\\u0442\\u04E9\\u0433\\u0440\\u04E9\\u0433\",\r\n      code: \"MNT\",\r\n      symbol: \"\\u20AE\",\r\n    },\r\n    {\r\n      englishName: \"Moroccan Dirham (\\u062F.\\u0645.\\u200F)\",\r\n      nativeName: \"\\u062F\\u0631\\u0647\\u0645 \\u0645\\u063A\\u0631\\u0628\\u064A\",\r\n      code: \"MAD\",\r\n      symbol: \"\\u062F.\\u0645.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Mozambican Metical (MTn)\",\r\n      nativeName: \"MZN\",\r\n      code: \"MZN\",\r\n      symbol: \"MTn\",\r\n    },\r\n    {\r\n      englishName: \"Myanmar Kyat (K)\",\r\n      nativeName: \"\\u1019\\u103C\\u1014\\u103A\\u1019\\u102C \\u1000\\u103B\\u1015\\u103A\",\r\n      code: \"MMK\",\r\n      symbol: \"K\",\r\n    },\r\n    {\r\n      englishName: \"Namibian Dollar ($)\",\r\n      nativeName: \"Namibiese dollar\",\r\n      code: \"NAD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Nepalese Rupee (\\u0928\\u0947\\u0930\\u0942)\",\r\n      nativeName: \"\\u0928\\u0947\\u092A\\u093E\\u0932\\u0940 \\u0930\\u0942\\u092A\\u0948\\u092F\\u093E\\u0901\",\r\n      code: \"NPR\",\r\n      symbol: \"\\u0928\\u0947\\u0930\\u0942\",\r\n    },\r\n    {\r\n      englishName: \"Netherlands Antillean Guilder (NAf.)\",\r\n      nativeName: \"Netherlands Antillean Guilder\",\r\n      code: \"ANG\",\r\n      symbol: \"NAf.\",\r\n    },\r\n    {\r\n      englishName: \"New Taiwan Dollar ($)\",\r\n      nativeName: \"\\u65B0\\u53F0\\u5E63\",\r\n      code: \"TWD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"New Zealand Dollar ($)\",\r\n      nativeName: \"New Zealand Dollar\",\r\n      code: \"NZD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Nicaraguan C\\u00F3rdoba (C$)\",\r\n      nativeName: \"c\\u00F3rdoba nicarag\\u00FCense\",\r\n      code: \"NIO\",\r\n      symbol: \"C$\",\r\n    },\r\n    {\r\n      englishName: \"Nigerian Naira (\\u20A6)\",\r\n      nativeName: \"Nigerian Naira\",\r\n      code: \"NGN\",\r\n      symbol: \"\\u20A6\",\r\n    },\r\n    {\r\n      englishName: \"North Korean Won (KPW)\",\r\n      nativeName: \"\\uC870\\uC120 \\uBBFC\\uC8FC\\uC8FC\\uC758 \\uC778\\uBBFC \\uACF5\\uD654\\uAD6D \\uC6D0\",\r\n      code: \"KPW\",\r\n      symbol: \"KPW\",\r\n    },\r\n    {\r\n      englishName: \"Norwegian Krone (kr)\",\r\n      nativeName: \"norske kroner\",\r\n      code: \"NOK\",\r\n      symbol: \"kr\",\r\n    },\r\n    {\r\n      englishName: \"Omani Rial (\\u0631.\\u0639.\\u200F)\",\r\n      nativeName: \"\\u0631\\u064A\\u0627\\u0644 \\u0639\\u0645\\u0627\\u0646\\u064A\",\r\n      code: \"OMR\",\r\n      symbol: \"\\u0631.\\u0639.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Pakistani Rupee (Rs)\",\r\n      nativeName: \"Pakistani Rupee\",\r\n      code: \"PKR\",\r\n      symbol: \"Rs\",\r\n    },\r\n    {\r\n      englishName: \"Panamanian Balboa (B/.)\",\r\n      nativeName: \"balboa paname\\u00F1o\",\r\n      code: \"PAB\",\r\n      symbol: \"B/.\",\r\n    },\r\n    {\r\n      englishName: \"Papua New Guinean Kina (K)\",\r\n      nativeName: \"Papua New Guinean Kina\",\r\n      code: \"PGK\",\r\n      symbol: \"K\",\r\n    },\r\n    {\r\n      englishName: \"Paraguayan Guarani (Gs.)\",\r\n      nativeName: \"guaran\\u00ED paraguayo\",\r\n      code: \"PYG\",\r\n      symbol: \"Gs.\",\r\n    },\r\n    {\r\n      englishName: \"Peruvian Sol (S/)\",\r\n      nativeName: \"sol peruano\",\r\n      code: \"PEN\",\r\n      symbol: \"S/\",\r\n    },\r\n    {\r\n      englishName: \"Philippine Piso (\\u20B1)\",\r\n      nativeName: \"PHP\",\r\n      code: \"PHP\",\r\n      symbol: \"\\u20B1\",\r\n    },\r\n    {\r\n      englishName: \"Polish Zloty (z\\u0142)\",\r\n      nativeName: \"z\\u0142oty polski\",\r\n      code: \"PLN\",\r\n      symbol: \"z\\u0142\",\r\n    },\r\n    {\r\n      englishName: \"Qatari Rial (\\u0631.\\u0642.\\u200F)\",\r\n      nativeName: \"\\u0631\\u064A\\u0627\\u0644 \\u0642\\u0637\\u0631\\u064A\",\r\n      code: \"QAR\",\r\n      symbol: \"\\u0631.\\u0642.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Romanian Leu (RON)\",\r\n      nativeName: \"leu rom\\u00E2nesc\",\r\n      code: \"RON\",\r\n      symbol: \"RON\",\r\n    },\r\n    {\r\n      englishName: \"Russian Ruble (RUB)\",\r\n      nativeName: \"RUB\",\r\n      code: \"RUB\",\r\n      symbol: \"RUB\",\r\n    },\r\n    {\r\n      englishName: \"Rwandan Franc (RF)\",\r\n      nativeName: \"Rwandan Franc\",\r\n      code: \"RWF\",\r\n      symbol: \"RF\",\r\n    },\r\n    {\r\n      englishName: \"Samoan Tala (WS$)\",\r\n      nativeName: \"Samoan Tala\",\r\n      code: \"WST\",\r\n      symbol: \"WS$\",\r\n    },\r\n    {\r\n      englishName: \"S\\u00E3o Tom\\u00E9 \\u0026 Pr\\u00EDncipe Dobra (Db)\",\r\n      nativeName: \"dobra de S\\u00E3o Tom\\u00E9 e Pr\\u00EDncipe\",\r\n      code: \"STN\",\r\n      symbol: \"Db\",\r\n    },\r\n    {\r\n      englishName: \"Saudi Riyal (\\u0631.\\u0633.\\u200F)\",\r\n      nativeName: \"\\u0631\\u064A\\u0627\\u0644 \\u0633\\u0639\\u0648\\u062F\\u064A\",\r\n      code: \"SAR\",\r\n      symbol: \"\\u0631.\\u0633.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Serbian Dinar (RSD)\",\r\n      nativeName: \"\\u0421\\u0440\\u043F\\u0441\\u043A\\u0438 \\u0434\\u0438\\u043D\\u0430\\u0440\",\r\n      code: \"RSD\",\r\n      symbol: \"RSD\",\r\n    },\r\n    {\r\n      englishName: \"Seychellois Rupee (SR)\",\r\n      nativeName: \"Seychellois Rupee\",\r\n      code: \"SCR\",\r\n      symbol: \"SR\",\r\n    },\r\n    {\r\n      englishName: \"Sierra Leonean Leone (Le)\",\r\n      nativeName: \"Sierra Leonean Leone\",\r\n      code: \"SLL\",\r\n      symbol: \"Le\",\r\n    },\r\n    {\r\n      englishName: \"Singapore Dollar ($)\",\r\n      nativeName: \"Singapore Dollar\",\r\n      code: \"SGD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Solomon Islands Dollar ($)\",\r\n      nativeName: \"Solomon Islands Dollar\",\r\n      code: \"SBD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Somali Shilling (S)\",\r\n      nativeName: \"\\u0634\\u0644\\u0646 \\u0635\\u0648\\u0645\\u0627\\u0644\\u064A\",\r\n      code: \"SOS\",\r\n      symbol: \"S\",\r\n    },\r\n    {\r\n      englishName: \"South African Rand (R)\",\r\n      nativeName: \"Suid-Afrikaanse rand\",\r\n      code: \"ZAR\",\r\n      symbol: \"R\",\r\n    },\r\n    {\r\n      englishName: \"South Korean Won (\\u20A9)\",\r\n      nativeName: \"\\uB300\\uD55C\\uBBFC\\uAD6D \\uC6D0\",\r\n      code: \"KRW\",\r\n      symbol: \"\\u20A9\",\r\n    },\r\n    {\r\n      englishName: \"South Sudanese Pound (\\u00A3)\",\r\n      nativeName: \"\\u062C\\u0646\\u064A\\u0647 \\u062C\\u0646\\u0648\\u0628 \\u0627\\u0644\\u0633\\u0648\\u062F\\u0627\\u0646\",\r\n      code: \"SSP\",\r\n      symbol: \"\\u00A3\",\r\n    },\r\n    {\r\n      englishName: \"Sri Lankan Rupee (\\u0DBB\\u0DD4.)\",\r\n      nativeName: \"\\u0DC1\\u0DCA\\u200D\\u0DBB\\u0DD3 \\u0DBD\\u0D82\\u0D9A\\u0DCF \\u0DBB\\u0DD4\\u0DB4\\u0DD2\\u0DBA\\u0DBD\",\r\n      code: \"LKR\",\r\n      symbol: \"\\u0DBB\\u0DD4.\",\r\n    },\r\n    {\r\n      englishName: \"St. Helena Pound (\\u00A3)\",\r\n      nativeName: \"St. Helena Pound\",\r\n      code: \"SHP\",\r\n      symbol: \"\\u00A3\",\r\n    },\r\n    {\r\n      englishName: \"Sudanese Pound (\\u062C.\\u0633.)\",\r\n      nativeName: \"\\u062C\\u0646\\u064A\\u0647 \\u0633\\u0648\\u062F\\u0627\\u0646\\u064A\",\r\n      code: \"SDG\",\r\n      symbol: \"\\u062C.\\u0633.\",\r\n    },\r\n    {\r\n      englishName: \"Surinamese Dollar ($)\",\r\n      nativeName: \"Surinaamse dollar\",\r\n      code: \"SRD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Swazi Lilangeni (E)\",\r\n      nativeName: \"Swazi Lilangeni\",\r\n      code: \"SZL\",\r\n      symbol: \"E\",\r\n    },\r\n    {\r\n      englishName: \"Swedish Krona (kr)\",\r\n      nativeName: \"Swedish Krona\",\r\n      code: \"SEK\",\r\n      symbol: \"kr\",\r\n    },\r\n    {\r\n      englishName: \"Swiss Franc (CHF)\",\r\n      nativeName: \"Schweizer Franken\",\r\n      code: \"CHF\",\r\n      symbol: \"CHF\",\r\n    },\r\n    {\r\n      englishName: \"Syrian Pound (\\u0644.\\u0633.\\u200F)\",\r\n      nativeName: \"\\u0644\\u064A\\u0631\\u0629 \\u0633\\u0648\\u0631\\u064A\\u0629\",\r\n      code: \"SYP\",\r\n      symbol: \"\\u0644.\\u0633.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Tajikistani Somoni (\\u0441\\u043E\\u043C.)\",\r\n      nativeName: \"\\u0421\\u043E\\u043C\\u043E\\u043D\\u04E3\",\r\n      code: \"TJS\",\r\n      symbol: \"\\u0441\\u043E\\u043C.\",\r\n    },\r\n    {\r\n      englishName: \"Tanzanian Shilling (TSh)\",\r\n      nativeName: \"shilingi ya Tandhania\",\r\n      code: \"TZS\",\r\n      symbol: \"TSh\",\r\n    },\r\n    {\r\n      englishName: \"Thai Baht (\\u0E3F)\",\r\n      nativeName: \"\\u0E1A\\u0E32\\u0E17\",\r\n      code: \"THB\",\r\n      symbol: \"\\u0E3F\",\r\n    },\r\n    {\r\n      englishName: \"Tongan Pa\\u02BBanga (T$)\",\r\n      nativeName: \"Tongan Pa\\u02BBanga\",\r\n      code: \"TOP\",\r\n      symbol: \"T$\",\r\n    },\r\n    {\r\n      englishName: \"Trinidad \\u0026 Tobago Dollar ($)\",\r\n      nativeName: \"Trinidad \\u0026 Tobago Dollar\",\r\n      code: \"TTD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Tunisian Dinar (\\u062F.\\u062A.\\u200F)\",\r\n      nativeName: \"\\u062F\\u064A\\u0646\\u0627\\u0631 \\u062A\\u0648\\u0646\\u0633\\u064A\",\r\n      code: \"TND\",\r\n      symbol: \"\\u062F.\\u062A.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Turkish Lira (\\u20BA)\",\r\n      nativeName: \"T\\u00FCrk Liras\\u0131\",\r\n      code: \"TRY\",\r\n      symbol: \"\\u20BA\",\r\n    },\r\n    {\r\n      englishName: \"Turkmenistani Manat (TMT)\",\r\n      nativeName: \"T\\u00FCrkmen manady\",\r\n      code: \"TMT\",\r\n      symbol: \"TMT\",\r\n    },\r\n    {\r\n      englishName: \"Ugandan Shilling (USh)\",\r\n      nativeName: \"Eshiringi ya Uganda\",\r\n      code: \"UGX\",\r\n      symbol: \"USh\",\r\n    },\r\n    {\r\n      englishName: \"Ukrainian Hryvnia (\\u20B4)\",\r\n      nativeName: \"\\u0443\\u043A\\u0440\\u0430\\u0438\\u043D\\u0441\\u043A\\u0430\\u044F \\u0433\\u0440\\u0438\\u0432\\u043D\\u0430\",\r\n      code: \"UAH\",\r\n      symbol: \"\\u20B4\",\r\n    },\r\n    {\r\n      englishName: \"United Arab Emirates Dirham (\\u062F.\\u0625.\\u200F)\",\r\n      nativeName: \"\\u062F\\u0631\\u0647\\u0645 \\u0625\\u0645\\u0627\\u0631\\u0627\\u062A\\u064A\",\r\n      code: \"AED\",\r\n      symbol: \"\\u062F.\\u0625.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Uruguayan Peso ($)\",\r\n      nativeName: \"peso uruguayo\",\r\n      code: \"UYU\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"US Dollar ($)\",\r\n      nativeName: \"US \\u13A0\\u13D5\\u13B3\",\r\n      code: \"USD\",\r\n      symbol: \"$\",\r\n    },\r\n    {\r\n      englishName: \"Uzbekistani Som (\\u0441\\u045E\\u043C)\",\r\n      nativeName: \"\\u040E\\u0437\\u0431\\u0435\\u043A\\u0438\\u0441\\u0442\\u043E\\u043D \\u0441\\u045E\\u043C\",\r\n      code: \"UZS\",\r\n      symbol: \"\\u0441\\u045E\\u043C\",\r\n    },\r\n    {\r\n      englishName: \"Vanuatu Vatu (VT)\",\r\n      nativeName: \"Vanuatu Vatu\",\r\n      code: \"VUV\",\r\n      symbol: \"VT\",\r\n    },\r\n    {\r\n      englishName: \"Venezuelan Bol\\u00EDvar (Bs.S)\",\r\n      nativeName: \"bol\\u00EDvar soberano\",\r\n      code: \"VES\",\r\n      symbol: \"Bs.S\",\r\n    },\r\n    {\r\n      englishName: \"Vietnamese Dong (\\u20AB)\",\r\n      nativeName: \"\\u0110\\u1ED3ng Vi\\u1EC7t Nam\",\r\n      code: \"VND\",\r\n      symbol: \"\\u20AB\",\r\n    },\r\n    {\r\n      englishName: \"West African CFA Franc (CFA)\",\r\n      nativeName: \"sefa Fra\\u014B (BCEAO)\",\r\n      code: \"XOF\",\r\n      symbol: \"CFA\",\r\n    },\r\n    {\r\n      englishName: \"Yemeni Rial (\\u0631.\\u064A.\\u200F)\",\r\n      nativeName: \"\\u0631\\u064A\\u0627\\u0644 \\u064A\\u0645\\u0646\\u064A\",\r\n      code: \"YER\",\r\n      symbol: \"\\u0631.\\u064A.\\u200F\",\r\n    },\r\n    {\r\n      englishName: \"Zambian Kwacha (K)\",\r\n      nativeName: \"ZMW\",\r\n      code: \"ZMW\",\r\n      symbol: \"K\",\r\n    },\r\n  ];\r\n\r\n  public get richTextFontSizes(): Item[] {\r\n    if (this._richTextFontSizes.length === 0) {\r\n      this._richTextFontSizes.push({ name: \"8\", value: 1 });\r\n      this._richTextFontSizes.push({ name: \"10\", value: 2 });\r\n      this._richTextFontSizes.push({ name: \"12\", value: 3 });\r\n      this._richTextFontSizes.push({ name: \"14\", value: 4 });\r\n      this._richTextFontSizes.push({ name: \"18\", value: 5 });\r\n      this._richTextFontSizes.push({ name: \"24\", value: 6 });\r\n      this._richTextFontSizes.push({ name: \"36\", value: 7 });\r\n    }\r\n    return this._richTextFontSizes;\r\n  }\r\n\r\n  public get fontSizes(): number[] {\r\n    return this._fontSizes;\r\n  }\r\n  public elementTypes = {\r\n    AddressElement: \"Address\",\r\n    Text_BoxElement: \"StiTextBoxControl\",\r\n    TextElement: \"StiText\",\r\n    TableElement: \"StiTable\",\r\n    Single_SelectionElement: \"StiSingleSelection\",\r\n    SignatureElement: \"StiElectronicSignature\",\r\n    PDFSignatureElement: \"StiPdfDigitalSignature\",\r\n    PanelElement: \"StiPanel\",\r\n    Number_BoxElement: \"StiNumberBox\",\r\n    Multiple_SelectionElement: \"StiMultipleSelection\",\r\n    List_BoxElement: \"StiListBox\",\r\n    LabelElement: \"StiLabelControl\",\r\n    ImageElement: \"StiImage\",\r\n    LineElement: \"Line\",\r\n    DateTime_BoxElement: \"StiDateTimePickerControl\",\r\n    Combo_BoxElement: \"StiComboBox\",\r\n    Check_BoxElement: \"StiCheckBox\",\r\n    ButtonElement: \"StiButton\",\r\n    BarCodeElement: \"StiBarCode\",\r\n    StiPageElement: \"StiPage\",\r\n  };\r\n  public elementCategories = {\r\n    AddressElement: \"Report\",\r\n    Text_BoxElement: \"Dialogs\",\r\n    LineElement: \"Chart\",\r\n    DateTime_BoxElement: \"Dialogs\",\r\n    LabelElement: \"Dialogs\",\r\n  };\r\n\r\n  public getLocalizationKey(type) {\r\n    return this.elementTypes[type];\r\n  }\r\n  public getLocalizationCategory(type) {\r\n    return this.elementCategories[type] ? this.elementCategories[type] : \"Components\";\r\n  }\r\n  public get errorCorrectionLevel(): string[] {\r\n    return this._errorCorrectionLevel;\r\n  }\r\n  public get bodyShapeType(): string[] {\r\n    return this._bodyShapeType;\r\n  }\r\n  public get eyeFrameShapeType(): string[] {\r\n    return this._eyeFrameShapeType;\r\n  }\r\n  public get eyeBallShapeType(): string[] {\r\n    return this._eyeBallShapeType;\r\n  }\r\n  public get brushIdent(): string[] {\r\n    return this._brushIdent;\r\n  }\r\n  public get bodyBrush(): string[] {\r\n    return this._bodyBrush;\r\n  }\r\n  public get dataMatrixSize(): string[] {\r\n    return this._dataMatrixSize;\r\n  }\r\n\r\n  public get numberTypes(): Item[] {\r\n    if (this._numberTypes.length === 0) {\r\n      this._numberTypes.push({\r\n        name: StiLocalizationService.get(\"FormFormatEditor\", \"Number\"),\r\n        value: \"Decimal\",\r\n      });\r\n      this._numberTypes.push({\r\n        name: StiLocalizationService.get(\"FormFormatEditor\", \"Currency\"),\r\n        value: \"Currency\",\r\n      });\r\n    }\r\n    return this._numberTypes;\r\n  }\r\n\r\n  public get rangeFormats(): Item[] {\r\n    if (this._rangeFormats.length === 0) {\r\n      this._rangeFormats.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"Digits\"),\r\n        value: \"Digits\",\r\n      });\r\n      this._rangeFormats.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"Values\"),\r\n        value: \"Values\",\r\n      });\r\n    }\r\n    return this._rangeFormats;\r\n  }\r\n\r\n  public get signatureTypes(): Item[] {\r\n    if (this._signatureTypes.length === 0) {\r\n      this._signatureTypes.push({\r\n        name: StiLocalizationService.get(\"Components\", \"StiElectronicSignature\"),\r\n        value: \"Signature\",\r\n      });\r\n      this._signatureTypes.push({\r\n        name: StiLocalizationService.get(\"Components\", \"StiPdfDigitalSignature\"),\r\n        value: \"DigitalSignature\",\r\n      });\r\n    }\r\n    return this._signatureTypes;\r\n  }\r\n  public get columnTypes(): Item[] {\r\n    if (this._columnTypes.length === 0) {\r\n      this._columnTypes.push({ name: StiLocalizationService.get(\"Components\", \"StiCheckBox\"), value: \"CheckBox\" });\r\n      this._columnTypes.push({ name: StiLocalizationService.get(\"Components\", \"StiComboBox\"), value: \"ComboBox\" });\r\n      this._columnTypes.push({ name: StiLocalizationService.get(\"Dialogs\", \"StiLabelControl\"), value: \"Label\" });\r\n      this._columnTypes.push({\r\n        name: StiLocalizationService.get(\"Components\", \"StiSingleSelection\"),\r\n        value: \"RadioButton\",\r\n      });\r\n      this._columnTypes.push({ name: StiLocalizationService.get(\"Dialogs\", \"StiTextBoxControl\"), value: \"TextBox\" });\r\n      this._columnTypes.push({ name: StiLocalizationService.get(\"Components\", \"StiNumberBox\"), value: \"NumberBox\" });\r\n    }\r\n    return this._columnTypes;\r\n  }\r\n  public get buttonTypes(): Item[] {\r\n    if (this._buttonTypes.length === 0) {\r\n      this._buttonTypes.push({\r\n        name: StiLocalizationService.get(\"Gui\", \"monthcalendar_clearbutton\"),\r\n        value: \"ClearForm\",\r\n      });\r\n      this._buttonTypes.push({\r\n        name: StiLocalizationService.get(\"A_WebViewer\", \"ButtonSend\"),\r\n        value: \"SendForm\",\r\n      });\r\n      this._buttonTypes.push({\r\n        name: StiLocalizationService.get(\"Buttons\", \"Attach\"),\r\n        value: \"AttachFiles\",\r\n      });\r\n    }\r\n    return this._buttonTypes;\r\n  }\r\n  public get algorithmExpressions(): Item[] {\r\n    if (this._algorithmExpressions.length === 0) {\r\n      this._algorithmExpressions.push({ name: \"Constant\", value: \"Constant\" });\r\n      this._algorithmExpressions.push({ name: \"Number cell value\", value: \"NumberCellValue\" });\r\n      this._algorithmExpressions.push({ name: \"Number column max\", value: \"NumberColumnMax\" });\r\n      this._algorithmExpressions.push({ name: \"Number column sum\", value: \"NumberColumnSum\" });\r\n    }\r\n    return this._algorithmExpressions;\r\n  }\r\n  public get buttonSendTypes(): Item[] {\r\n    if (this._buttonSendTypes.length === 0) {\r\n      this._buttonSendTypes.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiButtonSendTypeFDF\"),\r\n        value: \"FDF\",\r\n      });\r\n      this._buttonSendTypes.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiButtonSendTypeHTML\"),\r\n        value: \"HTML\",\r\n      });\r\n      this._buttonSendTypes.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiButtonSendTypeXFDF\"),\r\n        value: \"XFDF\",\r\n      });\r\n      this._buttonSendTypes.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiButtonSendTypePDF\"),\r\n        value: \"PDF\",\r\n      });\r\n    }\r\n    return this._buttonSendTypes;\r\n  }\r\n  public get barcodeTypes(): Item[] {\r\n    if (this._barcodeTypes.length === 0) {\r\n      Enum.getValues(StiBarcodeType).forEach((t) => {\r\n        let name = Enum.getName(StiBarcodeType, t);\r\n        this._barcodeTypes.push({ name: name, value: name });\r\n      });\r\n    }\r\n    return this._barcodeTypes;\r\n  }\r\n  public get dateTimeTypes(): Item[] {\r\n    if (this._dateTimeTypes.length === 0) {\r\n      this._dateTimeTypes.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiDateTimeTypeDateAndTime\"),\r\n        value: \"DateTime\",\r\n      });\r\n      this._dateTimeTypes.push({ name: StiLocalizationService.get(\"FormFormatEditor\", \"Date\"), value: \"Date\" });\r\n      this._dateTimeTypes.push({ name: StiLocalizationService.get(\"FormFormatEditor\", \"Time\"), value: \"Time\" });\r\n    }\r\n    return this._dateTimeTypes;\r\n  }\r\n  public get penStyles(): Item[] {\r\n    if (this._penStyles.length === 0) {\r\n      this._penStyles.push({ name: StiLocalizationService.get(\"PropertyEnum\", \"StiPenStyleSolid\"), value: \"Solid\" });\r\n      this._penStyles.push({ name: StiLocalizationService.get(\"PropertyEnum\", \"StiPenStyleDash\"), value: \"Dash\" });\r\n      this._penStyles.push({ name: StiLocalizationService.get(\"PropertyEnum\", \"StiPenStyleDot\"), value: \"Dot\" });\r\n    }\r\n    return this._penStyles;\r\n  }\r\n  public get dateTimeFormats(): Item[] {\r\n    if (this._dateTimeFormats.length === 0) {\r\n      this._dateTimeFormats.push({ name: \"m/d/yy h:MM tt\", value: \"m/d/yy h:MM tt\" });\r\n      this._dateTimeFormats.push({ name: \"m/d/yyyy h:MM tt\", value: \"m/d/yyyy h:MM tt\" });\r\n      this._dateTimeFormats.push({ name: \"m/d/yy HH:MM\", value: \"m/d/yy HH:MM\" });\r\n      this._dateTimeFormats.push({ name: \"m/d/yyyy HH:MM\", value: \"m/d/yyyy HH:MM\" });\r\n      this._dateTimeFormats.push({ name: \"m/d\", value: \"m/d\" });\r\n      this._dateTimeFormats.push({ name: \"m/d/yy\", value: \"m/d/yy\" });\r\n      this._dateTimeFormats.push({ name: \"m/d/yyyy\", value: \"m/d/yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"mm/dd/yy\", value: \"mm/dd/yy\" });\r\n      this._dateTimeFormats.push({ name: \"mm/dd/yyyy\", value: \"mm/dd/yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"mm/yy\", value: \"mm/yy\" });\r\n      this._dateTimeFormats.push({ name: \"mm/yyyy\", value: \"mm/yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"mmm-yy\", value: \"mmm-yy\" });\r\n      this._dateTimeFormats.push({ name: \"mmm-yyyy\", value: \"mmm-yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"mmmm-yy\", value: \"mmmm-yy\" });\r\n      this._dateTimeFormats.push({ name: \"mmmm-yyyy\", value: \"mmmm-yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"mmm d, yyyy\", value: \"mmm d, yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"mmmm d, yyyy\", value: \"mmmm d, yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"dd.mm.yyyy HH:MM\", value: \"dd.mm.yyyy HH:MM\" });\r\n      this._dateTimeFormats.push({ name: \"d-mmm\", value: \"d-mmm\" });\r\n      this._dateTimeFormats.push({ name: \"d-mmm-yy\", value: \"d-mmm-yy\" });\r\n      this._dateTimeFormats.push({ name: \"d-mmm-yyyy\", value: \"d-mmm-yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"dd-mmm-yy\", value: \"dd-mmm-yy\" });\r\n      this._dateTimeFormats.push({ name: \"dd-mmm-yyyy\", value: \"dd-mmm-yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"dd.mm.yyyy\", value: \"dd.mm.yyyy\" });\r\n      this._dateTimeFormats.push({ name: \"yy-mm-dd\", value: \"yy-mm-dd\" });\r\n      this._dateTimeFormats.push({ name: \"yyyy-mm-dd\", value: \"yyyy-mm-dd\" });\r\n      this._dateTimeFormats.push({ name: \"HH:MM\", value: \"HH:MM\" });\r\n      this._dateTimeFormats.push({ name: \"h:MM tt\", value: \"h:MM tt\" });\r\n      this._dateTimeFormats.push({ name: \"HH:MM:ss\", value: \"HH:MM:ss\" });\r\n      this._dateTimeFormats.push({ name: \"h:MM:ss tt\", value: \"h:MM:ss tt\" });\r\n    }\r\n    return this._dateTimeFormats;\r\n  }\r\n  public get dateFormats(): Item[] {\r\n    if (this._dateFormats.length === 0) {\r\n      this._dateFormats.push({ name: \"m/d\", value: \"m/d\" });\r\n      this._dateFormats.push({ name: \"m/d/yy\", value: \"m/d/yy\" });\r\n      this._dateFormats.push({ name: \"m/d/yyyy\", value: \"m/d/yyyy\" });\r\n      this._dateFormats.push({ name: \"mm/dd/yy\", value: \"mm/dd/yy\" });\r\n      this._dateFormats.push({ name: \"mm/dd/yyyy\", value: \"mm/dd/yyyy\" });\r\n      this._dateFormats.push({ name: \"mm/yy\", value: \"mm/yy\" });\r\n      this._dateFormats.push({ name: \"mm/yyyy\", value: \"mm/yyyy\" });\r\n      this._dateFormats.push({ name: \"mmm-yy\", value: \"mmm-yy\" });\r\n      this._dateFormats.push({ name: \"mmm-yyyy\", value: \"mmm-yyyy\" });\r\n      this._dateFormats.push({ name: \"mmmm-yy\", value: \"mmmm-yy\" });\r\n      this._dateFormats.push({ name: \"mmmm-yyyy\", value: \"mmmm-yyyy\" });\r\n      this._dateFormats.push({ name: \"mmm d, yyyy\", value: \"mmm d, yyyy\" });\r\n      this._dateFormats.push({ name: \"mmmm d, yyyy\", value: \"mmmm d, yyyy\" });\r\n      this._dateFormats.push({ name: \"d-mmm\", value: \"d-mmm\" });\r\n      this._dateFormats.push({ name: \"d-mmm-yy\", value: \"d-mmm-yy\" });\r\n      this._dateFormats.push({ name: \"d-mmm-yyyy\", value: \"d-mmm-yyyy\" });\r\n      this._dateFormats.push({ name: \"dd-mmm-yy\", value: \"dd-mmm-yy\" });\r\n      this._dateFormats.push({ name: \"dd-mmm-yyyy\", value: \"dd-mmm-yyyy\" });\r\n      this._dateFormats.push({ name: \"dd.mm.yyyy\", value: \"dd.mm.yyyy\" });\r\n      this._dateFormats.push({ name: \"yy-mm-dd\", value: \"yy-mm-dd\" });\r\n      this._dateFormats.push({ name: \"yyyy-mm-dd\", value: \"yyyy-mm-dd\" });\r\n    }\r\n    return this._dateFormats;\r\n  }\r\n\r\n  public get timeFormats(): Item[] {\r\n    if (this._timeFormats.length === 0) {\r\n      this._timeFormats.push({ name: \"HH:MM\", value: \"HH:MM\" });\r\n      this._timeFormats.push({ name: \"h:MM tt\", value: \"h:MM tt\" });\r\n      this._timeFormats.push({ name: \"HH:MM:ss\", value: \"HH:MM:ss\" });\r\n      this._timeFormats.push({ name: \"h:MM:ss tt\", value: \"h:MM:ss tt\" });\r\n    }\r\n    return this._timeFormats;\r\n  }\r\n\r\n  public get signatureEditorModes(): Item[] {\r\n    if (this._signatureEditorModes.length === 0) {\r\n      this._signatureEditorModes.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiSignatureTypeType\"),\r\n        value: \"Type\",\r\n      });\r\n      this._signatureEditorModes.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiSignatureTypeDraw\"),\r\n        value: \"Draw\",\r\n      });\r\n    }\r\n    return this._signatureEditorModes;\r\n  }\r\n\r\n  public get signatureSpecialFonts(): Item[] {\r\n    if (this._signatureSpecialFonts.length === 0) {\r\n      this._signatureSpecialFonts.push({\r\n        name: `${StiLocalizationService.get(\"PropertyMain\", \"Style\")}${1}`,\r\n        value: \"Teddy Bear\",\r\n      });\r\n      this._signatureSpecialFonts.push({\r\n        name: `${StiLocalizationService.get(\"PropertyMain\", \"Style\")}${2}`,\r\n        value: \"MADE Likes Script\",\r\n      });\r\n      this._signatureSpecialFonts.push({\r\n        name: `${StiLocalizationService.get(\"PropertyMain\", \"Style\")}${3}`,\r\n        value: \"Denistina\",\r\n      });\r\n    }\r\n    return this._signatureSpecialFonts;\r\n  }\r\n\r\n  public get dateTimeValues(): Item[] {\r\n    if (this._dateTimeValues.length === 0) {\r\n      this._dateTimeValues.push({\r\n        name: StiLocalizationService.get(\"Gui\", \"colorpickerdialog_currentcolorlabel\"),\r\n        value: \"Current\",\r\n      });\r\n      this._dateTimeValues.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"DateTimePickerFormatCustom\"),\r\n        value: \"Custom\",\r\n      });\r\n    }\r\n    return this._dateTimeValues;\r\n  }\r\n  public get themes(): Item[] {\r\n    if (this._themes.length === 0) {\r\n      this._themes.push({ name: \"Light\" });\r\n      this._themes.push({ name: \"Dark\" });\r\n    }\r\n    return this._themes;\r\n  }\r\n  public get borderWeights(): Item[] {\r\n    if (this._borderWeights.length === 0) {\r\n      this._borderWeights.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiLineWeightThin\"),\r\n        value: \"Thin\",\r\n      });\r\n      this._borderWeights.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiLineWeightNormal\"),\r\n        value: \"Normal\",\r\n      });\r\n      this._borderWeights.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiLineWeightThick\"),\r\n        value: \"Thick\",\r\n      });\r\n    }\r\n    return this._borderWeights;\r\n  }\r\n  public get unitAlignment(): Item[] {\r\n    if (this._unitAlignment.length === 0) {\r\n      this._unitAlignment.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiUnitAlignmentPrefix\"),\r\n        value: 1,\r\n      });\r\n      this._unitAlignment.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiUnitAlignmentSuffix\"),\r\n        value: 2,\r\n      });\r\n      this._unitAlignment.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiUnitAlignmentPrefixInside\"),\r\n        value: 3,\r\n      });\r\n      this._unitAlignment.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiUnitAlignmentPrefixInsideWithSpace\"),\r\n        value: 4,\r\n      });\r\n      this._unitAlignment.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiUnitAlignmentSuffixInside\"),\r\n        value: 5,\r\n      });\r\n      this._unitAlignment.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiUnitAlignmentSuffixInsideWithSpace\"),\r\n        value: 6,\r\n      });\r\n    }\r\n    return this._unitAlignment;\r\n  }\r\n  public get minUnitAlignment(): Item[] {\r\n    if (this._minUnitAlignment.length === 0) {\r\n      this._minUnitAlignment.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiUnitAlignmentPrefix\"),\r\n        value: 1,\r\n      });\r\n      this._minUnitAlignment.push({\r\n        name: StiLocalizationService.get(\"PropertyEnum\", \"StiUnitAlignmentSuffix\"),\r\n        value: 2,\r\n      });\r\n    }\r\n    return this._minUnitAlignment;\r\n  }\r\n  public get labelFormat(): Item[] {\r\n    if (this._labelFormat.length === 0) {\r\n      this._labelFormat.push({ name: \"Symbol\", value: 1 });\r\n      this._labelFormat.push({ name: \"Code\", value: 2 });\r\n    }\r\n    return this._labelFormat;\r\n  }\r\n\r\n  public get thousandSeparators(): Item[] {\r\n    if (this._thousandSeparators.length === 0) {\r\n      this._thousandSeparators.push({ name: \"1234567.89\", value: \"None\" });\r\n      this._thousandSeparators.push({ name: \"1234567,89\", value: \"NoneComma\" });\r\n      this._thousandSeparators.push({ name: \"1,234,567.89\", value: \"Comma\" });\r\n      this._thousandSeparators.push({ name: \"1.234.567,89\", value: \"Dot\" });\r\n      this._thousandSeparators.push({ name: \"1`234`567.89\", value: \"Apostrophe\" });\r\n    }\r\n    return this._thousandSeparators;\r\n  }\r\n  public updateHelper() {\r\n    this._minUnitAlignment = [];\r\n    this._unitAlignment = [];\r\n    this._borderWeights = [];\r\n    this._dateTimeValues = [];\r\n    this._penStyles = [];\r\n    this._dateTimeTypes = [];\r\n    this._buttonSendTypes = [];\r\n    this._buttonTypes = [];\r\n    this._signatureTypes = [];\r\n    this._numberTypes = [];\r\n  }\r\n  public deleteSelectedComponent() {\r\n    let fromPanel = true;\r\n    if (this.model.selectedComponent) {\r\n      let container =\r\n        this.model.getElementPage(this.model.selectedComponent.element) ??\r\n        this.model.getElementPanel(this.model.selectedComponent.element);\r\n      container.elements.splice(container.elements.indexOf(this.model.selectedComponent.element), 1);\r\n      this.render.removeElement(this.model.selectedComponent.element, container.elements);\r\n      this.model.selectedComponent = null;\r\n      this.model.formEvents.next({ name: \"ComponentDeleted\" });\r\n      this.model.cursor = \"default\";\r\n    }\r\n  }\r\n\r\n  public getElementClass(type: string): any {\r\n    if (type == \"TextElement\" || type == \"Text\") {\r\n      return StiTextElement;\r\n    } else if (type == \"Text_BoxElement\" || type == \"TextBox\") {\r\n      return StiTextBoxElement;\r\n    } else if (type == \"TableElement\" || type == \"Table\") {\r\n      return StiTableElement;\r\n    } else if (type == \"Single_SelectionElement\" || type == \"SingleSelection\") {\r\n      return StiSingleSelectionElement;\r\n    } else if (type == \"SignatureElement\" || type == \"Signature\") {\r\n      return StiSignatureElement;\r\n    } else if (type == \"PDFSignatureElement\" || type == \"PDFSignature\") {\r\n      return StiPDFSignatureElement;\r\n    } else if (type == \"PanelElement\" || type == \"Panel\") {\r\n      return StiPanelElement;\r\n    } else if (type == \"Number_BoxElement\" || type == \"NumberBox\") {\r\n      return StiNumberBoxElement;\r\n    } else if (type == \"Multiple_SelectionElement\" || type == \"MultipleSelection\") {\r\n      return StiMultipleSelectionElement;\r\n    } else if (type == \"List_BoxElement\" || type == \"ListBox\") {\r\n      return StiListBoxElement;\r\n    } else if (type == \"LineElement\" || type == \"Line\") {\r\n      return StiLineElement;\r\n    } else if (type == \"LabelElement\" || type == \"Label\") {\r\n      return StiLabelElement;\r\n    } else if (type == \"ImageElement\" || type == \"Image\") {\r\n      return StiImageElement;\r\n    } else if (type == \"DateTime_BoxElement\" || type == \"DateTimeBox\") {\r\n      return StiDateTimeBoxElement;\r\n    } else if (type == \"Combo_BoxElement\" || type == \"ComboBox\") {\r\n      return StiComboBoxElement;\r\n    } else if (type == \"Check_BoxElement\" || type == \"CheckBox\") {\r\n      return StiCheckBoxElement;\r\n    } else if (type == \"ButtonElement\" || type == \"Button\") {\r\n      return StiButtonElement;\r\n    } else if (type == \"BarCodeElement\" || type == \"BarCode\") {\r\n      return StiBarcodeElement;\r\n    } else if (type == \"AddressElement\" || type == \"Address\") {\r\n      return StiAddressElement;\r\n    } else if (type == \"Page\") {\r\n      return StiFormPageElement;\r\n    } else if (type == \"Form\") {\r\n      return StiForm;\r\n    }\r\n    // return this.pageElement.getElementTypes()[type] ?? StiPanelElement;\r\n  }\r\n\r\n  public clone(element: StiFormElement): StiFormElement {\r\n    let clazz = this.getElementClass(element.type);\r\n    let result = new clazz();\r\n    let jObject = new StiJson();\r\n    jObject.deserialize(element.saveToJsonObject({}).serialize());\r\n    result.loadFromJsonObject(jObject);\r\n    result.guid = Guid.newGuid().toString();\r\n\r\n    if (\"displayValue\" in element) {\r\n      result[\"displayValue\"] = element[\"displayValue\"];\r\n    }\r\n    if (\"form\" in element) {\r\n      result[\"form\"] = element[\"form\"];\r\n    }\r\n\r\n    return result;\r\n  }\r\n  public clonePage(page: StiFormPageElement): StiFormPageElement {\r\n    let result = new StiFormPageElement(page.form);\r\n    let jObject = new StiJson();\r\n    jObject.deserialize(page.saveToJsonObject({}).serialize());\r\n    result.loadFromJsonObject(jObject);\r\n    result.guid = Guid.newGuid().toString();\r\n    result.form = page.form;\r\n    return result;\r\n  }\r\n\r\n  public get fileMenuItems(): any[] {\r\n    if (this._fileMenuItems.length == 0) {\r\n      this._fileMenuItems = [\r\n        // { caption: StiLocalizationService.get(\"PropertyMain\", \"Info\"), image: \"assets/Images/Other/FileMenu/Home.png\" },\r\n        {\r\n          caption: StiLocalizationService.get(\"MainMenu\", \"menuFileNew\").replace(\"&amp\", \"\").replace(\";\", \"\"),\r\n          image: \"images.Other.FileMenu.Report.png\",\r\n          name: \"New\",\r\n        },\r\n        {\r\n          caption: StiLocalizationService.get(\"MainMenu\", \"menuFileOpen\")\r\n            .replace(\"&amp\", \"\")\r\n            .replace(\";\", \"\")\r\n            .replace(\"...\", \"\"),\r\n          image: \"images.Other.FileMenu.Folder.png\",\r\n          name: \"Open\",\r\n        },\r\n        { name: \"Divider\" },\r\n        {\r\n          caption: StiLocalizationService.get(\"MainMenu\", \"menuFileSave\").replace(\"&amp\", \"\").replace(\";\", \"\"),\r\n          name: \"Save\",\r\n        },\r\n        { caption: StiLocalizationService.get(\"MainMenu\", \"menuFileSaveAs\").replace(\"...\", \"\"), name: \"SaveAs\" },\r\n        /*  { caption: StiLocalizationService.get(\"PropertyMain\", \"Share\") },\r\n        { caption: StiLocalizationService.get(\"PropertyMain\", \"Help\") },\r\n        { caption: StiLocalizationService.get(\"PropertyMain\", \"Close\") }, */\r\n        { name: \"Divider\" },\r\n        /*  { caption: StiLocalizationService.get(\"PropertyMain\", \"Account\") },\r\n        { caption: StiLocalizationService.get(\"PropertyMain\", \"Options\") }, */\r\n        {\r\n          caption: StiLocalizationService.get(\"MainMenu\", \"menuHelpAboutProgramm\")\r\n            .replace(\"&amp\", \"\")\r\n            .replace(\";\", \"\")\r\n            .replace(\"...\", \"\"),\r\n          name: \"About\",\r\n        },\r\n      ];\r\n    }\r\n    return this._fileMenuItems;\r\n  }\r\n\r\n  public getAddTotalMenuItems(): MenuItem[] {\r\n    let table = this.model.selectedComponent?.element as StiTableElement;\r\n    let this_ = this;\r\n    if (!this.addTotalMenuItems && table?.columns?.length > 0) {\r\n      this.addTotalMenuItems = [];\r\n      let commands = [\r\n        { name: this.loc.getP(\"Summary\"), type: \"Sum\" },\r\n        { name: this.loc.getP(\"Minimum\"), type: \"Min\" },\r\n        { name: this.loc.getP(\"Maximum\"), type: \"Max\" },\r\n        { name: this.loc.getP(\"Count\"), type: \"Count\" },\r\n      ];\r\n\r\n      commands.forEach((command) => {\r\n        let items = [];\r\n        table.columns.forEach((column, index) => {\r\n          if (column instanceof StiNumberBoxColumnItem || column instanceof StiLabelColumnItem) {\r\n            items.push({\r\n              label: column.label?.length > 0 ? column.label : `${this.loc.get2(\"PropertyMain\", \"Column\")} ${index + 1}`,\r\n              command: () => {\r\n                this_.zone.run(() => {\r\n                  table.totalsFields.push(new StiTotalsFieldItem(command.type, `{${command.type}(Col(${index + 1}))}`, this.model.form));\r\n                  this.model.showColumnPreview(table.totalsFields.length - 1, \"totals\");\r\n                });\r\n              },\r\n            });\r\n          }\r\n        });\r\n        if (items.length > 0) {\r\n          this.addTotalMenuItems.push({ label: command.name, items: items });\r\n        }\r\n      });\r\n\r\n      let items = [];\r\n      table.columns.forEach((column, index) => {\r\n        let rowItems = [];\r\n        table.rowLabels.forEach((rowLabel, rowIndex) => {\r\n          rowItems.push({\r\n            label: `Row ${rowIndex + 1}`,\r\n            command: () => {\r\n              this_.zone.run(() => {\r\n                table.totalsFields.push(new StiTotalsFieldItem(\"Cell\", `{Cell(${index + 1}, ${rowIndex + 1})}`, this.model.form));\r\n                this.model.showColumnPreview(table.totalsFields.length - 1, \"totals\");\r\n              });\r\n            },\r\n          });\r\n        });\r\n\r\n        items.push({\r\n          label: column.label?.length > 0 ? column.label : `${this.loc.get2(\"PropertyMain\", \"Column\")} ${index + 1}`,\r\n          items: rowItems,\r\n        });\r\n      });\r\n\r\n      this.addTotalMenuItems.push({ label: this.loc.get2(\"PropertyCategory\", \"CellCategory\"), items: items });\r\n\r\n      this.addTotalMenuItems.push({\r\n        label: this.loc.get2(\"Report\", \"StiEmptyBrush\"),\r\n        command: () => {\r\n          this_.zone.run(() => {\r\n            table.totalsFields.push(new StiTotalsFieldItem(\"\", \"\", this.model.form));\r\n            this.model.showColumnPreview(table.totalsFields.length - 1, \"totals\");\r\n          });\r\n        }\r\n      });\r\n    }\r\n    return this.addTotalMenuItems;\r\n  }\r\n\r\n  _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\n\r\n  public base64Encode(input) {\r\n    if (input == null) return \"\";\r\n\r\n    // Decode from UTF-8 text\r\n    if (typeof unescape != \"undefined\") {\r\n      input = unescape(encodeURIComponent(input));\r\n    } else {\r\n      input = input.replace(/\\r\\n/g, \"\\n\");\r\n      var utftext = \"\";\r\n      for (var n = 0; n < input.length; n++) {\r\n        var c = input.charCodeAt(n);\r\n\r\n        if (c < 128) {\r\n          utftext += String.fromCharCode(c);\r\n        } else if (c > 127 && c < 2048) {\r\n          utftext += String.fromCharCode((c >> 6) | 192);\r\n          utftext += String.fromCharCode((c & 63) | 128);\r\n        } else {\r\n          utftext += String.fromCharCode((c >> 12) | 224);\r\n          utftext += String.fromCharCode(((c >> 6) & 63) | 128);\r\n          utftext += String.fromCharCode((c & 63) | 128);\r\n        }\r\n      }\r\n\r\n      input = utftext;\r\n    }\r\n\r\n    // Encode to Base64 string\r\n    if (typeof window.btoa != \"undefined\") return window.btoa(input);\r\n\r\n    var output = \"\";\r\n    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\r\n    var i = 0;\r\n\r\n    while (i < input.length) {\r\n      chr1 = input.charCodeAt(i++);\r\n      chr2 = input.charCodeAt(i++);\r\n      chr3 = input.charCodeAt(i++);\r\n\r\n      enc1 = chr1 >> 2;\r\n      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\r\n      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\r\n      enc4 = chr3 & 63;\r\n\r\n      if (isNaN(chr2)) enc3 = enc4 = 64;\r\n      else if (isNaN(chr3)) enc4 = 64;\r\n\r\n      output =\r\n        output +\r\n        this._keyStr.charAt(enc1) +\r\n        this._keyStr.charAt(enc2) +\r\n        this._keyStr.charAt(enc3) +\r\n        this._keyStr.charAt(enc4);\r\n    }\r\n\r\n    return output;\r\n  }\r\n\r\n  public base64Decode(input) {\r\n    if (input == null) return \"\";\r\n    var output = \"\";\r\n\r\n    // Decode from Base64 string\r\n    if (typeof window.atob != \"undefined\") {\r\n      output = window.atob(input);\r\n    } else {\r\n      var chr1, chr2, chr3;\r\n      var enc1, enc2, enc3, enc4;\r\n      var i = 0;\r\n\r\n      input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\r\n      while (i < input.length) {\r\n        enc1 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc2 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc3 = this._keyStr.indexOf(input.charAt(i++));\r\n        enc4 = this._keyStr.indexOf(input.charAt(i++));\r\n\r\n        chr1 = (enc1 << 2) | (enc2 >> 4);\r\n        chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\r\n        chr3 = ((enc3 & 3) << 6) | enc4;\r\n\r\n        output = output + String.fromCharCode(chr1);\r\n\r\n        if (enc3 != 64) {\r\n          output = output + String.fromCharCode(chr2);\r\n        }\r\n        if (enc4 != 64) {\r\n          output = output + String.fromCharCode(chr3);\r\n        }\r\n      }\r\n    }\r\n\r\n    // Encode to UTF-8 string\r\n    if (typeof escape != \"undefined\") return decodeURIComponent(escape(output));\r\n\r\n    var string = \"\";\r\n    var i = 0;\r\n    var c = 0;\r\n    var c1 = 0;\r\n    var c2 = 0;\r\n    var c3 = 0;\r\n\r\n    while (i < output.length) {\r\n      c = output.charCodeAt(i);\r\n\r\n      if (c < 128) {\r\n        string += String.fromCharCode(c);\r\n        i++;\r\n      } else if (c > 191 && c < 224) {\r\n        c2 = output.charCodeAt(i + 1);\r\n        string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));\r\n        i += 2;\r\n      } else {\r\n        c2 = output.charCodeAt(i + 1);\r\n        c3 = output.charCodeAt(i + 2);\r\n        string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));\r\n        i += 3;\r\n      }\r\n    }\r\n\r\n    return string;\r\n  }\r\n\r\n  public get cultures() {\r\n    if (this._cultures.length == 0)\r\n      this._cultures = [\r\n        {\r\n          \"name\": \" \",\r\n          \"value\": \"\"\r\n        },\r\n        {\r\n          \"name\": \"Afar (Djibouti)  (aa-DJ)\",\r\n          \"value\": \"aa-DJ\"\r\n        },\r\n        {\r\n          \"name\": \"Afar (Eritrea)  (aa-ER)\",\r\n          \"value\": \"aa-ER\"\r\n        },\r\n        {\r\n          \"name\": \"Afar (Ethiopia)  (aa-ET)\",\r\n          \"value\": \"aa-ET\"\r\n        },\r\n        {\r\n          \"name\": \"Afrikaans (Namibia)  (af-NA)\",\r\n          \"value\": \"af-NA\"\r\n        },\r\n        {\r\n          \"name\": \"Afrikaans (South Africa)  (af-ZA)\",\r\n          \"value\": \"af-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Aghem (Cameroon)  (agq-CM)\",\r\n          \"value\": \"agq-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Akan (Ghana)  (ak-GH)\",\r\n          \"value\": \"ak-GH\"\r\n        },\r\n        {\r\n          \"name\": \"Albanian (Albania)  (sq-AL)\",\r\n          \"value\": \"sq-AL\"\r\n        },\r\n        {\r\n          \"name\": \"Albanian (Kosovo)  (sq-XK)\",\r\n          \"value\": \"sq-XK\"\r\n        },\r\n        {\r\n          \"name\": \"Albanian (North Macedonia)  (sq-MK)\",\r\n          \"value\": \"sq-MK\"\r\n        },\r\n        {\r\n          \"name\": \"Alsatian (France)  (gsw-FR)\",\r\n          \"value\": \"gsw-FR\"\r\n        },\r\n        {\r\n          \"name\": \"Alsatian (Liechtenstein)  (gsw-LI)\",\r\n          \"value\": \"gsw-LI\"\r\n        },\r\n        {\r\n          \"name\": \"Alsatian (Switzerland)  (gsw-CH)\",\r\n          \"value\": \"gsw-CH\"\r\n        },\r\n        {\r\n          \"name\": \"Amharic (Ethiopia)  (am-ET)\",\r\n          \"value\": \"am-ET\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Algeria)  (ar-DZ)\",\r\n          \"value\": \"ar-DZ\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Bahrain)  (ar-BH)\",\r\n          \"value\": \"ar-BH\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Chad)  (ar-TD)\",\r\n          \"value\": \"ar-TD\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Comoros)  (ar-KM)\",\r\n          \"value\": \"ar-KM\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Djibouti)  (ar-DJ)\",\r\n          \"value\": \"ar-DJ\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Egypt)  (ar-EG)\",\r\n          \"value\": \"ar-EG\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Eritrea)  (ar-ER)\",\r\n          \"value\": \"ar-ER\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Iraq)  (ar-IQ)\",\r\n          \"value\": \"ar-IQ\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Israel)  (ar-IL)\",\r\n          \"value\": \"ar-IL\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Jordan)  (ar-JO)\",\r\n          \"value\": \"ar-JO\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Kuwait)  (ar-KW)\",\r\n          \"value\": \"ar-KW\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Lebanon)  (ar-LB)\",\r\n          \"value\": \"ar-LB\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Libya)  (ar-LY)\",\r\n          \"value\": \"ar-LY\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Mauritania)  (ar-MR)\",\r\n          \"value\": \"ar-MR\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Morocco)  (ar-MA)\",\r\n          \"value\": \"ar-MA\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Oman)  (ar-OM)\",\r\n          \"value\": \"ar-OM\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Palestinian Authority)  (ar-PS)\",\r\n          \"value\": \"ar-PS\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Qatar)  (ar-QA)\",\r\n          \"value\": \"ar-QA\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Saudi Arabia)  (ar-SA)\",\r\n          \"value\": \"ar-SA\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Somalia)  (ar-SO)\",\r\n          \"value\": \"ar-SO\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (South Sudan)  (ar-SS)\",\r\n          \"value\": \"ar-SS\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Sudan)  (ar-SD)\",\r\n          \"value\": \"ar-SD\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Syria)  (ar-SY)\",\r\n          \"value\": \"ar-SY\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Tunisia)  (ar-TN)\",\r\n          \"value\": \"ar-TN\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (U.A.E.)  (ar-AE)\",\r\n          \"value\": \"ar-AE\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (World)  (ar-001)\",\r\n          \"value\": \"ar-001\"\r\n        },\r\n        {\r\n          \"name\": \"Arabic (Yemen)  (ar-YE)\",\r\n          \"value\": \"ar-YE\"\r\n        },\r\n        {\r\n          \"name\": \"Armenian (Armenia)  (hy-AM)\",\r\n          \"value\": \"hy-AM\"\r\n        },\r\n        {\r\n          \"name\": \"Assamese (India)  (as-IN)\",\r\n          \"value\": \"as-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Asturian (Spain)  (ast-ES)\",\r\n          \"value\": \"ast-ES\"\r\n        },\r\n        {\r\n          \"name\": \"Asu (Tanzania)  (asa-TZ)\",\r\n          \"value\": \"asa-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Azerbaijani (Cyrillic, Azerbaijan)  (az-Cyrl-AZ)\",\r\n          \"value\": \"az-Cyrl-AZ\"\r\n        },\r\n        {\r\n          \"name\": \"Azerbaijani (Latin, Azerbaijan)  (az-Latn-AZ)\",\r\n          \"value\": \"az-Latn-AZ\"\r\n        },\r\n        {\r\n          \"name\": \"Bafia (Cameroon)  (ksf-CM)\",\r\n          \"value\": \"ksf-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Bambara (Latin, Mali)  (bm-Latn-ML)\",\r\n          \"value\": \"bm-Latn-ML\"\r\n        },\r\n        {\r\n          \"name\": \"Bangla (Bangladesh)  (bn-BD)\",\r\n          \"value\": \"bn-BD\"\r\n        },\r\n        {\r\n          \"name\": \"Bangla (India)  (bn-IN)\",\r\n          \"value\": \"bn-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Basaa (Cameroon)  (bas-CM)\",\r\n          \"value\": \"bas-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Bashkir (Russia)  (ba-RU)\",\r\n          \"value\": \"ba-RU\"\r\n        },\r\n        {\r\n          \"name\": \"Basque (Basque)  (eu-ES)\",\r\n          \"value\": \"eu-ES\"\r\n        },\r\n        {\r\n          \"name\": \"Belarusian (Belarus)  (be-BY)\",\r\n          \"value\": \"be-BY\"\r\n        },\r\n        {\r\n          \"name\": \"Bemba (Zambia)  (bem-ZM)\",\r\n          \"value\": \"bem-ZM\"\r\n        },\r\n        {\r\n          \"name\": \"Bena (Tanzania)  (bez-TZ)\",\r\n          \"value\": \"bez-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Blin (Eritrea)  (byn-ER)\",\r\n          \"value\": \"byn-ER\"\r\n        },\r\n        {\r\n          \"name\": \"Bodo (India)  (brx-IN)\",\r\n          \"value\": \"brx-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Bosnian (Cyrillic, Bosnia and Herzegovina)  (bs-Cyrl-BA)\",\r\n          \"value\": \"bs-Cyrl-BA\"\r\n        },\r\n        {\r\n          \"name\": \"Bosnian (Latin, Bosnia and Herzegovina)  (bs-Latn-BA)\",\r\n          \"value\": \"bs-Latn-BA\"\r\n        },\r\n        {\r\n          \"name\": \"Breton (France)  (br-FR)\",\r\n          \"value\": \"br-FR\"\r\n        },\r\n        {\r\n          \"name\": \"Bulgarian (Bulgaria)  (bg-BG)\",\r\n          \"value\": \"bg-BG\"\r\n        },\r\n        {\r\n          \"name\": \"Burmese (Myanmar)  (my-MM)\",\r\n          \"value\": \"my-MM\"\r\n        },\r\n        {\r\n          \"name\": \"Catalan (Andorra)  (ca-AD)\",\r\n          \"value\": \"ca-AD\"\r\n        },\r\n        {\r\n          \"name\": \"Catalan (Catalan)  (ca-ES)\",\r\n          \"value\": \"ca-ES\"\r\n        },\r\n        {\r\n          \"name\": \"Catalan (France)  (ca-FR)\",\r\n          \"value\": \"ca-FR\"\r\n        },\r\n        {\r\n          \"name\": \"Catalan (Italy)  (ca-IT)\",\r\n          \"value\": \"ca-IT\"\r\n        },\r\n        {\r\n          \"name\": \"Cebuano (Latin, Philippines)  (ceb-Latn-PH)\",\r\n          \"value\": \"ceb-Latn-PH\"\r\n        },\r\n        {\r\n          \"name\": \"Central Atlas Tamazight (Arabic, Morocco)  (tzm-Arab-MA)\",\r\n          \"value\": \"tzm-Arab-MA\"\r\n        },\r\n        {\r\n          \"name\": \"Central Atlas Tamazight (Latin, Morocco)  (tzm-Latn-MA)\",\r\n          \"value\": \"tzm-Latn-MA\"\r\n        },\r\n        {\r\n          \"name\": \"Central Atlas Tamazight (Tifinagh, Morocco)  (tzm-Tfng-MA)\",\r\n          \"value\": \"tzm-Tfng-MA\"\r\n        },\r\n        {\r\n          \"name\": \"Central Kurdish (Iraq)  (ku-Arab-IQ)\",\r\n          \"value\": \"ku-Arab-IQ\"\r\n        },\r\n        {\r\n          \"name\": \"Chakma (Chakma, Bangladesh)  (ccp-Cakm-BD)\",\r\n          \"value\": \"ccp-Cakm-BD\"\r\n        },\r\n        {\r\n          \"name\": \"Chakma (Chakma, India)  (ccp-Cakm-IN)\",\r\n          \"value\": \"ccp-Cakm-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Chechen (Russia)  (ce-RU)\",\r\n          \"value\": \"ce-RU\"\r\n        },\r\n        {\r\n          \"name\": \"Cherokee (Cherokee)  (chr-Cher-US)\",\r\n          \"value\": \"chr-Cher-US\"\r\n        },\r\n        {\r\n          \"name\": \"Chiga (Uganda)  (cgg-UG)\",\r\n          \"value\": \"cgg-UG\"\r\n        },\r\n        {\r\n          \"name\": \"Chinese (Simplified Han, Hong Kong SAR)  (zh-Hans-HK)\",\r\n          \"value\": \"zh-Hans-HK\"\r\n        },\r\n        {\r\n          \"name\": \"Chinese (Simplified Han, Macao SAR)  (zh-Hans-MO)\",\r\n          \"value\": \"zh-Hans-MO\"\r\n        },\r\n        {\r\n          \"name\": \"Chinese (Simplified, PRC)  (zh-CN)\",\r\n          \"value\": \"zh-CN\"\r\n        },\r\n        {\r\n          \"name\": \"Chinese (Simplified, Singapore)  (zh-SG)\",\r\n          \"value\": \"zh-SG\"\r\n        },\r\n        {\r\n          \"name\": \"Chinese (Traditional, Hong Kong S.A.R.)  (zh-HK)\",\r\n          \"value\": \"zh-HK\"\r\n        },\r\n        {\r\n          \"name\": \"Chinese (Traditional, Macao S.A.R.)  (zh-MO)\",\r\n          \"value\": \"zh-MO\"\r\n        },\r\n        {\r\n          \"name\": \"Chinese (Traditional, Taiwan)  (zh-TW)\",\r\n          \"value\": \"zh-TW\"\r\n        },\r\n        {\r\n          \"name\": \"Church Slavic (Russia)  (cu-RU)\",\r\n          \"value\": \"cu-RU\"\r\n        },\r\n        {\r\n          \"name\": \"Cornish (United Kingdom)  (kw-GB)\",\r\n          \"value\": \"kw-GB\"\r\n        },\r\n        {\r\n          \"name\": \"Corsican (France)  (co-FR)\",\r\n          \"value\": \"co-FR\"\r\n        },\r\n        {\r\n          \"name\": \"Croatian (Croatia)  (hr-HR)\",\r\n          \"value\": \"hr-HR\"\r\n        },\r\n        {\r\n          \"name\": \"Croatian (Latin, Bosnia and Herzegovina)  (hr-BA)\",\r\n          \"value\": \"hr-BA\"\r\n        },\r\n        {\r\n          \"name\": \"Czech (Czech Republic)  (cs-CZ)\",\r\n          \"value\": \"cs-CZ\"\r\n        },\r\n        {\r\n          \"name\": \"Danish (Denmark)  (da-DK)\",\r\n          \"value\": \"da-DK\"\r\n        },\r\n        {\r\n          \"name\": \"Danish (Greenland)  (da-GL)\",\r\n          \"value\": \"da-GL\"\r\n        },\r\n        {\r\n          \"name\": \"Dari (Afghanistan)  (prs-AF)\",\r\n          \"value\": \"prs-AF\"\r\n        },\r\n        {\r\n          \"name\": \"Divehi (Maldives)  (dv-MV)\",\r\n          \"value\": \"dv-MV\"\r\n        },\r\n        {\r\n          \"name\": \"Duala (Cameroon)  (dua-CM)\",\r\n          \"value\": \"dua-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Dutch (Aruba)  (nl-AW)\",\r\n          \"value\": \"nl-AW\"\r\n        },\r\n        {\r\n          \"name\": \"Dutch (Belgium)  (nl-BE)\",\r\n          \"value\": \"nl-BE\"\r\n        },\r\n        {\r\n          \"name\": \"Dutch (Bonaire, Sint Eustatius and Saba)  (nl-BQ)\",\r\n          \"value\": \"nl-BQ\"\r\n        },\r\n        {\r\n          \"name\": \"Dutch (Curaçao)  (nl-CW)\",\r\n          \"value\": \"nl-CW\"\r\n        },\r\n        {\r\n          \"name\": \"Dutch (Netherlands)  (nl-NL)\",\r\n          \"value\": \"nl-NL\"\r\n        },\r\n        {\r\n          \"name\": \"Dutch (Sint Maarten)  (nl-SX)\",\r\n          \"value\": \"nl-SX\"\r\n        },\r\n        {\r\n          \"name\": \"Dutch (Suriname)  (nl-SR)\",\r\n          \"value\": \"nl-SR\"\r\n        },\r\n        {\r\n          \"name\": \"Dzongkha (Bhutan)  (dz-BT)\",\r\n          \"value\": \"dz-BT\"\r\n        },\r\n        {\r\n          \"name\": \"Edo (Nigeria)  (bin-NG)\",\r\n          \"value\": \"bin-NG\"\r\n        },\r\n        {\r\n          \"name\": \"Embu (Kenya)  (ebu-KE)\",\r\n          \"value\": \"ebu-KE\"\r\n        },\r\n        {\r\n          \"name\": \"English (American Samoa)  (en-AS)\",\r\n          \"value\": \"en-AS\"\r\n        },\r\n        {\r\n          \"name\": \"English (Anguilla)  (en-AI)\",\r\n          \"value\": \"en-AI\"\r\n        },\r\n        {\r\n          \"name\": \"English (Antigua and Barbuda)  (en-AG)\",\r\n          \"value\": \"en-AG\"\r\n        },\r\n        {\r\n          \"name\": \"English (Australia)  (en-AU)\",\r\n          \"value\": \"en-AU\"\r\n        },\r\n        {\r\n          \"name\": \"English (Austria)  (en-AT)\",\r\n          \"value\": \"en-AT\"\r\n        },\r\n        {\r\n          \"name\": \"English (Bahamas)  (en-BS)\",\r\n          \"value\": \"en-BS\"\r\n        },\r\n        {\r\n          \"name\": \"English (Barbados)  (en-BB)\",\r\n          \"value\": \"en-BB\"\r\n        },\r\n        {\r\n          \"name\": \"English (Belgium)  (en-BE)\",\r\n          \"value\": \"en-BE\"\r\n        },\r\n        {\r\n          \"name\": \"English (Belize)  (en-BZ)\",\r\n          \"value\": \"en-BZ\"\r\n        },\r\n        {\r\n          \"name\": \"English (Bermuda)  (en-BM)\",\r\n          \"value\": \"en-BM\"\r\n        },\r\n        {\r\n          \"name\": \"English (Botswana)  (en-BW)\",\r\n          \"value\": \"en-BW\"\r\n        },\r\n        {\r\n          \"name\": \"English (British Indian Ocean Territory)  (en-IO)\",\r\n          \"value\": \"en-IO\"\r\n        },\r\n        {\r\n          \"name\": \"English (British Virgin Islands)  (en-VG)\",\r\n          \"value\": \"en-VG\"\r\n        },\r\n        {\r\n          \"name\": \"English (Burundi)  (en-BI)\",\r\n          \"value\": \"en-BI\"\r\n        },\r\n        {\r\n          \"name\": \"English (Cameroon)  (en-CM)\",\r\n          \"value\": \"en-CM\"\r\n        },\r\n        {\r\n          \"name\": \"English (Canada)  (en-CA)\",\r\n          \"value\": \"en-CA\"\r\n        },\r\n        {\r\n          \"name\": \"English (Caribbean)  (en-029)\",\r\n          \"value\": \"en-029\"\r\n        },\r\n        {\r\n          \"name\": \"English (Cayman Islands)  (en-KY)\",\r\n          \"value\": \"en-KY\"\r\n        },\r\n        {\r\n          \"name\": \"English (Christmas Island)  (en-CX)\",\r\n          \"value\": \"en-CX\"\r\n        },\r\n        {\r\n          \"name\": \"English (Cocos [Keeling] Islands)  (en-CC)\",\r\n          \"value\": \"en-CC\"\r\n        },\r\n        {\r\n          \"name\": \"English (Cook Islands)  (en-CK)\",\r\n          \"value\": \"en-CK\"\r\n        },\r\n        {\r\n          \"name\": \"English (Cyprus)  (en-CY)\",\r\n          \"value\": \"en-CY\"\r\n        },\r\n        {\r\n          \"name\": \"English (Denmark)  (en-DK)\",\r\n          \"value\": \"en-DK\"\r\n        },\r\n        {\r\n          \"name\": \"English (Dominica)  (en-DM)\",\r\n          \"value\": \"en-DM\"\r\n        },\r\n        {\r\n          \"name\": \"English (Eritrea)  (en-ER)\",\r\n          \"value\": \"en-ER\"\r\n        },\r\n        {\r\n          \"name\": \"English (Europe)  (en-150)\",\r\n          \"value\": \"en-150\"\r\n        },\r\n        {\r\n          \"name\": \"English (Falkland Islands)  (en-FK)\",\r\n          \"value\": \"en-FK\"\r\n        },\r\n        {\r\n          \"name\": \"English (Fiji)  (en-FJ)\",\r\n          \"value\": \"en-FJ\"\r\n        },\r\n        {\r\n          \"name\": \"English (Finland)  (en-FI)\",\r\n          \"value\": \"en-FI\"\r\n        },\r\n        {\r\n          \"name\": \"English (Gambia)  (en-GM)\",\r\n          \"value\": \"en-GM\"\r\n        },\r\n        {\r\n          \"name\": \"English (Germany)  (en-DE)\",\r\n          \"value\": \"en-DE\"\r\n        },\r\n        {\r\n          \"name\": \"English (Ghana)  (en-GH)\",\r\n          \"value\": \"en-GH\"\r\n        },\r\n        {\r\n          \"name\": \"English (Gibraltar)  (en-GI)\",\r\n          \"value\": \"en-GI\"\r\n        },\r\n        {\r\n          \"name\": \"English (Grenada)  (en-GD)\",\r\n          \"value\": \"en-GD\"\r\n        },\r\n        {\r\n          \"name\": \"English (Guam)  (en-GU)\",\r\n          \"value\": \"en-GU\"\r\n        },\r\n        {\r\n          \"name\": \"English (Guernsey)  (en-GG)\",\r\n          \"value\": \"en-GG\"\r\n        },\r\n        {\r\n          \"name\": \"English (Guyana)  (en-GY)\",\r\n          \"value\": \"en-GY\"\r\n        },\r\n        {\r\n          \"name\": \"English (Hong Kong SAR)  (en-HK)\",\r\n          \"value\": \"en-HK\"\r\n        },\r\n        {\r\n          \"name\": \"English (India)  (en-IN)\",\r\n          \"value\": \"en-IN\"\r\n        },\r\n        {\r\n          \"name\": \"English (Indonesia)  (en-ID)\",\r\n          \"value\": \"en-ID\"\r\n        },\r\n        {\r\n          \"name\": \"English (Ireland)  (en-IE)\",\r\n          \"value\": \"en-IE\"\r\n        },\r\n        {\r\n          \"name\": \"English (Isle of Man)  (en-IM)\",\r\n          \"value\": \"en-IM\"\r\n        },\r\n        {\r\n          \"name\": \"English (Israel)  (en-IL)\",\r\n          \"value\": \"en-IL\"\r\n        },\r\n        {\r\n          \"name\": \"English (Jamaica)  (en-JM)\",\r\n          \"value\": \"en-JM\"\r\n        },\r\n        {\r\n          \"name\": \"English (Jersey)  (en-JE)\",\r\n          \"value\": \"en-JE\"\r\n        },\r\n        {\r\n          \"name\": \"English (Kenya)  (en-KE)\",\r\n          \"value\": \"en-KE\"\r\n        },\r\n        {\r\n          \"name\": \"English (Kiribati)  (en-KI)\",\r\n          \"value\": \"en-KI\"\r\n        },\r\n        {\r\n          \"name\": \"English (Lesotho)  (en-LS)\",\r\n          \"value\": \"en-LS\"\r\n        },\r\n        {\r\n          \"name\": \"English (Liberia)  (en-LR)\",\r\n          \"value\": \"en-LR\"\r\n        },\r\n        {\r\n          \"name\": \"English (Macao SAR)  (en-MO)\",\r\n          \"value\": \"en-MO\"\r\n        },\r\n        {\r\n          \"name\": \"English (Madagascar)  (en-MG)\",\r\n          \"value\": \"en-MG\"\r\n        },\r\n        {\r\n          \"name\": \"English (Malawi)  (en-MW)\",\r\n          \"value\": \"en-MW\"\r\n        },\r\n        {\r\n          \"name\": \"English (Malaysia)  (en-MY)\",\r\n          \"value\": \"en-MY\"\r\n        },\r\n        {\r\n          \"name\": \"English (Malta)  (en-MT)\",\r\n          \"value\": \"en-MT\"\r\n        },\r\n        {\r\n          \"name\": \"English (Marshall Islands)  (en-MH)\",\r\n          \"value\": \"en-MH\"\r\n        },\r\n        {\r\n          \"name\": \"English (Mauritius)  (en-MU)\",\r\n          \"value\": \"en-MU\"\r\n        },\r\n        {\r\n          \"name\": \"English (Micronesia)  (en-FM)\",\r\n          \"value\": \"en-FM\"\r\n        },\r\n        {\r\n          \"name\": \"English (Montserrat)  (en-MS)\",\r\n          \"value\": \"en-MS\"\r\n        },\r\n        {\r\n          \"name\": \"English (Namibia)  (en-NA)\",\r\n          \"value\": \"en-NA\"\r\n        },\r\n        {\r\n          \"name\": \"English (Nauru)  (en-NR)\",\r\n          \"value\": \"en-NR\"\r\n        },\r\n        {\r\n          \"name\": \"English (Netherlands)  (en-NL)\",\r\n          \"value\": \"en-NL\"\r\n        },\r\n        {\r\n          \"name\": \"English (New Zealand)  (en-NZ)\",\r\n          \"value\": \"en-NZ\"\r\n        },\r\n        {\r\n          \"name\": \"English (Nigeria)  (en-NG)\",\r\n          \"value\": \"en-NG\"\r\n        },\r\n        {\r\n          \"name\": \"English (Niue)  (en-NU)\",\r\n          \"value\": \"en-NU\"\r\n        },\r\n        {\r\n          \"name\": \"English (Norfolk Island)  (en-NF)\",\r\n          \"value\": \"en-NF\"\r\n        },\r\n        {\r\n          \"name\": \"English (Northern Mariana Islands)  (en-MP)\",\r\n          \"value\": \"en-MP\"\r\n        },\r\n        {\r\n          \"name\": \"English (Pakistan)  (en-PK)\",\r\n          \"value\": \"en-PK\"\r\n        },\r\n        {\r\n          \"name\": \"English (Palau)  (en-PW)\",\r\n          \"value\": \"en-PW\"\r\n        },\r\n        {\r\n          \"name\": \"English (Papua New Guinea)  (en-PG)\",\r\n          \"value\": \"en-PG\"\r\n        },\r\n        {\r\n          \"name\": \"English (Pitcairn Islands)  (en-PN)\",\r\n          \"value\": \"en-PN\"\r\n        },\r\n        {\r\n          \"name\": \"English (Puerto Rico)  (en-PR)\",\r\n          \"value\": \"en-PR\"\r\n        },\r\n        {\r\n          \"name\": \"English (Republic of the Philippines)  (en-PH)\",\r\n          \"value\": \"en-PH\"\r\n        },\r\n        {\r\n          \"name\": \"English (Rwanda)  (en-RW)\",\r\n          \"value\": \"en-RW\"\r\n        },\r\n        {\r\n          \"name\": \"English (Saint Kitts and Nevis)  (en-KN)\",\r\n          \"value\": \"en-KN\"\r\n        },\r\n        {\r\n          \"name\": \"English (Saint Lucia)  (en-LC)\",\r\n          \"value\": \"en-LC\"\r\n        },\r\n        {\r\n          \"name\": \"English (Saint Vincent and the Grenadines)  (en-VC)\",\r\n          \"value\": \"en-VC\"\r\n        },\r\n        {\r\n          \"name\": \"English (Samoa)  (en-WS)\",\r\n          \"value\": \"en-WS\"\r\n        },\r\n        {\r\n          \"name\": \"English (Seychelles)  (en-SC)\",\r\n          \"value\": \"en-SC\"\r\n        },\r\n        {\r\n          \"name\": \"English (Sierra Leone)  (en-SL)\",\r\n          \"value\": \"en-SL\"\r\n        },\r\n        {\r\n          \"name\": \"English (Singapore)  (en-SG)\",\r\n          \"value\": \"en-SG\"\r\n        },\r\n        {\r\n          \"name\": \"English (Sint Maarten)  (en-SX)\",\r\n          \"value\": \"en-SX\"\r\n        },\r\n        {\r\n          \"name\": \"English (Slovenia)  (en-SI)\",\r\n          \"value\": \"en-SI\"\r\n        },\r\n        {\r\n          \"name\": \"English (Solomon Islands)  (en-SB)\",\r\n          \"value\": \"en-SB\"\r\n        },\r\n        {\r\n          \"name\": \"English (South Africa)  (en-ZA)\",\r\n          \"value\": \"en-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"English (South Sudan)  (en-SS)\",\r\n          \"value\": \"en-SS\"\r\n        },\r\n        {\r\n          \"name\": \"English (St Helena, Ascension, Tristan da Cunha)  (en-SH)\",\r\n          \"value\": \"en-SH\"\r\n        },\r\n        {\r\n          \"name\": \"English (Sudan)  (en-SD)\",\r\n          \"value\": \"en-SD\"\r\n        },\r\n        {\r\n          \"name\": \"English (Swaziland)  (en-SZ)\",\r\n          \"value\": \"en-SZ\"\r\n        },\r\n        {\r\n          \"name\": \"English (Sweden)  (en-SE)\",\r\n          \"value\": \"en-SE\"\r\n        },\r\n        {\r\n          \"name\": \"English (Switzerland)  (en-CH)\",\r\n          \"value\": \"en-CH\"\r\n        },\r\n        {\r\n          \"name\": \"English (Tanzania)  (en-TZ)\",\r\n          \"value\": \"en-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"English (Tokelau)  (en-TK)\",\r\n          \"value\": \"en-TK\"\r\n        },\r\n        {\r\n          \"name\": \"English (Tonga)  (en-TO)\",\r\n          \"value\": \"en-TO\"\r\n        },\r\n        {\r\n          \"name\": \"English (Trinidad and Tobago)  (en-TT)\",\r\n          \"value\": \"en-TT\"\r\n        },\r\n        {\r\n          \"name\": \"English (Turks and Caicos Islands)  (en-TC)\",\r\n          \"value\": \"en-TC\"\r\n        },\r\n        {\r\n          \"name\": \"English (Tuvalu)  (en-TV)\",\r\n          \"value\": \"en-TV\"\r\n        },\r\n        {\r\n          \"name\": \"English (Uganda)  (en-UG)\",\r\n          \"value\": \"en-UG\"\r\n        },\r\n        {\r\n          \"name\": \"English (United Arab Emirates)  (en-AE)\",\r\n          \"value\": \"en-AE\"\r\n        },\r\n        {\r\n          \"name\": \"English (United Kingdom)  (en-GB)\",\r\n          \"value\": \"en-GB\"\r\n        },\r\n        {\r\n          \"name\": \"English (United States)  (en-US)\",\r\n          \"value\": \"en-US\"\r\n        },\r\n        {\r\n          \"name\": \"English (US Minor Outlying Islands)  (en-UM)\",\r\n          \"value\": \"en-UM\"\r\n        },\r\n        {\r\n          \"name\": \"English (US Virgin Islands)  (en-VI)\",\r\n          \"value\": \"en-VI\"\r\n        },\r\n        {\r\n          \"name\": \"English (Vanuatu)  (en-VU)\",\r\n          \"value\": \"en-VU\"\r\n        },\r\n        {\r\n          \"name\": \"English (World)  (en-001)\",\r\n          \"value\": \"en-001\"\r\n        },\r\n        {\r\n          \"name\": \"English (Zambia)  (en-ZM)\",\r\n          \"value\": \"en-ZM\"\r\n        },\r\n        {\r\n          \"name\": \"English (Zimbabwe)  (en-ZW)\",\r\n          \"value\": \"en-ZW\"\r\n        },\r\n        {\r\n          \"name\": \"Esperanto (World)  (eo-001)\",\r\n          \"value\": \"eo-001\"\r\n        },\r\n        {\r\n          \"name\": \"Estonian (Estonia)  (et-EE)\",\r\n          \"value\": \"et-EE\"\r\n        },\r\n        {\r\n          \"name\": \"Ewe (Ghana)  (ee-GH)\",\r\n          \"value\": \"ee-GH\"\r\n        },\r\n        {\r\n          \"name\": \"Ewe (Togo)  (ee-TG)\",\r\n          \"value\": \"ee-TG\"\r\n        },\r\n        {\r\n          \"name\": \"Ewondo (Cameroon)  (ewo-CM)\",\r\n          \"value\": \"ewo-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Faroese (Denmark)  (fo-DK)\",\r\n          \"value\": \"fo-DK\"\r\n        },\r\n        {\r\n          \"name\": \"Faroese (Faroe Islands)  (fo-FO)\",\r\n          \"value\": \"fo-FO\"\r\n        },\r\n        {\r\n          \"name\": \"Filipino (Philippines)  (fil-PH)\",\r\n          \"value\": \"fil-PH\"\r\n        },\r\n        {\r\n          \"name\": \"Finnish (Finland)  (fi-FI)\",\r\n          \"value\": \"fi-FI\"\r\n        },\r\n        {\r\n          \"name\": \"French (Algeria)  (fr-DZ)\",\r\n          \"value\": \"fr-DZ\"\r\n        },\r\n        {\r\n          \"name\": \"French (Belgium)  (fr-BE)\",\r\n          \"value\": \"fr-BE\"\r\n        },\r\n        {\r\n          \"name\": \"French (Benin)  (fr-BJ)\",\r\n          \"value\": \"fr-BJ\"\r\n        },\r\n        {\r\n          \"name\": \"French (Burkina Faso)  (fr-BF)\",\r\n          \"value\": \"fr-BF\"\r\n        },\r\n        {\r\n          \"name\": \"French (Burundi)  (fr-BI)\",\r\n          \"value\": \"fr-BI\"\r\n        },\r\n        {\r\n          \"name\": \"French (Cameroon)  (fr-CM)\",\r\n          \"value\": \"fr-CM\"\r\n        },\r\n        {\r\n          \"name\": \"French (Canada)  (fr-CA)\",\r\n          \"value\": \"fr-CA\"\r\n        },\r\n        {\r\n          \"name\": \"French (Caribbean)  (fr-029)\",\r\n          \"value\": \"fr-029\"\r\n        },\r\n        {\r\n          \"name\": \"French (Central African Republic)  (fr-CF)\",\r\n          \"value\": \"fr-CF\"\r\n        },\r\n        {\r\n          \"name\": \"French (Chad)  (fr-TD)\",\r\n          \"value\": \"fr-TD\"\r\n        },\r\n        {\r\n          \"name\": \"French (Comoros)  (fr-KM)\",\r\n          \"value\": \"fr-KM\"\r\n        },\r\n        {\r\n          \"name\": \"French (Congo DRC)  (fr-CD)\",\r\n          \"value\": \"fr-CD\"\r\n        },\r\n        {\r\n          \"name\": \"French (Congo)  (fr-CG)\",\r\n          \"value\": \"fr-CG\"\r\n        },\r\n        {\r\n          \"name\": \"French (Côte d’Ivoire)  (fr-CI)\",\r\n          \"value\": \"fr-CI\"\r\n        },\r\n        {\r\n          \"name\": \"French (Djibouti)  (fr-DJ)\",\r\n          \"value\": \"fr-DJ\"\r\n        },\r\n        {\r\n          \"name\": \"French (Equatorial Guinea)  (fr-GQ)\",\r\n          \"value\": \"fr-GQ\"\r\n        },\r\n        {\r\n          \"name\": \"French (France)  (fr-FR)\",\r\n          \"value\": \"fr-FR\"\r\n        },\r\n        {\r\n          \"name\": \"French (French Guiana)  (fr-GF)\",\r\n          \"value\": \"fr-GF\"\r\n        },\r\n        {\r\n          \"name\": \"French (French Polynesia)  (fr-PF)\",\r\n          \"value\": \"fr-PF\"\r\n        },\r\n        {\r\n          \"name\": \"French (Gabon)  (fr-GA)\",\r\n          \"value\": \"fr-GA\"\r\n        },\r\n        {\r\n          \"name\": \"French (Guadeloupe)  (fr-GP)\",\r\n          \"value\": \"fr-GP\"\r\n        },\r\n        {\r\n          \"name\": \"French (Guinea)  (fr-GN)\",\r\n          \"value\": \"fr-GN\"\r\n        },\r\n        {\r\n          \"name\": \"French (Haiti)  (fr-HT)\",\r\n          \"value\": \"fr-HT\"\r\n        },\r\n        {\r\n          \"name\": \"French (Luxembourg)  (fr-LU)\",\r\n          \"value\": \"fr-LU\"\r\n        },\r\n        {\r\n          \"name\": \"French (Madagascar)  (fr-MG)\",\r\n          \"value\": \"fr-MG\"\r\n        },\r\n        {\r\n          \"name\": \"French (Mali)  (fr-ML)\",\r\n          \"value\": \"fr-ML\"\r\n        },\r\n        {\r\n          \"name\": \"French (Martinique)  (fr-MQ)\",\r\n          \"value\": \"fr-MQ\"\r\n        },\r\n        {\r\n          \"name\": \"French (Mauritania)  (fr-MR)\",\r\n          \"value\": \"fr-MR\"\r\n        },\r\n        {\r\n          \"name\": \"French (Mauritius)  (fr-MU)\",\r\n          \"value\": \"fr-MU\"\r\n        },\r\n        {\r\n          \"name\": \"French (Mayotte)  (fr-YT)\",\r\n          \"value\": \"fr-YT\"\r\n        },\r\n        {\r\n          \"name\": \"French (Monaco)  (fr-MC)\",\r\n          \"value\": \"fr-MC\"\r\n        },\r\n        {\r\n          \"name\": \"French (Morocco)  (fr-MA)\",\r\n          \"value\": \"fr-MA\"\r\n        },\r\n        {\r\n          \"name\": \"French (New Caledonia)  (fr-NC)\",\r\n          \"value\": \"fr-NC\"\r\n        },\r\n        {\r\n          \"name\": \"French (Niger)  (fr-NE)\",\r\n          \"value\": \"fr-NE\"\r\n        },\r\n        {\r\n          \"name\": \"French (Reunion)  (fr-RE)\",\r\n          \"value\": \"fr-RE\"\r\n        },\r\n        {\r\n          \"name\": \"French (Rwanda)  (fr-RW)\",\r\n          \"value\": \"fr-RW\"\r\n        },\r\n        {\r\n          \"name\": \"French (Saint Barthélemy)  (fr-BL)\",\r\n          \"value\": \"fr-BL\"\r\n        },\r\n        {\r\n          \"name\": \"French (Saint Martin)  (fr-MF)\",\r\n          \"value\": \"fr-MF\"\r\n        },\r\n        {\r\n          \"name\": \"French (Saint Pierre and Miquelon)  (fr-PM)\",\r\n          \"value\": \"fr-PM\"\r\n        },\r\n        {\r\n          \"name\": \"French (Senegal)  (fr-SN)\",\r\n          \"value\": \"fr-SN\"\r\n        },\r\n        {\r\n          \"name\": \"French (Seychelles)  (fr-SC)\",\r\n          \"value\": \"fr-SC\"\r\n        },\r\n        {\r\n          \"name\": \"French (Switzerland)  (fr-CH)\",\r\n          \"value\": \"fr-CH\"\r\n        },\r\n        {\r\n          \"name\": \"French (Syria)  (fr-SY)\",\r\n          \"value\": \"fr-SY\"\r\n        },\r\n        {\r\n          \"name\": \"French (Togo)  (fr-TG)\",\r\n          \"value\": \"fr-TG\"\r\n        },\r\n        {\r\n          \"name\": \"French (Tunisia)  (fr-TN)\",\r\n          \"value\": \"fr-TN\"\r\n        },\r\n        {\r\n          \"name\": \"French (Vanuatu)  (fr-VU)\",\r\n          \"value\": \"fr-VU\"\r\n        },\r\n        {\r\n          \"name\": \"French (Wallis and Futuna)  (fr-WF)\",\r\n          \"value\": \"fr-WF\"\r\n        },\r\n        {\r\n          \"name\": \"Frisian (Netherlands)  (fy-NL)\",\r\n          \"value\": \"fy-NL\"\r\n        },\r\n        {\r\n          \"name\": \"Friulian (Italy)  (fur-IT)\",\r\n          \"value\": \"fur-IT\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Burkina Faso)  (ff-Latn-BF)\",\r\n          \"value\": \"ff-Latn-BF\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Cameroon)  (ff-Latn-CM)\",\r\n          \"value\": \"ff-Latn-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Gambia)  (ff-Latn-GM)\",\r\n          \"value\": \"ff-Latn-GM\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Ghana)  (ff-Latn-GH)\",\r\n          \"value\": \"ff-Latn-GH\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Guinea)  (ff-Latn-GN)\",\r\n          \"value\": \"ff-Latn-GN\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Guinea-Bissau)  (ff-Latn-GW)\",\r\n          \"value\": \"ff-Latn-GW\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Liberia)  (ff-Latn-LR)\",\r\n          \"value\": \"ff-Latn-LR\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Mauritania)  (ff-Latn-MR)\",\r\n          \"value\": \"ff-Latn-MR\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Niger)  (ff-Latn-NE)\",\r\n          \"value\": \"ff-Latn-NE\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Nigeria)  (ff-Latn-NG)\",\r\n          \"value\": \"ff-Latn-NG\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Senegal)  (ff-Latn-SN)\",\r\n          \"value\": \"ff-Latn-SN\"\r\n        },\r\n        {\r\n          \"name\": \"Fulah (Latin, Sierra Leone)  (ff-Latn-SL)\",\r\n          \"value\": \"ff-Latn-SL\"\r\n        },\r\n        {\r\n          \"name\": \"Galician (Galician)  (gl-ES)\",\r\n          \"value\": \"gl-ES\"\r\n        },\r\n        {\r\n          \"name\": \"Ganda (Uganda)  (lg-UG)\",\r\n          \"value\": \"lg-UG\"\r\n        },\r\n        {\r\n          \"name\": \"Georgian (Georgia)  (ka-GE)\",\r\n          \"value\": \"ka-GE\"\r\n        },\r\n        {\r\n          \"name\": \"German (Austria)  (de-AT)\",\r\n          \"value\": \"de-AT\"\r\n        },\r\n        {\r\n          \"name\": \"German (Belgium)  (de-BE)\",\r\n          \"value\": \"de-BE\"\r\n        },\r\n        {\r\n          \"name\": \"German (Germany)  (de-DE)\",\r\n          \"value\": \"de-DE\"\r\n        },\r\n        {\r\n          \"name\": \"German (Italy)  (de-IT)\",\r\n          \"value\": \"de-IT\"\r\n        },\r\n        {\r\n          \"name\": \"German (Liechtenstein)  (de-LI)\",\r\n          \"value\": \"de-LI\"\r\n        },\r\n        {\r\n          \"name\": \"German (Luxembourg)  (de-LU)\",\r\n          \"value\": \"de-LU\"\r\n        },\r\n        {\r\n          \"name\": \"German (Switzerland)  (de-CH)\",\r\n          \"value\": \"de-CH\"\r\n        },\r\n        {\r\n          \"name\": \"Greek (Cyprus)  (el-CY)\",\r\n          \"value\": \"el-CY\"\r\n        },\r\n        {\r\n          \"name\": \"Greek (Greece)  (el-GR)\",\r\n          \"value\": \"el-GR\"\r\n        },\r\n        {\r\n          \"name\": \"Greenlandic (Greenland)  (kl-GL)\",\r\n          \"value\": \"kl-GL\"\r\n        },\r\n        {\r\n          \"name\": \"Guarani (Paraguay)  (gn-PY)\",\r\n          \"value\": \"gn-PY\"\r\n        },\r\n        {\r\n          \"name\": \"Gujarati (India)  (gu-IN)\",\r\n          \"value\": \"gu-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Gusii (Kenya)  (guz-KE)\",\r\n          \"value\": \"guz-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Hausa (Latin, Ghana)  (ha-Latn-GH)\",\r\n          \"value\": \"ha-Latn-GH\"\r\n        },\r\n        {\r\n          \"name\": \"Hausa (Latin, Niger)  (ha-Latn-NE)\",\r\n          \"value\": \"ha-Latn-NE\"\r\n        },\r\n        {\r\n          \"name\": \"Hausa (Latin, Nigeria)  (ha-Latn-NG)\",\r\n          \"value\": \"ha-Latn-NG\"\r\n        },\r\n        {\r\n          \"name\": \"Hawaiian (United States)  (haw-US)\",\r\n          \"value\": \"haw-US\"\r\n        },\r\n        {\r\n          \"name\": \"Hebrew (Israel)  (he-IL)\",\r\n          \"value\": \"he-IL\"\r\n        },\r\n        {\r\n          \"name\": \"Hindi (India)  (hi-IN)\",\r\n          \"value\": \"hi-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Hungarian (Hungary)  (hu-HU)\",\r\n          \"value\": \"hu-HU\"\r\n        },\r\n        {\r\n          \"name\": \"Ibibio (Nigeria)  (ibb-NG)\",\r\n          \"value\": \"ibb-NG\"\r\n        },\r\n        {\r\n          \"name\": \"Icelandic (Iceland)  (is-IS)\",\r\n          \"value\": \"is-IS\"\r\n        },\r\n        {\r\n          \"name\": \"Igbo (Nigeria)  (ig-NG)\",\r\n          \"value\": \"ig-NG\"\r\n        },\r\n        {\r\n          \"name\": \"Indonesian (Indonesia)  (id-ID)\",\r\n          \"value\": \"id-ID\"\r\n        },\r\n        {\r\n          \"name\": \"Interlingua (World)  (ia-001)\",\r\n          \"value\": \"ia-001\"\r\n        },\r\n        {\r\n          \"name\": \"Inuktitut (Latin, Canada)  (iu-Latn-CA)\",\r\n          \"value\": \"iu-Latn-CA\"\r\n        },\r\n        {\r\n          \"name\": \"Inuktitut (Syllabics, Canada)  (iu-Cans-CA)\",\r\n          \"value\": \"iu-Cans-CA\"\r\n        },\r\n        {\r\n          \"name\": \"Irish (Ireland)  (ga-IE)\",\r\n          \"value\": \"ga-IE\"\r\n        },\r\n        {\r\n          \"name\": \"isiXhosa (South Africa)  (xh-ZA)\",\r\n          \"value\": \"xh-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"isiZulu (South Africa)  (zu-ZA)\",\r\n          \"value\": \"zu-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Italian (Italy)  (it-IT)\",\r\n          \"value\": \"it-IT\"\r\n        },\r\n        {\r\n          \"name\": \"Italian (San Marino)  (it-SM)\",\r\n          \"value\": \"it-SM\"\r\n        },\r\n        {\r\n          \"name\": \"Italian (Switzerland)  (it-CH)\",\r\n          \"value\": \"it-CH\"\r\n        },\r\n        {\r\n          \"name\": \"Italian (Vatican City)  (it-VA)\",\r\n          \"value\": \"it-VA\"\r\n        },\r\n        {\r\n          \"name\": \"Japanese (Japan)  (ja-JP)\",\r\n          \"value\": \"ja-JP\"\r\n        },\r\n        {\r\n          \"name\": \"Javanese (Indonesia)  (jv-Latn-ID)\",\r\n          \"value\": \"jv-Latn-ID\"\r\n        },\r\n        {\r\n          \"name\": \"Javanese (Javanese, Indonesia)  (jv-Java-ID)\",\r\n          \"value\": \"jv-Java-ID\"\r\n        },\r\n        {\r\n          \"name\": \"Jola-Fonyi (Senegal)  (dyo-SN)\",\r\n          \"value\": \"dyo-SN\"\r\n        },\r\n        {\r\n          \"name\": \"Kabuverdianu (Cabo Verde)  (kea-CV)\",\r\n          \"value\": \"kea-CV\"\r\n        },\r\n        {\r\n          \"name\": \"Kabyle (Algeria)  (kab-DZ)\",\r\n          \"value\": \"kab-DZ\"\r\n        },\r\n        {\r\n          \"name\": \"Kako (Cameroon)  (kkj-CM)\",\r\n          \"value\": \"kkj-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Kalenjin (Kenya)  (kln-KE)\",\r\n          \"value\": \"kln-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Kamba (Kenya)  (kam-KE)\",\r\n          \"value\": \"kam-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Kannada (India)  (kn-IN)\",\r\n          \"value\": \"kn-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Kanuri (Nigeria)  (kr-Latn-NG)\",\r\n          \"value\": \"kr-Latn-NG\"\r\n        },\r\n        {\r\n          \"name\": \"Kashmiri (Devanagari, India)  (ks-Deva-IN)\",\r\n          \"value\": \"ks-Deva-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Kashmiri (Perso-Arabic)  (ks-Arab-IN)\",\r\n          \"value\": \"ks-Arab-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Kazakh (Kazakhstan)  (kk-KZ)\",\r\n          \"value\": \"kk-KZ\"\r\n        },\r\n        {\r\n          \"name\": \"Khmer (Cambodia)  (km-KH)\",\r\n          \"value\": \"km-KH\"\r\n        },\r\n        {\r\n          \"name\": \"K'iche' (Guatemala)  (quc-Latn-GT)\",\r\n          \"value\": \"quc-Latn-GT\"\r\n        },\r\n        {\r\n          \"name\": \"Kikuyu (Kenya)  (ki-KE)\",\r\n          \"value\": \"ki-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Kinyarwanda (Rwanda)  (rw-RW)\",\r\n          \"value\": \"rw-RW\"\r\n        },\r\n        {\r\n          \"name\": \"Kiswahili (Congo DRC)  (sw-CD)\",\r\n          \"value\": \"sw-CD\"\r\n        },\r\n        {\r\n          \"name\": \"Kiswahili (Kenya)  (sw-KE)\",\r\n          \"value\": \"sw-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Kiswahili (Tanzania)  (sw-TZ)\",\r\n          \"value\": \"sw-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Kiswahili (Uganda)  (sw-UG)\",\r\n          \"value\": \"sw-UG\"\r\n        },\r\n        {\r\n          \"name\": \"Konkani (India)  (kok-IN)\",\r\n          \"value\": \"kok-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Korean (Korea)  (ko-KR)\",\r\n          \"value\": \"ko-KR\"\r\n        },\r\n        {\r\n          \"name\": \"Korean (North Korea)  (ko-KP)\",\r\n          \"value\": \"ko-KP\"\r\n        },\r\n        {\r\n          \"name\": \"Koyra Chiini (Mali)  (khq-ML)\",\r\n          \"value\": \"khq-ML\"\r\n        },\r\n        {\r\n          \"name\": \"Koyraboro Senni (Mali)  (ses-ML)\",\r\n          \"value\": \"ses-ML\"\r\n        },\r\n        {\r\n          \"name\": \"Kurdish (Perso-Arabic, Iran)  (ku-Arab-IR)\",\r\n          \"value\": \"ku-Arab-IR\"\r\n        },\r\n        {\r\n          \"name\": \"Kwasio (Cameroon)  (nmg-CM)\",\r\n          \"value\": \"nmg-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Kyrgyz (Kyrgyzstan)  (ky-KG)\",\r\n          \"value\": \"ky-KG\"\r\n        },\r\n        {\r\n          \"name\": \"Lakota (United States)  (lkt-US)\",\r\n          \"value\": \"lkt-US\"\r\n        },\r\n        {\r\n          \"name\": \"Langi (Tanzania)  (lag-TZ)\",\r\n          \"value\": \"lag-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Lao (Lao P.D.R.)  (lo-LA)\",\r\n          \"value\": \"lo-LA\"\r\n        },\r\n        {\r\n          \"name\": \"Latin (World)  (la-001)\",\r\n          \"value\": \"la-001\"\r\n        },\r\n        {\r\n          \"name\": \"Latvian (Latvia)  (lv-LV)\",\r\n          \"value\": \"lv-LV\"\r\n        },\r\n        {\r\n          \"name\": \"Lingala (Angola)  (ln-AO)\",\r\n          \"value\": \"ln-AO\"\r\n        },\r\n        {\r\n          \"name\": \"Lingala (Central African Republic)  (ln-CF)\",\r\n          \"value\": \"ln-CF\"\r\n        },\r\n        {\r\n          \"name\": \"Lingala (Congo DRC)  (ln-CD)\",\r\n          \"value\": \"ln-CD\"\r\n        },\r\n        {\r\n          \"name\": \"Lingala (Congo)  (ln-CG)\",\r\n          \"value\": \"ln-CG\"\r\n        },\r\n        {\r\n          \"name\": \"Lithuanian (Lithuania)  (lt-LT)\",\r\n          \"value\": \"lt-LT\"\r\n        },\r\n        {\r\n          \"name\": \"Low German (Germany)  (nds-DE)\",\r\n          \"value\": \"nds-DE\"\r\n        },\r\n        {\r\n          \"name\": \"Low German (Netherlands)  (nds-NL)\",\r\n          \"value\": \"nds-NL\"\r\n        },\r\n        {\r\n          \"name\": \"Lower Sorbian (Germany)  (dsb-DE)\",\r\n          \"value\": \"dsb-DE\"\r\n        },\r\n        {\r\n          \"name\": \"Luba-Katanga (Congo DRC)  (lu-CD)\",\r\n          \"value\": \"lu-CD\"\r\n        },\r\n        {\r\n          \"name\": \"Luo (Kenya)  (luo-KE)\",\r\n          \"value\": \"luo-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Luxembourgish (Luxembourg)  (lb-LU)\",\r\n          \"value\": \"lb-LU\"\r\n        },\r\n        {\r\n          \"name\": \"Luyia (Kenya)  (luy-KE)\",\r\n          \"value\": \"luy-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Macedonian (North Macedonia)  (mk-MK)\",\r\n          \"value\": \"mk-MK\"\r\n        },\r\n        {\r\n          \"name\": \"Machame (Tanzania)  (jmc-TZ)\",\r\n          \"value\": \"jmc-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Makhuwa-Meetto (Mozambique)  (mgh-MZ)\",\r\n          \"value\": \"mgh-MZ\"\r\n        },\r\n        {\r\n          \"name\": \"Makonde (Tanzania)  (kde-TZ)\",\r\n          \"value\": \"kde-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Malagasy (Madagascar)  (mg-MG)\",\r\n          \"value\": \"mg-MG\"\r\n        },\r\n        {\r\n          \"name\": \"Malay (Brunei Darussalam)  (ms-BN)\",\r\n          \"value\": \"ms-BN\"\r\n        },\r\n        {\r\n          \"name\": \"Malay (Latin, Singapore)  (ms-SG)\",\r\n          \"value\": \"ms-SG\"\r\n        },\r\n        {\r\n          \"name\": \"Malay (Malaysia)  (ms-MY)\",\r\n          \"value\": \"ms-MY\"\r\n        },\r\n        {\r\n          \"name\": \"Malayalam (India)  (ml-IN)\",\r\n          \"value\": \"ml-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Maltese (Malta)  (mt-MT)\",\r\n          \"value\": \"mt-MT\"\r\n        },\r\n        {\r\n          \"name\": \"Manipuri (India)  (mni-IN)\",\r\n          \"value\": \"mni-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Manx (Isle of Man)  (gv-IM)\",\r\n          \"value\": \"gv-IM\"\r\n        },\r\n        {\r\n          \"name\": \"Maori (New Zealand)  (mi-NZ)\",\r\n          \"value\": \"mi-NZ\"\r\n        },\r\n        {\r\n          \"name\": \"Mapudungun (Chile)  (arn-CL)\",\r\n          \"value\": \"arn-CL\"\r\n        },\r\n        {\r\n          \"name\": \"Marathi (India)  (mr-IN)\",\r\n          \"value\": \"mr-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Masai (Kenya)  (mas-KE)\",\r\n          \"value\": \"mas-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Masai (Tanzania)  (mas-TZ)\",\r\n          \"value\": \"mas-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Mazanderani (Iran)  (mzn-IR)\",\r\n          \"value\": \"mzn-IR\"\r\n        },\r\n        {\r\n          \"name\": \"Meru (Kenya)  (mer-KE)\",\r\n          \"value\": \"mer-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Meta' (Cameroon)  (mgo-CM)\",\r\n          \"value\": \"mgo-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Mohawk (Mohawk)  (moh-CA)\",\r\n          \"value\": \"moh-CA\"\r\n        },\r\n        {\r\n          \"name\": \"Mongolian (Cyrillic, Mongolia)  (mn-MN)\",\r\n          \"value\": \"mn-MN\"\r\n        },\r\n        {\r\n          \"name\": \"Mongolian (Traditional Mongolian, Mongolia)  (mn-Mong-MN)\",\r\n          \"value\": \"mn-Mong-MN\"\r\n        },\r\n        {\r\n          \"name\": \"Mongolian (Traditional Mongolian, PRC)  (mn-Mong-CN)\",\r\n          \"value\": \"mn-Mong-CN\"\r\n        },\r\n        {\r\n          \"name\": \"Morisyen (Mauritius)  (mfe-MU)\",\r\n          \"value\": \"mfe-MU\"\r\n        },\r\n        {\r\n          \"name\": \"Mundang (Cameroon)  (mua-CM)\",\r\n          \"value\": \"mua-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Nama (Namibia)  (naq-NA)\",\r\n          \"value\": \"naq-NA\"\r\n        },\r\n        {\r\n          \"name\": \"Nepali (India)  (ne-IN)\",\r\n          \"value\": \"ne-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Nepali (Nepal)  (ne-NP)\",\r\n          \"value\": \"ne-NP\"\r\n        },\r\n        {\r\n          \"name\": \"Ngiemboon (Cameroon)  (nnh-CM)\",\r\n          \"value\": \"nnh-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Ngomba (Cameroon)  (jgo-CM)\",\r\n          \"value\": \"jgo-CM\"\r\n        },\r\n        {\r\n          \"name\": \"N'ko (Guinea)  (nqo-GN)\",\r\n          \"value\": \"nqo-GN\"\r\n        },\r\n        {\r\n          \"name\": \"North Ndebele (Zimbabwe)  (nd-ZW)\",\r\n          \"value\": \"nd-ZW\"\r\n        },\r\n        {\r\n          \"name\": \"Northern Luri (Iran)  (lrc-IR)\",\r\n          \"value\": \"lrc-IR\"\r\n        },\r\n        {\r\n          \"name\": \"Northern Luri (Iraq)  (lrc-IQ)\",\r\n          \"value\": \"lrc-IQ\"\r\n        },\r\n        {\r\n          \"name\": \"Norwegian, Bokmål (Norway)  (nb-NO)\",\r\n          \"value\": \"nb-NO\"\r\n        },\r\n        {\r\n          \"name\": \"Norwegian, Bokmål (Svalbard and Jan Mayen)  (nb-SJ)\",\r\n          \"value\": \"nb-SJ\"\r\n        },\r\n        {\r\n          \"name\": \"Norwegian, Nynorsk (Norway)  (nn-NO)\",\r\n          \"value\": \"nn-NO\"\r\n        },\r\n        {\r\n          \"name\": \"Nuer (South Sudan)  (nus-SS)\",\r\n          \"value\": \"nus-SS\"\r\n        },\r\n        {\r\n          \"name\": \"Nyankole (Uganda)  (nyn-UG)\",\r\n          \"value\": \"nyn-UG\"\r\n        },\r\n        {\r\n          \"name\": \"Occitan (France)  (oc-FR)\",\r\n          \"value\": \"oc-FR\"\r\n        },\r\n        {\r\n          \"name\": \"Odia (India)  (or-IN)\",\r\n          \"value\": \"or-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Oromo (Ethiopia)  (om-ET)\",\r\n          \"value\": \"om-ET\"\r\n        },\r\n        {\r\n          \"name\": \"Oromo (Kenya)  (om-KE)\",\r\n          \"value\": \"om-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Ossetian (Cyrillic, Georgia)  (os-GE)\",\r\n          \"value\": \"os-GE\"\r\n        },\r\n        {\r\n          \"name\": \"Ossetian (Cyrillic, Russia)  (os-RU)\",\r\n          \"value\": \"os-RU\"\r\n        },\r\n        {\r\n          \"name\": \"Papiamento (Caribbean)  (pap-029)\",\r\n          \"value\": \"pap-029\"\r\n        },\r\n        {\r\n          \"name\": \"Pashto (Afghanistan)  (ps-AF)\",\r\n          \"value\": \"ps-AF\"\r\n        },\r\n        {\r\n          \"name\": \"Pashto (Pakistan)  (ps-PK)\",\r\n          \"value\": \"ps-PK\"\r\n        },\r\n        {\r\n          \"name\": \"Persian (Iran)  (fa-IR)\",\r\n          \"value\": \"fa-IR\"\r\n        },\r\n        {\r\n          \"name\": \"Polish (Poland)  (pl-PL)\",\r\n          \"value\": \"pl-PL\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Angola)  (pt-AO)\",\r\n          \"value\": \"pt-AO\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Brazil)  (pt-BR)\",\r\n          \"value\": \"pt-BR\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Cabo Verde)  (pt-CV)\",\r\n          \"value\": \"pt-CV\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Equatorial Guinea)  (pt-GQ)\",\r\n          \"value\": \"pt-GQ\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Guinea-Bissau)  (pt-GW)\",\r\n          \"value\": \"pt-GW\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Luxembourg)  (pt-LU)\",\r\n          \"value\": \"pt-LU\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Macao SAR)  (pt-MO)\",\r\n          \"value\": \"pt-MO\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Mozambique)  (pt-MZ)\",\r\n          \"value\": \"pt-MZ\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Portugal)  (pt-PT)\",\r\n          \"value\": \"pt-PT\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (São Tomé and Príncipe)  (pt-ST)\",\r\n          \"value\": \"pt-ST\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Switzerland)  (pt-CH)\",\r\n          \"value\": \"pt-CH\"\r\n        },\r\n        {\r\n          \"name\": \"Portuguese (Timor-Leste)  (pt-TL)\",\r\n          \"value\": \"pt-TL\"\r\n        },\r\n        {\r\n          \"name\": \"Prussian (World)  (prg-001)\",\r\n          \"value\": \"prg-001\"\r\n        },\r\n        {\r\n          \"name\": \"Punjabi (India)  (pa-IN)\",\r\n          \"value\": \"pa-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Punjabi (Islamic Republic of Pakistan)  (pa-Arab-PK)\",\r\n          \"value\": \"pa-Arab-PK\"\r\n        },\r\n        {\r\n          \"name\": \"Quechua (Bolivia)  (quz-BO)\",\r\n          \"value\": \"quz-BO\"\r\n        },\r\n        {\r\n          \"name\": \"Quechua (Ecuador)  (quz-EC)\",\r\n          \"value\": \"quz-EC\"\r\n        },\r\n        {\r\n          \"name\": \"Quechua (Peru)  (quz-PE)\",\r\n          \"value\": \"quz-PE\"\r\n        },\r\n        {\r\n          \"name\": \"Ripuarian (Germany)  (ksh-DE)\",\r\n          \"value\": \"ksh-DE\"\r\n        },\r\n        {\r\n          \"name\": \"Romanian (Moldova)  (ro-MD)\",\r\n          \"value\": \"ro-MD\"\r\n        },\r\n        {\r\n          \"name\": \"Romanian (Romania)  (ro-RO)\",\r\n          \"value\": \"ro-RO\"\r\n        },\r\n        {\r\n          \"name\": \"Romansh (Switzerland)  (rm-CH)\",\r\n          \"value\": \"rm-CH\"\r\n        },\r\n        {\r\n          \"name\": \"Rombo (Tanzania)  (rof-TZ)\",\r\n          \"value\": \"rof-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Rundi (Burundi)  (rn-BI)\",\r\n          \"value\": \"rn-BI\"\r\n        },\r\n        {\r\n          \"name\": \"Russian (Belarus)  (ru-BY)\",\r\n          \"value\": \"ru-BY\"\r\n        },\r\n        {\r\n          \"name\": \"Russian (Kazakhstan)  (ru-KZ)\",\r\n          \"value\": \"ru-KZ\"\r\n        },\r\n        {\r\n          \"name\": \"Russian (Kyrgyzstan)  (ru-KG)\",\r\n          \"value\": \"ru-KG\"\r\n        },\r\n        {\r\n          \"name\": \"Russian (Moldova)  (ru-MD)\",\r\n          \"value\": \"ru-MD\"\r\n        },\r\n        {\r\n          \"name\": \"Russian (Russia)  (ru-RU)\",\r\n          \"value\": \"ru-RU\"\r\n        },\r\n        {\r\n          \"name\": \"Russian (Ukraine)  (ru-UA)\",\r\n          \"value\": \"ru-UA\"\r\n        },\r\n        {\r\n          \"name\": \"Rwa (Tanzania)  (rwk-TZ)\",\r\n          \"value\": \"rwk-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Saho (Eritrea)  (ssy-ER)\",\r\n          \"value\": \"ssy-ER\"\r\n        },\r\n        {\r\n          \"name\": \"Sakha (Russia)  (sah-RU)\",\r\n          \"value\": \"sah-RU\"\r\n        },\r\n        {\r\n          \"name\": \"Samburu (Kenya)  (saq-KE)\",\r\n          \"value\": \"saq-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Inari (Finland)  (smn-FI)\",\r\n          \"value\": \"smn-FI\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Lule (Norway)  (smj-NO)\",\r\n          \"value\": \"smj-NO\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Lule (Sweden)  (smj-SE)\",\r\n          \"value\": \"smj-SE\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Northern (Finland)  (se-FI)\",\r\n          \"value\": \"se-FI\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Northern (Norway)  (se-NO)\",\r\n          \"value\": \"se-NO\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Northern (Sweden)  (se-SE)\",\r\n          \"value\": \"se-SE\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Skolt (Finland)  (sms-FI)\",\r\n          \"value\": \"sms-FI\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Southern (Norway)  (sma-NO)\",\r\n          \"value\": \"sma-NO\"\r\n        },\r\n        {\r\n          \"name\": \"Sami, Southern (Sweden)  (sma-SE)\",\r\n          \"value\": \"sma-SE\"\r\n        },\r\n        {\r\n          \"name\": \"Sango (Central African Republic)  (sg-CF)\",\r\n          \"value\": \"sg-CF\"\r\n        },\r\n        {\r\n          \"name\": \"Sangu (Tanzania)  (sbp-TZ)\",\r\n          \"value\": \"sbp-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Sanskrit (India)  (sa-IN)\",\r\n          \"value\": \"sa-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Scottish Gaelic (United Kingdom)  (gd-GB)\",\r\n          \"value\": \"gd-GB\"\r\n        },\r\n        {\r\n          \"name\": \"Sena (Mozambique)  (seh-MZ)\",\r\n          \"value\": \"seh-MZ\"\r\n        },\r\n        {\r\n          \"name\": \"Serbian (Cyrillic, Bosnia and Herzegovina)  (sr-Cyrl-BA)\",\r\n          \"value\": \"sr-Cyrl-BA\"\r\n        },\r\n        {\r\n          \"name\": \"Serbian (Cyrillic, Kosovo)  (sr-Cyrl-XK)\",\r\n          \"value\": \"sr-Cyrl-XK\"\r\n        },\r\n        {\r\n          \"name\": \"Serbian (Cyrillic, Montenegro)  (sr-Cyrl-ME)\",\r\n          \"value\": \"sr-Cyrl-ME\"\r\n        },\r\n        {\r\n          \"name\": \"Serbian (Cyrillic, Serbia)  (sr-Cyrl-RS)\",\r\n          \"value\": \"sr-Cyrl-RS\"\r\n        },\r\n        {\r\n          \"name\": \"Serbian (Latin, Bosnia and Herzegovina)  (sr-Latn-BA)\",\r\n          \"value\": \"sr-Latn-BA\"\r\n        },\r\n        {\r\n          \"name\": \"Serbian (Latin, Kosovo)  (sr-Latn-XK)\",\r\n          \"value\": \"sr-Latn-XK\"\r\n        },\r\n        {\r\n          \"name\": \"Serbian (Latin, Montenegro)  (sr-Latn-ME)\",\r\n          \"value\": \"sr-Latn-ME\"\r\n        },\r\n        {\r\n          \"name\": \"Serbian (Latin, Serbia)  (sr-Latn-RS)\",\r\n          \"value\": \"sr-Latn-RS\"\r\n        },\r\n        {\r\n          \"name\": \"Sesotho (Lesotho)  (st-LS)\",\r\n          \"value\": \"st-LS\"\r\n        },\r\n        {\r\n          \"name\": \"Sesotho sa Leboa (South Africa)  (nso-ZA)\",\r\n          \"value\": \"nso-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Setswana (Botswana)  (tn-BW)\",\r\n          \"value\": \"tn-BW\"\r\n        },\r\n        {\r\n          \"name\": \"Setswana (South Africa)  (tn-ZA)\",\r\n          \"value\": \"tn-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Shambala (Tanzania)  (ksb-TZ)\",\r\n          \"value\": \"ksb-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Shona (Latin, Zimbabwe)  (sn-Latn-ZW)\",\r\n          \"value\": \"sn-Latn-ZW\"\r\n        },\r\n        {\r\n          \"name\": \"Sindhi (Devanagari, India)  (sd-Deva-IN)\",\r\n          \"value\": \"sd-Deva-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Sindhi (Islamic Republic of Pakistan)  (sd-Arab-PK)\",\r\n          \"value\": \"sd-Arab-PK\"\r\n        },\r\n        {\r\n          \"name\": \"Sinhala (Sri Lanka)  (si-LK)\",\r\n          \"value\": \"si-LK\"\r\n        },\r\n        {\r\n          \"name\": \"Slovak (Slovakia)  (sk-SK)\",\r\n          \"value\": \"sk-SK\"\r\n        },\r\n        {\r\n          \"name\": \"Slovenian (Slovenia)  (sl-SI)\",\r\n          \"value\": \"sl-SI\"\r\n        },\r\n        {\r\n          \"name\": \"Soga (Uganda)  (xog-UG)\",\r\n          \"value\": \"xog-UG\"\r\n        },\r\n        {\r\n          \"name\": \"Somali (Djibouti)  (so-DJ)\",\r\n          \"value\": \"so-DJ\"\r\n        },\r\n        {\r\n          \"name\": \"Somali (Ethiopia)  (so-ET)\",\r\n          \"value\": \"so-ET\"\r\n        },\r\n        {\r\n          \"name\": \"Somali (Kenya)  (so-KE)\",\r\n          \"value\": \"so-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Somali (Somalia)  (so-SO)\",\r\n          \"value\": \"so-SO\"\r\n        },\r\n        {\r\n          \"name\": \"South Ndebele (South Africa)  (nr-ZA)\",\r\n          \"value\": \"nr-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Southern Sotho (South Africa)  (st-ZA)\",\r\n          \"value\": \"st-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Argentina)  (es-AR)\",\r\n          \"value\": \"es-AR\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Belize)  (es-BZ)\",\r\n          \"value\": \"es-BZ\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Bolivarian Republic of Venezuela)  (es-VE)\",\r\n          \"value\": \"es-VE\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Bolivia)  (es-BO)\",\r\n          \"value\": \"es-BO\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Brazil)  (es-BR)\",\r\n          \"value\": \"es-BR\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Chile)  (es-CL)\",\r\n          \"value\": \"es-CL\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Colombia)  (es-CO)\",\r\n          \"value\": \"es-CO\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Costa Rica)  (es-CR)\",\r\n          \"value\": \"es-CR\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Cuba)  (es-CU)\",\r\n          \"value\": \"es-CU\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Dominican Republic)  (es-DO)\",\r\n          \"value\": \"es-DO\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Ecuador)  (es-EC)\",\r\n          \"value\": \"es-EC\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (El Salvador)  (es-SV)\",\r\n          \"value\": \"es-SV\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Equatorial Guinea)  (es-GQ)\",\r\n          \"value\": \"es-GQ\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Guatemala)  (es-GT)\",\r\n          \"value\": \"es-GT\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Honduras)  (es-HN)\",\r\n          \"value\": \"es-HN\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Latin America)  (es-419)\",\r\n          \"value\": \"es-419\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Mexico)  (es-MX)\",\r\n          \"value\": \"es-MX\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Nicaragua)  (es-NI)\",\r\n          \"value\": \"es-NI\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Panama)  (es-PA)\",\r\n          \"value\": \"es-PA\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Paraguay)  (es-PY)\",\r\n          \"value\": \"es-PY\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Peru)  (es-PE)\",\r\n          \"value\": \"es-PE\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Philippines)  (es-PH)\",\r\n          \"value\": \"es-PH\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Puerto Rico)  (es-PR)\",\r\n          \"value\": \"es-PR\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Spain)  (es-ES)\",\r\n          \"value\": \"es-ES\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (United States)  (es-US)\",\r\n          \"value\": \"es-US\"\r\n        },\r\n        {\r\n          \"name\": \"Spanish (Uruguay)  (es-UY)\",\r\n          \"value\": \"es-UY\"\r\n        },\r\n        {\r\n          \"name\": \"Standard Moroccan Tamazight (Tifinagh, Morocco)  (zgh-Tfng-MA)\",\r\n          \"value\": \"zgh-Tfng-MA\"\r\n        },\r\n        {\r\n          \"name\": \"Swati (South Africa)  (ss-ZA)\",\r\n          \"value\": \"ss-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Swati (Swaziland)  (ss-SZ)\",\r\n          \"value\": \"ss-SZ\"\r\n        },\r\n        {\r\n          \"name\": \"Swedish (Åland Islands)  (sv-AX)\",\r\n          \"value\": \"sv-AX\"\r\n        },\r\n        {\r\n          \"name\": \"Swedish (Finland)  (sv-FI)\",\r\n          \"value\": \"sv-FI\"\r\n        },\r\n        {\r\n          \"name\": \"Swedish (Sweden)  (sv-SE)\",\r\n          \"value\": \"sv-SE\"\r\n        },\r\n        {\r\n          \"name\": \"Syriac (Syria)  (syr-SY)\",\r\n          \"value\": \"syr-SY\"\r\n        },\r\n        {\r\n          \"name\": \"Tachelhit (Latin, Morocco)  (shi-Latn-MA)\",\r\n          \"value\": \"shi-Latn-MA\"\r\n        },\r\n        {\r\n          \"name\": \"Tachelhit (Tifinagh, Morocco)  (shi-Tfng-MA)\",\r\n          \"value\": \"shi-Tfng-MA\"\r\n        },\r\n        {\r\n          \"name\": \"Taita (Kenya)  (dav-KE)\",\r\n          \"value\": \"dav-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Tajik (Cyrillic, Tajikistan)  (tg-Cyrl-TJ)\",\r\n          \"value\": \"tg-Cyrl-TJ\"\r\n        },\r\n        {\r\n          \"name\": \"Tamazight (Latin, Algeria)  (tzm-Latn-DZ)\",\r\n          \"value\": \"tzm-Latn-DZ\"\r\n        },\r\n        {\r\n          \"name\": \"Tamil (India)  (ta-IN)\",\r\n          \"value\": \"ta-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Tamil (Malaysia)  (ta-MY)\",\r\n          \"value\": \"ta-MY\"\r\n        },\r\n        {\r\n          \"name\": \"Tamil (Singapore)  (ta-SG)\",\r\n          \"value\": \"ta-SG\"\r\n        },\r\n        {\r\n          \"name\": \"Tamil (Sri Lanka)  (ta-LK)\",\r\n          \"value\": \"ta-LK\"\r\n        },\r\n        {\r\n          \"name\": \"Tasawaq (Niger)  (twq-NE)\",\r\n          \"value\": \"twq-NE\"\r\n        },\r\n        {\r\n          \"name\": \"Tatar (Russia)  (tt-RU)\",\r\n          \"value\": \"tt-RU\"\r\n        },\r\n        {\r\n          \"name\": \"Telugu (India)  (te-IN)\",\r\n          \"value\": \"te-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Teso (Kenya)  (teo-KE)\",\r\n          \"value\": \"teo-KE\"\r\n        },\r\n        {\r\n          \"name\": \"Teso (Uganda)  (teo-UG)\",\r\n          \"value\": \"teo-UG\"\r\n        },\r\n        {\r\n          \"name\": \"Thai (Thailand)  (th-TH)\",\r\n          \"value\": \"th-TH\"\r\n        },\r\n        {\r\n          \"name\": \"Tibetan (India)  (bo-IN)\",\r\n          \"value\": \"bo-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Tibetan (PRC)  (bo-CN)\",\r\n          \"value\": \"bo-CN\"\r\n        },\r\n        {\r\n          \"name\": \"Tigre (Eritrea)  (tig-ER)\",\r\n          \"value\": \"tig-ER\"\r\n        },\r\n        {\r\n          \"name\": \"Tigrinya (Eritrea)  (ti-ER)\",\r\n          \"value\": \"ti-ER\"\r\n        },\r\n        {\r\n          \"name\": \"Tigrinya (Ethiopia)  (ti-ET)\",\r\n          \"value\": \"ti-ET\"\r\n        },\r\n        {\r\n          \"name\": \"Tongan (Tonga)  (to-TO)\",\r\n          \"value\": \"to-TO\"\r\n        },\r\n        {\r\n          \"name\": \"Tsonga (South Africa)  (ts-ZA)\",\r\n          \"value\": \"ts-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Turkish (Cyprus)  (tr-CY)\",\r\n          \"value\": \"tr-CY\"\r\n        },\r\n        {\r\n          \"name\": \"Turkish (Turkey)  (tr-TR)\",\r\n          \"value\": \"tr-TR\"\r\n        },\r\n        {\r\n          \"name\": \"Turkmen (Turkmenistan)  (tk-TM)\",\r\n          \"value\": \"tk-TM\"\r\n        },\r\n        {\r\n          \"name\": \"Ukrainian (Ukraine)  (uk-UA)\",\r\n          \"value\": \"uk-UA\"\r\n        },\r\n        {\r\n          \"name\": \"Upper Sorbian (Germany)  (hsb-DE)\",\r\n          \"value\": \"hsb-DE\"\r\n        },\r\n        {\r\n          \"name\": \"Urdu (India)  (ur-IN)\",\r\n          \"value\": \"ur-IN\"\r\n        },\r\n        {\r\n          \"name\": \"Urdu (Islamic Republic of Pakistan)  (ur-PK)\",\r\n          \"value\": \"ur-PK\"\r\n        },\r\n        {\r\n          \"name\": \"Uyghur (PRC)  (ug-CN)\",\r\n          \"value\": \"ug-CN\"\r\n        },\r\n        {\r\n          \"name\": \"Uzbek (Cyrillic, Uzbekistan)  (uz-Cyrl-UZ)\",\r\n          \"value\": \"uz-Cyrl-UZ\"\r\n        },\r\n        {\r\n          \"name\": \"Uzbek (Latin, Uzbekistan)  (uz-Latn-UZ)\",\r\n          \"value\": \"uz-Latn-UZ\"\r\n        },\r\n        {\r\n          \"name\": \"Uzbek (Perso-Arabic, Afghanistan)  (uz-Arab-AF)\",\r\n          \"value\": \"uz-Arab-AF\"\r\n        },\r\n        {\r\n          \"name\": \"Vai (Latin, Liberia)  (vai-Latn-LR)\",\r\n          \"value\": \"vai-Latn-LR\"\r\n        },\r\n        {\r\n          \"name\": \"Vai (Vai, Liberia)  (vai-Vaii-LR)\",\r\n          \"value\": \"vai-Vaii-LR\"\r\n        },\r\n        {\r\n          \"name\": \"Valencian (Spain)  (ca-ES-valencia)\",\r\n          \"value\": \"ca-ES-valencia\"\r\n        },\r\n        {\r\n          \"name\": \"Venda (South Africa)  (ve-ZA)\",\r\n          \"value\": \"ve-ZA\"\r\n        },\r\n        {\r\n          \"name\": \"Vietnamese (Vietnam)  (vi-VN)\",\r\n          \"value\": \"vi-VN\"\r\n        },\r\n        {\r\n          \"name\": \"Volapük (World)  (vo-001)\",\r\n          \"value\": \"vo-001\"\r\n        },\r\n        {\r\n          \"name\": \"Vunjo (Tanzania)  (vun-TZ)\",\r\n          \"value\": \"vun-TZ\"\r\n        },\r\n        {\r\n          \"name\": \"Walser (Switzerland)  (wae-CH)\",\r\n          \"value\": \"wae-CH\"\r\n        },\r\n        {\r\n          \"name\": \"Welsh (United Kingdom)  (cy-GB)\",\r\n          \"value\": \"cy-GB\"\r\n        },\r\n        {\r\n          \"name\": \"Wolaytta (Ethiopia)  (wal-ET)\",\r\n          \"value\": \"wal-ET\"\r\n        },\r\n        {\r\n          \"name\": \"Wolof (Senegal)  (wo-SN)\",\r\n          \"value\": \"wo-SN\"\r\n        },\r\n        {\r\n          \"name\": \"Yangben (Cameroon)  (yav-CM)\",\r\n          \"value\": \"yav-CM\"\r\n        },\r\n        {\r\n          \"name\": \"Yi (PRC)  (ii-CN)\",\r\n          \"value\": \"ii-CN\"\r\n        },\r\n        {\r\n          \"name\": \"Yiddish (World)  (yi-001)\",\r\n          \"value\": \"yi-001\"\r\n        },\r\n        {\r\n          \"name\": \"Yoruba (Benin)  (yo-BJ)\",\r\n          \"value\": \"yo-BJ\"\r\n        },\r\n        {\r\n          \"name\": \"Yoruba (Nigeria)  (yo-NG)\",\r\n          \"value\": \"yo-NG\"\r\n        },\r\n        {\r\n          \"name\": \"Zarma (Niger)  (dje-NE)\",\r\n          \"value\": \"dje-NE\"\r\n        }\r\n      ];\r\n\r\n    return this._cultures;\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError, timeout } from \"rxjs/operators\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiLocalizationService } from \"./sti-localization.service\";\r\nimport { StiHelperService } from \"./sti-helper.service\";\r\n\r\n@Injectable()\r\nexport class StiHttpClientService {\r\n  constructor(\r\n    private httpClient: HttpClient,\r\n    private model: StiModelService,\r\n    private helper: StiHelperService,\r\n    private loc: StiLocalizationService\r\n  ) {}\r\n\r\n  public post(url: string, data: any, responseType: string = \"json\", options?: any): Observable<any> {\r\n    if (this.model.isWebView) {\r\n      return this.postWebView(data, options);\r\n    } else if (this.model.embeddedMode && data?.action == \"InterfaceEvent\") {\r\n      this.model.embeddedEvent(data);\r\n      return new Observable((observer) => {\r\n        observer.next({});\r\n      });\r\n    } else {\r\n      return this.postHttp(url, data, responseType, options);\r\n    }\r\n  }\r\n\r\n  public loadLocalization(cultureName) {\r\n    this.loc.currentLocalization = this.loc.localizationList.find((item) => item.cultureName == cultureName);\r\n    this.post(this.model.requestUrl, { action: \"GetLocalization\", localization: cultureName }).subscribe((data) => {\r\n      StiLocalizationService.setLocalization(data.localization);\r\n      this.model.needToRefresh.next(true);\r\n      this.helper.updateHelper();\r\n    });\r\n  }\r\n\r\n  public postWebView(data: any, options?: any): Observable<any> {\r\n    let webView = (window as any).chrome.webview.hostObjects.sync.webView;\r\n    let model = this.model;\r\n    model.showProgress = options && options.showProgress === false ? false : true;\r\n\r\n    let observer = new Observable((observer) => {\r\n      setTimeout(() => {\r\n        let result = webView.Action(this.getData(data));\r\n        let jsonResult = JSON.parse(result);\r\n        let jsonData = jsonResult.data;\r\n        if (jsonResult.contentType == \"application/pdf\") {\r\n          jsonData = atob(jsonData);\r\n          var len = jsonData.length;\r\n          var bytes = new Uint8Array(len);\r\n          for (var i = 0; i < len; i++) {\r\n            bytes[i] = jsonData.charCodeAt(i);\r\n          }\r\n          jsonData = bytes.buffer;\r\n        }\r\n        model.showProgress = false;\r\n        observer.next(jsonData);\r\n      }, 0);\r\n    });\r\n\r\n    return observer;\r\n  }\r\n\r\n  public postHttp(url: string, data: any, responseType: string = \"json\", options?: any): Observable<any> {\r\n    const reqTimeout = 1000 * 1000;\r\n    const model = this.model;\r\n    model.showProgress = options && options.showProgress === false ? false : true;\r\n    if (responseType === \"json\") {\r\n      return this.httpClient.post(url, this.getFormData(data)).pipe(\r\n        // retry(3),\r\n        timeout(reqTimeout),\r\n\r\n        catchError((error: any) => {\r\n          //model.httpError = error;\r\n          model.showProgress = false;\r\n          model.showError(error.error);\r\n          return throwError(\"Something bad happened; please try again later.\");\r\n        })\r\n      );\r\n    } else {\r\n      return this.httpClient.post(url, this.getFormData(data), { responseType: \"arraybuffer\" }).pipe(\r\n        // retry(3),\r\n        timeout(reqTimeout),\r\n        catchError((error: any) => {\r\n          //model.httpError = error;\r\n          model.showProgress = false;\r\n          model.showError(error.error);\r\n          return throwError(\"Something bad happened; please try again later.\");\r\n        })\r\n      );\r\n    }\r\n  }\r\n\r\n  private getData(data: any): string {\r\n    if (this.model.properties) {\r\n      data[\"properties\"] = this.model.properties;\r\n    }\r\n    return JSON.stringify(data);\r\n  }\r\n\r\n  private getFormData(data: any): FormData {\r\n    const formData: FormData = new FormData();\r\n    if (this.model.properties) {\r\n      data[\"properties\"] = this.model.properties;\r\n    }\r\n    formData.append(\"data\", JSON.stringify(data));\r\n    return formData;\r\n  }\r\n\r\n  public postForm(url: string, data: any, doc: any, postOnlyData: boolean = false) {\r\n    if (!doc) {\r\n      doc = document;\r\n    }\r\n    const form = doc.createElement(\"FORM\");\r\n    form.setAttribute(\"method\", \"POST\");\r\n    form.setAttribute(\"action\", url);\r\n\r\n    const params = data;\r\n\r\n    Object.keys(params).forEach((key) => {\r\n      const paramsField = doc.createElement(\"INPUT\");\r\n      paramsField.setAttribute(\"type\", \"hidden\");\r\n      paramsField.setAttribute(\"name\", key);\r\n      paramsField.setAttribute(\"value\", params[key]);\r\n      form.appendChild(paramsField);\r\n    });\r\n\r\n    doc.body.appendChild(form);\r\n    form.submit();\r\n    doc.body.removeChild(form);\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiForm } from \"../elements/StiForm\";\r\nimport { StiModelService } from \"./model.service\";\r\n\r\n@Injectable()\r\nexport class StiUndoService {\r\n  public static UNDO_SIZE = 30;\r\n\r\n  public undos = [];\r\n  public redos = [];\r\n\r\n  constructor(public model: StiModelService) {\r\n    model.formEvents.subscribe((e) => {\r\n      if (e.name == \"FormChanged\") {\r\n        this.addToUndo();\r\n      } else if (e.name == \"SetForm\") {\r\n        this.undos = [];\r\n        this.addToUndo();\r\n      }\r\n    });\r\n  }\r\n\r\n  public undoRedo(from: any[], to: any[]) {\r\n    to.push(from.splice(from.length - 1, 1)[0]);\r\n    if (to.length > StiUndoService.UNDO_SIZE) {\r\n      to.splice(0, 1);\r\n    }\r\n    let fromObj = this.undos[this.undos.length - 1];\r\n    let form = new StiForm();\r\n    form.loadFormJsonString(fromObj.form);\r\n    this.model.selectedComponent = null;\r\n    if (fromObj.guid) {\r\n      form.pages.forEach((p) => {\r\n        if (p.guid == fromObj.guid) {\r\n          this.model.selectedPage = p;\r\n        }\r\n      });\r\n      form.pages.forEach((p) =>\r\n        p.allElements.forEach((e) => {\r\n          if (e.guid == fromObj.guid) {\r\n            e.needToSelectComponent = true;\r\n          }\r\n        })\r\n      );\r\n    }\r\n    this.model.updateForm(form);\r\n    this.model.showTrialLog();\r\n  }\r\n\r\n  public addToUndo() {\r\n    this.model.showTrialLog();\r\n    let formStr = this.model.form.saveToJsonObject().serialize();\r\n    this.undos.push({\r\n      form: formStr,\r\n      guid: this.model.selectedComponent?.element.guid ?? this.model.selectedPage?.guid,\r\n      num: this.undos.length,\r\n    });\r\n    if (this.undos.length > StiUndoService.UNDO_SIZE) {\r\n      this.undos.splice(0, 1);\r\n    }\r\n    this.redos = [];\r\n  }\r\n\r\n  public undo() {\r\n    if (this.undos.length > 0) {\r\n      this.undoRedo(this.undos, this.redos);\r\n    }\r\n  }\r\n\r\n  public redo() {\r\n    if (this.redos.length > 0) {\r\n      this.undoRedo(this.redos, this.undos);\r\n    }\r\n  }\r\n\r\n  public markCurrentFormAsUnmodified() {\r\n    this.undos.forEach((u) => (u.unmodified = false));\r\n    this.redos.forEach((u) => (u.unmodified = false));\r\n    this.undos[this.undos.length - 1].unmodified = true;\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiBarcodeElement } from \"../elements/StiBarcodeElement\";\r\nimport { StiHttpClientService } from \"./http-client.service\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiMouseService } from \"./mouse.service\";\r\nimport { StiUndoService } from \"./sti-undo-service\";\r\n\r\n@Injectable()\r\nexport class StiBarcodeService {\r\n  private timerSarted = false;\r\n  private initialized = false;\r\n\r\n  public previewY: number;\r\n  public previewX: number;\r\n  public previewWidth: number = 192;\r\n  public showBarcodePreview: boolean = false;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public mouseService: StiMouseService,\r\n    public httpService: StiHttpClientService,\r\n    public undoService: StiUndoService\r\n  ) {}\r\n\r\n  public init() {\r\n    if (!this.initialized) {\r\n      this.mouseService.getDocumentMouseMove().subscribe(() => {\r\n        if (!this.model.draggingElement) {\r\n          this.startUpdate();\r\n        }\r\n      });\r\n\r\n      this.mouseService.getDocumentMouseUp().subscribe(() => {\r\n        this.startUpdate();\r\n      });\r\n\r\n      document.body.addEventListener(\"keyup\", () => this.startUpdate(), true);\r\n\r\n      this.model.formEvents.subscribe((e) => {\r\n        if (e.name == \"SetForm\") {\r\n          this.startUpdate();\r\n        }\r\n      });\r\n\r\n      document.body.addEventListener(\"keyup\", () => this.startUpdate(), true);\r\n    }\r\n    this.initialized = true;\r\n    this.startUpdate();\r\n  }\r\n\r\n  startUpdate() {\r\n    let this_ = this;\r\n    if (!this.timerSarted) {\r\n      this.timerSarted = true;\r\n      setTimeout(() => {\r\n        this.timerSarted = false;\r\n        let barcodes = [];\r\n        this.findChangedBarcodes(this.model.form, barcodes);\r\n        if (barcodes.length > 0) {\r\n          let jsonBarcodes = [];\r\n          barcodes.forEach((b) => {\r\n            let barcode = b as StiBarcodeElement;\r\n            barcode.resetChanged();\r\n            barcode.showProgress = true;\r\n            jsonBarcodes.push(barcode.saveToJsonObject({}).serialize());\r\n          });\r\n          let data = {\r\n            action: \"GetBorcodeImages\",\r\n            barcodes: jsonBarcodes,\r\n          };\r\n          this.httpService.post(this.model.requestUrl, data, \"json\", { showProgress: false }).subscribe((data) => {\r\n            this_.model.showProgress = false;\r\n            let barcodeImgs = data as string[];\r\n            for (let i = 0; i < barcodes.length; i++) {\r\n              barcodes[i].img = barcodeImgs[i];\r\n              barcodes[i].showProgress = false;\r\n            }\r\n          });\r\n        }\r\n      }, 400);\r\n    }\r\n  }\r\n\r\n  findChangedBarcodes(element: any, barcodes: StiBarcodeElement[]) {\r\n    let iterable = element?.pages ? element.pages : element?.elements ? element.elements : [];\r\n    (iterable as []).forEach((p) => this.findChangedBarcodes(p, barcodes));\r\n    let barcode = element instanceof StiBarcodeElement ? element : null;\r\n    if (barcode?.isChanged()) {\r\n      barcodes.push(barcode);\r\n    }\r\n  }\r\n\r\n  public barcodeStyles: any[] = [\r\n    {\r\n      value: 1,\r\n      innerHtml: `\r\n        <rect\r\n          x=\"0\"\r\n          y=\"0\"\r\n          width=\"165.3543\"\r\n          height=\"165.3543\"\r\n          fill=\"red\"\r\n          style=\"fill:rgba(255,255,255,0);\"\r\n          shape-rendering=\"crispEdges\"\r\n        />\r\n        <polygon\r\n          points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n          style=\"fill:rgba(0,0,0,1);\"\r\n        />\r\n        <polygon\r\n          points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n          style=\"fill:rgba(0,0,0,1);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n          style=\"fill:rgba(0,0,0,1);\"\r\n        />\r\n        <polygon points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.37,13.23 86.05,13.23 85.98,19.91 79.37,19.91 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.92,13.23 92.66,13.23 92.53,19.84 85.92,19.84 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.53,13.23 99.21,13.23 99.15,19.91 92.53,19.91 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,19.84 72.82,19.84 72.76,26.46 66.14,26.46 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.69,19.84 79.44,19.84 79.3,26.46 72.69,26.46 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.3,19.78 85.98,19.78 85.92,26.52 79.3,26.52 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,19.78 99.21,19.78 99.21,26.52 92.6,26.52 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.37,26.39 86.05,26.39 85.98,33.07 79.37,33.07 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.92,26.46 92.66,26.46 92.53,33.07 85.92,33.07 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.53,26.39 99.21,26.39 99.15,33.14 92.53,33.14 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,33.07 72.82,33.07 72.76,39.69 66.14,39.69 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.69,33.07 79.37,33.07 79.3,39.75 72.69,39.75 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,33 99.21,33 99.21,39.75 92.6,39.75 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.76,39.62 79.37,39.62 79.37,46.3 72.76,46.3 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,39.62 99.21,39.62 99.21,46.3 92.6,46.3 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,46.3 72.76,46.3 72.76,52.98 66.14,52.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.98,46.3 92.6,46.3 92.6,52.91 85.98,52.91 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,52.85 72.76,52.85 72.76,59.53 66.14,59.53 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.37,52.91 85.98,52.91 85.98,59.53 79.37,59.53 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,52.91 99.21,52.91 99.21,59.53 92.6,59.53 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.76,59.53 79.37,59.53 79.37,66.14 72.76,66.14 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"13.23,66.14 19.91,66.14 19.84,72.82 13.23,72.82 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"19.78,66.14 26.52,66.14 26.39,72.82 19.78,72.82 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"26.39,66.14 33.14,66.14 33,72.82 26.39,72.82 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"33,66.14 39.75,66.14 39.62,72.76 33,72.76 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"39.62,66.14 46.3,66.14 46.23,72.76 39.62,72.76 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"52.91,66.14 59.59,66.14 59.53,72.76 52.91,72.76 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"59.46,66.14 66.21,66.14 66.08,72.82 59.46,72.82 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.08,66.14 72.76,66.14 72.69,72.76 66.08,72.76 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.98,66.14 92.6,66.14 92.6,72.82 85.98,72.82 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"99.21,66.14 105.83,66.14 105.83,72.82 99.21,72.82 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.44,66.14 119.06,66.14 119.06,72.76 112.44,72.76 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"125.67,66.14 132.28,66.14 132.28,72.82 125.67,72.82 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"138.9,66.14 145.51,66.14 145.51,72.82 138.9,72.82 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"13.23,72.69 19.91,72.69 19.84,79.37 13.23,79.37 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"19.78,72.69 26.52,72.69 26.39,79.37 19.78,79.37 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"26.39,72.69 33.07,72.69 33,79.44 26.39,79.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"46.3,72.76 52.91,72.76 52.91,79.44 46.3,79.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"59.53,72.69 66.14,72.69 66.14,79.37 59.53,79.37 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.76,72.76 79.37,72.76 79.37,79.44 72.76,79.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.98,72.69 92.66,72.69 92.6,79.37 85.98,79.37 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.53,72.76 99.28,72.76 99.15,79.44 92.53,79.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"99.15,72.69 105.89,72.69 105.76,79.37 99.15,79.37 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"105.76,72.76 112.44,72.76 112.37,79.44 105.76,79.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"125.67,72.69 132.35,72.69 132.28,79.44 125.67,79.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.22,72.76 138.96,72.76 138.83,79.37 132.22,79.37 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"138.83,72.69 145.58,72.69 145.45,79.37 138.83,79.37 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"145.45,72.76 152.13,72.76 152.06,79.44 145.45,79.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"26.46,79.3 33.07,79.3 33.07,85.98 26.46,85.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"39.69,79.37 46.37,79.37 46.3,85.98 39.69,85.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"46.23,79.3 52.98,79.3 52.85,85.98 46.23,85.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"52.85,79.37 59.53,79.37 59.46,85.98 52.85,85.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,79.37 72.82,79.37 72.76,85.98 66.14,85.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.69,79.3 79.37,79.3 79.3,85.98 72.69,85.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,79.3 99.21,79.3 99.21,86.05 92.6,86.05 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"105.83,79.3 112.51,79.3 112.44,86.05 105.83,86.05 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.37,79.37 119.06,79.37 118.99,85.98 112.37,85.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"125.67,79.3 132.28,79.3 132.28,85.98 125.67,85.98 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"145.51,79.3 152.13,79.3 152.13,86.05 145.51,86.05 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"13.23,85.98 19.84,85.98 19.84,92.6 13.23,92.6 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"33.07,85.98 39.69,85.98 39.69,92.66 33.07,92.66 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.98,85.98 92.66,85.98 92.6,92.6 85.98,92.6 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.53,85.92 99.28,85.92 99.15,92.66 92.53,92.66 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"99.15,85.98 105.89,85.98 105.76,92.6 99.15,92.6 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"105.76,85.92 112.44,85.92 112.37,92.6 105.76,92.6 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.28,85.98 138.96,85.98 138.9,92.6 132.28,92.6 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"138.83,85.98 145.58,85.98 145.45,92.66 138.83,92.66 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"145.45,85.92 152.13,85.92 152.06,92.6 145.45,92.6 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"19.84,92.6 26.46,92.6 26.46,99.21 19.84,99.21 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"33.07,92.53 39.75,92.53 39.69,99.21 33.07,99.21 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"39.62,92.6 46.3,92.6 46.23,99.21 39.62,99.21 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"52.91,92.6 59.53,92.6 59.53,99.21 52.91,99.21 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,92.6 72.82,92.6 72.76,99.28 66.14,99.28 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.69,92.6 79.37,92.6 79.3,99.21 72.69,99.21 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,92.53 99.21,92.53 99.21,99.28 92.6,99.28 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.44,92.6 119.06,92.6 119.06,99.28 112.44,99.28 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"138.9,92.53 145.51,92.53 145.51,99.21 138.9,99.21 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,99.15 72.76,99.15 72.76,105.89 66.14,105.89 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.37,99.21 85.98,99.21 85.98,105.83 79.37,105.83 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,99.15 99.21,99.15 99.21,105.83 92.6,105.83 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.44,99.15 119.06,99.15 119.06,105.83 112.44,105.83 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.28,99.21 138.9,99.21 138.9,105.83 132.28,105.83 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,105.76 72.76,105.76 72.76,112.44 66.14,112.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.98,105.83 92.6,105.83 92.6,112.44 85.98,112.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"99.21,105.83 105.83,105.83 105.83,112.44 99.21,112.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"119.06,105.83 125.74,105.83 125.67,112.51 119.06,112.51 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"125.6,105.83 132.28,105.83 132.22,112.44 125.6,112.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"138.9,105.83 145.58,105.83 145.51,112.44 138.9,112.44 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"145.45,105.83 152.13,105.83 152.06,112.51 145.45,112.51 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.76,112.44 79.44,112.44 79.37,119.12 72.76,119.12 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.3,112.44 85.98,112.44 85.92,119.12 79.3,119.12 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.44,112.44 119.12,112.44 119.06,119.06 112.44,119.06 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"118.99,112.37 125.67,112.37 125.6,119.12 118.99,119.12 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.28,112.44 138.9,112.44 138.9,119.12 132.28,119.12 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"145.51,112.37 152.13,112.37 152.13,119.06 145.51,119.06 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,119.06 72.82,119.06 72.76,125.74 66.14,125.74 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.69,118.99 79.44,118.99 79.3,125.74 72.69,125.74 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.3,118.99 86.05,118.99 85.92,125.67 79.3,125.67 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.92,119.06 92.6,119.06 92.53,125.74 85.92,125.74 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"99.21,119.06 105.83,119.06 105.83,125.74 99.21,125.74 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"119.06,118.99 125.74,118.99 125.67,125.67 119.06,125.67 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"125.6,119.06 132.35,119.06 132.22,125.74 125.6,125.74 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.22,118.99 138.9,118.99 138.83,125.74 132.22,125.74 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,125.6 72.82,125.6 72.76,132.35 66.14,132.35 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.69,125.6 79.37,125.6 79.3,132.35 72.69,132.35 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.98,125.6 92.66,125.6 92.6,132.28 85.98,132.28 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.53,125.67 99.28,125.67 99.15,132.35 92.53,132.35 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"99.15,125.6 105.89,125.6 105.76,132.28 99.15,132.28 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"105.76,125.67 112.51,125.67 112.37,132.35 105.76,132.35 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.37,125.67 119.06,125.67 118.99,132.35 112.37,132.35 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"125.67,125.6 132.35,125.6 132.28,132.35 125.67,132.35 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.22,125.6 138.9,125.6 138.83,132.35 132.22,132.35 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,132.22 72.82,132.22 72.76,138.96 66.14,138.96 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.69,132.22 79.37,132.22 79.3,138.9 72.69,138.9 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,132.22 99.21,132.22 99.21,138.96 92.6,138.96 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"105.83,132.22 112.51,132.22 112.44,138.96 105.83,138.96 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.37,132.22 119.06,132.22 118.99,138.96 112.37,138.96 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"125.67,132.22 132.35,132.22 132.28,138.9 125.67,138.9 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.22,132.22 138.9,132.22 138.83,138.96 132.22,138.96 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,138.83 72.76,138.83 72.76,145.58 66.14,145.58 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.37,138.9 86.05,138.9 85.98,145.58 79.37,145.58 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"85.92,138.9 92.66,138.9 92.53,145.51 85.92,145.51 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.53,138.83 99.28,138.83 99.15,145.58 92.53,145.58 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"99.15,138.9 105.89,138.9 105.76,145.51 99.15,145.51 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"105.76,138.83 112.51,138.83 112.37,145.51 105.76,145.51 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.37,138.83 119.12,138.83 118.99,145.58 112.37,145.58 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"118.99,138.9 125.67,138.9 125.6,145.51 118.99,145.51 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.28,138.83 138.96,138.83 138.9,145.58 132.28,145.58 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"138.83,138.9 145.51,138.9 145.45,145.51 138.83,145.51 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"66.14,145.45 72.82,145.45 72.76,152.13 66.14,152.13 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"72.69,145.51 79.44,145.51 79.3,152.13 72.69,152.13 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"79.3,145.45 85.98,145.45 85.92,152.13 79.3,152.13 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"92.6,145.45 99.21,145.45 99.21,152.13 92.6,152.13 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"112.44,145.45 119.06,145.45 119.06,152.13 112.44,152.13 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        <polygon points=\"132.28,145.45 138.9,145.45 138.9,152.13 132.28,152.13 \" style=\"fill:rgba(0,0,0,1);\" />\r\n        `,\r\n    },\r\n    {\r\n      value: 2,\r\n      innerHtml: `<rect\r\n      x=\"0\"\r\n      y=\"0\"\r\n      width=\"165.3543\"\r\n      height=\"165.3543\"\r\n      fill=\"red\"\r\n      style=\"fill:rgba(255,255,255,0);\"\r\n      shape-rendering=\"crispEdges\"\r\n    />\r\n    <pattern\r\n      id=\"glassc90e5498faaa405c98d9f9ff330814e1\"\r\n      x=\"13.22835\"\r\n      y=\"13.22835\"\r\n      width=\"138.8976\"\r\n      height=\"138.8976\"\r\n      patternUnits=\"userSpaceOnUse\"\r\n    >\r\n      <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"138.8976\" style=\"fill:rgb(68,152,176);fill-opacity:1;\" />\r\n      <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"69.44881\" style=\"fill:rgb(80,164,188);fill-opacity:1;\" />\r\n    </pattern>\r\n    <polygon\r\n      points=\"13.23,29.76 13.55,26.54 14.49,23.44 16.02,20.58 18.07,18.07 20.58,16.02 23.44,14.49 26.54,13.55 29.76,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,29.76 19.84,29.76 19.84,52.91 52.91,52.91 52.91,19.84 29.76,19.84 27.2,20.18 24.8,21.17 22.75,22.75 21.17,24.8 20.18,27.2 19.84,29.76 \"\r\n      style=\"fill:url(#glassc90e5498faaa405c98d9f9ff330814e1);\"\r\n    />\r\n    <polygon\r\n      points=\"13.23,122.36 13.23,105.83 59.53,105.83 59.53,152.13 29.76,152.13 26.54,151.81 23.44,150.87 20.58,149.34 18.07,147.28 16.02,144.78 14.49,141.92 13.55,138.82 13.23,135.59 13.23,122.36 19.84,122.36 19.84,135.59 20.18,138.16 21.17,140.55 22.75,142.61 24.8,144.18 27.2,145.17 29.76,145.51 52.91,145.51 52.91,112.44 19.84,112.44 19.84,122.36 \"\r\n      style=\"fill:url(#glassc90e5498faaa405c98d9f9ff330814e1);\"\r\n    />\r\n    <polygon\r\n      points=\"105.83,29.76 105.83,13.23 135.59,13.23 138.82,13.55 141.92,14.49 144.78,16.02 147.28,18.07 149.34,20.58 150.87,23.44 151.81,26.54 152.13,29.76 152.13,59.53 105.83,59.53 105.83,29.76 112.44,29.76 112.44,52.91 145.51,52.91 145.51,29.76 145.17,27.2 144.18,24.8 142.61,22.75 140.55,21.17 138.16,20.18 135.59,19.84 112.44,19.84 112.44,29.76 \"\r\n      style=\"fill:url(#glassc90e5498faaa405c98d9f9ff330814e1);\"\r\n    />\r\n    <linearGradient\r\n      id=\"gradient9942a6e9fa9d459eb5f1f9ab88391ebf\"\r\n      gradientUnits=\"userSpaceOnUse\"\r\n      x1=\"16.1676322453161\"\r\n      y1=\"44.2778655522009\"\r\n      x2=\"149.18668446611\"\r\n      y2=\"121.076451159225\"\r\n    >\r\n      <stop offset=\"0%\" stop-color=\"#039898\" />\r\n      <stop offset=\"100%\" stop-color=\"#2C6E9A\" />\r\n    </linearGradient>\r\n    <polygon\r\n      points=\"26.46,31.09 26.61,29.89 27.08,28.77 27.81,27.81 28.77,27.08 29.89,26.61 31.09,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n      style=\"fill:url(#gradient9942a6e9fa9d459eb5f1f9ab88391ebf);\"\r\n    />\r\n    <polygon\r\n      points=\"26.46,119.06 46.3,119.06 46.3,138.9 31.09,138.9 29.89,138.74 28.77,138.28 27.81,137.54 27.08,136.58 26.61,135.47 26.46,134.27 \"\r\n      style=\"fill:url(#gradient9942a6e9fa9d459eb5f1f9ab88391ebf);\"\r\n    />\r\n    <polygon\r\n      points=\"119.06,26.46 134.27,26.46 135.47,26.61 136.58,27.08 137.54,27.81 138.28,28.77 138.74,29.89 138.9,31.09 138.9,46.3 119.06,46.3 \"\r\n      style=\"fill:url(#gradient9942a6e9fa9d459eb5f1f9ab88391ebf);\"\r\n    />\r\n    <polygon points=\"79.37,16.54 82.68,13.23 85.98,16.54 82.68,19.84 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,16.54 89.29,13.23 92.6,16.54 89.29,19.84 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,16.54 95.91,13.23 99.21,16.54 95.91,19.84 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,23.15 69.45,19.84 72.76,23.15 69.45,26.46 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,23.15 76.06,19.84 79.37,23.15 76.06,26.46 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"79.37,23.15 82.68,19.84 85.98,23.15 82.68,26.46 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,23.15 95.91,19.84 99.21,23.15 95.91,26.46 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"79.37,29.76 82.68,26.46 85.98,29.76 82.68,33.07 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,29.76 89.29,26.46 92.6,29.76 89.29,33.07 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,29.76 95.91,26.46 99.21,29.76 95.91,33.07 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,36.38 69.45,33.07 72.76,36.38 69.45,39.69 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,36.38 76.06,33.07 79.37,36.38 76.06,39.69 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,36.38 95.91,33.07 99.21,36.38 95.91,39.69 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,42.99 76.06,39.69 79.37,42.99 76.06,46.3 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,42.99 95.91,39.69 99.21,42.99 95.91,46.3 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,49.61 69.45,46.3 72.76,49.61 69.45,52.91 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,49.61 89.29,46.3 92.6,49.61 89.29,52.91 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,56.22 69.45,52.91 72.76,56.22 69.45,59.53 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"79.37,56.22 82.68,52.91 85.98,56.22 82.68,59.53 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,56.22 95.91,52.91 99.21,56.22 95.91,59.53 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,62.83 76.06,59.53 79.37,62.83 76.06,66.14 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"13.23,69.45 16.54,66.14 19.84,69.45 16.54,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"19.84,69.45 23.15,66.14 26.46,69.45 23.15,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"26.46,69.45 29.76,66.14 33.07,69.45 29.76,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"33.07,69.45 36.38,66.14 39.69,69.45 36.38,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"39.69,69.45 42.99,66.14 46.3,69.45 42.99,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"52.91,69.45 56.22,66.14 59.53,69.45 56.22,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"59.53,69.45 62.83,66.14 66.14,69.45 62.83,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,69.45 69.45,66.14 72.76,69.45 69.45,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,69.45 89.29,66.14 92.6,69.45 89.29,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"99.21,69.45 102.52,66.14 105.83,69.45 102.52,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,69.45 115.75,66.14 119.06,69.45 115.75,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"125.67,69.45 128.98,66.14 132.28,69.45 128.98,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"138.9,69.45 142.2,66.14 145.51,69.45 142.2,72.76 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"13.23,76.06 16.54,72.76 19.84,76.06 16.54,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"19.84,76.06 23.15,72.76 26.46,76.06 23.15,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"26.46,76.06 29.76,72.76 33.07,76.06 29.76,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"46.3,76.06 49.61,72.76 52.91,76.06 49.61,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"59.53,76.06 62.83,72.76 66.14,76.06 62.83,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,76.06 76.06,72.76 79.37,76.06 76.06,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,76.06 89.29,72.76 92.6,76.06 89.29,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,76.06 95.91,72.76 99.21,76.06 95.91,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"99.21,76.06 102.52,72.76 105.83,76.06 102.52,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"105.83,76.06 109.13,72.76 112.44,76.06 109.13,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"125.67,76.06 128.98,72.76 132.28,76.06 128.98,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,76.06 135.59,72.76 138.9,76.06 135.59,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"138.9,76.06 142.2,72.76 145.51,76.06 142.2,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"145.51,76.06 148.82,72.76 152.13,76.06 148.82,79.37 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"26.46,82.68 29.76,79.37 33.07,82.68 29.76,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"39.69,82.68 42.99,79.37 46.3,82.68 42.99,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"46.3,82.68 49.61,79.37 52.91,82.68 49.61,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"52.91,82.68 56.22,79.37 59.53,82.68 56.22,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,82.68 69.45,79.37 72.76,82.68 69.45,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,82.68 76.06,79.37 79.37,82.68 76.06,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,82.68 95.91,79.37 99.21,82.68 95.91,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"105.83,82.68 109.13,79.37 112.44,82.68 109.13,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,82.68 115.75,79.37 119.06,82.68 115.75,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"125.67,82.68 128.98,79.37 132.28,82.68 128.98,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"145.51,82.68 148.82,79.37 152.13,82.68 148.82,85.98 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"13.23,89.29 16.54,85.98 19.84,89.29 16.54,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"33.07,89.29 36.38,85.98 39.69,89.29 36.38,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,89.29 89.29,85.98 92.6,89.29 89.29,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,89.29 95.91,85.98 99.21,89.29 95.91,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"99.21,89.29 102.52,85.98 105.83,89.29 102.52,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"105.83,89.29 109.13,85.98 112.44,89.29 109.13,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,89.29 135.59,85.98 138.9,89.29 135.59,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"138.9,89.29 142.2,85.98 145.51,89.29 142.2,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"145.51,89.29 148.82,85.98 152.13,89.29 148.82,92.6 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"19.84,95.91 23.15,92.6 26.46,95.91 23.15,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"33.07,95.91 36.38,92.6 39.69,95.91 36.38,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"39.69,95.91 42.99,92.6 46.3,95.91 42.99,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"52.91,95.91 56.22,92.6 59.53,95.91 56.22,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,95.91 69.45,92.6 72.76,95.91 69.45,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,95.91 76.06,92.6 79.37,95.91 76.06,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,95.91 95.91,92.6 99.21,95.91 95.91,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,95.91 115.75,92.6 119.06,95.91 115.75,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"138.9,95.91 142.2,92.6 145.51,95.91 142.2,99.21 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,102.52 69.45,99.21 72.76,102.52 69.45,105.83 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"79.37,102.52 82.68,99.21 85.98,102.52 82.68,105.83 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,102.52 95.91,99.21 99.21,102.52 95.91,105.83 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,102.52 115.75,99.21 119.06,102.52 115.75,105.83 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,102.52 135.59,99.21 138.9,102.52 135.59,105.83 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,109.13 69.45,105.83 72.76,109.13 69.45,112.44 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,109.13 89.29,105.83 92.6,109.13 89.29,112.44 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"99.21,109.13 102.52,105.83 105.83,109.13 102.52,112.44 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"119.06,109.13 122.36,105.83 125.67,109.13 122.36,112.44 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"125.67,109.13 128.98,105.83 132.28,109.13 128.98,112.44 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"138.9,109.13 142.2,105.83 145.51,109.13 142.2,112.44 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"145.51,109.13 148.82,105.83 152.13,109.13 148.82,112.44 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,115.75 76.06,112.44 79.37,115.75 76.06,119.06 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"79.37,115.75 82.68,112.44 85.98,115.75 82.68,119.06 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,115.75 115.75,112.44 119.06,115.75 115.75,119.06 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"119.06,115.75 122.36,112.44 125.67,115.75 122.36,119.06 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,115.75 135.59,112.44 138.9,115.75 135.59,119.06 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"145.51,115.75 148.82,112.44 152.13,115.75 148.82,119.06 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,122.36 69.45,119.06 72.76,122.36 69.45,125.67 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,122.36 76.06,119.06 79.37,122.36 76.06,125.67 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"79.37,122.36 82.68,119.06 85.98,122.36 82.68,125.67 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,122.36 89.29,119.06 92.6,122.36 89.29,125.67 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"99.21,122.36 102.52,119.06 105.83,122.36 102.52,125.67 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"119.06,122.36 122.36,119.06 125.67,122.36 122.36,125.67 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"125.67,122.36 128.98,119.06 132.28,122.36 128.98,125.67 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,122.36 135.59,119.06 138.9,122.36 135.59,125.67 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,128.98 69.45,125.67 72.76,128.98 69.45,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,128.98 76.06,125.67 79.37,128.98 76.06,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,128.98 89.29,125.67 92.6,128.98 89.29,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,128.98 95.91,125.67 99.21,128.98 95.91,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"99.21,128.98 102.52,125.67 105.83,128.98 102.52,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"105.83,128.98 109.13,125.67 112.44,128.98 109.13,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,128.98 115.75,125.67 119.06,128.98 115.75,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"125.67,128.98 128.98,125.67 132.28,128.98 128.98,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,128.98 135.59,125.67 138.9,128.98 135.59,132.28 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,135.59 69.45,132.28 72.76,135.59 69.45,138.9 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,135.59 76.06,132.28 79.37,135.59 76.06,138.9 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,135.59 95.91,132.28 99.21,135.59 95.91,138.9 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"105.83,135.59 109.13,132.28 112.44,135.59 109.13,138.9 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,135.59 115.75,132.28 119.06,135.59 115.75,138.9 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"125.67,135.59 128.98,132.28 132.28,135.59 128.98,138.9 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,135.59 135.59,132.28 138.9,135.59 135.59,138.9 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,142.2 69.45,138.9 72.76,142.2 69.45,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"79.37,142.2 82.68,138.9 85.98,142.2 82.68,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"85.98,142.2 89.29,138.9 92.6,142.2 89.29,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,142.2 95.91,138.9 99.21,142.2 95.91,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"99.21,142.2 102.52,138.9 105.83,142.2 102.52,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"105.83,142.2 109.13,138.9 112.44,142.2 109.13,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,142.2 115.75,138.9 119.06,142.2 115.75,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"119.06,142.2 122.36,138.9 125.67,142.2 122.36,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,142.2 135.59,138.9 138.9,142.2 135.59,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"138.9,142.2 142.2,138.9 145.51,142.2 142.2,145.51 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"66.14,148.82 69.45,145.51 72.76,148.82 69.45,152.13 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"72.76,148.82 76.06,145.51 79.37,148.82 76.06,152.13 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"79.37,148.82 82.68,145.51 85.98,148.82 82.68,152.13 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"92.6,148.82 95.91,145.51 99.21,148.82 95.91,152.13 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"112.44,148.82 115.75,145.51 119.06,148.82 115.75,152.13 \" style=\"fill:rgba(96,75,117,1);\" />\r\n    <polygon points=\"132.28,148.82 135.59,145.51 138.9,148.82 135.59,152.13 \" style=\"fill:rgba(96,75,117,1);\" />\r\n      `,\r\n    },\r\n    {\r\n      value: 3,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(255,255,255,0);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <pattern\r\n            id=\"glass24c3381e8d144e708cc01571cde7c032\"\r\n            x=\"13.22835\"\r\n            y=\"13.22835\"\r\n            width=\"138.8976\"\r\n            height=\"138.8976\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"138.8976\" style=\"fill:rgb(57,94,133);fill-opacity:1;\" />\r\n            <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"69.44881\" style=\"fill:rgb(69,106,145);fill-opacity:1;\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"59.53,36.38 59.08,40.89 57.77,45.24 55.63,49.24 52.75,52.75 49.24,55.63 45.24,57.77 40.89,59.08 36.38,59.53 31.86,59.08 27.52,57.77 23.52,55.63 20.01,52.75 17.13,49.24 14.99,45.24 13.67,40.89 13.23,36.38 13.67,31.86 14.99,27.52 17.13,23.52 20.01,20.01 23.52,17.13 27.52,14.99 31.86,13.67 36.38,13.23 40.89,13.67 45.24,14.99 49.24,17.13 52.75,20.01 55.63,23.52 57.77,27.52 59.08,31.86 59.53,36.38 52.91,36.38 52.6,33.15 51.65,30.05 50.13,27.19 48.07,24.69 45.56,22.63 42.71,21.1 39.6,20.16 36.38,19.84 33.15,20.16 30.05,21.1 27.19,22.63 24.69,24.69 22.63,27.19 21.1,30.05 20.16,33.15 19.84,36.38 20.16,39.6 21.1,42.71 22.63,45.56 24.69,48.07 27.19,50.13 30.05,51.65 33.15,52.6 36.38,52.91 39.6,52.6 42.71,51.65 45.56,50.13 48.07,48.07 50.13,45.56 51.65,42.71 52.6,39.6 52.91,36.38 \"\r\n            style=\"fill:url(#glass24c3381e8d144e708cc01571cde7c032);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,128.98 59.08,133.49 57.77,137.84 55.63,141.84 52.75,145.35 49.24,148.22 45.24,150.36 40.89,151.68 36.38,152.13 31.86,151.68 27.52,150.36 23.52,148.22 20.01,145.35 17.13,141.84 14.99,137.84 13.67,133.49 13.23,128.98 13.67,124.46 14.99,120.12 17.13,116.12 20.01,112.61 23.52,109.73 27.52,107.59 31.86,106.27 36.38,105.83 40.89,106.27 45.24,107.59 49.24,109.73 52.75,112.61 55.63,116.12 57.77,120.12 59.08,124.46 59.53,128.98 52.91,128.98 52.6,125.75 51.65,122.65 50.13,119.79 48.07,117.28 45.56,115.23 42.71,113.7 39.6,112.76 36.38,112.44 33.15,112.76 30.05,113.7 27.19,115.23 24.69,117.28 22.63,119.79 21.1,122.65 20.16,125.75 19.84,128.98 20.16,132.2 21.1,135.3 22.63,138.16 24.69,140.67 27.19,142.73 30.05,144.25 33.15,145.19 36.38,145.51 39.6,145.19 42.71,144.25 45.56,142.73 48.07,140.67 50.13,138.16 51.65,135.3 52.6,132.2 52.91,128.98 \"\r\n            style=\"fill:url(#glass24c3381e8d144e708cc01571cde7c032);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,36.38 151.68,40.89 150.36,45.24 148.22,49.24 145.35,52.75 141.84,55.63 137.84,57.77 133.49,59.08 128.98,59.53 124.46,59.08 120.12,57.77 116.12,55.63 112.61,52.75 109.73,49.24 107.59,45.24 106.27,40.89 105.83,36.38 106.27,31.86 107.59,27.52 109.73,23.52 112.61,20.01 116.12,17.13 120.12,14.99 124.46,13.67 128.98,13.23 133.49,13.67 137.84,14.99 141.84,17.13 145.35,20.01 148.22,23.52 150.36,27.52 151.68,31.86 152.13,36.38 145.51,36.38 145.19,33.15 144.25,30.05 142.73,27.19 140.67,24.69 138.16,22.63 135.3,21.1 132.2,20.16 128.98,19.84 125.75,20.16 122.65,21.1 119.79,22.63 117.28,24.69 115.23,27.19 113.7,30.05 112.76,33.15 112.44,36.38 112.76,39.6 113.7,42.71 115.23,45.56 117.28,48.07 119.79,50.13 122.65,51.65 125.75,52.6 128.98,52.91 132.2,52.6 135.3,51.65 138.16,50.13 140.67,48.07 142.73,45.56 144.25,42.71 145.19,39.6 145.51,36.38 \"\r\n            style=\"fill:url(#glass24c3381e8d144e708cc01571cde7c032);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientace97d5e2e9b44daa7466b1acf42cbdc\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"22.0024585616932\"\r\n            y1=\"77.3688099608975\"\r\n            x2=\"143.351858149733\"\r\n            y2=\"87.9855067505283\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#647335\" />\r\n            <stop offset=\"50%\" stop-color=\"#89496A\" />\r\n            <stop offset=\"100%\" stop-color=\"#647335\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"46.3,36.38 46.11,38.31 45.54,40.17 44.63,41.89 43.39,43.39 41.89,44.63 40.17,45.54 38.31,46.11 36.38,46.3 34.44,46.11 32.58,45.54 30.87,44.63 29.36,43.39 28.13,41.89 27.21,40.17 26.65,38.31 26.46,36.38 26.65,34.44 27.21,32.58 28.13,30.87 29.36,29.36 30.87,28.13 32.58,27.21 34.44,26.65 36.38,26.46 38.31,26.65 40.17,27.21 41.89,28.13 43.39,29.36 44.63,30.87 45.54,32.58 46.11,34.44 46.3,36.38 \"\r\n            style=\"fill:url(#gradientace97d5e2e9b44daa7466b1acf42cbdc);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,128.98 46.11,130.91 45.54,132.77 44.63,134.49 43.39,135.99 41.89,137.23 40.17,138.14 38.31,138.71 36.38,138.9 34.44,138.71 32.58,138.14 30.87,137.23 29.36,135.99 28.13,134.49 27.21,132.77 26.65,130.91 26.46,128.98 26.65,127.04 27.21,125.18 28.13,123.46 29.36,121.96 30.87,120.73 32.58,119.81 34.44,119.25 36.38,119.06 38.31,119.25 40.17,119.81 41.89,120.73 43.39,121.96 44.63,123.46 45.54,125.18 46.11,127.04 46.3,128.98 \"\r\n            style=\"fill:url(#gradientace97d5e2e9b44daa7466b1acf42cbdc);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,36.38 138.71,38.31 138.14,40.17 137.23,41.89 135.99,43.39 134.49,44.63 132.77,45.54 130.91,46.11 128.98,46.3 127.04,46.11 125.18,45.54 123.46,44.63 121.96,43.39 120.73,41.89 119.81,40.17 119.25,38.31 119.06,36.38 119.25,34.44 119.81,32.58 120.73,30.87 121.96,29.36 123.46,28.13 125.18,27.21 127.04,26.65 128.98,26.46 130.91,26.65 132.77,27.21 134.49,28.13 135.99,29.36 137.23,30.87 138.14,32.58 138.71,34.44 138.9,36.38 \"\r\n            style=\"fill:url(#gradientace97d5e2e9b44daa7466b1acf42cbdc);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,16.54 85.73,17.8 85.02,18.87 83.94,19.59 82.68,19.84 81.41,19.59 80.34,18.87 79.62,17.8 79.37,16.54 79.62,15.27 80.34,14.2 81.41,13.48 82.68,13.23 83.94,13.48 85.02,14.2 85.73,15.27 85.98,16.54 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,16.54 92.35,17.8 91.63,18.87 90.56,19.59 89.29,19.84 88.03,19.59 86.95,18.87 86.24,17.8 85.98,16.54 86.24,15.27 86.95,14.2 88.03,13.48 89.29,13.23 90.56,13.48 91.63,14.2 92.35,15.27 92.6,16.54 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,16.54 98.96,17.8 98.24,18.87 97.17,19.59 95.91,19.84 94.64,19.59 93.57,18.87 92.85,17.8 92.6,16.54 92.85,15.27 93.57,14.2 94.64,13.48 95.91,13.23 97.17,13.48 98.24,14.2 98.96,15.27 99.21,16.54 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,23.15 72.5,24.42 71.79,25.49 70.71,26.2 69.45,26.46 68.18,26.2 67.11,25.49 66.39,24.42 66.14,23.15 66.39,21.88 67.11,20.81 68.18,20.09 69.45,19.84 70.71,20.09 71.79,20.81 72.5,21.88 72.76,23.15 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,23.15 79.12,24.42 78.4,25.49 77.33,26.2 76.06,26.46 74.8,26.2 73.72,25.49 73.01,24.42 72.76,23.15 73.01,21.88 73.72,20.81 74.8,20.09 76.06,19.84 77.33,20.09 78.4,20.81 79.12,21.88 79.37,23.15 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,23.15 85.73,24.42 85.02,25.49 83.94,26.2 82.68,26.46 81.41,26.2 80.34,25.49 79.62,24.42 79.37,23.15 79.62,21.88 80.34,20.81 81.41,20.09 82.68,19.84 83.94,20.09 85.02,20.81 85.73,21.88 85.98,23.15 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,23.15 98.96,24.42 98.24,25.49 97.17,26.2 95.91,26.46 94.64,26.2 93.57,25.49 92.85,24.42 92.6,23.15 92.85,21.88 93.57,20.81 94.64,20.09 95.91,19.84 97.17,20.09 98.24,20.81 98.96,21.88 99.21,23.15 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,29.76 85.73,31.03 85.02,32.1 83.94,32.82 82.68,33.07 81.41,32.82 80.34,32.1 79.62,31.03 79.37,29.76 79.62,28.5 80.34,27.43 81.41,26.71 82.68,26.46 83.94,26.71 85.02,27.43 85.73,28.5 85.98,29.76 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,29.76 92.35,31.03 91.63,32.1 90.56,32.82 89.29,33.07 88.03,32.82 86.95,32.1 86.24,31.03 85.98,29.76 86.24,28.5 86.95,27.43 88.03,26.71 89.29,26.46 90.56,26.71 91.63,27.43 92.35,28.5 92.6,29.76 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,29.76 98.96,31.03 98.24,32.1 97.17,32.82 95.91,33.07 94.64,32.82 93.57,32.1 92.85,31.03 92.6,29.76 92.85,28.5 93.57,27.43 94.64,26.71 95.91,26.46 97.17,26.71 98.24,27.43 98.96,28.5 99.21,29.76 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,36.38 72.5,37.64 71.79,38.72 70.71,39.43 69.45,39.69 68.18,39.43 67.11,38.72 66.39,37.64 66.14,36.38 66.39,35.11 67.11,34.04 68.18,33.32 69.45,33.07 70.71,33.32 71.79,34.04 72.5,35.11 72.76,36.38 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,36.38 79.12,37.64 78.4,38.72 77.33,39.43 76.06,39.69 74.8,39.43 73.72,38.72 73.01,37.64 72.76,36.38 73.01,35.11 73.72,34.04 74.8,33.32 76.06,33.07 77.33,33.32 78.4,34.04 79.12,35.11 79.37,36.38 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,36.38 98.96,37.64 98.24,38.72 97.17,39.43 95.91,39.69 94.64,39.43 93.57,38.72 92.85,37.64 92.6,36.38 92.85,35.11 93.57,34.04 94.64,33.32 95.91,33.07 97.17,33.32 98.24,34.04 98.96,35.11 99.21,36.38 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,42.99 79.12,44.26 78.4,45.33 77.33,46.05 76.06,46.3 74.8,46.05 73.72,45.33 73.01,44.26 72.76,42.99 73.01,41.73 73.72,40.65 74.8,39.94 76.06,39.69 77.33,39.94 78.4,40.65 79.12,41.73 79.37,42.99 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,42.99 98.96,44.26 98.24,45.33 97.17,46.05 95.91,46.3 94.64,46.05 93.57,45.33 92.85,44.26 92.6,42.99 92.85,41.73 93.57,40.65 94.64,39.94 95.91,39.69 97.17,39.94 98.24,40.65 98.96,41.73 99.21,42.99 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,49.61 72.5,50.87 71.79,51.94 70.71,52.66 69.45,52.91 68.18,52.66 67.11,51.94 66.39,50.87 66.14,49.61 66.39,48.34 67.11,47.27 68.18,46.55 69.45,46.3 70.71,46.55 71.79,47.27 72.5,48.34 72.76,49.61 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,49.61 92.35,50.87 91.63,51.94 90.56,52.66 89.29,52.91 88.03,52.66 86.95,51.94 86.24,50.87 85.98,49.61 86.24,48.34 86.95,47.27 88.03,46.55 89.29,46.3 90.56,46.55 91.63,47.27 92.35,48.34 92.6,49.61 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,56.22 72.5,57.49 71.79,58.56 70.71,59.28 69.45,59.53 68.18,59.28 67.11,58.56 66.39,57.49 66.14,56.22 66.39,54.95 67.11,53.88 68.18,53.17 69.45,52.91 70.71,53.17 71.79,53.88 72.5,54.95 72.76,56.22 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,56.22 85.73,57.49 85.02,58.56 83.94,59.28 82.68,59.53 81.41,59.28 80.34,58.56 79.62,57.49 79.37,56.22 79.62,54.95 80.34,53.88 81.41,53.17 82.68,52.91 83.94,53.17 85.02,53.88 85.73,54.95 85.98,56.22 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,56.22 98.96,57.49 98.24,58.56 97.17,59.28 95.91,59.53 94.64,59.28 93.57,58.56 92.85,57.49 92.6,56.22 92.85,54.95 93.57,53.88 94.64,53.17 95.91,52.91 97.17,53.17 98.24,53.88 98.96,54.95 99.21,56.22 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,62.83 79.12,64.1 78.4,65.17 77.33,65.89 76.06,66.14 74.8,65.89 73.72,65.17 73.01,64.1 72.76,62.83 73.01,61.57 73.72,60.5 74.8,59.78 76.06,59.53 77.33,59.78 78.4,60.5 79.12,61.57 79.37,62.83 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,69.45 19.59,70.71 18.87,71.79 17.8,72.5 16.54,72.76 15.27,72.5 14.2,71.79 13.48,70.71 13.23,69.45 13.48,68.18 14.2,67.11 15.27,66.39 16.54,66.14 17.8,66.39 18.87,67.11 19.59,68.18 19.84,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,69.45 26.2,70.71 25.49,71.79 24.42,72.5 23.15,72.76 21.88,72.5 20.81,71.79 20.09,70.71 19.84,69.45 20.09,68.18 20.81,67.11 21.88,66.39 23.15,66.14 24.42,66.39 25.49,67.11 26.2,68.18 26.46,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,69.45 32.82,70.71 32.1,71.79 31.03,72.5 29.76,72.76 28.5,72.5 27.43,71.79 26.71,70.71 26.46,69.45 26.71,68.18 27.43,67.11 28.5,66.39 29.76,66.14 31.03,66.39 32.1,67.11 32.82,68.18 33.07,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,69.45 39.43,70.71 38.72,71.79 37.64,72.5 36.38,72.76 35.11,72.5 34.04,71.79 33.32,70.71 33.07,69.45 33.32,68.18 34.04,67.11 35.11,66.39 36.38,66.14 37.64,66.39 38.72,67.11 39.43,68.18 39.69,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,69.45 46.05,70.71 45.33,71.79 44.26,72.5 42.99,72.76 41.73,72.5 40.65,71.79 39.94,70.71 39.69,69.45 39.94,68.18 40.65,67.11 41.73,66.39 42.99,66.14 44.26,66.39 45.33,67.11 46.05,68.18 46.3,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,69.45 59.28,70.71 58.56,71.79 57.49,72.5 56.22,72.76 54.95,72.5 53.88,71.79 53.17,70.71 52.91,69.45 53.17,68.18 53.88,67.11 54.95,66.39 56.22,66.14 57.49,66.39 58.56,67.11 59.28,68.18 59.53,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,69.45 65.89,70.71 65.17,71.79 64.1,72.5 62.83,72.76 61.57,72.5 60.5,71.79 59.78,70.71 59.53,69.45 59.78,68.18 60.5,67.11 61.57,66.39 62.83,66.14 64.1,66.39 65.17,67.11 65.89,68.18 66.14,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,69.45 72.5,70.71 71.79,71.79 70.71,72.5 69.45,72.76 68.18,72.5 67.11,71.79 66.39,70.71 66.14,69.45 66.39,68.18 67.11,67.11 68.18,66.39 69.45,66.14 70.71,66.39 71.79,67.11 72.5,68.18 72.76,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,69.45 92.35,70.71 91.63,71.79 90.56,72.5 89.29,72.76 88.03,72.5 86.95,71.79 86.24,70.71 85.98,69.45 86.24,68.18 86.95,67.11 88.03,66.39 89.29,66.14 90.56,66.39 91.63,67.11 92.35,68.18 92.6,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,69.45 105.58,70.71 104.86,71.79 103.79,72.5 102.52,72.76 101.25,72.5 100.18,71.79 99.46,70.71 99.21,69.45 99.46,68.18 100.18,67.11 101.25,66.39 102.52,66.14 103.79,66.39 104.86,67.11 105.58,68.18 105.83,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,69.45 118.8,70.71 118.09,71.79 117.01,72.5 115.75,72.76 114.48,72.5 113.41,71.79 112.69,70.71 112.44,69.45 112.69,68.18 113.41,67.11 114.48,66.39 115.75,66.14 117.01,66.39 118.09,67.11 118.8,68.18 119.06,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,69.45 132.03,70.71 131.31,71.79 130.24,72.5 128.98,72.76 127.71,72.5 126.64,71.79 125.92,70.71 125.67,69.45 125.92,68.18 126.64,67.11 127.71,66.39 128.98,66.14 130.24,66.39 131.31,67.11 132.03,68.18 132.28,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,69.45 145.26,70.71 144.54,71.79 143.47,72.5 142.2,72.76 140.94,72.5 139.87,71.79 139.15,70.71 138.9,69.45 139.15,68.18 139.87,67.11 140.94,66.39 142.2,66.14 143.47,66.39 144.54,67.11 145.26,68.18 145.51,69.45 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,76.06 19.59,77.33 18.87,78.4 17.8,79.12 16.54,79.37 15.27,79.12 14.2,78.4 13.48,77.33 13.23,76.06 13.48,74.8 14.2,73.72 15.27,73.01 16.54,72.76 17.8,73.01 18.87,73.72 19.59,74.8 19.84,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,76.06 26.2,77.33 25.49,78.4 24.42,79.12 23.15,79.37 21.88,79.12 20.81,78.4 20.09,77.33 19.84,76.06 20.09,74.8 20.81,73.72 21.88,73.01 23.15,72.76 24.42,73.01 25.49,73.72 26.2,74.8 26.46,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,76.06 32.82,77.33 32.1,78.4 31.03,79.12 29.76,79.37 28.5,79.12 27.43,78.4 26.71,77.33 26.46,76.06 26.71,74.8 27.43,73.72 28.5,73.01 29.76,72.76 31.03,73.01 32.1,73.72 32.82,74.8 33.07,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,76.06 52.66,77.33 51.94,78.4 50.87,79.12 49.61,79.37 48.34,79.12 47.27,78.4 46.55,77.33 46.3,76.06 46.55,74.8 47.27,73.72 48.34,73.01 49.61,72.76 50.87,73.01 51.94,73.72 52.66,74.8 52.91,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,76.06 65.89,77.33 65.17,78.4 64.1,79.12 62.83,79.37 61.57,79.12 60.5,78.4 59.78,77.33 59.53,76.06 59.78,74.8 60.5,73.72 61.57,73.01 62.83,72.76 64.1,73.01 65.17,73.72 65.89,74.8 66.14,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,76.06 79.12,77.33 78.4,78.4 77.33,79.12 76.06,79.37 74.8,79.12 73.72,78.4 73.01,77.33 72.76,76.06 73.01,74.8 73.72,73.72 74.8,73.01 76.06,72.76 77.33,73.01 78.4,73.72 79.12,74.8 79.37,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,76.06 92.35,77.33 91.63,78.4 90.56,79.12 89.29,79.37 88.03,79.12 86.95,78.4 86.24,77.33 85.98,76.06 86.24,74.8 86.95,73.72 88.03,73.01 89.29,72.76 90.56,73.01 91.63,73.72 92.35,74.8 92.6,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,76.06 98.96,77.33 98.24,78.4 97.17,79.12 95.91,79.37 94.64,79.12 93.57,78.4 92.85,77.33 92.6,76.06 92.85,74.8 93.57,73.72 94.64,73.01 95.91,72.76 97.17,73.01 98.24,73.72 98.96,74.8 99.21,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,76.06 105.58,77.33 104.86,78.4 103.79,79.12 102.52,79.37 101.25,79.12 100.18,78.4 99.46,77.33 99.21,76.06 99.46,74.8 100.18,73.72 101.25,73.01 102.52,72.76 103.79,73.01 104.86,73.72 105.58,74.8 105.83,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,76.06 112.19,77.33 111.47,78.4 110.4,79.12 109.13,79.37 107.87,79.12 106.8,78.4 106.08,77.33 105.83,76.06 106.08,74.8 106.8,73.72 107.87,73.01 109.13,72.76 110.4,73.01 111.47,73.72 112.19,74.8 112.44,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,76.06 132.03,77.33 131.31,78.4 130.24,79.12 128.98,79.37 127.71,79.12 126.64,78.4 125.92,77.33 125.67,76.06 125.92,74.8 126.64,73.72 127.71,73.01 128.98,72.76 130.24,73.01 131.31,73.72 132.03,74.8 132.28,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,76.06 138.65,77.33 137.93,78.4 136.86,79.12 135.59,79.37 134.32,79.12 133.25,78.4 132.54,77.33 132.28,76.06 132.54,74.8 133.25,73.72 134.32,73.01 135.59,72.76 136.86,73.01 137.93,73.72 138.65,74.8 138.9,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,76.06 145.26,77.33 144.54,78.4 143.47,79.12 142.2,79.37 140.94,79.12 139.87,78.4 139.15,77.33 138.9,76.06 139.15,74.8 139.87,73.72 140.94,73.01 142.2,72.76 143.47,73.01 144.54,73.72 145.26,74.8 145.51,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,76.06 151.87,77.33 151.16,78.4 150.08,79.12 148.82,79.37 147.55,79.12 146.48,78.4 145.76,77.33 145.51,76.06 145.76,74.8 146.48,73.72 147.55,73.01 148.82,72.76 150.08,73.01 151.16,73.72 151.87,74.8 152.13,76.06 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,82.68 32.82,83.94 32.1,85.02 31.03,85.73 29.76,85.98 28.5,85.73 27.43,85.02 26.71,83.94 26.46,82.68 26.71,81.41 27.43,80.34 28.5,79.62 29.76,79.37 31.03,79.62 32.1,80.34 32.82,81.41 33.07,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,82.68 46.05,83.94 45.33,85.02 44.26,85.73 42.99,85.98 41.73,85.73 40.65,85.02 39.94,83.94 39.69,82.68 39.94,81.41 40.65,80.34 41.73,79.62 42.99,79.37 44.26,79.62 45.33,80.34 46.05,81.41 46.3,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,82.68 52.66,83.94 51.94,85.02 50.87,85.73 49.61,85.98 48.34,85.73 47.27,85.02 46.55,83.94 46.3,82.68 46.55,81.41 47.27,80.34 48.34,79.62 49.61,79.37 50.87,79.62 51.94,80.34 52.66,81.41 52.91,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,82.68 59.28,83.94 58.56,85.02 57.49,85.73 56.22,85.98 54.95,85.73 53.88,85.02 53.17,83.94 52.91,82.68 53.17,81.41 53.88,80.34 54.95,79.62 56.22,79.37 57.49,79.62 58.56,80.34 59.28,81.41 59.53,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,82.68 72.5,83.94 71.79,85.02 70.71,85.73 69.45,85.98 68.18,85.73 67.11,85.02 66.39,83.94 66.14,82.68 66.39,81.41 67.11,80.34 68.18,79.62 69.45,79.37 70.71,79.62 71.79,80.34 72.5,81.41 72.76,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,82.68 79.12,83.94 78.4,85.02 77.33,85.73 76.06,85.98 74.8,85.73 73.72,85.02 73.01,83.94 72.76,82.68 73.01,81.41 73.72,80.34 74.8,79.62 76.06,79.37 77.33,79.62 78.4,80.34 79.12,81.41 79.37,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,82.68 98.96,83.94 98.24,85.02 97.17,85.73 95.91,85.98 94.64,85.73 93.57,85.02 92.85,83.94 92.6,82.68 92.85,81.41 93.57,80.34 94.64,79.62 95.91,79.37 97.17,79.62 98.24,80.34 98.96,81.41 99.21,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,82.68 112.19,83.94 111.47,85.02 110.4,85.73 109.13,85.98 107.87,85.73 106.8,85.02 106.08,83.94 105.83,82.68 106.08,81.41 106.8,80.34 107.87,79.62 109.13,79.37 110.4,79.62 111.47,80.34 112.19,81.41 112.44,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,82.68 118.8,83.94 118.09,85.02 117.01,85.73 115.75,85.98 114.48,85.73 113.41,85.02 112.69,83.94 112.44,82.68 112.69,81.41 113.41,80.34 114.48,79.62 115.75,79.37 117.01,79.62 118.09,80.34 118.8,81.41 119.06,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,82.68 132.03,83.94 131.31,85.02 130.24,85.73 128.98,85.98 127.71,85.73 126.64,85.02 125.92,83.94 125.67,82.68 125.92,81.41 126.64,80.34 127.71,79.62 128.98,79.37 130.24,79.62 131.31,80.34 132.03,81.41 132.28,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,82.68 151.87,83.94 151.16,85.02 150.08,85.73 148.82,85.98 147.55,85.73 146.48,85.02 145.76,83.94 145.51,82.68 145.76,81.41 146.48,80.34 147.55,79.62 148.82,79.37 150.08,79.62 151.16,80.34 151.87,81.41 152.13,82.68 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,89.29 19.59,90.56 18.87,91.63 17.8,92.35 16.54,92.6 15.27,92.35 14.2,91.63 13.48,90.56 13.23,89.29 13.48,88.03 14.2,86.95 15.27,86.24 16.54,85.98 17.8,86.24 18.87,86.95 19.59,88.03 19.84,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,89.29 39.43,90.56 38.72,91.63 37.64,92.35 36.38,92.6 35.11,92.35 34.04,91.63 33.32,90.56 33.07,89.29 33.32,88.03 34.04,86.95 35.11,86.24 36.38,85.98 37.64,86.24 38.72,86.95 39.43,88.03 39.69,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,89.29 92.35,90.56 91.63,91.63 90.56,92.35 89.29,92.6 88.03,92.35 86.95,91.63 86.24,90.56 85.98,89.29 86.24,88.03 86.95,86.95 88.03,86.24 89.29,85.98 90.56,86.24 91.63,86.95 92.35,88.03 92.6,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,89.29 98.96,90.56 98.24,91.63 97.17,92.35 95.91,92.6 94.64,92.35 93.57,91.63 92.85,90.56 92.6,89.29 92.85,88.03 93.57,86.95 94.64,86.24 95.91,85.98 97.17,86.24 98.24,86.95 98.96,88.03 99.21,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,89.29 105.58,90.56 104.86,91.63 103.79,92.35 102.52,92.6 101.25,92.35 100.18,91.63 99.46,90.56 99.21,89.29 99.46,88.03 100.18,86.95 101.25,86.24 102.52,85.98 103.79,86.24 104.86,86.95 105.58,88.03 105.83,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,89.29 112.19,90.56 111.47,91.63 110.4,92.35 109.13,92.6 107.87,92.35 106.8,91.63 106.08,90.56 105.83,89.29 106.08,88.03 106.8,86.95 107.87,86.24 109.13,85.98 110.4,86.24 111.47,86.95 112.19,88.03 112.44,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,89.29 138.65,90.56 137.93,91.63 136.86,92.35 135.59,92.6 134.32,92.35 133.25,91.63 132.54,90.56 132.28,89.29 132.54,88.03 133.25,86.95 134.32,86.24 135.59,85.98 136.86,86.24 137.93,86.95 138.65,88.03 138.9,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,89.29 145.26,90.56 144.54,91.63 143.47,92.35 142.2,92.6 140.94,92.35 139.87,91.63 139.15,90.56 138.9,89.29 139.15,88.03 139.87,86.95 140.94,86.24 142.2,85.98 143.47,86.24 144.54,86.95 145.26,88.03 145.51,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,89.29 151.87,90.56 151.16,91.63 150.08,92.35 148.82,92.6 147.55,92.35 146.48,91.63 145.76,90.56 145.51,89.29 145.76,88.03 146.48,86.95 147.55,86.24 148.82,85.98 150.08,86.24 151.16,86.95 151.87,88.03 152.13,89.29 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,95.91 26.2,97.17 25.49,98.24 24.42,98.96 23.15,99.21 21.88,98.96 20.81,98.24 20.09,97.17 19.84,95.91 20.09,94.64 20.81,93.57 21.88,92.85 23.15,92.6 24.42,92.85 25.49,93.57 26.2,94.64 26.46,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,95.91 39.43,97.17 38.72,98.24 37.64,98.96 36.38,99.21 35.11,98.96 34.04,98.24 33.32,97.17 33.07,95.91 33.32,94.64 34.04,93.57 35.11,92.85 36.38,92.6 37.64,92.85 38.72,93.57 39.43,94.64 39.69,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,95.91 46.05,97.17 45.33,98.24 44.26,98.96 42.99,99.21 41.73,98.96 40.65,98.24 39.94,97.17 39.69,95.91 39.94,94.64 40.65,93.57 41.73,92.85 42.99,92.6 44.26,92.85 45.33,93.57 46.05,94.64 46.3,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,95.91 59.28,97.17 58.56,98.24 57.49,98.96 56.22,99.21 54.95,98.96 53.88,98.24 53.17,97.17 52.91,95.91 53.17,94.64 53.88,93.57 54.95,92.85 56.22,92.6 57.49,92.85 58.56,93.57 59.28,94.64 59.53,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,95.91 72.5,97.17 71.79,98.24 70.71,98.96 69.45,99.21 68.18,98.96 67.11,98.24 66.39,97.17 66.14,95.91 66.39,94.64 67.11,93.57 68.18,92.85 69.45,92.6 70.71,92.85 71.79,93.57 72.5,94.64 72.76,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,95.91 79.12,97.17 78.4,98.24 77.33,98.96 76.06,99.21 74.8,98.96 73.72,98.24 73.01,97.17 72.76,95.91 73.01,94.64 73.72,93.57 74.8,92.85 76.06,92.6 77.33,92.85 78.4,93.57 79.12,94.64 79.37,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,95.91 98.96,97.17 98.24,98.24 97.17,98.96 95.91,99.21 94.64,98.96 93.57,98.24 92.85,97.17 92.6,95.91 92.85,94.64 93.57,93.57 94.64,92.85 95.91,92.6 97.17,92.85 98.24,93.57 98.96,94.64 99.21,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,95.91 118.8,97.17 118.09,98.24 117.01,98.96 115.75,99.21 114.48,98.96 113.41,98.24 112.69,97.17 112.44,95.91 112.69,94.64 113.41,93.57 114.48,92.85 115.75,92.6 117.01,92.85 118.09,93.57 118.8,94.64 119.06,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,95.91 145.26,97.17 144.54,98.24 143.47,98.96 142.2,99.21 140.94,98.96 139.87,98.24 139.15,97.17 138.9,95.91 139.15,94.64 139.87,93.57 140.94,92.85 142.2,92.6 143.47,92.85 144.54,93.57 145.26,94.64 145.51,95.91 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,102.52 72.5,103.79 71.79,104.86 70.71,105.58 69.45,105.83 68.18,105.58 67.11,104.86 66.39,103.79 66.14,102.52 66.39,101.25 67.11,100.18 68.18,99.46 69.45,99.21 70.71,99.46 71.79,100.18 72.5,101.25 72.76,102.52 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,102.52 85.73,103.79 85.02,104.86 83.94,105.58 82.68,105.83 81.41,105.58 80.34,104.86 79.62,103.79 79.37,102.52 79.62,101.25 80.34,100.18 81.41,99.46 82.68,99.21 83.94,99.46 85.02,100.18 85.73,101.25 85.98,102.52 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,102.52 98.96,103.79 98.24,104.86 97.17,105.58 95.91,105.83 94.64,105.58 93.57,104.86 92.85,103.79 92.6,102.52 92.85,101.25 93.57,100.18 94.64,99.46 95.91,99.21 97.17,99.46 98.24,100.18 98.96,101.25 99.21,102.52 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,102.52 118.8,103.79 118.09,104.86 117.01,105.58 115.75,105.83 114.48,105.58 113.41,104.86 112.69,103.79 112.44,102.52 112.69,101.25 113.41,100.18 114.48,99.46 115.75,99.21 117.01,99.46 118.09,100.18 118.8,101.25 119.06,102.52 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,102.52 138.65,103.79 137.93,104.86 136.86,105.58 135.59,105.83 134.32,105.58 133.25,104.86 132.54,103.79 132.28,102.52 132.54,101.25 133.25,100.18 134.32,99.46 135.59,99.21 136.86,99.46 137.93,100.18 138.65,101.25 138.9,102.52 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,109.13 72.5,110.4 71.79,111.47 70.71,112.19 69.45,112.44 68.18,112.19 67.11,111.47 66.39,110.4 66.14,109.13 66.39,107.87 67.11,106.8 68.18,106.08 69.45,105.83 70.71,106.08 71.79,106.8 72.5,107.87 72.76,109.13 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,109.13 92.35,110.4 91.63,111.47 90.56,112.19 89.29,112.44 88.03,112.19 86.95,111.47 86.24,110.4 85.98,109.13 86.24,107.87 86.95,106.8 88.03,106.08 89.29,105.83 90.56,106.08 91.63,106.8 92.35,107.87 92.6,109.13 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,109.13 105.58,110.4 104.86,111.47 103.79,112.19 102.52,112.44 101.25,112.19 100.18,111.47 99.46,110.4 99.21,109.13 99.46,107.87 100.18,106.8 101.25,106.08 102.52,105.83 103.79,106.08 104.86,106.8 105.58,107.87 105.83,109.13 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,109.13 125.42,110.4 124.7,111.47 123.63,112.19 122.36,112.44 121.1,112.19 120.02,111.47 119.31,110.4 119.06,109.13 119.31,107.87 120.02,106.8 121.1,106.08 122.36,105.83 123.63,106.08 124.7,106.8 125.42,107.87 125.67,109.13 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,109.13 132.03,110.4 131.31,111.47 130.24,112.19 128.98,112.44 127.71,112.19 126.64,111.47 125.92,110.4 125.67,109.13 125.92,107.87 126.64,106.8 127.71,106.08 128.98,105.83 130.24,106.08 131.31,106.8 132.03,107.87 132.28,109.13 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,109.13 145.26,110.4 144.54,111.47 143.47,112.19 142.2,112.44 140.94,112.19 139.87,111.47 139.15,110.4 138.9,109.13 139.15,107.87 139.87,106.8 140.94,106.08 142.2,105.83 143.47,106.08 144.54,106.8 145.26,107.87 145.51,109.13 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,109.13 151.87,110.4 151.16,111.47 150.08,112.19 148.82,112.44 147.55,112.19 146.48,111.47 145.76,110.4 145.51,109.13 145.76,107.87 146.48,106.8 147.55,106.08 148.82,105.83 150.08,106.08 151.16,106.8 151.87,107.87 152.13,109.13 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,115.75 79.12,117.01 78.4,118.09 77.33,118.8 76.06,119.06 74.8,118.8 73.72,118.09 73.01,117.01 72.76,115.75 73.01,114.48 73.72,113.41 74.8,112.69 76.06,112.44 77.33,112.69 78.4,113.41 79.12,114.48 79.37,115.75 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,115.75 85.73,117.01 85.02,118.09 83.94,118.8 82.68,119.06 81.41,118.8 80.34,118.09 79.62,117.01 79.37,115.75 79.62,114.48 80.34,113.41 81.41,112.69 82.68,112.44 83.94,112.69 85.02,113.41 85.73,114.48 85.98,115.75 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,115.75 118.8,117.01 118.09,118.09 117.01,118.8 115.75,119.06 114.48,118.8 113.41,118.09 112.69,117.01 112.44,115.75 112.69,114.48 113.41,113.41 114.48,112.69 115.75,112.44 117.01,112.69 118.09,113.41 118.8,114.48 119.06,115.75 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,115.75 125.42,117.01 124.7,118.09 123.63,118.8 122.36,119.06 121.1,118.8 120.02,118.09 119.31,117.01 119.06,115.75 119.31,114.48 120.02,113.41 121.1,112.69 122.36,112.44 123.63,112.69 124.7,113.41 125.42,114.48 125.67,115.75 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,115.75 138.65,117.01 137.93,118.09 136.86,118.8 135.59,119.06 134.32,118.8 133.25,118.09 132.54,117.01 132.28,115.75 132.54,114.48 133.25,113.41 134.32,112.69 135.59,112.44 136.86,112.69 137.93,113.41 138.65,114.48 138.9,115.75 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,115.75 151.87,117.01 151.16,118.09 150.08,118.8 148.82,119.06 147.55,118.8 146.48,118.09 145.76,117.01 145.51,115.75 145.76,114.48 146.48,113.41 147.55,112.69 148.82,112.44 150.08,112.69 151.16,113.41 151.87,114.48 152.13,115.75 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,122.36 72.5,123.63 71.79,124.7 70.71,125.42 69.45,125.67 68.18,125.42 67.11,124.7 66.39,123.63 66.14,122.36 66.39,121.1 67.11,120.02 68.18,119.31 69.45,119.06 70.71,119.31 71.79,120.02 72.5,121.1 72.76,122.36 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,122.36 79.12,123.63 78.4,124.7 77.33,125.42 76.06,125.67 74.8,125.42 73.72,124.7 73.01,123.63 72.76,122.36 73.01,121.1 73.72,120.02 74.8,119.31 76.06,119.06 77.33,119.31 78.4,120.02 79.12,121.1 79.37,122.36 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,122.36 85.73,123.63 85.02,124.7 83.94,125.42 82.68,125.67 81.41,125.42 80.34,124.7 79.62,123.63 79.37,122.36 79.62,121.1 80.34,120.02 81.41,119.31 82.68,119.06 83.94,119.31 85.02,120.02 85.73,121.1 85.98,122.36 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,122.36 92.35,123.63 91.63,124.7 90.56,125.42 89.29,125.67 88.03,125.42 86.95,124.7 86.24,123.63 85.98,122.36 86.24,121.1 86.95,120.02 88.03,119.31 89.29,119.06 90.56,119.31 91.63,120.02 92.35,121.1 92.6,122.36 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,122.36 105.58,123.63 104.86,124.7 103.79,125.42 102.52,125.67 101.25,125.42 100.18,124.7 99.46,123.63 99.21,122.36 99.46,121.1 100.18,120.02 101.25,119.31 102.52,119.06 103.79,119.31 104.86,120.02 105.58,121.1 105.83,122.36 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,122.36 125.42,123.63 124.7,124.7 123.63,125.42 122.36,125.67 121.1,125.42 120.02,124.7 119.31,123.63 119.06,122.36 119.31,121.1 120.02,120.02 121.1,119.31 122.36,119.06 123.63,119.31 124.7,120.02 125.42,121.1 125.67,122.36 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,122.36 132.03,123.63 131.31,124.7 130.24,125.42 128.98,125.67 127.71,125.42 126.64,124.7 125.92,123.63 125.67,122.36 125.92,121.1 126.64,120.02 127.71,119.31 128.98,119.06 130.24,119.31 131.31,120.02 132.03,121.1 132.28,122.36 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,122.36 138.65,123.63 137.93,124.7 136.86,125.42 135.59,125.67 134.32,125.42 133.25,124.7 132.54,123.63 132.28,122.36 132.54,121.1 133.25,120.02 134.32,119.31 135.59,119.06 136.86,119.31 137.93,120.02 138.65,121.1 138.9,122.36 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,128.98 72.5,130.24 71.79,131.31 70.71,132.03 69.45,132.28 68.18,132.03 67.11,131.31 66.39,130.24 66.14,128.98 66.39,127.71 67.11,126.64 68.18,125.92 69.45,125.67 70.71,125.92 71.79,126.64 72.5,127.71 72.76,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,128.98 79.12,130.24 78.4,131.31 77.33,132.03 76.06,132.28 74.8,132.03 73.72,131.31 73.01,130.24 72.76,128.98 73.01,127.71 73.72,126.64 74.8,125.92 76.06,125.67 77.33,125.92 78.4,126.64 79.12,127.71 79.37,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,128.98 92.35,130.24 91.63,131.31 90.56,132.03 89.29,132.28 88.03,132.03 86.95,131.31 86.24,130.24 85.98,128.98 86.24,127.71 86.95,126.64 88.03,125.92 89.29,125.67 90.56,125.92 91.63,126.64 92.35,127.71 92.6,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,128.98 98.96,130.24 98.24,131.31 97.17,132.03 95.91,132.28 94.64,132.03 93.57,131.31 92.85,130.24 92.6,128.98 92.85,127.71 93.57,126.64 94.64,125.92 95.91,125.67 97.17,125.92 98.24,126.64 98.96,127.71 99.21,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,128.98 105.58,130.24 104.86,131.31 103.79,132.03 102.52,132.28 101.25,132.03 100.18,131.31 99.46,130.24 99.21,128.98 99.46,127.71 100.18,126.64 101.25,125.92 102.52,125.67 103.79,125.92 104.86,126.64 105.58,127.71 105.83,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,128.98 112.19,130.24 111.47,131.31 110.4,132.03 109.13,132.28 107.87,132.03 106.8,131.31 106.08,130.24 105.83,128.98 106.08,127.71 106.8,126.64 107.87,125.92 109.13,125.67 110.4,125.92 111.47,126.64 112.19,127.71 112.44,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,128.98 118.8,130.24 118.09,131.31 117.01,132.03 115.75,132.28 114.48,132.03 113.41,131.31 112.69,130.24 112.44,128.98 112.69,127.71 113.41,126.64 114.48,125.92 115.75,125.67 117.01,125.92 118.09,126.64 118.8,127.71 119.06,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,128.98 132.03,130.24 131.31,131.31 130.24,132.03 128.98,132.28 127.71,132.03 126.64,131.31 125.92,130.24 125.67,128.98 125.92,127.71 126.64,126.64 127.71,125.92 128.98,125.67 130.24,125.92 131.31,126.64 132.03,127.71 132.28,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,128.98 138.65,130.24 137.93,131.31 136.86,132.03 135.59,132.28 134.32,132.03 133.25,131.31 132.54,130.24 132.28,128.98 132.54,127.71 133.25,126.64 134.32,125.92 135.59,125.67 136.86,125.92 137.93,126.64 138.65,127.71 138.9,128.98 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,135.59 72.5,136.86 71.79,137.93 70.71,138.65 69.45,138.9 68.18,138.65 67.11,137.93 66.39,136.86 66.14,135.59 66.39,134.32 67.11,133.25 68.18,132.54 69.45,132.28 70.71,132.54 71.79,133.25 72.5,134.32 72.76,135.59 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,135.59 79.12,136.86 78.4,137.93 77.33,138.65 76.06,138.9 74.8,138.65 73.72,137.93 73.01,136.86 72.76,135.59 73.01,134.32 73.72,133.25 74.8,132.54 76.06,132.28 77.33,132.54 78.4,133.25 79.12,134.32 79.37,135.59 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,135.59 98.96,136.86 98.24,137.93 97.17,138.65 95.91,138.9 94.64,138.65 93.57,137.93 92.85,136.86 92.6,135.59 92.85,134.32 93.57,133.25 94.64,132.54 95.91,132.28 97.17,132.54 98.24,133.25 98.96,134.32 99.21,135.59 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,135.59 112.19,136.86 111.47,137.93 110.4,138.65 109.13,138.9 107.87,138.65 106.8,137.93 106.08,136.86 105.83,135.59 106.08,134.32 106.8,133.25 107.87,132.54 109.13,132.28 110.4,132.54 111.47,133.25 112.19,134.32 112.44,135.59 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,135.59 118.8,136.86 118.09,137.93 117.01,138.65 115.75,138.9 114.48,138.65 113.41,137.93 112.69,136.86 112.44,135.59 112.69,134.32 113.41,133.25 114.48,132.54 115.75,132.28 117.01,132.54 118.09,133.25 118.8,134.32 119.06,135.59 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,135.59 132.03,136.86 131.31,137.93 130.24,138.65 128.98,138.9 127.71,138.65 126.64,137.93 125.92,136.86 125.67,135.59 125.92,134.32 126.64,133.25 127.71,132.54 128.98,132.28 130.24,132.54 131.31,133.25 132.03,134.32 132.28,135.59 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,135.59 138.65,136.86 137.93,137.93 136.86,138.65 135.59,138.9 134.32,138.65 133.25,137.93 132.54,136.86 132.28,135.59 132.54,134.32 133.25,133.25 134.32,132.54 135.59,132.28 136.86,132.54 137.93,133.25 138.65,134.32 138.9,135.59 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,142.2 72.5,143.47 71.79,144.54 70.71,145.26 69.45,145.51 68.18,145.26 67.11,144.54 66.39,143.47 66.14,142.2 66.39,140.94 67.11,139.87 68.18,139.15 69.45,138.9 70.71,139.15 71.79,139.87 72.5,140.94 72.76,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,142.2 85.73,143.47 85.02,144.54 83.94,145.26 82.68,145.51 81.41,145.26 80.34,144.54 79.62,143.47 79.37,142.2 79.62,140.94 80.34,139.87 81.41,139.15 82.68,138.9 83.94,139.15 85.02,139.87 85.73,140.94 85.98,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,142.2 92.35,143.47 91.63,144.54 90.56,145.26 89.29,145.51 88.03,145.26 86.95,144.54 86.24,143.47 85.98,142.2 86.24,140.94 86.95,139.87 88.03,139.15 89.29,138.9 90.56,139.15 91.63,139.87 92.35,140.94 92.6,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,142.2 98.96,143.47 98.24,144.54 97.17,145.26 95.91,145.51 94.64,145.26 93.57,144.54 92.85,143.47 92.6,142.2 92.85,140.94 93.57,139.87 94.64,139.15 95.91,138.9 97.17,139.15 98.24,139.87 98.96,140.94 99.21,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,142.2 105.58,143.47 104.86,144.54 103.79,145.26 102.52,145.51 101.25,145.26 100.18,144.54 99.46,143.47 99.21,142.2 99.46,140.94 100.18,139.87 101.25,139.15 102.52,138.9 103.79,139.15 104.86,139.87 105.58,140.94 105.83,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,142.2 112.19,143.47 111.47,144.54 110.4,145.26 109.13,145.51 107.87,145.26 106.8,144.54 106.08,143.47 105.83,142.2 106.08,140.94 106.8,139.87 107.87,139.15 109.13,138.9 110.4,139.15 111.47,139.87 112.19,140.94 112.44,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,142.2 118.8,143.47 118.09,144.54 117.01,145.26 115.75,145.51 114.48,145.26 113.41,144.54 112.69,143.47 112.44,142.2 112.69,140.94 113.41,139.87 114.48,139.15 115.75,138.9 117.01,139.15 118.09,139.87 118.8,140.94 119.06,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,142.2 125.42,143.47 124.7,144.54 123.63,145.26 122.36,145.51 121.1,145.26 120.02,144.54 119.31,143.47 119.06,142.2 119.31,140.94 120.02,139.87 121.1,139.15 122.36,138.9 123.63,139.15 124.7,139.87 125.42,140.94 125.67,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,142.2 138.65,143.47 137.93,144.54 136.86,145.26 135.59,145.51 134.32,145.26 133.25,144.54 132.54,143.47 132.28,142.2 132.54,140.94 133.25,139.87 134.32,139.15 135.59,138.9 136.86,139.15 137.93,139.87 138.65,140.94 138.9,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,142.2 145.26,143.47 144.54,144.54 143.47,145.26 142.2,145.51 140.94,145.26 139.87,144.54 139.15,143.47 138.9,142.2 139.15,140.94 139.87,139.87 140.94,139.15 142.2,138.9 143.47,139.15 144.54,139.87 145.26,140.94 145.51,142.2 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,148.82 72.5,150.08 71.79,151.16 70.71,151.87 69.45,152.13 68.18,151.87 67.11,151.16 66.39,150.08 66.14,148.82 66.39,147.55 67.11,146.48 68.18,145.76 69.45,145.51 70.71,145.76 71.79,146.48 72.5,147.55 72.76,148.82 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,148.82 79.12,150.08 78.4,151.16 77.33,151.87 76.06,152.13 74.8,151.87 73.72,151.16 73.01,150.08 72.76,148.82 73.01,147.55 73.72,146.48 74.8,145.76 76.06,145.51 77.33,145.76 78.4,146.48 79.12,147.55 79.37,148.82 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,148.82 85.73,150.08 85.02,151.16 83.94,151.87 82.68,152.13 81.41,151.87 80.34,151.16 79.62,150.08 79.37,148.82 79.62,147.55 80.34,146.48 81.41,145.76 82.68,145.51 83.94,145.76 85.02,146.48 85.73,147.55 85.98,148.82 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,148.82 98.96,150.08 98.24,151.16 97.17,151.87 95.91,152.13 94.64,151.87 93.57,151.16 92.85,150.08 92.6,148.82 92.85,147.55 93.57,146.48 94.64,145.76 95.91,145.51 97.17,145.76 98.24,146.48 98.96,147.55 99.21,148.82 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,148.82 118.8,150.08 118.09,151.16 117.01,151.87 115.75,152.13 114.48,151.87 113.41,151.16 112.69,150.08 112.44,148.82 112.69,147.55 113.41,146.48 114.48,145.76 115.75,145.51 117.01,145.76 118.09,146.48 118.8,147.55 119.06,148.82 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,148.82 138.65,150.08 137.93,151.16 136.86,151.87 135.59,152.13 134.32,151.87 133.25,151.16 132.54,150.08 132.28,148.82 132.54,147.55 133.25,146.48 134.32,145.76 135.59,145.51 136.86,145.76 137.93,146.48 138.65,147.55 138.9,148.82 \"\r\n            style=\"fill:rgba(85,85,85,1);\"\r\n          />\r\n    `,\r\n    },\r\n    {\r\n      value: 4,\r\n      innerHtml: `\r\n      <rect\r\n          x=\"0\"\r\n          y=\"0\"\r\n          width=\"165.3543\"\r\n          height=\"165.3543\"\r\n          fill=\"red\"\r\n          style=\"fill:rgba(255,255,255,0);\"\r\n          shape-rendering=\"crispEdges\"\r\n        />\r\n        <linearGradient\r\n          id=\"gradientb8ccf5af139d4745a4e57cbdbf3495fb\"\r\n          gradientUnits=\"userSpaceOnUse\"\r\n          x1=\"0.518330705864074\"\r\n          y1=\"35.242737901909\"\r\n          x2=\"164.835989820259\"\r\n          y2=\"130.111582624214\"\r\n        >\r\n          <stop offset=\"0%\" stop-color=\"#5A01B3\" />\r\n          <stop offset=\"100%\" stop-color=\"#3B4990\" />\r\n        </linearGradient>\r\n        <polygon\r\n          points=\"13.23,29.76 13.55,26.54 14.49,23.44 16.02,20.58 18.07,18.07 20.58,16.02 23.44,14.49 26.54,13.55 29.76,13.23 42.99,13.23 46.22,13.55 49.32,14.49 52.18,16.02 54.68,18.07 56.74,20.58 58.27,23.44 59.21,26.54 59.53,29.76 59.53,42.99 59.21,46.22 58.27,49.32 56.74,52.18 54.68,54.68 52.18,56.74 49.32,58.27 46.22,59.21 42.99,59.53 29.76,59.53 26.54,59.21 23.44,58.27 20.58,56.74 18.07,54.68 16.02,52.18 14.49,49.32 13.55,46.22 13.23,42.99 13.23,29.76 19.84,29.76 19.84,42.99 20.18,45.56 21.17,47.95 22.75,50.01 24.8,51.58 27.2,52.58 29.76,52.91 42.99,52.91 45.56,52.58 47.95,51.58 50.01,50.01 51.58,47.95 52.58,45.56 52.91,42.99 52.91,29.76 52.58,27.2 51.58,24.8 50.01,22.75 47.95,21.17 45.56,20.18 42.99,19.84 29.76,19.84 27.2,20.18 24.8,21.17 22.75,22.75 21.17,24.8 20.18,27.2 19.84,29.76 \"\r\n          style=\"fill:url(#gradientb8ccf5af139d4745a4e57cbdbf3495fb);\"\r\n        />\r\n        <polygon\r\n          points=\"13.23,122.36 13.55,119.14 14.49,116.03 16.02,113.18 18.07,110.67 20.58,108.61 23.44,107.09 26.54,106.14 29.76,105.83 42.99,105.83 46.22,106.14 49.32,107.09 52.18,108.61 54.68,110.67 56.74,113.18 58.27,116.03 59.21,119.14 59.53,122.36 59.53,135.59 59.21,138.82 58.27,141.92 56.74,144.78 54.68,147.28 52.18,149.34 49.32,150.87 46.22,151.81 42.99,152.13 29.76,152.13 26.54,151.81 23.44,150.87 20.58,149.34 18.07,147.28 16.02,144.78 14.49,141.92 13.55,138.82 13.23,135.59 13.23,122.36 19.84,122.36 19.84,135.59 20.18,138.16 21.17,140.55 22.75,142.61 24.8,144.18 27.2,145.17 29.76,145.51 42.99,145.51 45.56,145.17 47.95,144.18 50.01,142.61 51.58,140.55 52.58,138.16 52.91,135.59 52.91,122.36 52.58,119.79 51.58,117.4 50.01,115.35 47.95,113.77 45.56,112.78 42.99,112.44 29.76,112.44 27.2,112.78 24.8,113.77 22.75,115.35 21.17,117.4 20.18,119.79 19.84,122.36 \"\r\n          style=\"fill:url(#gradientb8ccf5af139d4745a4e57cbdbf3495fb);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,29.76 106.14,26.54 107.09,23.44 108.61,20.58 110.67,18.07 113.18,16.02 116.03,14.49 119.14,13.55 122.36,13.23 135.59,13.23 138.82,13.55 141.92,14.49 144.78,16.02 147.28,18.07 149.34,20.58 150.87,23.44 151.81,26.54 152.13,29.76 152.13,42.99 151.81,46.22 150.87,49.32 149.34,52.18 147.28,54.68 144.78,56.74 141.92,58.27 138.82,59.21 135.59,59.53 122.36,59.53 119.14,59.21 116.03,58.27 113.18,56.74 110.67,54.68 108.61,52.18 107.09,49.32 106.14,46.22 105.83,42.99 105.83,29.76 112.44,29.76 112.44,42.99 112.78,45.56 113.77,47.95 115.35,50.01 117.4,51.58 119.79,52.58 122.36,52.91 135.59,52.91 138.16,52.58 140.55,51.58 142.61,50.01 144.18,47.95 145.17,45.56 145.51,42.99 145.51,29.76 145.17,27.2 144.18,24.8 142.61,22.75 140.55,21.17 138.16,20.18 135.59,19.84 122.36,19.84 119.79,20.18 117.4,21.17 115.35,22.75 113.77,24.8 112.78,27.2 112.44,29.76 \"\r\n          style=\"fill:url(#gradientb8ccf5af139d4745a4e57cbdbf3495fb);\"\r\n        />\r\n        <pattern\r\n          id=\"hatchd1532579170549379ffa1843e72867ab\"\r\n          x=\"0\"\r\n          y=\"0\"\r\n          width=\"8\"\r\n          height=\"8\"\r\n          patternUnits=\"userSpaceOnUse\"\r\n        >\r\n          <rect x=\"0\" y=\"0\" width=\"8\" height=\"8\" fill=\"#695289\" />\r\n          <rect x=\"4\" y=\"0\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"5\" y=\"0\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"6\" y=\"0\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"7\" y=\"0\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"4\" y=\"1\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"5\" y=\"1\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"6\" y=\"1\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"7\" y=\"1\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"4\" y=\"2\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"5\" y=\"2\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"6\" y=\"2\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"7\" y=\"2\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"4\" y=\"3\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"5\" y=\"3\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"6\" y=\"3\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"7\" y=\"3\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"0\" y=\"4\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"1\" y=\"4\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"2\" y=\"4\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"3\" y=\"4\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"0\" y=\"5\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"1\" y=\"5\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"2\" y=\"5\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"3\" y=\"5\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"0\" y=\"6\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"1\" y=\"6\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"2\" y=\"6\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"3\" y=\"6\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"0\" y=\"7\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"1\" y=\"7\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"2\" y=\"7\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n          <rect x=\"3\" y=\"7\" width=\"1\" height=\"1\" fill=\"#783948\" />\r\n        </pattern>\r\n        <polygon\r\n          points=\"26.46,31.09 26.61,29.89 27.08,28.77 27.81,27.81 28.77,27.08 29.89,26.61 31.09,26.46 41.67,26.46 42.87,26.61 43.98,27.08 44.94,27.81 45.68,28.77 46.14,29.89 46.3,31.09 46.3,41.67 46.14,42.87 45.68,43.98 44.94,44.94 43.98,45.68 42.87,46.14 41.67,46.3 31.09,46.3 29.89,46.14 28.77,45.68 27.81,44.94 27.08,43.98 26.61,42.87 26.46,41.67 \"\r\n          style=\"fill:url(#hatchd1532579170549379ffa1843e72867ab);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,123.69 26.61,122.49 27.08,121.37 27.81,120.41 28.77,119.68 29.89,119.21 31.09,119.06 41.67,119.06 42.87,119.21 43.98,119.68 44.94,120.41 45.68,121.37 46.14,122.49 46.3,123.69 46.3,134.27 46.14,135.47 45.68,136.58 44.94,137.54 43.98,138.28 42.87,138.74 41.67,138.9 31.09,138.9 29.89,138.74 28.77,138.28 27.81,137.54 27.08,136.58 26.61,135.47 26.46,134.27 \"\r\n          style=\"fill:url(#hatchd1532579170549379ffa1843e72867ab);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,31.09 119.21,29.89 119.68,28.77 120.41,27.81 121.37,27.08 122.49,26.61 123.69,26.46 134.27,26.46 135.47,26.61 136.58,27.08 137.54,27.81 138.28,28.77 138.74,29.89 138.9,31.09 138.9,41.67 138.74,42.87 138.28,43.98 137.54,44.94 136.58,45.68 135.47,46.14 134.27,46.3 123.69,46.3 122.49,46.14 121.37,45.68 120.41,44.94 119.68,43.98 119.21,42.87 119.06,41.67 \"\r\n          style=\"fill:url(#hatchd1532579170549379ffa1843e72867ab);\"\r\n        />\r\n        <linearGradient\r\n          id=\"gradient05b39589f89a4da0bb06028c8be76a2c\"\r\n          gradientUnits=\"userSpaceOnUse\"\r\n          x1=\"5.85921475478483\"\r\n          y1=\"73.2451025543645\"\r\n          x2=\"159.495105771338\"\r\n          y2=\"92.1092179717585\"\r\n        >\r\n          <stop offset=\"0%\" stop-color=\"#742E2C\" />\r\n          <stop offset=\"90%\" stop-color=\"#214D84\" />\r\n          <stop offset=\"100%\" stop-color=\"#742E2C\" />\r\n        </linearGradient>\r\n        <polygon\r\n          points=\"79.37,15.54 79.55,14.66 80.05,13.91 80.8,13.4 81.69,13.23 86.05,13.23 86.05,19.91 79.37,19.91 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.92,16.54 85.92,13.23 92.66,13.23 92.66,19.84 85.92,19.84 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.53,13.23 96.9,13.23 97.78,13.4 98.53,13.91 99.04,14.66 99.21,15.54 99.21,19.91 92.53,19.91 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,22.16 66.32,21.27 66.82,20.52 67.57,20.02 68.46,19.84 72.82,19.84 72.82,26.46 68.46,26.46 67.57,26.28 66.82,25.78 66.32,25.03 66.14,24.14 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.69,23.15 72.69,19.84 79.44,19.84 79.44,26.46 72.69,26.46 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"79.3,23.15 79.3,19.78 85.98,19.78 85.98,26.52 79.3,26.52 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,23.15 92.6,19.78 99.21,19.78 99.21,26.52 92.6,26.52 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,26.39 86.05,26.39 86.05,33.07 81.69,33.07 80.8,32.89 80.05,32.39 79.55,31.64 79.37,30.76 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.92,29.76 85.92,26.46 92.66,26.46 92.66,33.07 85.92,33.07 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.53,29.76 92.53,26.39 99.21,26.39 99.21,33.14 92.53,33.14 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,35.39 66.32,34.5 66.82,33.75 67.57,33.25 68.46,33.07 72.82,33.07 72.82,39.69 68.46,39.69 67.57,39.51 66.82,39.01 66.32,38.26 66.14,37.37 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.69,33.07 77.06,33.07 77.94,33.25 78.69,33.75 79.19,34.5 79.37,35.39 79.37,39.75 72.69,39.75 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,36.38 92.6,33 99.21,33 99.21,39.75 92.6,39.75 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,39.62 79.37,39.62 79.37,43.98 79.19,44.87 78.69,45.62 77.94,46.12 77.06,46.3 75.07,46.3 74.18,46.12 73.43,45.62 72.93,44.87 72.76,43.98 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,39.62 99.21,39.62 99.21,43.98 99.04,44.87 98.53,45.62 97.78,46.12 96.9,46.3 94.91,46.3 94.03,46.12 93.28,45.62 92.77,44.87 92.6,43.98 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,48.61 66.32,47.73 66.82,46.98 67.57,46.48 68.46,46.3 70.44,46.3 71.33,46.48 72.08,46.98 72.58,47.73 72.76,48.61 72.76,52.98 66.14,52.98 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,48.61 86.16,47.73 86.66,46.98 87.41,46.48 88.3,46.3 90.28,46.3 91.17,46.48 91.92,46.98 92.42,47.73 92.6,48.61 92.6,50.6 92.42,51.48 91.92,52.24 91.17,52.74 90.28,52.91 88.3,52.91 87.41,52.74 86.66,52.24 86.16,51.48 85.98,50.6 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,52.85 72.76,52.85 72.76,57.21 72.58,58.1 72.08,58.85 71.33,59.35 70.44,59.53 68.46,59.53 67.57,59.35 66.82,58.85 66.32,58.1 66.14,57.21 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,55.23 79.55,54.34 80.05,53.59 80.8,53.09 81.69,52.91 83.67,52.91 84.56,53.09 85.31,53.59 85.81,54.34 85.98,55.23 85.98,57.21 85.81,58.1 85.31,58.85 84.56,59.35 83.67,59.53 81.69,59.53 80.8,59.35 80.05,58.85 79.55,58.1 79.37,57.21 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,55.23 92.77,54.34 93.28,53.59 94.03,53.09 94.91,52.91 96.9,52.91 97.78,53.09 98.53,53.59 99.04,54.34 99.21,55.23 99.21,57.21 99.04,58.1 98.53,58.85 97.78,59.35 96.9,59.53 94.91,59.53 94.03,59.35 93.28,58.85 92.77,58.1 92.6,57.21 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,61.84 72.93,60.96 73.43,60.21 74.18,59.7 75.07,59.53 77.06,59.53 77.94,59.7 78.69,60.21 79.19,60.96 79.37,61.84 79.37,63.83 79.19,64.71 78.69,65.46 77.94,65.97 77.06,66.14 75.07,66.14 74.18,65.97 73.43,65.46 72.93,64.71 72.76,63.83 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"13.23,68.46 13.4,67.57 13.91,66.82 14.66,66.32 15.54,66.14 19.91,66.14 19.91,72.82 13.23,72.82 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"19.78,69.45 19.78,66.14 26.52,66.14 26.52,72.82 19.78,72.82 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"26.39,69.45 26.39,66.14 33.14,66.14 33.14,72.82 26.39,72.82 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"33,69.45 33,66.14 39.75,66.14 39.75,72.76 33,72.76 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"39.62,66.14 43.98,66.14 44.87,66.32 45.62,66.82 46.12,67.57 46.3,68.46 46.3,70.44 46.12,71.33 45.62,72.08 44.87,72.58 43.98,72.76 39.62,72.76 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"52.91,68.46 53.09,67.57 53.59,66.82 54.34,66.32 55.23,66.14 59.59,66.14 59.59,72.76 55.23,72.76 54.34,72.58 53.59,72.08 53.09,71.33 52.91,70.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"59.46,69.45 59.46,66.14 66.21,66.14 66.21,72.82 59.46,72.82 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.08,66.14 70.44,66.14 71.33,66.32 72.08,66.82 72.58,67.57 72.76,68.46 72.76,70.44 72.58,71.33 72.08,72.08 71.33,72.58 70.44,72.76 66.08,72.76 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,68.46 86.16,67.57 86.66,66.82 87.41,66.32 88.3,66.14 90.28,66.14 91.17,66.32 91.92,66.82 92.42,67.57 92.6,68.46 92.6,72.82 85.98,72.82 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,68.46 99.39,67.57 99.89,66.82 100.64,66.32 101.53,66.14 103.51,66.14 104.4,66.32 105.15,66.82 105.65,67.57 105.83,68.46 105.83,72.82 99.21,72.82 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,68.46 112.62,67.57 113.12,66.82 113.87,66.32 114.76,66.14 116.74,66.14 117.63,66.32 118.38,66.82 118.88,67.57 119.06,68.46 119.06,70.44 118.88,71.33 118.38,72.08 117.63,72.58 116.74,72.76 114.76,72.76 113.87,72.58 113.12,72.08 112.62,71.33 112.44,70.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,68.46 125.85,67.57 126.35,66.82 127.1,66.32 127.98,66.14 129.97,66.14 130.85,66.32 131.61,66.82 132.11,67.57 132.28,68.46 132.28,72.82 125.67,72.82 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,68.46 139.07,67.57 139.58,66.82 140.33,66.32 141.21,66.14 143.2,66.14 144.08,66.32 144.83,66.82 145.34,67.57 145.51,68.46 145.51,72.82 138.9,72.82 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"13.23,72.69 19.91,72.69 19.91,79.37 15.54,79.37 14.66,79.19 13.91,78.69 13.4,77.94 13.23,77.06 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"19.78,76.06 19.78,72.69 26.52,72.69 26.52,79.37 19.78,79.37 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"26.39,76.06 26.39,72.69 33.07,72.69 33.07,79.44 26.39,79.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,75.07 46.48,74.18 46.98,73.43 47.73,72.93 48.61,72.76 50.6,72.76 51.48,72.93 52.24,73.43 52.74,74.18 52.91,75.07 52.91,79.44 46.3,79.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,72.69 66.14,72.69 66.14,77.06 65.97,77.94 65.46,78.69 64.71,79.19 63.83,79.37 61.84,79.37 60.96,79.19 60.21,78.69 59.7,77.94 59.53,77.06 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,75.07 72.93,74.18 73.43,73.43 74.18,72.93 75.07,72.76 77.06,72.76 77.94,72.93 78.69,73.43 79.19,74.18 79.37,75.07 79.37,79.44 72.76,79.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,72.69 92.66,72.69 92.66,79.37 88.3,79.37 87.41,79.19 86.66,78.69 86.16,77.94 85.98,77.06 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.53,76.06 92.53,72.76 99.28,72.76 99.28,79.44 92.53,79.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"99.15,76.06 99.15,72.69 105.89,72.69 105.89,79.37 99.15,79.37 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"105.76,72.76 110.13,72.76 111.01,72.93 111.76,73.43 112.26,74.18 112.44,75.07 112.44,79.44 105.76,79.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,76.06 125.67,72.69 132.35,72.69 132.35,79.44 125.67,79.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.22,76.06 132.22,72.76 138.96,72.76 138.96,79.37 132.22,79.37 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"138.83,76.06 138.83,72.69 145.58,72.69 145.58,79.37 138.83,79.37 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"145.45,72.76 149.81,72.76 150.7,72.93 151.45,73.43 151.95,74.18 152.13,75.07 152.13,79.44 145.45,79.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,79.3 33.07,79.3 33.07,83.67 32.89,84.56 32.39,85.31 31.64,85.81 30.76,85.98 28.77,85.98 27.89,85.81 27.13,85.31 26.63,84.56 26.46,83.67 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,81.69 39.86,80.8 40.36,80.05 41.11,79.55 42,79.37 46.37,79.37 46.37,85.98 42,85.98 41.11,85.81 40.36,85.31 39.86,84.56 39.69,83.67 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"46.23,82.68 46.23,79.3 52.98,79.3 52.98,85.98 46.23,85.98 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"52.85,79.37 57.21,79.37 58.1,79.55 58.85,80.05 59.35,80.8 59.53,81.69 59.53,83.67 59.35,84.56 58.85,85.31 58.1,85.81 57.21,85.98 52.85,85.98 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,81.69 66.32,80.8 66.82,80.05 67.57,79.55 68.46,79.37 72.82,79.37 72.82,85.98 68.46,85.98 67.57,85.81 66.82,85.31 66.32,84.56 66.14,83.67 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.69,79.3 79.37,79.3 79.37,83.67 79.19,84.56 78.69,85.31 77.94,85.81 77.06,85.98 72.69,85.98 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,82.68 92.6,79.3 99.21,79.3 99.21,86.05 92.6,86.05 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,82.68 105.83,79.3 112.51,79.3 112.51,86.05 105.83,86.05 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.37,79.37 116.74,79.37 117.63,79.55 118.38,80.05 118.88,80.8 119.06,81.69 119.06,83.67 118.88,84.56 118.38,85.31 117.63,85.81 116.74,85.98 112.37,85.98 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,79.3 132.28,79.3 132.28,83.67 132.11,84.56 131.61,85.31 130.85,85.81 129.97,85.98 127.98,85.98 127.1,85.81 126.35,85.31 125.85,84.56 125.67,83.67 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,82.68 145.51,79.3 152.13,79.3 152.13,86.05 145.51,86.05 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"13.23,88.3 13.4,87.41 13.91,86.66 14.66,86.16 15.54,85.98 17.53,85.98 18.41,86.16 19.16,86.66 19.67,87.41 19.84,88.3 19.84,90.28 19.67,91.17 19.16,91.92 18.41,92.42 17.53,92.6 15.54,92.6 14.66,92.42 13.91,91.92 13.4,91.17 13.23,90.28 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,88.3 33.25,87.41 33.75,86.66 34.5,86.16 35.39,85.98 37.37,85.98 38.26,86.16 39.01,86.66 39.51,87.41 39.69,88.3 39.69,92.66 33.07,92.66 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,88.3 86.16,87.41 86.66,86.66 87.41,86.16 88.3,85.98 92.66,85.98 92.66,92.6 88.3,92.6 87.41,92.42 86.66,91.92 86.16,91.17 85.98,90.28 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.53,89.29 92.53,85.92 99.28,85.92 99.28,92.66 92.53,92.66 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"99.15,89.29 99.15,85.98 105.89,85.98 105.89,92.6 99.15,92.6 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"105.76,85.92 112.44,85.92 112.44,90.28 112.26,91.17 111.76,91.92 111.01,92.42 110.13,92.6 105.76,92.6 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,88.3 132.46,87.41 132.96,86.66 133.71,86.16 134.6,85.98 138.96,85.98 138.96,92.6 134.6,92.6 133.71,92.42 132.96,91.92 132.46,91.17 132.28,90.28 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"138.83,89.29 138.83,85.98 145.58,85.98 145.58,92.66 138.83,92.66 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"145.45,85.92 152.13,85.92 152.13,90.28 151.95,91.17 151.45,91.92 150.7,92.42 149.81,92.6 145.45,92.6 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,94.91 20.02,94.03 20.52,93.28 21.27,92.77 22.16,92.6 24.14,92.6 25.03,92.77 25.78,93.28 26.28,94.03 26.46,94.91 26.46,96.9 26.28,97.78 25.78,98.53 25.03,99.04 24.14,99.21 22.16,99.21 21.27,99.04 20.52,98.53 20.02,97.78 19.84,96.9 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,92.53 39.75,92.53 39.75,99.21 35.39,99.21 34.5,99.04 33.75,98.53 33.25,97.78 33.07,96.9 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"39.62,92.6 43.98,92.6 44.87,92.77 45.62,93.28 46.12,94.03 46.3,94.91 46.3,96.9 46.12,97.78 45.62,98.53 44.87,99.04 43.98,99.21 39.62,99.21 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"52.91,94.91 53.09,94.03 53.59,93.28 54.34,92.77 55.23,92.6 57.21,92.6 58.1,92.77 58.85,93.28 59.35,94.03 59.53,94.91 59.53,96.9 59.35,97.78 58.85,98.53 58.1,99.04 57.21,99.21 55.23,99.21 54.34,99.04 53.59,98.53 53.09,97.78 52.91,96.9 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,94.91 66.32,94.03 66.82,93.28 67.57,92.77 68.46,92.6 72.82,92.6 72.82,99.28 66.14,99.28 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.69,92.6 77.06,92.6 77.94,92.77 78.69,93.28 79.19,94.03 79.37,94.91 79.37,96.9 79.19,97.78 78.69,98.53 77.94,99.04 77.06,99.21 72.69,99.21 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,95.91 92.6,92.53 99.21,92.53 99.21,99.28 92.6,99.28 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,94.91 112.62,94.03 113.12,93.28 113.87,92.77 114.76,92.6 116.74,92.6 117.63,92.77 118.38,93.28 118.88,94.03 119.06,94.91 119.06,99.28 112.44,99.28 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,92.53 145.51,92.53 145.51,96.9 145.34,97.78 144.83,98.53 144.08,99.04 143.2,99.21 141.21,99.21 140.33,99.04 139.58,98.53 139.07,97.78 138.9,96.9 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,102.52 66.14,99.15 72.76,99.15 72.76,105.89 66.14,105.89 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,101.53 79.55,100.64 80.05,99.89 80.8,99.39 81.69,99.21 83.67,99.21 84.56,99.39 85.31,99.89 85.81,100.64 85.98,101.53 85.98,103.51 85.81,104.4 85.31,105.15 84.56,105.65 83.67,105.83 81.69,105.83 80.8,105.65 80.05,105.15 79.55,104.4 79.37,103.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,99.15 99.21,99.15 99.21,103.51 99.04,104.4 98.53,105.15 97.78,105.65 96.9,105.83 94.91,105.83 94.03,105.65 93.28,105.15 92.77,104.4 92.6,103.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,99.15 119.06,99.15 119.06,103.51 118.88,104.4 118.38,105.15 117.63,105.65 116.74,105.83 114.76,105.83 113.87,105.65 113.12,105.15 112.62,104.4 112.44,103.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,101.53 132.46,100.64 132.96,99.89 133.71,99.39 134.6,99.21 136.58,99.21 137.47,99.39 138.22,99.89 138.72,100.64 138.9,101.53 138.9,103.51 138.72,104.4 138.22,105.15 137.47,105.65 136.58,105.83 134.6,105.83 133.71,105.65 132.96,105.15 132.46,104.4 132.28,103.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,105.76 72.76,105.76 72.76,110.13 72.58,111.01 72.08,111.76 71.33,112.26 70.44,112.44 68.46,112.44 67.57,112.26 66.82,111.76 66.32,111.01 66.14,110.13 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,108.14 86.16,107.26 86.66,106.5 87.41,106 88.3,105.83 90.28,105.83 91.17,106 91.92,106.5 92.42,107.26 92.6,108.14 92.6,110.13 92.42,111.01 91.92,111.76 91.17,112.26 90.28,112.44 88.3,112.44 87.41,112.26 86.66,111.76 86.16,111.01 85.98,110.13 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,108.14 99.39,107.26 99.89,106.5 100.64,106 101.53,105.83 103.51,105.83 104.4,106 105.15,106.5 105.65,107.26 105.83,108.14 105.83,110.13 105.65,111.01 105.15,111.76 104.4,112.26 103.51,112.44 101.53,112.44 100.64,112.26 99.89,111.76 99.39,111.01 99.21,110.13 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,108.14 119.23,107.26 119.73,106.5 120.48,106 121.37,105.83 125.74,105.83 125.74,112.51 119.06,112.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"125.6,105.83 129.97,105.83 130.85,106 131.61,106.5 132.11,107.26 132.28,108.14 132.28,110.13 132.11,111.01 131.61,111.76 130.85,112.26 129.97,112.44 125.6,112.44 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,108.14 139.07,107.26 139.58,106.5 140.33,106 141.21,105.83 145.58,105.83 145.58,112.44 141.21,112.44 140.33,112.26 139.58,111.76 139.07,111.01 138.9,110.13 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"145.45,105.83 149.81,105.83 150.7,106 151.45,106.5 151.95,107.26 152.13,108.14 152.13,112.51 145.45,112.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,114.76 72.93,113.87 73.43,113.12 74.18,112.62 75.07,112.44 79.44,112.44 79.44,119.12 72.76,119.12 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"79.3,112.44 83.67,112.44 84.56,112.62 85.31,113.12 85.81,113.87 85.98,114.76 85.98,119.12 79.3,119.12 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,114.76 112.62,113.87 113.12,113.12 113.87,112.62 114.76,112.44 119.12,112.44 119.12,119.06 114.76,119.06 113.87,118.88 113.12,118.38 112.62,117.63 112.44,116.74 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"118.99,115.75 118.99,112.37 125.67,112.37 125.67,119.12 118.99,119.12 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,114.76 132.46,113.87 132.96,113.12 133.71,112.62 134.6,112.44 136.58,112.44 137.47,112.62 138.22,113.12 138.72,113.87 138.9,114.76 138.9,119.12 132.28,119.12 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,112.37 152.13,112.37 152.13,116.74 151.95,117.63 151.45,118.38 150.7,118.88 149.81,119.06 147.83,119.06 146.94,118.88 146.19,118.38 145.69,117.63 145.51,116.74 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,121.37 66.32,120.48 66.82,119.73 67.57,119.23 68.46,119.06 72.82,119.06 72.82,125.74 66.14,125.74 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.69,122.36 72.69,118.99 79.44,118.99 79.44,125.74 72.69,125.74 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"79.3,122.36 79.3,118.99 86.05,118.99 86.05,125.67 79.3,125.67 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.92,119.06 90.28,119.06 91.17,119.23 91.92,119.73 92.42,120.48 92.6,121.37 92.6,125.74 85.92,125.74 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,121.37 99.39,120.48 99.89,119.73 100.64,119.23 101.53,119.06 103.51,119.06 104.4,119.23 105.15,119.73 105.65,120.48 105.83,121.37 105.83,125.74 99.21,125.74 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,118.99 125.74,118.99 125.74,125.67 121.37,125.67 120.48,125.49 119.73,124.99 119.23,124.24 119.06,123.35 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"125.6,122.36 125.6,119.06 132.35,119.06 132.35,125.74 125.6,125.74 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.22,122.36 132.22,118.99 138.9,118.99 138.9,125.74 132.22,125.74 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,128.98 66.14,125.6 72.82,125.6 72.82,132.35 66.14,132.35 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.69,128.98 72.69,125.6 79.37,125.6 79.37,132.35 72.69,132.35 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,125.6 92.66,125.6 92.66,132.28 88.3,132.28 87.41,132.11 86.66,131.61 86.16,130.85 85.98,129.97 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.53,128.98 92.53,125.67 99.28,125.67 99.28,132.35 92.53,132.35 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"99.15,128.98 99.15,125.6 105.89,125.6 105.89,132.28 99.15,132.28 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"105.76,128.98 105.76,125.67 112.51,125.67 112.51,132.35 105.76,132.35 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.37,125.67 116.74,125.67 117.63,125.85 118.38,126.35 118.88,127.1 119.06,127.98 119.06,132.35 112.37,132.35 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,128.98 125.67,125.6 132.35,125.6 132.35,132.35 125.67,132.35 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.22,128.98 132.22,125.6 138.9,125.6 138.9,132.35 132.22,132.35 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,135.59 66.14,132.22 72.82,132.22 72.82,138.96 66.14,138.96 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.69,132.22 79.37,132.22 79.37,136.58 79.19,137.47 78.69,138.22 77.94,138.72 77.06,138.9 72.69,138.9 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,135.59 92.6,132.22 99.21,132.22 99.21,138.96 92.6,138.96 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,135.59 105.83,132.22 112.51,132.22 112.51,138.96 105.83,138.96 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.37,135.59 112.37,132.22 119.06,132.22 119.06,138.96 112.37,138.96 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,132.22 132.35,132.22 132.35,138.9 127.98,138.9 127.1,138.72 126.35,138.22 125.85,137.47 125.67,136.58 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.22,135.59 132.22,132.22 138.9,132.22 138.9,138.96 132.22,138.96 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,142.2 66.14,138.83 72.76,138.83 72.76,145.58 66.14,145.58 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,141.21 79.55,140.33 80.05,139.58 80.8,139.07 81.69,138.9 86.05,138.9 86.05,145.58 79.37,145.58 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"85.92,142.2 85.92,138.9 92.66,138.9 92.66,145.51 85.92,145.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.53,142.2 92.53,138.83 99.28,138.83 99.28,145.58 92.53,145.58 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"99.15,142.2 99.15,138.9 105.89,138.9 105.89,145.51 99.15,145.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"105.76,142.2 105.76,138.83 112.51,138.83 112.51,145.51 105.76,145.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.37,142.2 112.37,138.83 119.12,138.83 119.12,145.58 112.37,145.58 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"118.99,138.9 123.35,138.9 124.24,139.07 124.99,139.58 125.49,140.33 125.67,141.21 125.67,143.2 125.49,144.08 124.99,144.83 124.24,145.34 123.35,145.51 118.99,145.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,142.2 132.28,138.83 138.96,138.83 138.96,145.58 132.28,145.58 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"138.83,138.9 143.2,138.9 144.08,139.07 144.83,139.58 145.34,140.33 145.51,141.21 145.51,143.2 145.34,144.08 144.83,144.83 144.08,145.34 143.2,145.51 138.83,145.51 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,145.45 72.82,145.45 72.82,152.13 68.46,152.13 67.57,151.95 66.82,151.45 66.32,150.7 66.14,149.81 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"72.69,148.82 72.69,145.51 79.44,145.51 79.44,152.13 72.69,152.13 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"79.3,145.45 85.98,145.45 85.98,149.81 85.81,150.7 85.31,151.45 84.56,151.95 83.67,152.13 79.3,152.13 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,145.45 99.21,145.45 99.21,149.81 99.04,150.7 98.53,151.45 97.78,151.95 96.9,152.13 94.91,152.13 94.03,151.95 93.28,151.45 92.77,150.7 92.6,149.81 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,145.45 119.06,145.45 119.06,149.81 118.88,150.7 118.38,151.45 117.63,151.95 116.74,152.13 114.76,152.13 113.87,151.95 113.12,151.45 112.62,150.7 112.44,149.81 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,145.45 138.9,145.45 138.9,149.81 138.72,150.7 138.22,151.45 137.47,151.95 136.58,152.13 134.6,152.13 133.71,151.95 132.96,151.45 132.46,150.7 132.28,149.81 \"\r\n          style=\"fill:url(#gradient05b39589f89a4da0bb06028c8be76a2c);\"\r\n        />\r\n      `,\r\n    },\r\n    {\r\n      value: 5,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(255,255,255,0);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientf0e64991fd9b47eea35449bc92624707\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"13.2283458709717\"\r\n            y1=\"82.6771602630615\"\r\n            x2=\"152.125974655151\"\r\n            y2=\"82.6771602630615\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#BF00B2\" />\r\n            <stop offset=\"100%\" stop-color=\"#C10040\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,29.76 13.55,26.54 14.49,23.44 16.02,20.58 18.07,18.07 20.58,16.02 23.44,14.49 26.54,13.55 29.76,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,29.76 19.84,29.76 19.84,52.91 52.91,52.91 52.91,19.84 29.76,19.84 27.2,20.18 24.8,21.17 22.75,22.75 21.17,24.8 20.18,27.2 19.84,29.76 \"\r\n            style=\"fill:url(#gradientf0e64991fd9b47eea35449bc92624707);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,122.36 13.23,105.83 59.53,105.83 59.53,152.13 29.76,152.13 26.54,151.81 23.44,150.87 20.58,149.34 18.07,147.28 16.02,144.78 14.49,141.92 13.55,138.82 13.23,135.59 13.23,122.36 19.84,122.36 19.84,135.59 20.18,138.16 21.17,140.55 22.75,142.61 24.8,144.18 27.2,145.17 29.76,145.51 52.91,145.51 52.91,112.44 19.84,112.44 19.84,122.36 \"\r\n            style=\"fill:url(#gradientf0e64991fd9b47eea35449bc92624707);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,29.76 105.83,13.23 135.59,13.23 138.82,13.55 141.92,14.49 144.78,16.02 147.28,18.07 149.34,20.58 150.87,23.44 151.81,26.54 152.13,29.76 152.13,59.53 105.83,59.53 105.83,29.76 112.44,29.76 112.44,52.91 145.51,52.91 145.51,29.76 145.17,27.2 144.18,24.8 142.61,22.75 140.55,21.17 138.16,20.18 135.59,19.84 112.44,19.84 112.44,29.76 \"\r\n            style=\"fill:url(#gradientf0e64991fd9b47eea35449bc92624707);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,36.38 46.11,38.31 45.54,40.17 44.63,41.89 43.39,43.39 41.89,44.63 40.17,45.54 38.31,46.11 36.38,46.3 34.44,46.11 32.58,45.54 30.87,44.63 29.36,43.39 28.13,41.89 27.21,40.17 26.65,38.31 26.46,36.38 26.65,34.44 27.21,32.58 28.13,30.87 29.36,29.36 30.87,28.13 32.58,27.21 34.44,26.65 36.38,26.46 38.31,26.65 40.17,27.21 41.89,28.13 43.39,29.36 44.63,30.87 45.54,32.58 46.11,34.44 46.3,36.38 \"\r\n            style=\"fill:rgba(12,172,172,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,128.98 46.11,130.91 45.54,132.77 44.63,134.49 43.39,135.99 41.89,137.23 40.17,138.14 38.31,138.71 36.38,138.9 34.44,138.71 32.58,138.14 30.87,137.23 29.36,135.99 28.13,134.49 27.21,132.77 26.65,130.91 26.46,128.98 26.65,127.04 27.21,125.18 28.13,123.46 29.36,121.96 30.87,120.73 32.58,119.81 34.44,119.25 36.38,119.06 38.31,119.25 40.17,119.81 41.89,120.73 43.39,121.96 44.63,123.46 45.54,125.18 46.11,127.04 46.3,128.98 \"\r\n            style=\"fill:rgba(12,172,172,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,36.38 138.71,38.31 138.14,40.17 137.23,41.89 135.99,43.39 134.49,44.63 132.77,45.54 130.91,46.11 128.98,46.3 127.04,46.11 125.18,45.54 123.46,44.63 121.96,43.39 120.73,41.89 119.81,40.17 119.25,38.31 119.06,36.38 119.25,34.44 119.81,32.58 120.73,30.87 121.96,29.36 123.46,28.13 125.18,27.21 127.04,26.65 128.98,26.46 130.91,26.65 132.77,27.21 134.49,28.13 135.99,29.36 137.23,30.87 138.14,32.58 138.71,34.44 138.9,36.38 \"\r\n            style=\"fill:rgba(12,172,172,1);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientb004c9109356453aa8a2d004f73d3db2\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"10.4830545936657\"\r\n            y1=\"78.893629314992\"\r\n            x2=\"154.871269747155\"\r\n            y2=\"86.4606950258283\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#B80508\" />\r\n            <stop offset=\"50%\" stop-color=\"#307585\" />\r\n            <stop offset=\"100%\" stop-color=\"#B80508\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"16.54,72.09 15.52,71.89 14.66,71.32 14.09,70.46 13.89,69.45 14.09,68.44 14.66,67.58 15.52,67 16.54,66.8 42.99,66.8 44,67 44.86,67.58 45.44,68.44 45.64,69.45 45.44,70.46 44.86,71.32 44,71.89 42.99,72.09 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"56.22,72.09 55.21,71.89 54.35,71.32 53.78,70.46 53.57,69.45 53.78,68.44 54.35,67.58 55.21,67 56.22,66.8 69.45,66.8 70.46,67 71.32,67.58 71.89,68.44 72.09,69.45 71.89,70.46 71.32,71.32 70.46,71.89 69.45,72.09 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"102.52,72.09 101.51,71.89 100.65,71.32 100.08,70.46 99.87,69.45 100.08,68.44 100.65,67.58 101.51,67 102.52,66.8 102.52,66.8 103.53,67 104.39,67.58 104.96,68.44 105.17,69.45 104.96,70.46 104.39,71.32 103.53,71.89 102.52,72.09 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,72.09 114.74,71.89 113.88,71.32 113.3,70.46 113.1,69.45 113.3,68.44 113.88,67.58 114.74,67 115.75,66.8 115.75,66.8 116.76,67 117.62,67.58 118.19,68.44 118.39,69.45 118.19,70.46 117.62,71.32 116.76,71.89 115.75,72.09 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,72.09 127.96,71.89 127.11,71.32 126.53,70.46 126.33,69.45 126.53,68.44 127.11,67.58 127.96,67 128.98,66.8 128.98,66.8 129.99,67 130.85,67.58 131.42,68.44 131.62,69.45 131.42,70.46 130.85,71.32 129.99,71.89 128.98,72.09 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"142.2,72.09 141.19,71.89 140.33,71.32 139.76,70.46 139.56,69.45 139.76,68.44 140.33,67.58 141.19,67 142.2,66.8 142.2,66.8 143.22,67 144.08,67.58 144.65,68.44 144.85,69.45 144.65,70.46 144.08,71.32 143.22,71.89 142.2,72.09 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"16.54,78.71 15.52,78.51 14.66,77.93 14.09,77.08 13.89,76.06 14.09,75.05 14.66,74.19 15.52,73.62 16.54,73.42 29.76,73.42 30.78,73.62 31.63,74.19 32.21,75.05 32.41,76.06 32.21,77.08 31.63,77.93 30.78,78.51 29.76,78.71 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"49.61,78.71 48.59,78.51 47.74,77.93 47.16,77.08 46.96,76.06 47.16,75.05 47.74,74.19 48.59,73.62 49.61,73.42 49.61,73.42 50.62,73.62 51.48,74.19 52.05,75.05 52.25,76.06 52.05,77.08 51.48,77.93 50.62,78.51 49.61,78.71 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"62.83,78.71 61.82,78.51 60.96,77.93 60.39,77.08 60.19,76.06 60.39,75.05 60.96,74.19 61.82,73.62 62.83,73.42 62.83,73.42 63.85,73.62 64.71,74.19 65.28,75.05 65.48,76.06 65.28,77.08 64.71,77.93 63.85,78.51 62.83,78.71 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,78.71 75.05,78.51 74.19,77.93 73.62,77.08 73.42,76.06 73.62,75.05 74.19,74.19 75.05,73.62 76.06,73.42 76.06,73.42 77.08,73.62 77.93,74.19 78.51,75.05 78.71,76.06 78.51,77.08 77.93,77.93 77.08,78.51 76.06,78.71 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,78.71 88.28,78.51 87.42,77.93 86.85,77.08 86.65,76.06 86.85,75.05 87.42,74.19 88.28,73.62 89.29,73.42 109.13,73.42 110.15,73.62 111,74.19 111.58,75.05 111.78,76.06 111.58,77.08 111,77.93 110.15,78.51 109.13,78.71 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,78.71 127.96,78.51 127.11,77.93 126.53,77.08 126.33,76.06 126.53,75.05 127.11,74.19 127.96,73.62 128.98,73.42 148.82,73.42 149.83,73.62 150.69,74.19 151.26,75.05 151.46,76.06 151.26,77.08 150.69,77.93 149.83,78.51 148.82,78.71 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"29.76,85.32 28.75,85.12 27.89,84.55 27.32,83.69 27.12,82.68 27.32,81.66 27.89,80.81 28.75,80.23 29.76,80.03 29.76,80.03 30.78,80.23 31.63,80.81 32.21,81.66 32.41,82.68 32.21,83.69 31.63,84.55 30.78,85.12 29.76,85.32 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"42.99,85.32 41.98,85.12 41.12,84.55 40.55,83.69 40.35,82.68 40.55,81.66 41.12,80.81 41.98,80.23 42.99,80.03 56.22,80.03 57.23,80.23 58.09,80.81 58.66,81.66 58.87,82.68 58.66,83.69 58.09,84.55 57.23,85.12 56.22,85.32 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,85.32 68.44,85.12 67.58,84.55 67,83.69 66.8,82.68 67,81.66 67.58,80.81 68.44,80.23 69.45,80.03 76.06,80.03 77.08,80.23 77.93,80.81 78.51,81.66 78.71,82.68 78.51,83.69 77.93,84.55 77.08,85.12 76.06,85.32 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,85.32 94.89,85.12 94.03,84.55 93.46,83.69 93.26,82.68 93.46,81.66 94.03,80.81 94.89,80.23 95.91,80.03 95.91,80.03 96.92,80.23 97.78,80.81 98.35,81.66 98.55,82.68 98.35,83.69 97.78,84.55 96.92,85.12 95.91,85.32 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"109.13,85.32 108.12,85.12 107.26,84.55 106.69,83.69 106.49,82.68 106.69,81.66 107.26,80.81 108.12,80.23 109.13,80.03 115.75,80.03 116.76,80.23 117.62,80.81 118.19,81.66 118.39,82.68 118.19,83.69 117.62,84.55 116.76,85.12 115.75,85.32 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,85.32 127.96,85.12 127.11,84.55 126.53,83.69 126.33,82.68 126.53,81.66 127.11,80.81 127.96,80.23 128.98,80.03 128.98,80.03 129.99,80.23 130.85,80.81 131.42,81.66 131.62,82.68 131.42,83.69 130.85,84.55 129.99,85.12 128.98,85.32 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"148.82,85.32 147.81,85.12 146.95,84.55 146.37,83.69 146.17,82.68 146.37,81.66 146.95,80.81 147.81,80.23 148.82,80.03 148.82,80.03 149.83,80.23 150.69,80.81 151.26,81.66 151.46,82.68 151.26,83.69 150.69,84.55 149.83,85.12 148.82,85.32 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"16.54,91.94 15.52,91.74 14.66,91.16 14.09,90.3 13.89,89.29 14.09,88.28 14.66,87.42 15.52,86.85 16.54,86.65 16.54,86.65 17.55,86.85 18.41,87.42 18.98,88.28 19.18,89.29 18.98,90.3 18.41,91.16 17.55,91.74 16.54,91.94 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"36.38,91.94 35.37,91.74 34.51,91.16 33.93,90.3 33.73,89.29 33.93,88.28 34.51,87.42 35.37,86.85 36.38,86.65 36.38,86.65 37.39,86.85 38.25,87.42 38.82,88.28 39.02,89.29 38.82,90.3 38.25,91.16 37.39,91.74 36.38,91.94 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,91.94 88.28,91.74 87.42,91.16 86.85,90.3 86.65,89.29 86.85,88.28 87.42,87.42 88.28,86.85 89.29,86.65 109.13,86.65 110.15,86.85 111,87.42 111.58,88.28 111.78,89.29 111.58,90.3 111,91.16 110.15,91.74 109.13,91.94 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,91.94 134.58,91.74 133.72,91.16 133.15,90.3 132.94,89.29 133.15,88.28 133.72,87.42 134.58,86.85 135.59,86.65 148.82,86.65 149.83,86.85 150.69,87.42 151.26,88.28 151.46,89.29 151.26,90.3 150.69,91.16 149.83,91.74 148.82,91.94 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"23.15,98.55 22.14,98.35 21.28,97.78 20.71,96.92 20.5,95.91 20.71,94.89 21.28,94.03 22.14,93.46 23.15,93.26 23.15,93.26 24.16,93.46 25.02,94.03 25.59,94.89 25.8,95.91 25.59,96.92 25.02,97.78 24.16,98.35 23.15,98.55 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"36.38,98.55 35.37,98.35 34.51,97.78 33.93,96.92 33.73,95.91 33.93,94.89 34.51,94.03 35.37,93.46 36.38,93.26 42.99,93.26 44,93.46 44.86,94.03 45.44,94.89 45.64,95.91 45.44,96.92 44.86,97.78 44,98.35 42.99,98.55 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"56.22,98.55 55.21,98.35 54.35,97.78 53.78,96.92 53.57,95.91 53.78,94.89 54.35,94.03 55.21,93.46 56.22,93.26 56.22,93.26 57.23,93.46 58.09,94.03 58.66,94.89 58.87,95.91 58.66,96.92 58.09,97.78 57.23,98.35 56.22,98.55 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,98.55 68.44,98.35 67.58,97.78 67,96.92 66.8,95.91 67,94.89 67.58,94.03 68.44,93.46 69.45,93.26 69.45,93.26 70.46,93.46 71.32,94.03 71.89,94.89 72.09,95.91 71.89,96.92 71.32,97.78 70.46,98.35 69.45,98.55 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,98.55 94.89,98.35 94.03,97.78 93.46,96.92 93.26,95.91 93.46,94.89 94.03,94.03 94.89,93.46 95.91,93.26 95.91,93.26 96.92,93.46 97.78,94.03 98.35,94.89 98.55,95.91 98.35,96.92 97.78,97.78 96.92,98.35 95.91,98.55 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,98.55 114.74,98.35 113.88,97.78 113.3,96.92 113.1,95.91 113.3,94.89 113.88,94.03 114.74,93.46 115.75,93.26 115.75,93.26 116.76,93.46 117.62,94.03 118.19,94.89 118.39,95.91 118.19,96.92 117.62,97.78 116.76,98.35 115.75,98.55 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"142.2,98.55 141.19,98.35 140.33,97.78 139.76,96.92 139.56,95.91 139.76,94.89 140.33,94.03 141.19,93.46 142.2,93.26 142.2,93.26 143.22,93.46 144.08,94.03 144.65,94.89 144.85,95.91 144.65,96.92 144.08,97.78 143.22,98.35 142.2,98.55 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,105.17 114.74,104.96 113.88,104.39 113.3,103.53 113.1,102.52 113.3,101.51 113.88,100.65 114.74,100.08 115.75,99.87 115.75,99.87 116.76,100.08 117.62,100.65 118.19,101.51 118.39,102.52 118.19,103.53 117.62,104.39 116.76,104.96 115.75,105.17 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,105.17 134.58,104.96 133.72,104.39 133.15,103.53 132.94,102.52 133.15,101.51 133.72,100.65 134.58,100.08 135.59,99.87 135.59,99.87 136.6,100.08 137.46,100.65 138.03,101.51 138.24,102.52 138.03,103.53 137.46,104.39 136.6,104.96 135.59,105.17 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"122.36,111.78 121.35,111.58 120.49,111 119.92,110.15 119.72,109.13 119.92,108.12 120.49,107.26 121.35,106.69 122.36,106.49 128.98,106.49 129.99,106.69 130.85,107.26 131.42,108.12 131.62,109.13 131.42,110.15 130.85,111 129.99,111.58 128.98,111.78 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"142.2,111.78 141.19,111.58 140.33,111 139.76,110.15 139.56,109.13 139.76,108.12 140.33,107.26 141.19,106.69 142.2,106.49 148.82,106.49 149.83,106.69 150.69,107.26 151.26,108.12 151.46,109.13 151.26,110.15 150.69,111 149.83,111.58 148.82,111.78 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,118.39 114.74,118.19 113.88,117.62 113.3,116.76 113.1,115.75 113.3,114.74 113.88,113.88 114.74,113.3 115.75,113.1 122.36,113.1 123.37,113.3 124.23,113.88 124.81,114.74 125.01,115.75 124.81,116.76 124.23,117.62 123.37,118.19 122.36,118.39 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,118.39 134.58,118.19 133.72,117.62 133.15,116.76 132.94,115.75 133.15,114.74 133.72,113.88 134.58,113.3 135.59,113.1 135.59,113.1 136.6,113.3 137.46,113.88 138.03,114.74 138.24,115.75 138.03,116.76 137.46,117.62 136.6,118.19 135.59,118.39 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"148.82,118.39 147.81,118.19 146.95,117.62 146.37,116.76 146.17,115.75 146.37,114.74 146.95,113.88 147.81,113.3 148.82,113.1 148.82,113.1 149.83,113.3 150.69,113.88 151.26,114.74 151.46,115.75 151.26,116.76 150.69,117.62 149.83,118.19 148.82,118.39 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"122.36,125.01 121.35,124.81 120.49,124.23 119.92,123.37 119.72,122.36 119.92,121.35 120.49,120.49 121.35,119.92 122.36,119.72 135.59,119.72 136.6,119.92 137.46,120.49 138.03,121.35 138.24,122.36 138.03,123.37 137.46,124.23 136.6,124.81 135.59,125.01 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,131.62 127.96,131.42 127.11,130.85 126.53,129.99 126.33,128.98 126.53,127.96 127.11,127.11 127.96,126.53 128.98,126.33 135.59,126.33 136.6,126.53 137.46,127.11 138.03,127.96 138.24,128.98 138.03,129.99 137.46,130.85 136.6,131.42 135.59,131.62 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,138.24 134.58,138.03 133.72,137.46 133.15,136.6 132.94,135.59 133.15,134.58 133.72,133.72 134.58,133.15 135.59,132.94 135.59,132.94 136.6,133.15 137.46,133.72 138.03,134.58 138.24,135.59 138.03,136.6 137.46,137.46 136.6,138.03 135.59,138.24 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"142.2,144.85 141.19,144.65 140.33,144.08 139.76,143.22 139.56,142.2 139.76,141.19 140.33,140.33 141.19,139.76 142.2,139.56 142.2,139.56 143.22,139.76 144.08,140.33 144.65,141.19 144.85,142.2 144.65,143.22 144.08,144.08 143.22,144.65 142.2,144.85 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,23.15 67,22.14 67.58,21.28 68.44,20.71 69.45,20.5 70.46,20.71 71.32,21.28 71.89,22.14 72.09,23.15 72.09,23.15 71.89,24.16 71.32,25.02 70.46,25.59 69.45,25.8 68.44,25.59 67.58,25.02 67,24.16 66.8,23.15 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,36.38 67,35.37 67.58,34.51 68.44,33.93 69.45,33.73 70.46,33.93 71.32,34.51 71.89,35.37 72.09,36.38 72.09,36.38 71.89,37.39 71.32,38.25 70.46,38.82 69.45,39.02 68.44,38.82 67.58,38.25 67,37.39 66.8,36.38 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,49.61 67,48.59 67.58,47.74 68.44,47.16 69.45,46.96 70.46,47.16 71.32,47.74 71.89,48.59 72.09,49.61 72.09,56.22 71.89,57.23 71.32,58.09 70.46,58.66 69.45,58.87 68.44,58.66 67.58,58.09 67,57.23 66.8,56.22 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,95.91 67,94.89 67.58,94.03 68.44,93.46 69.45,93.26 70.46,93.46 71.32,94.03 71.89,94.89 72.09,95.91 72.09,109.13 71.89,110.15 71.32,111 70.46,111.58 69.45,111.78 68.44,111.58 67.58,111 67,110.15 66.8,109.13 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,122.36 67,121.35 67.58,120.49 68.44,119.92 69.45,119.72 70.46,119.92 71.32,120.49 71.89,121.35 72.09,122.36 72.09,148.82 71.89,149.83 71.32,150.69 70.46,151.26 69.45,151.46 68.44,151.26 67.58,150.69 67,149.83 66.8,148.82 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,23.15 73.62,22.14 74.19,21.28 75.05,20.71 76.06,20.5 77.08,20.71 77.93,21.28 78.51,22.14 78.71,23.15 78.71,23.15 78.51,24.16 77.93,25.02 77.08,25.59 76.06,25.8 75.05,25.59 74.19,25.02 73.62,24.16 73.42,23.15 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,36.38 73.62,35.37 74.19,34.51 75.05,33.93 76.06,33.73 77.08,33.93 77.93,34.51 78.51,35.37 78.71,36.38 78.71,42.99 78.51,44 77.93,44.86 77.08,45.44 76.06,45.64 75.05,45.44 74.19,44.86 73.62,44 73.42,42.99 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,62.83 73.62,61.82 74.19,60.96 75.05,60.39 76.06,60.19 77.08,60.39 77.93,60.96 78.51,61.82 78.71,62.83 78.71,62.83 78.51,63.85 77.93,64.71 77.08,65.28 76.06,65.48 75.05,65.28 74.19,64.71 73.62,63.85 73.42,62.83 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,95.91 73.62,94.89 74.19,94.03 75.05,93.46 76.06,93.26 77.08,93.46 77.93,94.03 78.51,94.89 78.71,95.91 78.71,95.91 78.51,96.92 77.93,97.78 77.08,98.35 76.06,98.55 75.05,98.35 74.19,97.78 73.62,96.92 73.42,95.91 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,115.75 73.62,114.74 74.19,113.88 75.05,113.3 76.06,113.1 77.08,113.3 77.93,113.88 78.51,114.74 78.71,115.75 78.71,135.59 78.51,136.6 77.93,137.46 77.08,138.03 76.06,138.24 75.05,138.03 74.19,137.46 73.62,136.6 73.42,135.59 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,148.82 73.62,147.81 74.19,146.95 75.05,146.37 76.06,146.17 77.08,146.37 77.93,146.95 78.51,147.81 78.71,148.82 78.71,148.82 78.51,149.83 77.93,150.69 77.08,151.26 76.06,151.46 75.05,151.26 74.19,150.69 73.62,149.83 73.42,148.82 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,16.54 80.23,15.52 80.81,14.66 81.66,14.09 82.68,13.89 83.69,14.09 84.55,14.66 85.12,15.52 85.32,16.54 85.32,29.76 85.12,30.78 84.55,31.63 83.69,32.21 82.68,32.41 81.66,32.21 80.81,31.63 80.23,30.78 80.03,29.76 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,56.22 80.23,55.21 80.81,54.35 81.66,53.78 82.68,53.57 83.69,53.78 84.55,54.35 85.12,55.21 85.32,56.22 85.32,56.22 85.12,57.23 84.55,58.09 83.69,58.66 82.68,58.87 81.66,58.66 80.81,58.09 80.23,57.23 80.03,56.22 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,102.52 80.23,101.51 80.81,100.65 81.66,100.08 82.68,99.87 83.69,100.08 84.55,100.65 85.12,101.51 85.32,102.52 85.32,102.52 85.12,103.53 84.55,104.39 83.69,104.96 82.68,105.17 81.66,104.96 80.81,104.39 80.23,103.53 80.03,102.52 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,115.75 80.23,114.74 80.81,113.88 81.66,113.3 82.68,113.1 83.69,113.3 84.55,113.88 85.12,114.74 85.32,115.75 85.32,122.36 85.12,123.37 84.55,124.23 83.69,124.81 82.68,125.01 81.66,124.81 80.81,124.23 80.23,123.37 80.03,122.36 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,142.2 80.23,141.19 80.81,140.33 81.66,139.76 82.68,139.56 83.69,139.76 84.55,140.33 85.12,141.19 85.32,142.2 85.32,148.82 85.12,149.83 84.55,150.69 83.69,151.26 82.68,151.46 81.66,151.26 80.81,150.69 80.23,149.83 80.03,148.82 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,16.54 86.85,15.52 87.42,14.66 88.28,14.09 89.29,13.89 90.3,14.09 91.16,14.66 91.74,15.52 91.94,16.54 91.94,16.54 91.74,17.55 91.16,18.41 90.3,18.98 89.29,19.18 88.28,18.98 87.42,18.41 86.85,17.55 86.65,16.54 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,29.76 86.85,28.75 87.42,27.89 88.28,27.32 89.29,27.12 90.3,27.32 91.16,27.89 91.74,28.75 91.94,29.76 91.94,29.76 91.74,30.78 91.16,31.63 90.3,32.21 89.29,32.41 88.28,32.21 87.42,31.63 86.85,30.78 86.65,29.76 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,49.61 86.85,48.59 87.42,47.74 88.28,47.16 89.29,46.96 90.3,47.16 91.16,47.74 91.74,48.59 91.94,49.61 91.94,49.61 91.74,50.62 91.16,51.48 90.3,52.05 89.29,52.25 88.28,52.05 87.42,51.48 86.85,50.62 86.65,49.61 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,69.45 86.85,68.44 87.42,67.58 88.28,67 89.29,66.8 90.3,67 91.16,67.58 91.74,68.44 91.94,69.45 91.94,69.45 91.74,70.46 91.16,71.32 90.3,71.89 89.29,72.09 88.28,71.89 87.42,71.32 86.85,70.46 86.65,69.45 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,89.29 86.85,88.28 87.42,87.42 88.28,86.85 89.29,86.65 90.3,86.85 91.16,87.42 91.74,88.28 91.94,89.29 91.94,89.29 91.74,90.3 91.16,91.16 90.3,91.74 89.29,91.94 88.28,91.74 87.42,91.16 86.85,90.3 86.65,89.29 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,109.13 86.85,108.12 87.42,107.26 88.28,106.69 89.29,106.49 90.3,106.69 91.16,107.26 91.74,108.12 91.94,109.13 91.94,109.13 91.74,110.15 91.16,111 90.3,111.58 89.29,111.78 88.28,111.58 87.42,111 86.85,110.15 86.65,109.13 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,122.36 86.85,121.35 87.42,120.49 88.28,119.92 89.29,119.72 90.3,119.92 91.16,120.49 91.74,121.35 91.94,122.36 91.94,128.98 91.74,129.99 91.16,130.85 90.3,131.42 89.29,131.62 88.28,131.42 87.42,130.85 86.85,129.99 86.65,128.98 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,142.2 86.85,141.19 87.42,140.33 88.28,139.76 89.29,139.56 90.3,139.76 91.16,140.33 91.74,141.19 91.94,142.2 91.94,142.2 91.74,143.22 91.16,144.08 90.3,144.65 89.29,144.85 88.28,144.65 87.42,144.08 86.85,143.22 86.65,142.2 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,16.54 93.46,15.52 94.03,14.66 94.89,14.09 95.91,13.89 96.92,14.09 97.78,14.66 98.35,15.52 98.55,16.54 98.55,42.99 98.35,44 97.78,44.86 96.92,45.44 95.91,45.64 94.89,45.44 94.03,44.86 93.46,44 93.26,42.99 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,56.22 93.46,55.21 94.03,54.35 94.89,53.78 95.91,53.57 96.92,53.78 97.78,54.35 98.35,55.21 98.55,56.22 98.55,56.22 98.35,57.23 97.78,58.09 96.92,58.66 95.91,58.87 94.89,58.66 94.03,58.09 93.46,57.23 93.26,56.22 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,95.91 93.46,94.89 94.03,94.03 94.89,93.46 95.91,93.26 96.92,93.46 97.78,94.03 98.35,94.89 98.55,95.91 98.55,102.52 98.35,103.53 97.78,104.39 96.92,104.96 95.91,105.17 94.89,104.96 94.03,104.39 93.46,103.53 93.26,102.52 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,128.98 93.46,127.96 94.03,127.11 94.89,126.53 95.91,126.33 96.92,126.53 97.78,127.11 98.35,127.96 98.55,128.98 98.55,148.82 98.35,149.83 97.78,150.69 96.92,151.26 95.91,151.46 94.89,151.26 94.03,150.69 93.46,149.83 93.26,148.82 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,109.13 100.08,108.12 100.65,107.26 101.51,106.69 102.52,106.49 103.53,106.69 104.39,107.26 104.96,108.12 105.17,109.13 105.17,109.13 104.96,110.15 104.39,111 103.53,111.58 102.52,111.78 101.51,111.58 100.65,111 100.08,110.15 99.87,109.13 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,122.36 100.08,121.35 100.65,120.49 101.51,119.92 102.52,119.72 103.53,119.92 104.39,120.49 104.96,121.35 105.17,122.36 105.17,128.98 104.96,129.99 104.39,130.85 103.53,131.42 102.52,131.62 101.51,131.42 100.65,130.85 100.08,129.99 99.87,128.98 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,142.2 100.08,141.19 100.65,140.33 101.51,139.76 102.52,139.56 103.53,139.76 104.39,140.33 104.96,141.19 105.17,142.2 105.17,142.2 104.96,143.22 104.39,144.08 103.53,144.65 102.52,144.85 101.51,144.65 100.65,144.08 100.08,143.22 99.87,142.2 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"106.49,128.98 106.69,127.96 107.26,127.11 108.12,126.53 109.13,126.33 110.15,126.53 111,127.11 111.58,127.96 111.78,128.98 111.78,142.2 111.58,143.22 111,144.08 110.15,144.65 109.13,144.85 108.12,144.65 107.26,144.08 106.69,143.22 106.49,142.2 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,115.75 113.3,114.74 113.88,113.88 114.74,113.3 115.75,113.1 116.76,113.3 117.62,113.88 118.19,114.74 118.39,115.75 118.39,115.75 118.19,116.76 117.62,117.62 116.76,118.19 115.75,118.39 114.74,118.19 113.88,117.62 113.3,116.76 113.1,115.75 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,128.98 113.3,127.96 113.88,127.11 114.74,126.53 115.75,126.33 116.76,126.53 117.62,127.11 118.19,127.96 118.39,128.98 118.39,148.82 118.19,149.83 117.62,150.69 116.76,151.26 115.75,151.46 114.74,151.26 113.88,150.69 113.3,149.83 113.1,148.82 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"119.72,122.36 119.92,121.35 120.49,120.49 121.35,119.92 122.36,119.72 123.37,119.92 124.23,120.49 124.81,121.35 125.01,122.36 125.01,122.36 124.81,123.37 124.23,124.23 123.37,124.81 122.36,125.01 121.35,124.81 120.49,124.23 119.92,123.37 119.72,122.36 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"119.72,142.2 119.92,141.19 120.49,140.33 121.35,139.76 122.36,139.56 123.37,139.76 124.23,140.33 124.81,141.19 125.01,142.2 125.01,142.2 124.81,143.22 124.23,144.08 123.37,144.65 122.36,144.85 121.35,144.65 120.49,144.08 119.92,143.22 119.72,142.2 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,128.98 126.53,127.96 127.11,127.11 127.96,126.53 128.98,126.33 129.99,126.53 130.85,127.11 131.42,127.96 131.62,128.98 131.62,135.59 131.42,136.6 130.85,137.46 129.99,138.03 128.98,138.24 127.96,138.03 127.11,137.46 126.53,136.6 126.33,135.59 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,135.59 133.15,134.58 133.72,133.72 134.58,133.15 135.59,132.94 136.6,133.15 137.46,133.72 138.03,134.58 138.24,135.59 138.24,148.82 138.03,149.83 137.46,150.69 136.6,151.26 135.59,151.46 134.58,151.26 133.72,150.69 133.15,149.83 132.94,148.82 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,142.2 139.76,141.19 140.33,140.33 141.19,139.76 142.2,139.56 143.22,139.76 144.08,140.33 144.65,141.19 144.85,142.2 144.85,142.2 144.65,143.22 144.08,144.08 143.22,144.65 142.2,144.85 141.19,144.65 140.33,144.08 139.76,143.22 139.56,142.2 \"\r\n            style=\"fill:url(#gradientb004c9109356453aa8a2d004f73d3db2);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 6,\r\n      innerHtml: `\r\n      <rect\r\n          x=\"0\"\r\n          y=\"0\"\r\n          width=\"165.3543\"\r\n          height=\"165.3543\"\r\n          fill=\"red\"\r\n          style=\"fill:rgba(255,255,255,0);\"\r\n          shape-rendering=\"crispEdges\"\r\n        />\r\n        <linearGradient\r\n          id=\"gradient0a63a848c18243f2af2c33edde29962a\"\r\n          gradientUnits=\"userSpaceOnUse\"\r\n          x1=\"4.19744738555816\"\r\n          y1=\"70.2471948621279\"\r\n          x2=\"161.156873140565\"\r\n          y2=\"95.1071256639952\"\r\n        >\r\n          <stop offset=\"0%\" stop-color=\"#B301A6\" />\r\n          <stop offset=\"80%\" stop-color=\"#31351C\" />\r\n          <stop offset=\"100%\" stop-color=\"#B301A6\" />\r\n        </linearGradient>\r\n        <polygon\r\n          points=\"19.84,16.54 19.59,17.8 18.87,18.87 17.8,19.59 16.54,19.84 15.27,19.59 14.2,18.87 13.48,17.8 13.23,16.54 13.48,15.27 14.2,14.2 15.27,13.48 16.54,13.23 17.8,13.48 18.87,14.2 19.59,15.27 19.84,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,56.22 19.59,57.49 18.87,58.56 17.8,59.28 16.54,59.53 15.27,59.28 14.2,58.56 13.48,57.49 13.23,56.22 13.48,54.95 14.2,53.88 15.27,53.17 16.54,52.91 17.8,53.17 18.87,53.88 19.59,54.95 19.84,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,16.54 26.2,17.8 25.49,18.87 24.42,19.59 23.15,19.84 21.88,19.59 20.81,18.87 20.09,17.8 19.84,16.54 20.09,15.27 20.81,14.2 21.88,13.48 23.15,13.23 24.42,13.48 25.49,14.2 26.2,15.27 26.46,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,56.22 26.2,57.49 25.49,58.56 24.42,59.28 23.15,59.53 21.88,59.28 20.81,58.56 20.09,57.49 19.84,56.22 20.09,54.95 20.81,53.88 21.88,53.17 23.15,52.91 24.42,53.17 25.49,53.88 26.2,54.95 26.46,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,16.54 32.82,17.8 32.1,18.87 31.03,19.59 29.76,19.84 28.5,19.59 27.43,18.87 26.71,17.8 26.46,16.54 26.71,15.27 27.43,14.2 28.5,13.48 29.76,13.23 31.03,13.48 32.1,14.2 32.82,15.27 33.07,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,56.22 32.82,57.49 32.1,58.56 31.03,59.28 29.76,59.53 28.5,59.28 27.43,58.56 26.71,57.49 26.46,56.22 26.71,54.95 27.43,53.88 28.5,53.17 29.76,52.91 31.03,53.17 32.1,53.88 32.82,54.95 33.07,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,16.54 39.43,17.8 38.72,18.87 37.64,19.59 36.38,19.84 35.11,19.59 34.04,18.87 33.32,17.8 33.07,16.54 33.32,15.27 34.04,14.2 35.11,13.48 36.38,13.23 37.64,13.48 38.72,14.2 39.43,15.27 39.69,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,56.22 39.43,57.49 38.72,58.56 37.64,59.28 36.38,59.53 35.11,59.28 34.04,58.56 33.32,57.49 33.07,56.22 33.32,54.95 34.04,53.88 35.11,53.17 36.38,52.91 37.64,53.17 38.72,53.88 39.43,54.95 39.69,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,16.54 46.05,17.8 45.33,18.87 44.26,19.59 42.99,19.84 41.73,19.59 40.65,18.87 39.94,17.8 39.69,16.54 39.94,15.27 40.65,14.2 41.73,13.48 42.99,13.23 44.26,13.48 45.33,14.2 46.05,15.27 46.3,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,56.22 46.05,57.49 45.33,58.56 44.26,59.28 42.99,59.53 41.73,59.28 40.65,58.56 39.94,57.49 39.69,56.22 39.94,54.95 40.65,53.88 41.73,53.17 42.99,52.91 44.26,53.17 45.33,53.88 46.05,54.95 46.3,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"52.91,16.54 52.66,17.8 51.94,18.87 50.87,19.59 49.61,19.84 48.34,19.59 47.27,18.87 46.55,17.8 46.3,16.54 46.55,15.27 47.27,14.2 48.34,13.48 49.61,13.23 50.87,13.48 51.94,14.2 52.66,15.27 52.91,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"52.91,56.22 52.66,57.49 51.94,58.56 50.87,59.28 49.61,59.53 48.34,59.28 47.27,58.56 46.55,57.49 46.3,56.22 46.55,54.95 47.27,53.88 48.34,53.17 49.61,52.91 50.87,53.17 51.94,53.88 52.66,54.95 52.91,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,16.54 59.28,17.8 58.56,18.87 57.49,19.59 56.22,19.84 54.95,19.59 53.88,18.87 53.17,17.8 52.91,16.54 53.17,15.27 53.88,14.2 54.95,13.48 56.22,13.23 57.49,13.48 58.56,14.2 59.28,15.27 59.53,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,56.22 59.28,57.49 58.56,58.56 57.49,59.28 56.22,59.53 54.95,59.28 53.88,58.56 53.17,57.49 52.91,56.22 53.17,54.95 53.88,53.88 54.95,53.17 56.22,52.91 57.49,53.17 58.56,53.88 59.28,54.95 59.53,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,23.15 19.59,24.42 18.87,25.49 17.8,26.2 16.54,26.46 15.27,26.2 14.2,25.49 13.48,24.42 13.23,23.15 13.48,21.88 14.2,20.81 15.27,20.09 16.54,19.84 17.8,20.09 18.87,20.81 19.59,21.88 19.84,23.15 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,23.15 59.28,24.42 58.56,25.49 57.49,26.2 56.22,26.46 54.95,26.2 53.88,25.49 53.17,24.42 52.91,23.15 53.17,21.88 53.88,20.81 54.95,20.09 56.22,19.84 57.49,20.09 58.56,20.81 59.28,21.88 59.53,23.15 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,29.76 19.59,31.03 18.87,32.1 17.8,32.82 16.54,33.07 15.27,32.82 14.2,32.1 13.48,31.03 13.23,29.76 13.48,28.5 14.2,27.43 15.27,26.71 16.54,26.46 17.8,26.71 18.87,27.43 19.59,28.5 19.84,29.76 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,29.76 59.28,31.03 58.56,32.1 57.49,32.82 56.22,33.07 54.95,32.82 53.88,32.1 53.17,31.03 52.91,29.76 53.17,28.5 53.88,27.43 54.95,26.71 56.22,26.46 57.49,26.71 58.56,27.43 59.28,28.5 59.53,29.76 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,36.38 19.59,37.64 18.87,38.72 17.8,39.43 16.54,39.69 15.27,39.43 14.2,38.72 13.48,37.64 13.23,36.38 13.48,35.11 14.2,34.04 15.27,33.32 16.54,33.07 17.8,33.32 18.87,34.04 19.59,35.11 19.84,36.38 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,36.38 59.28,37.64 58.56,38.72 57.49,39.43 56.22,39.69 54.95,39.43 53.88,38.72 53.17,37.64 52.91,36.38 53.17,35.11 53.88,34.04 54.95,33.32 56.22,33.07 57.49,33.32 58.56,34.04 59.28,35.11 59.53,36.38 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,42.99 19.59,44.26 18.87,45.33 17.8,46.05 16.54,46.3 15.27,46.05 14.2,45.33 13.48,44.26 13.23,42.99 13.48,41.73 14.2,40.65 15.27,39.94 16.54,39.69 17.8,39.94 18.87,40.65 19.59,41.73 19.84,42.99 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,42.99 59.28,44.26 58.56,45.33 57.49,46.05 56.22,46.3 54.95,46.05 53.88,45.33 53.17,44.26 52.91,42.99 53.17,41.73 53.88,40.65 54.95,39.94 56.22,39.69 57.49,39.94 58.56,40.65 59.28,41.73 59.53,42.99 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,49.61 19.59,50.87 18.87,51.94 17.8,52.66 16.54,52.91 15.27,52.66 14.2,51.94 13.48,50.87 13.23,49.61 13.48,48.34 14.2,47.27 15.27,46.55 16.54,46.3 17.8,46.55 18.87,47.27 19.59,48.34 19.84,49.61 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,49.61 59.28,50.87 58.56,51.94 57.49,52.66 56.22,52.91 54.95,52.66 53.88,51.94 53.17,50.87 52.91,49.61 53.17,48.34 53.88,47.27 54.95,46.55 56.22,46.3 57.49,46.55 58.56,47.27 59.28,48.34 59.53,49.61 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,109.13 19.59,110.4 18.87,111.47 17.8,112.19 16.54,112.44 15.27,112.19 14.2,111.47 13.48,110.4 13.23,109.13 13.48,107.87 14.2,106.8 15.27,106.08 16.54,105.83 17.8,106.08 18.87,106.8 19.59,107.87 19.84,109.13 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,148.82 19.59,150.08 18.87,151.16 17.8,151.87 16.54,152.13 15.27,151.87 14.2,151.16 13.48,150.08 13.23,148.82 13.48,147.55 14.2,146.48 15.27,145.76 16.54,145.51 17.8,145.76 18.87,146.48 19.59,147.55 19.84,148.82 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,109.13 26.2,110.4 25.49,111.47 24.42,112.19 23.15,112.44 21.88,112.19 20.81,111.47 20.09,110.4 19.84,109.13 20.09,107.87 20.81,106.8 21.88,106.08 23.15,105.83 24.42,106.08 25.49,106.8 26.2,107.87 26.46,109.13 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,148.82 26.2,150.08 25.49,151.16 24.42,151.87 23.15,152.13 21.88,151.87 20.81,151.16 20.09,150.08 19.84,148.82 20.09,147.55 20.81,146.48 21.88,145.76 23.15,145.51 24.42,145.76 25.49,146.48 26.2,147.55 26.46,148.82 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,109.13 32.82,110.4 32.1,111.47 31.03,112.19 29.76,112.44 28.5,112.19 27.43,111.47 26.71,110.4 26.46,109.13 26.71,107.87 27.43,106.8 28.5,106.08 29.76,105.83 31.03,106.08 32.1,106.8 32.82,107.87 33.07,109.13 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,148.82 32.82,150.08 32.1,151.16 31.03,151.87 29.76,152.13 28.5,151.87 27.43,151.16 26.71,150.08 26.46,148.82 26.71,147.55 27.43,146.48 28.5,145.76 29.76,145.51 31.03,145.76 32.1,146.48 32.82,147.55 33.07,148.82 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,109.13 39.43,110.4 38.72,111.47 37.64,112.19 36.38,112.44 35.11,112.19 34.04,111.47 33.32,110.4 33.07,109.13 33.32,107.87 34.04,106.8 35.11,106.08 36.38,105.83 37.64,106.08 38.72,106.8 39.43,107.87 39.69,109.13 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,148.82 39.43,150.08 38.72,151.16 37.64,151.87 36.38,152.13 35.11,151.87 34.04,151.16 33.32,150.08 33.07,148.82 33.32,147.55 34.04,146.48 35.11,145.76 36.38,145.51 37.64,145.76 38.72,146.48 39.43,147.55 39.69,148.82 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,109.13 46.05,110.4 45.33,111.47 44.26,112.19 42.99,112.44 41.73,112.19 40.65,111.47 39.94,110.4 39.69,109.13 39.94,107.87 40.65,106.8 41.73,106.08 42.99,105.83 44.26,106.08 45.33,106.8 46.05,107.87 46.3,109.13 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,148.82 46.05,150.08 45.33,151.16 44.26,151.87 42.99,152.13 41.73,151.87 40.65,151.16 39.94,150.08 39.69,148.82 39.94,147.55 40.65,146.48 41.73,145.76 42.99,145.51 44.26,145.76 45.33,146.48 46.05,147.55 46.3,148.82 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"52.91,109.13 52.66,110.4 51.94,111.47 50.87,112.19 49.61,112.44 48.34,112.19 47.27,111.47 46.55,110.4 46.3,109.13 46.55,107.87 47.27,106.8 48.34,106.08 49.61,105.83 50.87,106.08 51.94,106.8 52.66,107.87 52.91,109.13 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"52.91,148.82 52.66,150.08 51.94,151.16 50.87,151.87 49.61,152.13 48.34,151.87 47.27,151.16 46.55,150.08 46.3,148.82 46.55,147.55 47.27,146.48 48.34,145.76 49.61,145.51 50.87,145.76 51.94,146.48 52.66,147.55 52.91,148.82 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,109.13 59.28,110.4 58.56,111.47 57.49,112.19 56.22,112.44 54.95,112.19 53.88,111.47 53.17,110.4 52.91,109.13 53.17,107.87 53.88,106.8 54.95,106.08 56.22,105.83 57.49,106.08 58.56,106.8 59.28,107.87 59.53,109.13 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,148.82 59.28,150.08 58.56,151.16 57.49,151.87 56.22,152.13 54.95,151.87 53.88,151.16 53.17,150.08 52.91,148.82 53.17,147.55 53.88,146.48 54.95,145.76 56.22,145.51 57.49,145.76 58.56,146.48 59.28,147.55 59.53,148.82 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,115.75 19.59,117.01 18.87,118.09 17.8,118.8 16.54,119.06 15.27,118.8 14.2,118.09 13.48,117.01 13.23,115.75 13.48,114.48 14.2,113.41 15.27,112.69 16.54,112.44 17.8,112.69 18.87,113.41 19.59,114.48 19.84,115.75 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,115.75 59.28,117.01 58.56,118.09 57.49,118.8 56.22,119.06 54.95,118.8 53.88,118.09 53.17,117.01 52.91,115.75 53.17,114.48 53.88,113.41 54.95,112.69 56.22,112.44 57.49,112.69 58.56,113.41 59.28,114.48 59.53,115.75 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,122.36 19.59,123.63 18.87,124.7 17.8,125.42 16.54,125.67 15.27,125.42 14.2,124.7 13.48,123.63 13.23,122.36 13.48,121.1 14.2,120.02 15.27,119.31 16.54,119.06 17.8,119.31 18.87,120.02 19.59,121.1 19.84,122.36 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,122.36 59.28,123.63 58.56,124.7 57.49,125.42 56.22,125.67 54.95,125.42 53.88,124.7 53.17,123.63 52.91,122.36 53.17,121.1 53.88,120.02 54.95,119.31 56.22,119.06 57.49,119.31 58.56,120.02 59.28,121.1 59.53,122.36 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,128.98 19.59,130.24 18.87,131.31 17.8,132.03 16.54,132.28 15.27,132.03 14.2,131.31 13.48,130.24 13.23,128.98 13.48,127.71 14.2,126.64 15.27,125.92 16.54,125.67 17.8,125.92 18.87,126.64 19.59,127.71 19.84,128.98 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,128.98 59.28,130.24 58.56,131.31 57.49,132.03 56.22,132.28 54.95,132.03 53.88,131.31 53.17,130.24 52.91,128.98 53.17,127.71 53.88,126.64 54.95,125.92 56.22,125.67 57.49,125.92 58.56,126.64 59.28,127.71 59.53,128.98 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,135.59 19.59,136.86 18.87,137.93 17.8,138.65 16.54,138.9 15.27,138.65 14.2,137.93 13.48,136.86 13.23,135.59 13.48,134.32 14.2,133.25 15.27,132.54 16.54,132.28 17.8,132.54 18.87,133.25 19.59,134.32 19.84,135.59 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,135.59 59.28,136.86 58.56,137.93 57.49,138.65 56.22,138.9 54.95,138.65 53.88,137.93 53.17,136.86 52.91,135.59 53.17,134.32 53.88,133.25 54.95,132.54 56.22,132.28 57.49,132.54 58.56,133.25 59.28,134.32 59.53,135.59 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,142.2 19.59,143.47 18.87,144.54 17.8,145.26 16.54,145.51 15.27,145.26 14.2,144.54 13.48,143.47 13.23,142.2 13.48,140.94 14.2,139.87 15.27,139.15 16.54,138.9 17.8,139.15 18.87,139.87 19.59,140.94 19.84,142.2 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,142.2 59.28,143.47 58.56,144.54 57.49,145.26 56.22,145.51 54.95,145.26 53.88,144.54 53.17,143.47 52.91,142.2 53.17,140.94 53.88,139.87 54.95,139.15 56.22,138.9 57.49,139.15 58.56,139.87 59.28,140.94 59.53,142.2 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,16.54 112.19,17.8 111.47,18.87 110.4,19.59 109.13,19.84 107.87,19.59 106.8,18.87 106.08,17.8 105.83,16.54 106.08,15.27 106.8,14.2 107.87,13.48 109.13,13.23 110.4,13.48 111.47,14.2 112.19,15.27 112.44,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,56.22 112.19,57.49 111.47,58.56 110.4,59.28 109.13,59.53 107.87,59.28 106.8,58.56 106.08,57.49 105.83,56.22 106.08,54.95 106.8,53.88 107.87,53.17 109.13,52.91 110.4,53.17 111.47,53.88 112.19,54.95 112.44,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,16.54 118.8,17.8 118.09,18.87 117.01,19.59 115.75,19.84 114.48,19.59 113.41,18.87 112.69,17.8 112.44,16.54 112.69,15.27 113.41,14.2 114.48,13.48 115.75,13.23 117.01,13.48 118.09,14.2 118.8,15.27 119.06,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,56.22 118.8,57.49 118.09,58.56 117.01,59.28 115.75,59.53 114.48,59.28 113.41,58.56 112.69,57.49 112.44,56.22 112.69,54.95 113.41,53.88 114.48,53.17 115.75,52.91 117.01,53.17 118.09,53.88 118.8,54.95 119.06,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,16.54 125.42,17.8 124.7,18.87 123.63,19.59 122.36,19.84 121.1,19.59 120.02,18.87 119.31,17.8 119.06,16.54 119.31,15.27 120.02,14.2 121.1,13.48 122.36,13.23 123.63,13.48 124.7,14.2 125.42,15.27 125.67,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,56.22 125.42,57.49 124.7,58.56 123.63,59.28 122.36,59.53 121.1,59.28 120.02,58.56 119.31,57.49 119.06,56.22 119.31,54.95 120.02,53.88 121.1,53.17 122.36,52.91 123.63,53.17 124.7,53.88 125.42,54.95 125.67,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,16.54 132.03,17.8 131.31,18.87 130.24,19.59 128.98,19.84 127.71,19.59 126.64,18.87 125.92,17.8 125.67,16.54 125.92,15.27 126.64,14.2 127.71,13.48 128.98,13.23 130.24,13.48 131.31,14.2 132.03,15.27 132.28,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,56.22 132.03,57.49 131.31,58.56 130.24,59.28 128.98,59.53 127.71,59.28 126.64,58.56 125.92,57.49 125.67,56.22 125.92,54.95 126.64,53.88 127.71,53.17 128.98,52.91 130.24,53.17 131.31,53.88 132.03,54.95 132.28,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,16.54 138.65,17.8 137.93,18.87 136.86,19.59 135.59,19.84 134.32,19.59 133.25,18.87 132.54,17.8 132.28,16.54 132.54,15.27 133.25,14.2 134.32,13.48 135.59,13.23 136.86,13.48 137.93,14.2 138.65,15.27 138.9,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,56.22 138.65,57.49 137.93,58.56 136.86,59.28 135.59,59.53 134.32,59.28 133.25,58.56 132.54,57.49 132.28,56.22 132.54,54.95 133.25,53.88 134.32,53.17 135.59,52.91 136.86,53.17 137.93,53.88 138.65,54.95 138.9,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,16.54 145.26,17.8 144.54,18.87 143.47,19.59 142.2,19.84 140.94,19.59 139.87,18.87 139.15,17.8 138.9,16.54 139.15,15.27 139.87,14.2 140.94,13.48 142.2,13.23 143.47,13.48 144.54,14.2 145.26,15.27 145.51,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,56.22 145.26,57.49 144.54,58.56 143.47,59.28 142.2,59.53 140.94,59.28 139.87,58.56 139.15,57.49 138.9,56.22 139.15,54.95 139.87,53.88 140.94,53.17 142.2,52.91 143.47,53.17 144.54,53.88 145.26,54.95 145.51,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,16.54 151.87,17.8 151.16,18.87 150.08,19.59 148.82,19.84 147.55,19.59 146.48,18.87 145.76,17.8 145.51,16.54 145.76,15.27 146.48,14.2 147.55,13.48 148.82,13.23 150.08,13.48 151.16,14.2 151.87,15.27 152.13,16.54 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,56.22 151.87,57.49 151.16,58.56 150.08,59.28 148.82,59.53 147.55,59.28 146.48,58.56 145.76,57.49 145.51,56.22 145.76,54.95 146.48,53.88 147.55,53.17 148.82,52.91 150.08,53.17 151.16,53.88 151.87,54.95 152.13,56.22 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,23.15 112.19,24.42 111.47,25.49 110.4,26.2 109.13,26.46 107.87,26.2 106.8,25.49 106.08,24.42 105.83,23.15 106.08,21.88 106.8,20.81 107.87,20.09 109.13,19.84 110.4,20.09 111.47,20.81 112.19,21.88 112.44,23.15 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,23.15 151.87,24.42 151.16,25.49 150.08,26.2 148.82,26.46 147.55,26.2 146.48,25.49 145.76,24.42 145.51,23.15 145.76,21.88 146.48,20.81 147.55,20.09 148.82,19.84 150.08,20.09 151.16,20.81 151.87,21.88 152.13,23.15 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,29.76 112.19,31.03 111.47,32.1 110.4,32.82 109.13,33.07 107.87,32.82 106.8,32.1 106.08,31.03 105.83,29.76 106.08,28.5 106.8,27.43 107.87,26.71 109.13,26.46 110.4,26.71 111.47,27.43 112.19,28.5 112.44,29.76 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,29.76 151.87,31.03 151.16,32.1 150.08,32.82 148.82,33.07 147.55,32.82 146.48,32.1 145.76,31.03 145.51,29.76 145.76,28.5 146.48,27.43 147.55,26.71 148.82,26.46 150.08,26.71 151.16,27.43 151.87,28.5 152.13,29.76 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,36.38 112.19,37.64 111.47,38.72 110.4,39.43 109.13,39.69 107.87,39.43 106.8,38.72 106.08,37.64 105.83,36.38 106.08,35.11 106.8,34.04 107.87,33.32 109.13,33.07 110.4,33.32 111.47,34.04 112.19,35.11 112.44,36.38 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,36.38 151.87,37.64 151.16,38.72 150.08,39.43 148.82,39.69 147.55,39.43 146.48,38.72 145.76,37.64 145.51,36.38 145.76,35.11 146.48,34.04 147.55,33.32 148.82,33.07 150.08,33.32 151.16,34.04 151.87,35.11 152.13,36.38 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,42.99 112.19,44.26 111.47,45.33 110.4,46.05 109.13,46.3 107.87,46.05 106.8,45.33 106.08,44.26 105.83,42.99 106.08,41.73 106.8,40.65 107.87,39.94 109.13,39.69 110.4,39.94 111.47,40.65 112.19,41.73 112.44,42.99 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,42.99 151.87,44.26 151.16,45.33 150.08,46.05 148.82,46.3 147.55,46.05 146.48,45.33 145.76,44.26 145.51,42.99 145.76,41.73 146.48,40.65 147.55,39.94 148.82,39.69 150.08,39.94 151.16,40.65 151.87,41.73 152.13,42.99 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,49.61 112.19,50.87 111.47,51.94 110.4,52.66 109.13,52.91 107.87,52.66 106.8,51.94 106.08,50.87 105.83,49.61 106.08,48.34 106.8,47.27 107.87,46.55 109.13,46.3 110.4,46.55 111.47,47.27 112.19,48.34 112.44,49.61 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,49.61 151.87,50.87 151.16,51.94 150.08,52.66 148.82,52.91 147.55,52.66 146.48,51.94 145.76,50.87 145.51,49.61 145.76,48.34 146.48,47.27 147.55,46.55 148.82,46.3 150.08,46.55 151.16,47.27 151.87,48.34 152.13,49.61 \"\r\n          style=\"fill:url(#gradient0a63a848c18243f2af2c33edde29962a);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,29.76 32.82,31.03 32.1,32.1 31.03,32.82 29.76,33.07 28.5,32.82 27.43,32.1 26.71,31.03 26.46,29.76 26.71,28.5 27.43,27.43 28.5,26.71 29.76,26.46 31.03,26.71 32.1,27.43 32.82,28.5 33.07,29.76 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,29.76 39.43,31.03 38.72,32.1 37.64,32.82 36.38,33.07 35.11,32.82 34.04,32.1 33.32,31.03 33.07,29.76 33.32,28.5 34.04,27.43 35.11,26.71 36.38,26.46 37.64,26.71 38.72,27.43 39.43,28.5 39.69,29.76 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,29.76 46.05,31.03 45.33,32.1 44.26,32.82 42.99,33.07 41.73,32.82 40.65,32.1 39.94,31.03 39.69,29.76 39.94,28.5 40.65,27.43 41.73,26.71 42.99,26.46 44.26,26.71 45.33,27.43 46.05,28.5 46.3,29.76 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,36.38 32.82,37.64 32.1,38.72 31.03,39.43 29.76,39.69 28.5,39.43 27.43,38.72 26.71,37.64 26.46,36.38 26.71,35.11 27.43,34.04 28.5,33.32 29.76,33.07 31.03,33.32 32.1,34.04 32.82,35.11 33.07,36.38 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,36.38 39.43,37.64 38.72,38.72 37.64,39.43 36.38,39.69 35.11,39.43 34.04,38.72 33.32,37.64 33.07,36.38 33.32,35.11 34.04,34.04 35.11,33.32 36.38,33.07 37.64,33.32 38.72,34.04 39.43,35.11 39.69,36.38 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,36.38 46.05,37.64 45.33,38.72 44.26,39.43 42.99,39.69 41.73,39.43 40.65,38.72 39.94,37.64 39.69,36.38 39.94,35.11 40.65,34.04 41.73,33.32 42.99,33.07 44.26,33.32 45.33,34.04 46.05,35.11 46.3,36.38 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,42.99 32.82,44.26 32.1,45.33 31.03,46.05 29.76,46.3 28.5,46.05 27.43,45.33 26.71,44.26 26.46,42.99 26.71,41.73 27.43,40.65 28.5,39.94 29.76,39.69 31.03,39.94 32.1,40.65 32.82,41.73 33.07,42.99 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,42.99 39.43,44.26 38.72,45.33 37.64,46.05 36.38,46.3 35.11,46.05 34.04,45.33 33.32,44.26 33.07,42.99 33.32,41.73 34.04,40.65 35.11,39.94 36.38,39.69 37.64,39.94 38.72,40.65 39.43,41.73 39.69,42.99 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,42.99 46.05,44.26 45.33,45.33 44.26,46.05 42.99,46.3 41.73,46.05 40.65,45.33 39.94,44.26 39.69,42.99 39.94,41.73 40.65,40.65 41.73,39.94 42.99,39.69 44.26,39.94 45.33,40.65 46.05,41.73 46.3,42.99 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,122.36 32.82,123.63 32.1,124.7 31.03,125.42 29.76,125.67 28.5,125.42 27.43,124.7 26.71,123.63 26.46,122.36 26.71,121.1 27.43,120.02 28.5,119.31 29.76,119.06 31.03,119.31 32.1,120.02 32.82,121.1 33.07,122.36 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,122.36 39.43,123.63 38.72,124.7 37.64,125.42 36.38,125.67 35.11,125.42 34.04,124.7 33.32,123.63 33.07,122.36 33.32,121.1 34.04,120.02 35.11,119.31 36.38,119.06 37.64,119.31 38.72,120.02 39.43,121.1 39.69,122.36 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,122.36 46.05,123.63 45.33,124.7 44.26,125.42 42.99,125.67 41.73,125.42 40.65,124.7 39.94,123.63 39.69,122.36 39.94,121.1 40.65,120.02 41.73,119.31 42.99,119.06 44.26,119.31 45.33,120.02 46.05,121.1 46.3,122.36 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,128.98 32.82,130.24 32.1,131.31 31.03,132.03 29.76,132.28 28.5,132.03 27.43,131.31 26.71,130.24 26.46,128.98 26.71,127.71 27.43,126.64 28.5,125.92 29.76,125.67 31.03,125.92 32.1,126.64 32.82,127.71 33.07,128.98 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,128.98 39.43,130.24 38.72,131.31 37.64,132.03 36.38,132.28 35.11,132.03 34.04,131.31 33.32,130.24 33.07,128.98 33.32,127.71 34.04,126.64 35.11,125.92 36.38,125.67 37.64,125.92 38.72,126.64 39.43,127.71 39.69,128.98 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,128.98 46.05,130.24 45.33,131.31 44.26,132.03 42.99,132.28 41.73,132.03 40.65,131.31 39.94,130.24 39.69,128.98 39.94,127.71 40.65,126.64 41.73,125.92 42.99,125.67 44.26,125.92 45.33,126.64 46.05,127.71 46.3,128.98 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,135.59 32.82,136.86 32.1,137.93 31.03,138.65 29.76,138.9 28.5,138.65 27.43,137.93 26.71,136.86 26.46,135.59 26.71,134.32 27.43,133.25 28.5,132.54 29.76,132.28 31.03,132.54 32.1,133.25 32.82,134.32 33.07,135.59 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,135.59 39.43,136.86 38.72,137.93 37.64,138.65 36.38,138.9 35.11,138.65 34.04,137.93 33.32,136.86 33.07,135.59 33.32,134.32 34.04,133.25 35.11,132.54 36.38,132.28 37.64,132.54 38.72,133.25 39.43,134.32 39.69,135.59 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,135.59 46.05,136.86 45.33,137.93 44.26,138.65 42.99,138.9 41.73,138.65 40.65,137.93 39.94,136.86 39.69,135.59 39.94,134.32 40.65,133.25 41.73,132.54 42.99,132.28 44.26,132.54 45.33,133.25 46.05,134.32 46.3,135.59 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,29.76 125.42,31.03 124.7,32.1 123.63,32.82 122.36,33.07 121.1,32.82 120.02,32.1 119.31,31.03 119.06,29.76 119.31,28.5 120.02,27.43 121.1,26.71 122.36,26.46 123.63,26.71 124.7,27.43 125.42,28.5 125.67,29.76 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,29.76 132.03,31.03 131.31,32.1 130.24,32.82 128.98,33.07 127.71,32.82 126.64,32.1 125.92,31.03 125.67,29.76 125.92,28.5 126.64,27.43 127.71,26.71 128.98,26.46 130.24,26.71 131.31,27.43 132.03,28.5 132.28,29.76 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,29.76 138.65,31.03 137.93,32.1 136.86,32.82 135.59,33.07 134.32,32.82 133.25,32.1 132.54,31.03 132.28,29.76 132.54,28.5 133.25,27.43 134.32,26.71 135.59,26.46 136.86,26.71 137.93,27.43 138.65,28.5 138.9,29.76 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,36.38 125.42,37.64 124.7,38.72 123.63,39.43 122.36,39.69 121.1,39.43 120.02,38.72 119.31,37.64 119.06,36.38 119.31,35.11 120.02,34.04 121.1,33.32 122.36,33.07 123.63,33.32 124.7,34.04 125.42,35.11 125.67,36.38 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,36.38 132.03,37.64 131.31,38.72 130.24,39.43 128.98,39.69 127.71,39.43 126.64,38.72 125.92,37.64 125.67,36.38 125.92,35.11 126.64,34.04 127.71,33.32 128.98,33.07 130.24,33.32 131.31,34.04 132.03,35.11 132.28,36.38 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,36.38 138.65,37.64 137.93,38.72 136.86,39.43 135.59,39.69 134.32,39.43 133.25,38.72 132.54,37.64 132.28,36.38 132.54,35.11 133.25,34.04 134.32,33.32 135.59,33.07 136.86,33.32 137.93,34.04 138.65,35.11 138.9,36.38 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,42.99 125.42,44.26 124.7,45.33 123.63,46.05 122.36,46.3 121.1,46.05 120.02,45.33 119.31,44.26 119.06,42.99 119.31,41.73 120.02,40.65 121.1,39.94 122.36,39.69 123.63,39.94 124.7,40.65 125.42,41.73 125.67,42.99 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,42.99 132.03,44.26 131.31,45.33 130.24,46.05 128.98,46.3 127.71,46.05 126.64,45.33 125.92,44.26 125.67,42.99 125.92,41.73 126.64,40.65 127.71,39.94 128.98,39.69 130.24,39.94 131.31,40.65 132.03,41.73 132.28,42.99 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,42.99 138.65,44.26 137.93,45.33 136.86,46.05 135.59,46.3 134.32,46.05 133.25,45.33 132.54,44.26 132.28,42.99 132.54,41.73 133.25,40.65 134.32,39.94 135.59,39.69 136.86,39.94 137.93,40.65 138.65,41.73 138.9,42.99 \"\r\n          style=\"fill:rgba(36,82,143,1);\"\r\n        />\r\n        <linearGradient\r\n          id=\"gradient656a9574a16d49d783c4af7996609d4f\"\r\n          gradientUnits=\"userSpaceOnUse\"\r\n          x1=\"11.1772292562222\"\r\n          y1=\"78.9300121785742\"\r\n          x2=\"154.177100806644\"\r\n          y2=\"86.424317884292\"\r\n        >\r\n          <stop offset=\"0%\" stop-color=\"#493963\" />\r\n          <stop offset=\"50%\" stop-color=\"#017B2E\" />\r\n          <stop offset=\"100%\" stop-color=\"#493963\" />\r\n        </linearGradient>\r\n        <polygon\r\n          points=\"84.66,16.54 84.4,17.53 83.67,18.25 82.68,18.52 81.69,18.25 80.96,17.53 80.69,16.54 80.96,15.54 81.69,14.82 82.68,14.55 83.67,14.82 84.4,15.54 84.66,16.54 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,16.54 91.01,17.53 90.28,18.25 89.29,18.52 88.3,18.25 87.57,17.53 87.31,16.54 87.57,15.54 88.3,14.82 89.29,14.55 90.28,14.82 91.01,15.54 91.28,16.54 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,16.54 97.62,17.53 96.9,18.25 95.91,18.52 94.91,18.25 94.19,17.53 93.92,16.54 94.19,15.54 94.91,14.82 95.91,14.55 96.9,14.82 97.62,15.54 97.89,16.54 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,23.15 71.17,24.14 70.44,24.87 69.45,25.13 68.46,24.87 67.73,24.14 67.46,23.15 67.73,22.16 68.46,21.43 69.45,21.17 70.44,21.43 71.17,22.16 71.43,23.15 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,23.15 77.78,24.14 77.06,24.87 76.06,25.13 75.07,24.87 74.34,24.14 74.08,23.15 74.34,22.16 75.07,21.43 76.06,21.17 77.06,21.43 77.78,22.16 78.05,23.15 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"84.66,23.15 84.4,24.14 83.67,24.87 82.68,25.13 81.69,24.87 80.96,24.14 80.69,23.15 80.96,22.16 81.69,21.43 82.68,21.17 83.67,21.43 84.4,22.16 84.66,23.15 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,23.15 97.62,24.14 96.9,24.87 95.91,25.13 94.91,24.87 94.19,24.14 93.92,23.15 94.19,22.16 94.91,21.43 95.91,21.17 96.9,21.43 97.62,22.16 97.89,23.15 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"84.66,29.76 84.4,30.76 83.67,31.48 82.68,31.75 81.69,31.48 80.96,30.76 80.69,29.76 80.96,28.77 81.69,28.05 82.68,27.78 83.67,28.05 84.4,28.77 84.66,29.76 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,29.76 91.01,30.76 90.28,31.48 89.29,31.75 88.3,31.48 87.57,30.76 87.31,29.76 87.57,28.77 88.3,28.05 89.29,27.78 90.28,28.05 91.01,28.77 91.28,29.76 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,29.76 97.62,30.76 96.9,31.48 95.91,31.75 94.91,31.48 94.19,30.76 93.92,29.76 94.19,28.77 94.91,28.05 95.91,27.78 96.9,28.05 97.62,28.77 97.89,29.76 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,36.38 71.17,37.37 70.44,38.1 69.45,38.36 68.46,38.1 67.73,37.37 67.46,36.38 67.73,35.39 68.46,34.66 69.45,34.39 70.44,34.66 71.17,35.39 71.43,36.38 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,36.38 77.78,37.37 77.06,38.1 76.06,38.36 75.07,38.1 74.34,37.37 74.08,36.38 74.34,35.39 75.07,34.66 76.06,34.39 77.06,34.66 77.78,35.39 78.05,36.38 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,36.38 97.62,37.37 96.9,38.1 95.91,38.36 94.91,38.1 94.19,37.37 93.92,36.38 94.19,35.39 94.91,34.66 95.91,34.39 96.9,34.66 97.62,35.39 97.89,36.38 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,42.99 77.78,43.98 77.06,44.71 76.06,44.98 75.07,44.71 74.34,43.98 74.08,42.99 74.34,42 75.07,41.27 76.06,41.01 77.06,41.27 77.78,42 78.05,42.99 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,42.99 97.62,43.98 96.9,44.71 95.91,44.98 94.91,44.71 94.19,43.98 93.92,42.99 94.19,42 94.91,41.27 95.91,41.01 96.9,41.27 97.62,42 97.89,42.99 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,49.61 71.17,50.6 70.44,51.32 69.45,51.59 68.46,51.32 67.73,50.6 67.46,49.61 67.73,48.61 68.46,47.89 69.45,47.62 70.44,47.89 71.17,48.61 71.43,49.61 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,49.61 91.01,50.6 90.28,51.32 89.29,51.59 88.3,51.32 87.57,50.6 87.31,49.61 87.57,48.61 88.3,47.89 89.29,47.62 90.28,47.89 91.01,48.61 91.28,49.61 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,56.22 71.17,57.21 70.44,57.94 69.45,58.2 68.46,57.94 67.73,57.21 67.46,56.22 67.73,55.23 68.46,54.5 69.45,54.24 70.44,54.5 71.17,55.23 71.43,56.22 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"84.66,56.22 84.4,57.21 83.67,57.94 82.68,58.2 81.69,57.94 80.96,57.21 80.69,56.22 80.96,55.23 81.69,54.5 82.68,54.24 83.67,54.5 84.4,55.23 84.66,56.22 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,56.22 97.62,57.21 96.9,57.94 95.91,58.2 94.91,57.94 94.19,57.21 93.92,56.22 94.19,55.23 94.91,54.5 95.91,54.24 96.9,54.5 97.62,55.23 97.89,56.22 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,62.83 77.78,63.83 77.06,64.55 76.06,64.82 75.07,64.55 74.34,63.83 74.08,62.83 74.34,61.84 75.07,61.12 76.06,60.85 77.06,61.12 77.78,61.84 78.05,62.83 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"18.52,69.45 18.25,70.44 17.53,71.17 16.54,71.43 15.54,71.17 14.82,70.44 14.55,69.45 14.82,68.46 15.54,67.73 16.54,67.46 17.53,67.73 18.25,68.46 18.52,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"25.13,69.45 24.87,70.44 24.14,71.17 23.15,71.43 22.16,71.17 21.43,70.44 21.17,69.45 21.43,68.46 22.16,67.73 23.15,67.46 24.14,67.73 24.87,68.46 25.13,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"31.75,69.45 31.48,70.44 30.76,71.17 29.76,71.43 28.77,71.17 28.05,70.44 27.78,69.45 28.05,68.46 28.77,67.73 29.76,67.46 30.76,67.73 31.48,68.46 31.75,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"38.36,69.45 38.1,70.44 37.37,71.17 36.38,71.43 35.39,71.17 34.66,70.44 34.39,69.45 34.66,68.46 35.39,67.73 36.38,67.46 37.37,67.73 38.1,68.46 38.36,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"44.98,69.45 44.71,70.44 43.98,71.17 42.99,71.43 42,71.17 41.27,70.44 41.01,69.45 41.27,68.46 42,67.73 42.99,67.46 43.98,67.73 44.71,68.46 44.98,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"58.2,69.45 57.94,70.44 57.21,71.17 56.22,71.43 55.23,71.17 54.5,70.44 54.24,69.45 54.5,68.46 55.23,67.73 56.22,67.46 57.21,67.73 57.94,68.46 58.2,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"64.82,69.45 64.55,70.44 63.83,71.17 62.83,71.43 61.84,71.17 61.12,70.44 60.85,69.45 61.12,68.46 61.84,67.73 62.83,67.46 63.83,67.73 64.55,68.46 64.82,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,69.45 71.17,70.44 70.44,71.17 69.45,71.43 68.46,71.17 67.73,70.44 67.46,69.45 67.73,68.46 68.46,67.73 69.45,67.46 70.44,67.73 71.17,68.46 71.43,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,69.45 91.01,70.44 90.28,71.17 89.29,71.43 88.3,71.17 87.57,70.44 87.31,69.45 87.57,68.46 88.3,67.73 89.29,67.46 90.28,67.73 91.01,68.46 91.28,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"104.5,69.45 104.24,70.44 103.51,71.17 102.52,71.43 101.53,71.17 100.8,70.44 100.54,69.45 100.8,68.46 101.53,67.73 102.52,67.46 103.51,67.73 104.24,68.46 104.5,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,69.45 117.47,70.44 116.74,71.17 115.75,71.43 114.76,71.17 114.03,70.44 113.76,69.45 114.03,68.46 114.76,67.73 115.75,67.46 116.74,67.73 117.47,68.46 117.73,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"130.96,69.45 130.69,70.44 129.97,71.17 128.98,71.43 127.98,71.17 127.26,70.44 126.99,69.45 127.26,68.46 127.98,67.73 128.98,67.46 129.97,67.73 130.69,68.46 130.96,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"144.19,69.45 143.92,70.44 143.2,71.17 142.2,71.43 141.21,71.17 140.49,70.44 140.22,69.45 140.49,68.46 141.21,67.73 142.2,67.46 143.2,67.73 143.92,68.46 144.19,69.45 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"18.52,76.06 18.25,77.06 17.53,77.78 16.54,78.05 15.54,77.78 14.82,77.06 14.55,76.06 14.82,75.07 15.54,74.34 16.54,74.08 17.53,74.34 18.25,75.07 18.52,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"25.13,76.06 24.87,77.06 24.14,77.78 23.15,78.05 22.16,77.78 21.43,77.06 21.17,76.06 21.43,75.07 22.16,74.34 23.15,74.08 24.14,74.34 24.87,75.07 25.13,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"31.75,76.06 31.48,77.06 30.76,77.78 29.76,78.05 28.77,77.78 28.05,77.06 27.78,76.06 28.05,75.07 28.77,74.34 29.76,74.08 30.76,74.34 31.48,75.07 31.75,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"51.59,76.06 51.32,77.06 50.6,77.78 49.61,78.05 48.61,77.78 47.89,77.06 47.62,76.06 47.89,75.07 48.61,74.34 49.61,74.08 50.6,74.34 51.32,75.07 51.59,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"64.82,76.06 64.55,77.06 63.83,77.78 62.83,78.05 61.84,77.78 61.12,77.06 60.85,76.06 61.12,75.07 61.84,74.34 62.83,74.08 63.83,74.34 64.55,75.07 64.82,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,76.06 77.78,77.06 77.06,77.78 76.06,78.05 75.07,77.78 74.34,77.06 74.08,76.06 74.34,75.07 75.07,74.34 76.06,74.08 77.06,74.34 77.78,75.07 78.05,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,76.06 91.01,77.06 90.28,77.78 89.29,78.05 88.3,77.78 87.57,77.06 87.31,76.06 87.57,75.07 88.3,74.34 89.29,74.08 90.28,74.34 91.01,75.07 91.28,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,76.06 97.62,77.06 96.9,77.78 95.91,78.05 94.91,77.78 94.19,77.06 93.92,76.06 94.19,75.07 94.91,74.34 95.91,74.08 96.9,74.34 97.62,75.07 97.89,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"104.5,76.06 104.24,77.06 103.51,77.78 102.52,78.05 101.53,77.78 100.8,77.06 100.54,76.06 100.8,75.07 101.53,74.34 102.52,74.08 103.51,74.34 104.24,75.07 104.5,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"111.12,76.06 110.85,77.06 110.13,77.78 109.13,78.05 108.14,77.78 107.42,77.06 107.15,76.06 107.42,75.07 108.14,74.34 109.13,74.08 110.13,74.34 110.85,75.07 111.12,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"130.96,76.06 130.69,77.06 129.97,77.78 128.98,78.05 127.98,77.78 127.26,77.06 126.99,76.06 127.26,75.07 127.98,74.34 128.98,74.08 129.97,74.34 130.69,75.07 130.96,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,76.06 137.31,77.06 136.58,77.78 135.59,78.05 134.6,77.78 133.87,77.06 133.61,76.06 133.87,75.07 134.6,74.34 135.59,74.08 136.58,74.34 137.31,75.07 137.57,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"144.19,76.06 143.92,77.06 143.2,77.78 142.2,78.05 141.21,77.78 140.49,77.06 140.22,76.06 140.49,75.07 141.21,74.34 142.2,74.08 143.2,74.34 143.92,75.07 144.19,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"150.8,76.06 150.54,77.06 149.81,77.78 148.82,78.05 147.83,77.78 147.1,77.06 146.83,76.06 147.1,75.07 147.83,74.34 148.82,74.08 149.81,74.34 150.54,75.07 150.8,76.06 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"31.75,82.68 31.48,83.67 30.76,84.4 29.76,84.66 28.77,84.4 28.05,83.67 27.78,82.68 28.05,81.69 28.77,80.96 29.76,80.69 30.76,80.96 31.48,81.69 31.75,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"44.98,82.68 44.71,83.67 43.98,84.4 42.99,84.66 42,84.4 41.27,83.67 41.01,82.68 41.27,81.69 42,80.96 42.99,80.69 43.98,80.96 44.71,81.69 44.98,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"51.59,82.68 51.32,83.67 50.6,84.4 49.61,84.66 48.61,84.4 47.89,83.67 47.62,82.68 47.89,81.69 48.61,80.96 49.61,80.69 50.6,80.96 51.32,81.69 51.59,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"58.2,82.68 57.94,83.67 57.21,84.4 56.22,84.66 55.23,84.4 54.5,83.67 54.24,82.68 54.5,81.69 55.23,80.96 56.22,80.69 57.21,80.96 57.94,81.69 58.2,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,82.68 71.17,83.67 70.44,84.4 69.45,84.66 68.46,84.4 67.73,83.67 67.46,82.68 67.73,81.69 68.46,80.96 69.45,80.69 70.44,80.96 71.17,81.69 71.43,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,82.68 77.78,83.67 77.06,84.4 76.06,84.66 75.07,84.4 74.34,83.67 74.08,82.68 74.34,81.69 75.07,80.96 76.06,80.69 77.06,80.96 77.78,81.69 78.05,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,82.68 97.62,83.67 96.9,84.4 95.91,84.66 94.91,84.4 94.19,83.67 93.92,82.68 94.19,81.69 94.91,80.96 95.91,80.69 96.9,80.96 97.62,81.69 97.89,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"111.12,82.68 110.85,83.67 110.13,84.4 109.13,84.66 108.14,84.4 107.42,83.67 107.15,82.68 107.42,81.69 108.14,80.96 109.13,80.69 110.13,80.96 110.85,81.69 111.12,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,82.68 117.47,83.67 116.74,84.4 115.75,84.66 114.76,84.4 114.03,83.67 113.76,82.68 114.03,81.69 114.76,80.96 115.75,80.69 116.74,80.96 117.47,81.69 117.73,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"130.96,82.68 130.69,83.67 129.97,84.4 128.98,84.66 127.98,84.4 127.26,83.67 126.99,82.68 127.26,81.69 127.98,80.96 128.98,80.69 129.97,80.96 130.69,81.69 130.96,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"150.8,82.68 150.54,83.67 149.81,84.4 148.82,84.66 147.83,84.4 147.1,83.67 146.83,82.68 147.1,81.69 147.83,80.96 148.82,80.69 149.81,80.96 150.54,81.69 150.8,82.68 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"18.52,89.29 18.25,90.28 17.53,91.01 16.54,91.28 15.54,91.01 14.82,90.28 14.55,89.29 14.82,88.3 15.54,87.57 16.54,87.31 17.53,87.57 18.25,88.3 18.52,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"38.36,89.29 38.1,90.28 37.37,91.01 36.38,91.28 35.39,91.01 34.66,90.28 34.39,89.29 34.66,88.3 35.39,87.57 36.38,87.31 37.37,87.57 38.1,88.3 38.36,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,89.29 91.01,90.28 90.28,91.01 89.29,91.28 88.3,91.01 87.57,90.28 87.31,89.29 87.57,88.3 88.3,87.57 89.29,87.31 90.28,87.57 91.01,88.3 91.28,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,89.29 97.62,90.28 96.9,91.01 95.91,91.28 94.91,91.01 94.19,90.28 93.92,89.29 94.19,88.3 94.91,87.57 95.91,87.31 96.9,87.57 97.62,88.3 97.89,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"104.5,89.29 104.24,90.28 103.51,91.01 102.52,91.28 101.53,91.01 100.8,90.28 100.54,89.29 100.8,88.3 101.53,87.57 102.52,87.31 103.51,87.57 104.24,88.3 104.5,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"111.12,89.29 110.85,90.28 110.13,91.01 109.13,91.28 108.14,91.01 107.42,90.28 107.15,89.29 107.42,88.3 108.14,87.57 109.13,87.31 110.13,87.57 110.85,88.3 111.12,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,89.29 137.31,90.28 136.58,91.01 135.59,91.28 134.6,91.01 133.87,90.28 133.61,89.29 133.87,88.3 134.6,87.57 135.59,87.31 136.58,87.57 137.31,88.3 137.57,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"144.19,89.29 143.92,90.28 143.2,91.01 142.2,91.28 141.21,91.01 140.49,90.28 140.22,89.29 140.49,88.3 141.21,87.57 142.2,87.31 143.2,87.57 143.92,88.3 144.19,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"150.8,89.29 150.54,90.28 149.81,91.01 148.82,91.28 147.83,91.01 147.1,90.28 146.83,89.29 147.1,88.3 147.83,87.57 148.82,87.31 149.81,87.57 150.54,88.3 150.8,89.29 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"25.13,95.91 24.87,96.9 24.14,97.62 23.15,97.89 22.16,97.62 21.43,96.9 21.17,95.91 21.43,94.91 22.16,94.19 23.15,93.92 24.14,94.19 24.87,94.91 25.13,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"38.36,95.91 38.1,96.9 37.37,97.62 36.38,97.89 35.39,97.62 34.66,96.9 34.39,95.91 34.66,94.91 35.39,94.19 36.38,93.92 37.37,94.19 38.1,94.91 38.36,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"44.98,95.91 44.71,96.9 43.98,97.62 42.99,97.89 42,97.62 41.27,96.9 41.01,95.91 41.27,94.91 42,94.19 42.99,93.92 43.98,94.19 44.71,94.91 44.98,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"58.2,95.91 57.94,96.9 57.21,97.62 56.22,97.89 55.23,97.62 54.5,96.9 54.24,95.91 54.5,94.91 55.23,94.19 56.22,93.92 57.21,94.19 57.94,94.91 58.2,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,95.91 71.17,96.9 70.44,97.62 69.45,97.89 68.46,97.62 67.73,96.9 67.46,95.91 67.73,94.91 68.46,94.19 69.45,93.92 70.44,94.19 71.17,94.91 71.43,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,95.91 77.78,96.9 77.06,97.62 76.06,97.89 75.07,97.62 74.34,96.9 74.08,95.91 74.34,94.91 75.07,94.19 76.06,93.92 77.06,94.19 77.78,94.91 78.05,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,95.91 97.62,96.9 96.9,97.62 95.91,97.89 94.91,97.62 94.19,96.9 93.92,95.91 94.19,94.91 94.91,94.19 95.91,93.92 96.9,94.19 97.62,94.91 97.89,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,95.91 117.47,96.9 116.74,97.62 115.75,97.89 114.76,97.62 114.03,96.9 113.76,95.91 114.03,94.91 114.76,94.19 115.75,93.92 116.74,94.19 117.47,94.91 117.73,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"144.19,95.91 143.92,96.9 143.2,97.62 142.2,97.89 141.21,97.62 140.49,96.9 140.22,95.91 140.49,94.91 141.21,94.19 142.2,93.92 143.2,94.19 143.92,94.91 144.19,95.91 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,102.52 71.17,103.51 70.44,104.24 69.45,104.5 68.46,104.24 67.73,103.51 67.46,102.52 67.73,101.53 68.46,100.8 69.45,100.54 70.44,100.8 71.17,101.53 71.43,102.52 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"84.66,102.52 84.4,103.51 83.67,104.24 82.68,104.5 81.69,104.24 80.96,103.51 80.69,102.52 80.96,101.53 81.69,100.8 82.68,100.54 83.67,100.8 84.4,101.53 84.66,102.52 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,102.52 97.62,103.51 96.9,104.24 95.91,104.5 94.91,104.24 94.19,103.51 93.92,102.52 94.19,101.53 94.91,100.8 95.91,100.54 96.9,100.8 97.62,101.53 97.89,102.52 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,102.52 117.47,103.51 116.74,104.24 115.75,104.5 114.76,104.24 114.03,103.51 113.76,102.52 114.03,101.53 114.76,100.8 115.75,100.54 116.74,100.8 117.47,101.53 117.73,102.52 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,102.52 137.31,103.51 136.58,104.24 135.59,104.5 134.6,104.24 133.87,103.51 133.61,102.52 133.87,101.53 134.6,100.8 135.59,100.54 136.58,100.8 137.31,101.53 137.57,102.52 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,109.13 71.17,110.13 70.44,110.85 69.45,111.12 68.46,110.85 67.73,110.13 67.46,109.13 67.73,108.14 68.46,107.42 69.45,107.15 70.44,107.42 71.17,108.14 71.43,109.13 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,109.13 91.01,110.13 90.28,110.85 89.29,111.12 88.3,110.85 87.57,110.13 87.31,109.13 87.57,108.14 88.3,107.42 89.29,107.15 90.28,107.42 91.01,108.14 91.28,109.13 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"104.5,109.13 104.24,110.13 103.51,110.85 102.52,111.12 101.53,110.85 100.8,110.13 100.54,109.13 100.8,108.14 101.53,107.42 102.52,107.15 103.51,107.42 104.24,108.14 104.5,109.13 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"124.35,109.13 124.08,110.13 123.35,110.85 122.36,111.12 121.37,110.85 120.64,110.13 120.38,109.13 120.64,108.14 121.37,107.42 122.36,107.15 123.35,107.42 124.08,108.14 124.35,109.13 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"130.96,109.13 130.69,110.13 129.97,110.85 128.98,111.12 127.98,110.85 127.26,110.13 126.99,109.13 127.26,108.14 127.98,107.42 128.98,107.15 129.97,107.42 130.69,108.14 130.96,109.13 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"144.19,109.13 143.92,110.13 143.2,110.85 142.2,111.12 141.21,110.85 140.49,110.13 140.22,109.13 140.49,108.14 141.21,107.42 142.2,107.15 143.2,107.42 143.92,108.14 144.19,109.13 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"150.8,109.13 150.54,110.13 149.81,110.85 148.82,111.12 147.83,110.85 147.1,110.13 146.83,109.13 147.1,108.14 147.83,107.42 148.82,107.15 149.81,107.42 150.54,108.14 150.8,109.13 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,115.75 77.78,116.74 77.06,117.47 76.06,117.73 75.07,117.47 74.34,116.74 74.08,115.75 74.34,114.76 75.07,114.03 76.06,113.76 77.06,114.03 77.78,114.76 78.05,115.75 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"84.66,115.75 84.4,116.74 83.67,117.47 82.68,117.73 81.69,117.47 80.96,116.74 80.69,115.75 80.96,114.76 81.69,114.03 82.68,113.76 83.67,114.03 84.4,114.76 84.66,115.75 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,115.75 117.47,116.74 116.74,117.47 115.75,117.73 114.76,117.47 114.03,116.74 113.76,115.75 114.03,114.76 114.76,114.03 115.75,113.76 116.74,114.03 117.47,114.76 117.73,115.75 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"124.35,115.75 124.08,116.74 123.35,117.47 122.36,117.73 121.37,117.47 120.64,116.74 120.38,115.75 120.64,114.76 121.37,114.03 122.36,113.76 123.35,114.03 124.08,114.76 124.35,115.75 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,115.75 137.31,116.74 136.58,117.47 135.59,117.73 134.6,117.47 133.87,116.74 133.61,115.75 133.87,114.76 134.6,114.03 135.59,113.76 136.58,114.03 137.31,114.76 137.57,115.75 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"150.8,115.75 150.54,116.74 149.81,117.47 148.82,117.73 147.83,117.47 147.1,116.74 146.83,115.75 147.1,114.76 147.83,114.03 148.82,113.76 149.81,114.03 150.54,114.76 150.8,115.75 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,122.36 71.17,123.35 70.44,124.08 69.45,124.35 68.46,124.08 67.73,123.35 67.46,122.36 67.73,121.37 68.46,120.64 69.45,120.38 70.44,120.64 71.17,121.37 71.43,122.36 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,122.36 77.78,123.35 77.06,124.08 76.06,124.35 75.07,124.08 74.34,123.35 74.08,122.36 74.34,121.37 75.07,120.64 76.06,120.38 77.06,120.64 77.78,121.37 78.05,122.36 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"84.66,122.36 84.4,123.35 83.67,124.08 82.68,124.35 81.69,124.08 80.96,123.35 80.69,122.36 80.96,121.37 81.69,120.64 82.68,120.38 83.67,120.64 84.4,121.37 84.66,122.36 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,122.36 91.01,123.35 90.28,124.08 89.29,124.35 88.3,124.08 87.57,123.35 87.31,122.36 87.57,121.37 88.3,120.64 89.29,120.38 90.28,120.64 91.01,121.37 91.28,122.36 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"104.5,122.36 104.24,123.35 103.51,124.08 102.52,124.35 101.53,124.08 100.8,123.35 100.54,122.36 100.8,121.37 101.53,120.64 102.52,120.38 103.51,120.64 104.24,121.37 104.5,122.36 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"124.35,122.36 124.08,123.35 123.35,124.08 122.36,124.35 121.37,124.08 120.64,123.35 120.38,122.36 120.64,121.37 121.37,120.64 122.36,120.38 123.35,120.64 124.08,121.37 124.35,122.36 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"130.96,122.36 130.69,123.35 129.97,124.08 128.98,124.35 127.98,124.08 127.26,123.35 126.99,122.36 127.26,121.37 127.98,120.64 128.98,120.38 129.97,120.64 130.69,121.37 130.96,122.36 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,122.36 137.31,123.35 136.58,124.08 135.59,124.35 134.6,124.08 133.87,123.35 133.61,122.36 133.87,121.37 134.6,120.64 135.59,120.38 136.58,120.64 137.31,121.37 137.57,122.36 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,128.98 71.17,129.97 70.44,130.69 69.45,130.96 68.46,130.69 67.73,129.97 67.46,128.98 67.73,127.98 68.46,127.26 69.45,126.99 70.44,127.26 71.17,127.98 71.43,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,128.98 77.78,129.97 77.06,130.69 76.06,130.96 75.07,130.69 74.34,129.97 74.08,128.98 74.34,127.98 75.07,127.26 76.06,126.99 77.06,127.26 77.78,127.98 78.05,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,128.98 91.01,129.97 90.28,130.69 89.29,130.96 88.3,130.69 87.57,129.97 87.31,128.98 87.57,127.98 88.3,127.26 89.29,126.99 90.28,127.26 91.01,127.98 91.28,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,128.98 97.62,129.97 96.9,130.69 95.91,130.96 94.91,130.69 94.19,129.97 93.92,128.98 94.19,127.98 94.91,127.26 95.91,126.99 96.9,127.26 97.62,127.98 97.89,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"104.5,128.98 104.24,129.97 103.51,130.69 102.52,130.96 101.53,130.69 100.8,129.97 100.54,128.98 100.8,127.98 101.53,127.26 102.52,126.99 103.51,127.26 104.24,127.98 104.5,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"111.12,128.98 110.85,129.97 110.13,130.69 109.13,130.96 108.14,130.69 107.42,129.97 107.15,128.98 107.42,127.98 108.14,127.26 109.13,126.99 110.13,127.26 110.85,127.98 111.12,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,128.98 117.47,129.97 116.74,130.69 115.75,130.96 114.76,130.69 114.03,129.97 113.76,128.98 114.03,127.98 114.76,127.26 115.75,126.99 116.74,127.26 117.47,127.98 117.73,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"130.96,128.98 130.69,129.97 129.97,130.69 128.98,130.96 127.98,130.69 127.26,129.97 126.99,128.98 127.26,127.98 127.98,127.26 128.98,126.99 129.97,127.26 130.69,127.98 130.96,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,128.98 137.31,129.97 136.58,130.69 135.59,130.96 134.6,130.69 133.87,129.97 133.61,128.98 133.87,127.98 134.6,127.26 135.59,126.99 136.58,127.26 137.31,127.98 137.57,128.98 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,135.59 71.17,136.58 70.44,137.31 69.45,137.57 68.46,137.31 67.73,136.58 67.46,135.59 67.73,134.6 68.46,133.87 69.45,133.61 70.44,133.87 71.17,134.6 71.43,135.59 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,135.59 77.78,136.58 77.06,137.31 76.06,137.57 75.07,137.31 74.34,136.58 74.08,135.59 74.34,134.6 75.07,133.87 76.06,133.61 77.06,133.87 77.78,134.6 78.05,135.59 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,135.59 97.62,136.58 96.9,137.31 95.91,137.57 94.91,137.31 94.19,136.58 93.92,135.59 94.19,134.6 94.91,133.87 95.91,133.61 96.9,133.87 97.62,134.6 97.89,135.59 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"111.12,135.59 110.85,136.58 110.13,137.31 109.13,137.57 108.14,137.31 107.42,136.58 107.15,135.59 107.42,134.6 108.14,133.87 109.13,133.61 110.13,133.87 110.85,134.6 111.12,135.59 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,135.59 117.47,136.58 116.74,137.31 115.75,137.57 114.76,137.31 114.03,136.58 113.76,135.59 114.03,134.6 114.76,133.87 115.75,133.61 116.74,133.87 117.47,134.6 117.73,135.59 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"130.96,135.59 130.69,136.58 129.97,137.31 128.98,137.57 127.98,137.31 127.26,136.58 126.99,135.59 127.26,134.6 127.98,133.87 128.98,133.61 129.97,133.87 130.69,134.6 130.96,135.59 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,135.59 137.31,136.58 136.58,137.31 135.59,137.57 134.6,137.31 133.87,136.58 133.61,135.59 133.87,134.6 134.6,133.87 135.59,133.61 136.58,133.87 137.31,134.6 137.57,135.59 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,142.2 71.17,143.2 70.44,143.92 69.45,144.19 68.46,143.92 67.73,143.2 67.46,142.2 67.73,141.21 68.46,140.49 69.45,140.22 70.44,140.49 71.17,141.21 71.43,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"84.66,142.2 84.4,143.2 83.67,143.92 82.68,144.19 81.69,143.92 80.96,143.2 80.69,142.2 80.96,141.21 81.69,140.49 82.68,140.22 83.67,140.49 84.4,141.21 84.66,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"91.28,142.2 91.01,143.2 90.28,143.92 89.29,144.19 88.3,143.92 87.57,143.2 87.31,142.2 87.57,141.21 88.3,140.49 89.29,140.22 90.28,140.49 91.01,141.21 91.28,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,142.2 97.62,143.2 96.9,143.92 95.91,144.19 94.91,143.92 94.19,143.2 93.92,142.2 94.19,141.21 94.91,140.49 95.91,140.22 96.9,140.49 97.62,141.21 97.89,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"104.5,142.2 104.24,143.2 103.51,143.92 102.52,144.19 101.53,143.92 100.8,143.2 100.54,142.2 100.8,141.21 101.53,140.49 102.52,140.22 103.51,140.49 104.24,141.21 104.5,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"111.12,142.2 110.85,143.2 110.13,143.92 109.13,144.19 108.14,143.92 107.42,143.2 107.15,142.2 107.42,141.21 108.14,140.49 109.13,140.22 110.13,140.49 110.85,141.21 111.12,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,142.2 117.47,143.2 116.74,143.92 115.75,144.19 114.76,143.92 114.03,143.2 113.76,142.2 114.03,141.21 114.76,140.49 115.75,140.22 116.74,140.49 117.47,141.21 117.73,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"124.35,142.2 124.08,143.2 123.35,143.92 122.36,144.19 121.37,143.92 120.64,143.2 120.38,142.2 120.64,141.21 121.37,140.49 122.36,140.22 123.35,140.49 124.08,141.21 124.35,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,142.2 137.31,143.2 136.58,143.92 135.59,144.19 134.6,143.92 133.87,143.2 133.61,142.2 133.87,141.21 134.6,140.49 135.59,140.22 136.58,140.49 137.31,141.21 137.57,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"144.19,142.2 143.92,143.2 143.2,143.92 142.2,144.19 141.21,143.92 140.49,143.2 140.22,142.2 140.49,141.21 141.21,140.49 142.2,140.22 143.2,140.49 143.92,141.21 144.19,142.2 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"71.43,148.82 71.17,149.81 70.44,150.54 69.45,150.8 68.46,150.54 67.73,149.81 67.46,148.82 67.73,147.83 68.46,147.1 69.45,146.83 70.44,147.1 71.17,147.83 71.43,148.82 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"78.05,148.82 77.78,149.81 77.06,150.54 76.06,150.8 75.07,150.54 74.34,149.81 74.08,148.82 74.34,147.83 75.07,147.1 76.06,146.83 77.06,147.1 77.78,147.83 78.05,148.82 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"84.66,148.82 84.4,149.81 83.67,150.54 82.68,150.8 81.69,150.54 80.96,149.81 80.69,148.82 80.96,147.83 81.69,147.1 82.68,146.83 83.67,147.1 84.4,147.83 84.66,148.82 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"97.89,148.82 97.62,149.81 96.9,150.54 95.91,150.8 94.91,150.54 94.19,149.81 93.92,148.82 94.19,147.83 94.91,147.1 95.91,146.83 96.9,147.1 97.62,147.83 97.89,148.82 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"117.73,148.82 117.47,149.81 116.74,150.54 115.75,150.8 114.76,150.54 114.03,149.81 113.76,148.82 114.03,147.83 114.76,147.1 115.75,146.83 116.74,147.1 117.47,147.83 117.73,148.82 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n        <polygon\r\n          points=\"137.57,148.82 137.31,149.81 136.58,150.54 135.59,150.8 134.6,150.54 133.87,149.81 133.61,148.82 133.87,147.83 134.6,147.1 135.59,146.83 136.58,147.1 137.31,147.83 137.57,148.82 \"\r\n          style=\"fill:url(#gradient656a9574a16d49d783c4af7996609d4f);\"\r\n        />\r\n      `,\r\n    },\r\n    {\r\n      value: 7,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradienta8c6daa64ea24dda9c31f0ef25b23fe5\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"8.73357798631972\"\r\n            y1=\"77.5065212907663\"\r\n            x2=\"156.620742539803\"\r\n            y2=\"87.8477992353567\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#B2A1C7\" />\r\n            <stop offset=\"50%\" stop-color=\"#FDEADA\" />\r\n            <stop offset=\"100%\" stop-color=\"#B2A1C7\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n            style=\"fill:url(#gradienta8c6daa64ea24dda9c31f0ef25b23fe5);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n            style=\"fill:url(#gradienta8c6daa64ea24dda9c31f0ef25b23fe5);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n            style=\"fill:url(#gradienta8c6daa64ea24dda9c31f0ef25b23fe5);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientd6ceeefdc3cb4485b1f267ba2bd1ca96\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"22.8180702621143\"\r\n            y1=\"78.4914031594818\"\r\n            x2=\"142.536246449311\"\r\n            y2=\"86.862913551944\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#F2F2F2\" />\r\n            <stop offset=\"100%\" stop-color=\"#FF9393\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n            style=\"fill:url(#gradientd6ceeefdc3cb4485b1f267ba2bd1ca96);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \"\r\n            style=\"fill:url(#gradientd6ceeefdc3cb4485b1f267ba2bd1ca96);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#gradientd6ceeefdc3cb4485b1f267ba2bd1ca96);\"\r\n          />\r\n          <pattern\r\n            id=\"hatcha1e4da6171284e5aac40bec16ac41092\"\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"8\"\r\n            height=\"8\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"8\" height=\"8\" fill=\"#E5B9B7\" />\r\n            <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"1\" y=\"0\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"2\" y=\"0\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"3\" y=\"0\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"4\" y=\"4\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"5\" y=\"4\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"6\" y=\"4\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"7\" y=\"4\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"79.37,13.23 86.05,13.23 85.98,19.91 79.37,19.91 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,13.23 92.66,13.23 92.53,19.84 85.92,19.84 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,13.23 99.21,13.23 99.15,19.91 92.53,19.91 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,19.84 72.82,19.84 72.76,26.46 66.14,26.46 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,19.84 79.44,19.84 79.3,26.46 72.69,26.46 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,19.78 85.98,19.78 85.92,26.52 79.3,26.52 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,19.78 99.21,19.78 99.21,26.52 92.6,26.52 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,26.39 86.05,26.39 85.98,33.07 79.37,33.07 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,26.46 92.66,26.46 92.53,33.07 85.92,33.07 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,26.39 99.21,26.39 99.15,33.14 92.53,33.14 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,33.07 72.82,33.07 72.76,39.69 66.14,39.69 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,33.07 79.37,33.07 79.3,39.75 72.69,39.75 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,33 99.21,33 99.21,39.75 92.6,39.75 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,39.62 79.37,39.62 79.37,46.3 72.76,46.3 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,39.62 99.21,39.62 99.21,46.3 92.6,46.3 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,46.3 72.76,46.3 72.76,52.98 66.14,52.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,46.3 92.6,46.3 92.6,52.91 85.98,52.91 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,52.85 72.76,52.85 72.76,59.53 66.14,59.53 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,52.91 85.98,52.91 85.98,59.53 79.37,59.53 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,52.91 99.21,52.91 99.21,59.53 92.6,59.53 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,59.53 79.37,59.53 79.37,66.14 72.76,66.14 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,66.14 19.91,66.14 19.84,72.82 13.23,72.82 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,66.14 26.52,66.14 26.39,72.82 19.78,72.82 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,66.14 33.14,66.14 33,72.82 26.39,72.82 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"33,66.14 39.75,66.14 39.62,72.76 33,72.76 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,66.14 46.3,66.14 46.23,72.76 39.62,72.76 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,66.14 59.59,66.14 59.53,72.76 52.91,72.76 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"59.46,66.14 66.21,66.14 66.08,72.82 59.46,72.82 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.08,66.14 72.76,66.14 72.69,72.76 66.08,72.76 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,66.14 92.6,66.14 92.6,72.82 85.98,72.82 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,66.14 105.83,66.14 105.83,72.82 99.21,72.82 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,66.14 119.06,66.14 119.06,72.76 112.44,72.76 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,66.14 132.28,66.14 132.28,72.82 125.67,72.82 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,66.14 145.51,66.14 145.51,72.82 138.9,72.82 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,72.69 19.91,72.69 19.84,79.37 13.23,79.37 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,72.69 26.52,72.69 26.39,79.37 19.78,79.37 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,72.69 33.07,72.69 33,79.44 26.39,79.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,72.76 52.91,72.76 52.91,79.44 46.3,79.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,72.69 66.14,72.69 66.14,79.37 59.53,79.37 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,72.76 79.37,72.76 79.37,79.44 72.76,79.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,72.69 92.66,72.69 92.6,79.37 85.98,79.37 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,72.76 99.28,72.76 99.15,79.44 92.53,79.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,72.69 105.89,72.69 105.76,79.37 99.15,79.37 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,72.76 112.44,72.76 112.37,79.44 105.76,79.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,72.69 132.35,72.69 132.28,79.44 125.67,79.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,72.76 138.96,72.76 138.83,79.37 132.22,79.37 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,72.69 145.58,72.69 145.45,79.37 138.83,79.37 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,72.76 152.13,72.76 152.06,79.44 145.45,79.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,79.3 33.07,79.3 33.07,85.98 26.46,85.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,79.37 46.37,79.37 46.3,85.98 39.69,85.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"46.23,79.3 52.98,79.3 52.85,85.98 46.23,85.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"52.85,79.37 59.53,79.37 59.46,85.98 52.85,85.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,79.37 72.82,79.37 72.76,85.98 66.14,85.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,79.3 79.37,79.3 79.3,85.98 72.69,85.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,79.3 99.21,79.3 99.21,86.05 92.6,86.05 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,79.3 112.51,79.3 112.44,86.05 105.83,86.05 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,79.37 119.06,79.37 118.99,85.98 112.37,85.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,79.3 132.28,79.3 132.28,85.98 125.67,85.98 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,79.3 152.13,79.3 152.13,86.05 145.51,86.05 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,85.98 19.84,85.98 19.84,92.6 13.23,92.6 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,85.98 39.69,85.98 39.69,92.66 33.07,92.66 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,85.98 92.66,85.98 92.6,92.6 85.98,92.6 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,85.92 99.28,85.92 99.15,92.66 92.53,92.66 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,85.98 105.89,85.98 105.76,92.6 99.15,92.6 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,85.92 112.44,85.92 112.37,92.6 105.76,92.6 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,85.98 138.96,85.98 138.9,92.6 132.28,92.6 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,85.98 145.58,85.98 145.45,92.66 138.83,92.66 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,85.92 152.13,85.92 152.06,92.6 145.45,92.6 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,92.6 26.46,92.6 26.46,99.21 19.84,99.21 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,92.53 39.75,92.53 39.69,99.21 33.07,99.21 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,92.6 46.3,92.6 46.23,99.21 39.62,99.21 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,92.6 59.53,92.6 59.53,99.21 52.91,99.21 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,92.6 72.82,92.6 72.76,99.28 66.14,99.28 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,92.6 79.37,92.6 79.3,99.21 72.69,99.21 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,92.53 99.21,92.53 99.21,99.28 92.6,99.28 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,92.6 119.06,92.6 119.06,99.28 112.44,99.28 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,92.53 145.51,92.53 145.51,99.21 138.9,99.21 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,99.15 72.76,99.15 72.76,105.89 66.14,105.89 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,99.21 85.98,99.21 85.98,105.83 79.37,105.83 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,99.15 99.21,99.15 99.21,105.83 92.6,105.83 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,99.15 119.06,99.15 119.06,105.83 112.44,105.83 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,99.21 138.9,99.21 138.9,105.83 132.28,105.83 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,105.76 72.76,105.76 72.76,112.44 66.14,112.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,105.83 92.6,105.83 92.6,112.44 85.98,112.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,105.83 105.83,105.83 105.83,112.44 99.21,112.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,105.83 125.74,105.83 125.67,112.51 119.06,112.51 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,105.83 132.28,105.83 132.22,112.44 125.6,112.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,105.83 145.58,105.83 145.51,112.44 138.9,112.44 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,105.83 152.13,105.83 152.06,112.51 145.45,112.51 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,112.44 79.44,112.44 79.37,119.12 72.76,119.12 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,112.44 85.98,112.44 85.92,119.12 79.3,119.12 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,112.44 119.12,112.44 119.06,119.06 112.44,119.06 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,112.37 125.67,112.37 125.6,119.12 118.99,119.12 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,112.44 138.9,112.44 138.9,119.12 132.28,119.12 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,112.37 152.13,112.37 152.13,119.06 145.51,119.06 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,119.06 72.82,119.06 72.76,125.74 66.14,125.74 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,118.99 79.44,118.99 79.3,125.74 72.69,125.74 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,118.99 86.05,118.99 85.92,125.67 79.3,125.67 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,119.06 92.6,119.06 92.53,125.74 85.92,125.74 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,119.06 105.83,119.06 105.83,125.74 99.21,125.74 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,118.99 125.74,118.99 125.67,125.67 119.06,125.67 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,119.06 132.35,119.06 132.22,125.74 125.6,125.74 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,118.99 138.9,118.99 138.83,125.74 132.22,125.74 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,125.6 72.82,125.6 72.76,132.35 66.14,132.35 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,125.6 79.37,125.6 79.3,132.35 72.69,132.35 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,125.6 92.66,125.6 92.6,132.28 85.98,132.28 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,125.67 99.28,125.67 99.15,132.35 92.53,132.35 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,125.6 105.89,125.6 105.76,132.28 99.15,132.28 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,125.67 112.51,125.67 112.37,132.35 105.76,132.35 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,125.67 119.06,125.67 118.99,132.35 112.37,132.35 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,125.6 132.35,125.6 132.28,132.35 125.67,132.35 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,125.6 138.9,125.6 138.83,132.35 132.22,132.35 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,132.22 72.82,132.22 72.76,138.96 66.14,138.96 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,132.22 79.37,132.22 79.3,138.9 72.69,138.9 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,132.22 99.21,132.22 99.21,138.96 92.6,138.96 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,132.22 112.51,132.22 112.44,138.96 105.83,138.96 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,132.22 119.06,132.22 118.99,138.96 112.37,138.96 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,132.22 132.35,132.22 132.28,138.9 125.67,138.9 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,132.22 138.9,132.22 138.83,138.96 132.22,138.96 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,138.83 72.76,138.83 72.76,145.58 66.14,145.58 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,138.9 86.05,138.9 85.98,145.58 79.37,145.58 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,138.9 92.66,138.9 92.53,145.51 85.92,145.51 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,138.83 99.28,138.83 99.15,145.58 92.53,145.58 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,138.9 105.89,138.9 105.76,145.51 99.15,145.51 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,138.83 112.51,138.83 112.37,145.51 105.76,145.51 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,138.83 119.12,138.83 118.99,145.58 112.37,145.58 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,138.9 125.67,138.9 125.6,145.51 118.99,145.51 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,138.83 138.96,138.83 138.9,145.58 132.28,145.58 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,138.9 145.51,138.9 145.45,145.51 138.83,145.51 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,145.45 72.82,145.45 72.76,152.13 66.14,152.13 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,145.51 79.44,145.51 79.3,152.13 72.69,152.13 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,145.45 85.98,145.45 85.92,152.13 79.3,152.13 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,145.45 99.21,145.45 99.21,152.13 92.6,152.13 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,145.45 119.06,145.45 119.06,152.13 112.44,152.13 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,145.45 138.9,145.45 138.9,152.13 132.28,152.13 \"\r\n            style=\"fill:url(#hatcha1e4da6171284e5aac40bec16ac41092);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 8,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(87,118,157,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient8de752c176384710a7bf6eb6127ff1b9\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"7.72605761144101\"\r\n            y1=\"76.1197884622769\"\r\n            x2=\"157.628262914682\"\r\n            y2=\"89.2345320638461\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#DBEEF3\" />\r\n            <stop offset=\"100%\" stop-color=\"#CBB8A8\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,16.54 84.4,17.53 83.67,18.25 82.68,18.52 81.69,18.25 80.96,17.53 80.69,16.54 80.96,15.54 81.69,14.82 82.68,14.55 83.67,14.82 84.4,15.54 84.66,16.54 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,16.54 91.01,17.53 90.28,18.25 89.29,18.52 88.3,18.25 87.57,17.53 87.31,16.54 87.57,15.54 88.3,14.82 89.29,14.55 90.28,14.82 91.01,15.54 91.28,16.54 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,16.54 97.62,17.53 96.9,18.25 95.91,18.52 94.91,18.25 94.19,17.53 93.92,16.54 94.19,15.54 94.91,14.82 95.91,14.55 96.9,14.82 97.62,15.54 97.89,16.54 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,23.15 71.17,24.14 70.44,24.87 69.45,25.13 68.46,24.87 67.73,24.14 67.46,23.15 67.73,22.16 68.46,21.43 69.45,21.17 70.44,21.43 71.17,22.16 71.43,23.15 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,23.15 77.78,24.14 77.06,24.87 76.06,25.13 75.07,24.87 74.34,24.14 74.08,23.15 74.34,22.16 75.07,21.43 76.06,21.17 77.06,21.43 77.78,22.16 78.05,23.15 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,23.15 84.4,24.14 83.67,24.87 82.68,25.13 81.69,24.87 80.96,24.14 80.69,23.15 80.96,22.16 81.69,21.43 82.68,21.17 83.67,21.43 84.4,22.16 84.66,23.15 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,23.15 97.62,24.14 96.9,24.87 95.91,25.13 94.91,24.87 94.19,24.14 93.92,23.15 94.19,22.16 94.91,21.43 95.91,21.17 96.9,21.43 97.62,22.16 97.89,23.15 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,29.76 84.4,30.76 83.67,31.48 82.68,31.75 81.69,31.48 80.96,30.76 80.69,29.76 80.96,28.77 81.69,28.05 82.68,27.78 83.67,28.05 84.4,28.77 84.66,29.76 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,29.76 91.01,30.76 90.28,31.48 89.29,31.75 88.3,31.48 87.57,30.76 87.31,29.76 87.57,28.77 88.3,28.05 89.29,27.78 90.28,28.05 91.01,28.77 91.28,29.76 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,29.76 97.62,30.76 96.9,31.48 95.91,31.75 94.91,31.48 94.19,30.76 93.92,29.76 94.19,28.77 94.91,28.05 95.91,27.78 96.9,28.05 97.62,28.77 97.89,29.76 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,36.38 71.17,37.37 70.44,38.1 69.45,38.36 68.46,38.1 67.73,37.37 67.46,36.38 67.73,35.39 68.46,34.66 69.45,34.39 70.44,34.66 71.17,35.39 71.43,36.38 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,36.38 77.78,37.37 77.06,38.1 76.06,38.36 75.07,38.1 74.34,37.37 74.08,36.38 74.34,35.39 75.07,34.66 76.06,34.39 77.06,34.66 77.78,35.39 78.05,36.38 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,36.38 97.62,37.37 96.9,38.1 95.91,38.36 94.91,38.1 94.19,37.37 93.92,36.38 94.19,35.39 94.91,34.66 95.91,34.39 96.9,34.66 97.62,35.39 97.89,36.38 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,42.99 77.78,43.98 77.06,44.71 76.06,44.98 75.07,44.71 74.34,43.98 74.08,42.99 74.34,42 75.07,41.27 76.06,41.01 77.06,41.27 77.78,42 78.05,42.99 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,42.99 97.62,43.98 96.9,44.71 95.91,44.98 94.91,44.71 94.19,43.98 93.92,42.99 94.19,42 94.91,41.27 95.91,41.01 96.9,41.27 97.62,42 97.89,42.99 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,49.61 71.17,50.6 70.44,51.32 69.45,51.59 68.46,51.32 67.73,50.6 67.46,49.61 67.73,48.61 68.46,47.89 69.45,47.62 70.44,47.89 71.17,48.61 71.43,49.61 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,49.61 91.01,50.6 90.28,51.32 89.29,51.59 88.3,51.32 87.57,50.6 87.31,49.61 87.57,48.61 88.3,47.89 89.29,47.62 90.28,47.89 91.01,48.61 91.28,49.61 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,56.22 71.17,57.21 70.44,57.94 69.45,58.2 68.46,57.94 67.73,57.21 67.46,56.22 67.73,55.23 68.46,54.5 69.45,54.24 70.44,54.5 71.17,55.23 71.43,56.22 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,56.22 84.4,57.21 83.67,57.94 82.68,58.2 81.69,57.94 80.96,57.21 80.69,56.22 80.96,55.23 81.69,54.5 82.68,54.24 83.67,54.5 84.4,55.23 84.66,56.22 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,56.22 97.62,57.21 96.9,57.94 95.91,58.2 94.91,57.94 94.19,57.21 93.92,56.22 94.19,55.23 94.91,54.5 95.91,54.24 96.9,54.5 97.62,55.23 97.89,56.22 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,62.83 77.78,63.83 77.06,64.55 76.06,64.82 75.07,64.55 74.34,63.83 74.08,62.83 74.34,61.84 75.07,61.12 76.06,60.85 77.06,61.12 77.78,61.84 78.05,62.83 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"18.52,69.45 18.25,70.44 17.53,71.17 16.54,71.43 15.54,71.17 14.82,70.44 14.55,69.45 14.82,68.46 15.54,67.73 16.54,67.46 17.53,67.73 18.25,68.46 18.52,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"25.13,69.45 24.87,70.44 24.14,71.17 23.15,71.43 22.16,71.17 21.43,70.44 21.17,69.45 21.43,68.46 22.16,67.73 23.15,67.46 24.14,67.73 24.87,68.46 25.13,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"31.75,69.45 31.48,70.44 30.76,71.17 29.76,71.43 28.77,71.17 28.05,70.44 27.78,69.45 28.05,68.46 28.77,67.73 29.76,67.46 30.76,67.73 31.48,68.46 31.75,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"38.36,69.45 38.1,70.44 37.37,71.17 36.38,71.43 35.39,71.17 34.66,70.44 34.39,69.45 34.66,68.46 35.39,67.73 36.38,67.46 37.37,67.73 38.1,68.46 38.36,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"44.98,69.45 44.71,70.44 43.98,71.17 42.99,71.43 42,71.17 41.27,70.44 41.01,69.45 41.27,68.46 42,67.73 42.99,67.46 43.98,67.73 44.71,68.46 44.98,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"58.2,69.45 57.94,70.44 57.21,71.17 56.22,71.43 55.23,71.17 54.5,70.44 54.24,69.45 54.5,68.46 55.23,67.73 56.22,67.46 57.21,67.73 57.94,68.46 58.2,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"64.82,69.45 64.55,70.44 63.83,71.17 62.83,71.43 61.84,71.17 61.12,70.44 60.85,69.45 61.12,68.46 61.84,67.73 62.83,67.46 63.83,67.73 64.55,68.46 64.82,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,69.45 71.17,70.44 70.44,71.17 69.45,71.43 68.46,71.17 67.73,70.44 67.46,69.45 67.73,68.46 68.46,67.73 69.45,67.46 70.44,67.73 71.17,68.46 71.43,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,69.45 91.01,70.44 90.28,71.17 89.29,71.43 88.3,71.17 87.57,70.44 87.31,69.45 87.57,68.46 88.3,67.73 89.29,67.46 90.28,67.73 91.01,68.46 91.28,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,69.45 104.24,70.44 103.51,71.17 102.52,71.43 101.53,71.17 100.8,70.44 100.54,69.45 100.8,68.46 101.53,67.73 102.52,67.46 103.51,67.73 104.24,68.46 104.5,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,69.45 117.47,70.44 116.74,71.17 115.75,71.43 114.76,71.17 114.03,70.44 113.76,69.45 114.03,68.46 114.76,67.73 115.75,67.46 116.74,67.73 117.47,68.46 117.73,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,69.45 130.69,70.44 129.97,71.17 128.98,71.43 127.98,71.17 127.26,70.44 126.99,69.45 127.26,68.46 127.98,67.73 128.98,67.46 129.97,67.73 130.69,68.46 130.96,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,69.45 143.92,70.44 143.2,71.17 142.2,71.43 141.21,71.17 140.49,70.44 140.22,69.45 140.49,68.46 141.21,67.73 142.2,67.46 143.2,67.73 143.92,68.46 144.19,69.45 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"18.52,76.06 18.25,77.06 17.53,77.78 16.54,78.05 15.54,77.78 14.82,77.06 14.55,76.06 14.82,75.07 15.54,74.34 16.54,74.08 17.53,74.34 18.25,75.07 18.52,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"25.13,76.06 24.87,77.06 24.14,77.78 23.15,78.05 22.16,77.78 21.43,77.06 21.17,76.06 21.43,75.07 22.16,74.34 23.15,74.08 24.14,74.34 24.87,75.07 25.13,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"31.75,76.06 31.48,77.06 30.76,77.78 29.76,78.05 28.77,77.78 28.05,77.06 27.78,76.06 28.05,75.07 28.77,74.34 29.76,74.08 30.76,74.34 31.48,75.07 31.75,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"51.59,76.06 51.32,77.06 50.6,77.78 49.61,78.05 48.61,77.78 47.89,77.06 47.62,76.06 47.89,75.07 48.61,74.34 49.61,74.08 50.6,74.34 51.32,75.07 51.59,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"64.82,76.06 64.55,77.06 63.83,77.78 62.83,78.05 61.84,77.78 61.12,77.06 60.85,76.06 61.12,75.07 61.84,74.34 62.83,74.08 63.83,74.34 64.55,75.07 64.82,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,76.06 77.78,77.06 77.06,77.78 76.06,78.05 75.07,77.78 74.34,77.06 74.08,76.06 74.34,75.07 75.07,74.34 76.06,74.08 77.06,74.34 77.78,75.07 78.05,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,76.06 91.01,77.06 90.28,77.78 89.29,78.05 88.3,77.78 87.57,77.06 87.31,76.06 87.57,75.07 88.3,74.34 89.29,74.08 90.28,74.34 91.01,75.07 91.28,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,76.06 97.62,77.06 96.9,77.78 95.91,78.05 94.91,77.78 94.19,77.06 93.92,76.06 94.19,75.07 94.91,74.34 95.91,74.08 96.9,74.34 97.62,75.07 97.89,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,76.06 104.24,77.06 103.51,77.78 102.52,78.05 101.53,77.78 100.8,77.06 100.54,76.06 100.8,75.07 101.53,74.34 102.52,74.08 103.51,74.34 104.24,75.07 104.5,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,76.06 110.85,77.06 110.13,77.78 109.13,78.05 108.14,77.78 107.42,77.06 107.15,76.06 107.42,75.07 108.14,74.34 109.13,74.08 110.13,74.34 110.85,75.07 111.12,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,76.06 130.69,77.06 129.97,77.78 128.98,78.05 127.98,77.78 127.26,77.06 126.99,76.06 127.26,75.07 127.98,74.34 128.98,74.08 129.97,74.34 130.69,75.07 130.96,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,76.06 137.31,77.06 136.58,77.78 135.59,78.05 134.6,77.78 133.87,77.06 133.61,76.06 133.87,75.07 134.6,74.34 135.59,74.08 136.58,74.34 137.31,75.07 137.57,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,76.06 143.92,77.06 143.2,77.78 142.2,78.05 141.21,77.78 140.49,77.06 140.22,76.06 140.49,75.07 141.21,74.34 142.2,74.08 143.2,74.34 143.92,75.07 144.19,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,76.06 150.54,77.06 149.81,77.78 148.82,78.05 147.83,77.78 147.1,77.06 146.83,76.06 147.1,75.07 147.83,74.34 148.82,74.08 149.81,74.34 150.54,75.07 150.8,76.06 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"31.75,82.68 31.48,83.67 30.76,84.4 29.76,84.66 28.77,84.4 28.05,83.67 27.78,82.68 28.05,81.69 28.77,80.96 29.76,80.69 30.76,80.96 31.48,81.69 31.75,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"44.98,82.68 44.71,83.67 43.98,84.4 42.99,84.66 42,84.4 41.27,83.67 41.01,82.68 41.27,81.69 42,80.96 42.99,80.69 43.98,80.96 44.71,81.69 44.98,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"51.59,82.68 51.32,83.67 50.6,84.4 49.61,84.66 48.61,84.4 47.89,83.67 47.62,82.68 47.89,81.69 48.61,80.96 49.61,80.69 50.6,80.96 51.32,81.69 51.59,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"58.2,82.68 57.94,83.67 57.21,84.4 56.22,84.66 55.23,84.4 54.5,83.67 54.24,82.68 54.5,81.69 55.23,80.96 56.22,80.69 57.21,80.96 57.94,81.69 58.2,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,82.68 71.17,83.67 70.44,84.4 69.45,84.66 68.46,84.4 67.73,83.67 67.46,82.68 67.73,81.69 68.46,80.96 69.45,80.69 70.44,80.96 71.17,81.69 71.43,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,82.68 77.78,83.67 77.06,84.4 76.06,84.66 75.07,84.4 74.34,83.67 74.08,82.68 74.34,81.69 75.07,80.96 76.06,80.69 77.06,80.96 77.78,81.69 78.05,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,82.68 97.62,83.67 96.9,84.4 95.91,84.66 94.91,84.4 94.19,83.67 93.92,82.68 94.19,81.69 94.91,80.96 95.91,80.69 96.9,80.96 97.62,81.69 97.89,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,82.68 110.85,83.67 110.13,84.4 109.13,84.66 108.14,84.4 107.42,83.67 107.15,82.68 107.42,81.69 108.14,80.96 109.13,80.69 110.13,80.96 110.85,81.69 111.12,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,82.68 117.47,83.67 116.74,84.4 115.75,84.66 114.76,84.4 114.03,83.67 113.76,82.68 114.03,81.69 114.76,80.96 115.75,80.69 116.74,80.96 117.47,81.69 117.73,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,82.68 130.69,83.67 129.97,84.4 128.98,84.66 127.98,84.4 127.26,83.67 126.99,82.68 127.26,81.69 127.98,80.96 128.98,80.69 129.97,80.96 130.69,81.69 130.96,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,82.68 150.54,83.67 149.81,84.4 148.82,84.66 147.83,84.4 147.1,83.67 146.83,82.68 147.1,81.69 147.83,80.96 148.82,80.69 149.81,80.96 150.54,81.69 150.8,82.68 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"18.52,89.29 18.25,90.28 17.53,91.01 16.54,91.28 15.54,91.01 14.82,90.28 14.55,89.29 14.82,88.3 15.54,87.57 16.54,87.31 17.53,87.57 18.25,88.3 18.52,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"38.36,89.29 38.1,90.28 37.37,91.01 36.38,91.28 35.39,91.01 34.66,90.28 34.39,89.29 34.66,88.3 35.39,87.57 36.38,87.31 37.37,87.57 38.1,88.3 38.36,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,89.29 91.01,90.28 90.28,91.01 89.29,91.28 88.3,91.01 87.57,90.28 87.31,89.29 87.57,88.3 88.3,87.57 89.29,87.31 90.28,87.57 91.01,88.3 91.28,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,89.29 97.62,90.28 96.9,91.01 95.91,91.28 94.91,91.01 94.19,90.28 93.92,89.29 94.19,88.3 94.91,87.57 95.91,87.31 96.9,87.57 97.62,88.3 97.89,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,89.29 104.24,90.28 103.51,91.01 102.52,91.28 101.53,91.01 100.8,90.28 100.54,89.29 100.8,88.3 101.53,87.57 102.52,87.31 103.51,87.57 104.24,88.3 104.5,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,89.29 110.85,90.28 110.13,91.01 109.13,91.28 108.14,91.01 107.42,90.28 107.15,89.29 107.42,88.3 108.14,87.57 109.13,87.31 110.13,87.57 110.85,88.3 111.12,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,89.29 137.31,90.28 136.58,91.01 135.59,91.28 134.6,91.01 133.87,90.28 133.61,89.29 133.87,88.3 134.6,87.57 135.59,87.31 136.58,87.57 137.31,88.3 137.57,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,89.29 143.92,90.28 143.2,91.01 142.2,91.28 141.21,91.01 140.49,90.28 140.22,89.29 140.49,88.3 141.21,87.57 142.2,87.31 143.2,87.57 143.92,88.3 144.19,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,89.29 150.54,90.28 149.81,91.01 148.82,91.28 147.83,91.01 147.1,90.28 146.83,89.29 147.1,88.3 147.83,87.57 148.82,87.31 149.81,87.57 150.54,88.3 150.8,89.29 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"25.13,95.91 24.87,96.9 24.14,97.62 23.15,97.89 22.16,97.62 21.43,96.9 21.17,95.91 21.43,94.91 22.16,94.19 23.15,93.92 24.14,94.19 24.87,94.91 25.13,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"38.36,95.91 38.1,96.9 37.37,97.62 36.38,97.89 35.39,97.62 34.66,96.9 34.39,95.91 34.66,94.91 35.39,94.19 36.38,93.92 37.37,94.19 38.1,94.91 38.36,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"44.98,95.91 44.71,96.9 43.98,97.62 42.99,97.89 42,97.62 41.27,96.9 41.01,95.91 41.27,94.91 42,94.19 42.99,93.92 43.98,94.19 44.71,94.91 44.98,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"58.2,95.91 57.94,96.9 57.21,97.62 56.22,97.89 55.23,97.62 54.5,96.9 54.24,95.91 54.5,94.91 55.23,94.19 56.22,93.92 57.21,94.19 57.94,94.91 58.2,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,95.91 71.17,96.9 70.44,97.62 69.45,97.89 68.46,97.62 67.73,96.9 67.46,95.91 67.73,94.91 68.46,94.19 69.45,93.92 70.44,94.19 71.17,94.91 71.43,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,95.91 77.78,96.9 77.06,97.62 76.06,97.89 75.07,97.62 74.34,96.9 74.08,95.91 74.34,94.91 75.07,94.19 76.06,93.92 77.06,94.19 77.78,94.91 78.05,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,95.91 97.62,96.9 96.9,97.62 95.91,97.89 94.91,97.62 94.19,96.9 93.92,95.91 94.19,94.91 94.91,94.19 95.91,93.92 96.9,94.19 97.62,94.91 97.89,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,95.91 117.47,96.9 116.74,97.62 115.75,97.89 114.76,97.62 114.03,96.9 113.76,95.91 114.03,94.91 114.76,94.19 115.75,93.92 116.74,94.19 117.47,94.91 117.73,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,95.91 143.92,96.9 143.2,97.62 142.2,97.89 141.21,97.62 140.49,96.9 140.22,95.91 140.49,94.91 141.21,94.19 142.2,93.92 143.2,94.19 143.92,94.91 144.19,95.91 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,102.52 71.17,103.51 70.44,104.24 69.45,104.5 68.46,104.24 67.73,103.51 67.46,102.52 67.73,101.53 68.46,100.8 69.45,100.54 70.44,100.8 71.17,101.53 71.43,102.52 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,102.52 84.4,103.51 83.67,104.24 82.68,104.5 81.69,104.24 80.96,103.51 80.69,102.52 80.96,101.53 81.69,100.8 82.68,100.54 83.67,100.8 84.4,101.53 84.66,102.52 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,102.52 97.62,103.51 96.9,104.24 95.91,104.5 94.91,104.24 94.19,103.51 93.92,102.52 94.19,101.53 94.91,100.8 95.91,100.54 96.9,100.8 97.62,101.53 97.89,102.52 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,102.52 117.47,103.51 116.74,104.24 115.75,104.5 114.76,104.24 114.03,103.51 113.76,102.52 114.03,101.53 114.76,100.8 115.75,100.54 116.74,100.8 117.47,101.53 117.73,102.52 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,102.52 137.31,103.51 136.58,104.24 135.59,104.5 134.6,104.24 133.87,103.51 133.61,102.52 133.87,101.53 134.6,100.8 135.59,100.54 136.58,100.8 137.31,101.53 137.57,102.52 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,109.13 71.17,110.13 70.44,110.85 69.45,111.12 68.46,110.85 67.73,110.13 67.46,109.13 67.73,108.14 68.46,107.42 69.45,107.15 70.44,107.42 71.17,108.14 71.43,109.13 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,109.13 91.01,110.13 90.28,110.85 89.29,111.12 88.3,110.85 87.57,110.13 87.31,109.13 87.57,108.14 88.3,107.42 89.29,107.15 90.28,107.42 91.01,108.14 91.28,109.13 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,109.13 104.24,110.13 103.51,110.85 102.52,111.12 101.53,110.85 100.8,110.13 100.54,109.13 100.8,108.14 101.53,107.42 102.52,107.15 103.51,107.42 104.24,108.14 104.5,109.13 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"124.35,109.13 124.08,110.13 123.35,110.85 122.36,111.12 121.37,110.85 120.64,110.13 120.38,109.13 120.64,108.14 121.37,107.42 122.36,107.15 123.35,107.42 124.08,108.14 124.35,109.13 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,109.13 130.69,110.13 129.97,110.85 128.98,111.12 127.98,110.85 127.26,110.13 126.99,109.13 127.26,108.14 127.98,107.42 128.98,107.15 129.97,107.42 130.69,108.14 130.96,109.13 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,109.13 143.92,110.13 143.2,110.85 142.2,111.12 141.21,110.85 140.49,110.13 140.22,109.13 140.49,108.14 141.21,107.42 142.2,107.15 143.2,107.42 143.92,108.14 144.19,109.13 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,109.13 150.54,110.13 149.81,110.85 148.82,111.12 147.83,110.85 147.1,110.13 146.83,109.13 147.1,108.14 147.83,107.42 148.82,107.15 149.81,107.42 150.54,108.14 150.8,109.13 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,115.75 77.78,116.74 77.06,117.47 76.06,117.73 75.07,117.47 74.34,116.74 74.08,115.75 74.34,114.76 75.07,114.03 76.06,113.76 77.06,114.03 77.78,114.76 78.05,115.75 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,115.75 84.4,116.74 83.67,117.47 82.68,117.73 81.69,117.47 80.96,116.74 80.69,115.75 80.96,114.76 81.69,114.03 82.68,113.76 83.67,114.03 84.4,114.76 84.66,115.75 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,115.75 117.47,116.74 116.74,117.47 115.75,117.73 114.76,117.47 114.03,116.74 113.76,115.75 114.03,114.76 114.76,114.03 115.75,113.76 116.74,114.03 117.47,114.76 117.73,115.75 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"124.35,115.75 124.08,116.74 123.35,117.47 122.36,117.73 121.37,117.47 120.64,116.74 120.38,115.75 120.64,114.76 121.37,114.03 122.36,113.76 123.35,114.03 124.08,114.76 124.35,115.75 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,115.75 137.31,116.74 136.58,117.47 135.59,117.73 134.6,117.47 133.87,116.74 133.61,115.75 133.87,114.76 134.6,114.03 135.59,113.76 136.58,114.03 137.31,114.76 137.57,115.75 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,115.75 150.54,116.74 149.81,117.47 148.82,117.73 147.83,117.47 147.1,116.74 146.83,115.75 147.1,114.76 147.83,114.03 148.82,113.76 149.81,114.03 150.54,114.76 150.8,115.75 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,122.36 71.17,123.35 70.44,124.08 69.45,124.35 68.46,124.08 67.73,123.35 67.46,122.36 67.73,121.37 68.46,120.64 69.45,120.38 70.44,120.64 71.17,121.37 71.43,122.36 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,122.36 77.78,123.35 77.06,124.08 76.06,124.35 75.07,124.08 74.34,123.35 74.08,122.36 74.34,121.37 75.07,120.64 76.06,120.38 77.06,120.64 77.78,121.37 78.05,122.36 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,122.36 84.4,123.35 83.67,124.08 82.68,124.35 81.69,124.08 80.96,123.35 80.69,122.36 80.96,121.37 81.69,120.64 82.68,120.38 83.67,120.64 84.4,121.37 84.66,122.36 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,122.36 91.01,123.35 90.28,124.08 89.29,124.35 88.3,124.08 87.57,123.35 87.31,122.36 87.57,121.37 88.3,120.64 89.29,120.38 90.28,120.64 91.01,121.37 91.28,122.36 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,122.36 104.24,123.35 103.51,124.08 102.52,124.35 101.53,124.08 100.8,123.35 100.54,122.36 100.8,121.37 101.53,120.64 102.52,120.38 103.51,120.64 104.24,121.37 104.5,122.36 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"124.35,122.36 124.08,123.35 123.35,124.08 122.36,124.35 121.37,124.08 120.64,123.35 120.38,122.36 120.64,121.37 121.37,120.64 122.36,120.38 123.35,120.64 124.08,121.37 124.35,122.36 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,122.36 130.69,123.35 129.97,124.08 128.98,124.35 127.98,124.08 127.26,123.35 126.99,122.36 127.26,121.37 127.98,120.64 128.98,120.38 129.97,120.64 130.69,121.37 130.96,122.36 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,122.36 137.31,123.35 136.58,124.08 135.59,124.35 134.6,124.08 133.87,123.35 133.61,122.36 133.87,121.37 134.6,120.64 135.59,120.38 136.58,120.64 137.31,121.37 137.57,122.36 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,128.98 71.17,129.97 70.44,130.69 69.45,130.96 68.46,130.69 67.73,129.97 67.46,128.98 67.73,127.98 68.46,127.26 69.45,126.99 70.44,127.26 71.17,127.98 71.43,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,128.98 77.78,129.97 77.06,130.69 76.06,130.96 75.07,130.69 74.34,129.97 74.08,128.98 74.34,127.98 75.07,127.26 76.06,126.99 77.06,127.26 77.78,127.98 78.05,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,128.98 91.01,129.97 90.28,130.69 89.29,130.96 88.3,130.69 87.57,129.97 87.31,128.98 87.57,127.98 88.3,127.26 89.29,126.99 90.28,127.26 91.01,127.98 91.28,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,128.98 97.62,129.97 96.9,130.69 95.91,130.96 94.91,130.69 94.19,129.97 93.92,128.98 94.19,127.98 94.91,127.26 95.91,126.99 96.9,127.26 97.62,127.98 97.89,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,128.98 104.24,129.97 103.51,130.69 102.52,130.96 101.53,130.69 100.8,129.97 100.54,128.98 100.8,127.98 101.53,127.26 102.52,126.99 103.51,127.26 104.24,127.98 104.5,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,128.98 110.85,129.97 110.13,130.69 109.13,130.96 108.14,130.69 107.42,129.97 107.15,128.98 107.42,127.98 108.14,127.26 109.13,126.99 110.13,127.26 110.85,127.98 111.12,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,128.98 117.47,129.97 116.74,130.69 115.75,130.96 114.76,130.69 114.03,129.97 113.76,128.98 114.03,127.98 114.76,127.26 115.75,126.99 116.74,127.26 117.47,127.98 117.73,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,128.98 130.69,129.97 129.97,130.69 128.98,130.96 127.98,130.69 127.26,129.97 126.99,128.98 127.26,127.98 127.98,127.26 128.98,126.99 129.97,127.26 130.69,127.98 130.96,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,128.98 137.31,129.97 136.58,130.69 135.59,130.96 134.6,130.69 133.87,129.97 133.61,128.98 133.87,127.98 134.6,127.26 135.59,126.99 136.58,127.26 137.31,127.98 137.57,128.98 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,135.59 71.17,136.58 70.44,137.31 69.45,137.57 68.46,137.31 67.73,136.58 67.46,135.59 67.73,134.6 68.46,133.87 69.45,133.61 70.44,133.87 71.17,134.6 71.43,135.59 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,135.59 77.78,136.58 77.06,137.31 76.06,137.57 75.07,137.31 74.34,136.58 74.08,135.59 74.34,134.6 75.07,133.87 76.06,133.61 77.06,133.87 77.78,134.6 78.05,135.59 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,135.59 97.62,136.58 96.9,137.31 95.91,137.57 94.91,137.31 94.19,136.58 93.92,135.59 94.19,134.6 94.91,133.87 95.91,133.61 96.9,133.87 97.62,134.6 97.89,135.59 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,135.59 110.85,136.58 110.13,137.31 109.13,137.57 108.14,137.31 107.42,136.58 107.15,135.59 107.42,134.6 108.14,133.87 109.13,133.61 110.13,133.87 110.85,134.6 111.12,135.59 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,135.59 117.47,136.58 116.74,137.31 115.75,137.57 114.76,137.31 114.03,136.58 113.76,135.59 114.03,134.6 114.76,133.87 115.75,133.61 116.74,133.87 117.47,134.6 117.73,135.59 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,135.59 130.69,136.58 129.97,137.31 128.98,137.57 127.98,137.31 127.26,136.58 126.99,135.59 127.26,134.6 127.98,133.87 128.98,133.61 129.97,133.87 130.69,134.6 130.96,135.59 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,135.59 137.31,136.58 136.58,137.31 135.59,137.57 134.6,137.31 133.87,136.58 133.61,135.59 133.87,134.6 134.6,133.87 135.59,133.61 136.58,133.87 137.31,134.6 137.57,135.59 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,142.2 71.17,143.2 70.44,143.92 69.45,144.19 68.46,143.92 67.73,143.2 67.46,142.2 67.73,141.21 68.46,140.49 69.45,140.22 70.44,140.49 71.17,141.21 71.43,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,142.2 84.4,143.2 83.67,143.92 82.68,144.19 81.69,143.92 80.96,143.2 80.69,142.2 80.96,141.21 81.69,140.49 82.68,140.22 83.67,140.49 84.4,141.21 84.66,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,142.2 91.01,143.2 90.28,143.92 89.29,144.19 88.3,143.92 87.57,143.2 87.31,142.2 87.57,141.21 88.3,140.49 89.29,140.22 90.28,140.49 91.01,141.21 91.28,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,142.2 97.62,143.2 96.9,143.92 95.91,144.19 94.91,143.92 94.19,143.2 93.92,142.2 94.19,141.21 94.91,140.49 95.91,140.22 96.9,140.49 97.62,141.21 97.89,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,142.2 104.24,143.2 103.51,143.92 102.52,144.19 101.53,143.92 100.8,143.2 100.54,142.2 100.8,141.21 101.53,140.49 102.52,140.22 103.51,140.49 104.24,141.21 104.5,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,142.2 110.85,143.2 110.13,143.92 109.13,144.19 108.14,143.92 107.42,143.2 107.15,142.2 107.42,141.21 108.14,140.49 109.13,140.22 110.13,140.49 110.85,141.21 111.12,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,142.2 117.47,143.2 116.74,143.92 115.75,144.19 114.76,143.92 114.03,143.2 113.76,142.2 114.03,141.21 114.76,140.49 115.75,140.22 116.74,140.49 117.47,141.21 117.73,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"124.35,142.2 124.08,143.2 123.35,143.92 122.36,144.19 121.37,143.92 120.64,143.2 120.38,142.2 120.64,141.21 121.37,140.49 122.36,140.22 123.35,140.49 124.08,141.21 124.35,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,142.2 137.31,143.2 136.58,143.92 135.59,144.19 134.6,143.92 133.87,143.2 133.61,142.2 133.87,141.21 134.6,140.49 135.59,140.22 136.58,140.49 137.31,141.21 137.57,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,142.2 143.92,143.2 143.2,143.92 142.2,144.19 141.21,143.92 140.49,143.2 140.22,142.2 140.49,141.21 141.21,140.49 142.2,140.22 143.2,140.49 143.92,141.21 144.19,142.2 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,148.82 71.17,149.81 70.44,150.54 69.45,150.8 68.46,150.54 67.73,149.81 67.46,148.82 67.73,147.83 68.46,147.1 69.45,146.83 70.44,147.1 71.17,147.83 71.43,148.82 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,148.82 77.78,149.81 77.06,150.54 76.06,150.8 75.07,150.54 74.34,149.81 74.08,148.82 74.34,147.83 75.07,147.1 76.06,146.83 77.06,147.1 77.78,147.83 78.05,148.82 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,148.82 84.4,149.81 83.67,150.54 82.68,150.8 81.69,150.54 80.96,149.81 80.69,148.82 80.96,147.83 81.69,147.1 82.68,146.83 83.67,147.1 84.4,147.83 84.66,148.82 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,148.82 97.62,149.81 96.9,150.54 95.91,150.8 94.91,150.54 94.19,149.81 93.92,148.82 94.19,147.83 94.91,147.1 95.91,146.83 96.9,147.1 97.62,147.83 97.89,148.82 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,148.82 117.47,149.81 116.74,150.54 115.75,150.8 114.76,150.54 114.03,149.81 113.76,148.82 114.03,147.83 114.76,147.1 115.75,146.83 116.74,147.1 117.47,147.83 117.73,148.82 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,148.82 137.31,149.81 136.58,150.54 135.59,150.8 134.6,150.54 133.87,149.81 133.61,148.82 133.87,147.83 134.6,147.1 135.59,146.83 136.58,147.1 137.31,147.83 137.57,148.82 \"\r\n            style=\"fill:url(#gradient8de752c176384710a7bf6eb6127ff1b9);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 9,\r\n      innerHtml: `\r\n      <rect\r\n          x=\"0\"\r\n          y=\"0\"\r\n          width=\"165.3543\"\r\n          height=\"165.3543\"\r\n          fill=\"red\"\r\n          style=\"fill:rgba(144,60,57,1);\"\r\n          shape-rendering=\"crispEdges\"\r\n        />\r\n        <linearGradient\r\n          id=\"gradiente61bf7b05498450e94216666bad1de37\"\r\n          gradientUnits=\"userSpaceOnUse\"\r\n          x1=\"9.78888088478347\"\r\n          y1=\"78.8572474050841\"\r\n          x2=\"155.56543964134\"\r\n          y2=\"86.497073121039\"\r\n        >\r\n          <stop offset=\"0%\" stop-color=\"#DBEEF3\" />\r\n          <stop offset=\"100%\" stop-color=\"#FBD5B5\" />\r\n        </linearGradient>\r\n        <polygon\r\n          points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,16.54 85.73,17.8 85.02,18.87 83.94,19.59 82.68,19.84 81.41,19.59 80.34,18.87 79.62,17.8 79.37,16.54 79.62,15.27 80.34,14.2 81.41,13.48 82.68,13.23 83.94,13.48 85.02,14.2 85.73,15.27 85.98,16.54 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,16.54 92.35,17.8 91.63,18.87 90.56,19.59 89.29,19.84 88.03,19.59 86.95,18.87 86.24,17.8 85.98,16.54 86.24,15.27 86.95,14.2 88.03,13.48 89.29,13.23 90.56,13.48 91.63,14.2 92.35,15.27 92.6,16.54 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,16.54 98.96,17.8 98.24,18.87 97.17,19.59 95.91,19.84 94.64,19.59 93.57,18.87 92.85,17.8 92.6,16.54 92.85,15.27 93.57,14.2 94.64,13.48 95.91,13.23 97.17,13.48 98.24,14.2 98.96,15.27 99.21,16.54 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,23.15 72.5,24.42 71.79,25.49 70.71,26.2 69.45,26.46 68.18,26.2 67.11,25.49 66.39,24.42 66.14,23.15 66.39,21.88 67.11,20.81 68.18,20.09 69.45,19.84 70.71,20.09 71.79,20.81 72.5,21.88 72.76,23.15 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,23.15 79.12,24.42 78.4,25.49 77.33,26.2 76.06,26.46 74.8,26.2 73.72,25.49 73.01,24.42 72.76,23.15 73.01,21.88 73.72,20.81 74.8,20.09 76.06,19.84 77.33,20.09 78.4,20.81 79.12,21.88 79.37,23.15 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,23.15 85.73,24.42 85.02,25.49 83.94,26.2 82.68,26.46 81.41,26.2 80.34,25.49 79.62,24.42 79.37,23.15 79.62,21.88 80.34,20.81 81.41,20.09 82.68,19.84 83.94,20.09 85.02,20.81 85.73,21.88 85.98,23.15 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,23.15 98.96,24.42 98.24,25.49 97.17,26.2 95.91,26.46 94.64,26.2 93.57,25.49 92.85,24.42 92.6,23.15 92.85,21.88 93.57,20.81 94.64,20.09 95.91,19.84 97.17,20.09 98.24,20.81 98.96,21.88 99.21,23.15 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,29.76 85.73,31.03 85.02,32.1 83.94,32.82 82.68,33.07 81.41,32.82 80.34,32.1 79.62,31.03 79.37,29.76 79.62,28.5 80.34,27.43 81.41,26.71 82.68,26.46 83.94,26.71 85.02,27.43 85.73,28.5 85.98,29.76 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,29.76 92.35,31.03 91.63,32.1 90.56,32.82 89.29,33.07 88.03,32.82 86.95,32.1 86.24,31.03 85.98,29.76 86.24,28.5 86.95,27.43 88.03,26.71 89.29,26.46 90.56,26.71 91.63,27.43 92.35,28.5 92.6,29.76 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,29.76 98.96,31.03 98.24,32.1 97.17,32.82 95.91,33.07 94.64,32.82 93.57,32.1 92.85,31.03 92.6,29.76 92.85,28.5 93.57,27.43 94.64,26.71 95.91,26.46 97.17,26.71 98.24,27.43 98.96,28.5 99.21,29.76 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,36.38 72.5,37.64 71.79,38.72 70.71,39.43 69.45,39.69 68.18,39.43 67.11,38.72 66.39,37.64 66.14,36.38 66.39,35.11 67.11,34.04 68.18,33.32 69.45,33.07 70.71,33.32 71.79,34.04 72.5,35.11 72.76,36.38 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,36.38 79.12,37.64 78.4,38.72 77.33,39.43 76.06,39.69 74.8,39.43 73.72,38.72 73.01,37.64 72.76,36.38 73.01,35.11 73.72,34.04 74.8,33.32 76.06,33.07 77.33,33.32 78.4,34.04 79.12,35.11 79.37,36.38 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,36.38 98.96,37.64 98.24,38.72 97.17,39.43 95.91,39.69 94.64,39.43 93.57,38.72 92.85,37.64 92.6,36.38 92.85,35.11 93.57,34.04 94.64,33.32 95.91,33.07 97.17,33.32 98.24,34.04 98.96,35.11 99.21,36.38 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,42.99 79.12,44.26 78.4,45.33 77.33,46.05 76.06,46.3 74.8,46.05 73.72,45.33 73.01,44.26 72.76,42.99 73.01,41.73 73.72,40.65 74.8,39.94 76.06,39.69 77.33,39.94 78.4,40.65 79.12,41.73 79.37,42.99 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,42.99 98.96,44.26 98.24,45.33 97.17,46.05 95.91,46.3 94.64,46.05 93.57,45.33 92.85,44.26 92.6,42.99 92.85,41.73 93.57,40.65 94.64,39.94 95.91,39.69 97.17,39.94 98.24,40.65 98.96,41.73 99.21,42.99 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,49.61 72.5,50.87 71.79,51.94 70.71,52.66 69.45,52.91 68.18,52.66 67.11,51.94 66.39,50.87 66.14,49.61 66.39,48.34 67.11,47.27 68.18,46.55 69.45,46.3 70.71,46.55 71.79,47.27 72.5,48.34 72.76,49.61 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,49.61 92.35,50.87 91.63,51.94 90.56,52.66 89.29,52.91 88.03,52.66 86.95,51.94 86.24,50.87 85.98,49.61 86.24,48.34 86.95,47.27 88.03,46.55 89.29,46.3 90.56,46.55 91.63,47.27 92.35,48.34 92.6,49.61 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,56.22 72.5,57.49 71.79,58.56 70.71,59.28 69.45,59.53 68.18,59.28 67.11,58.56 66.39,57.49 66.14,56.22 66.39,54.95 67.11,53.88 68.18,53.17 69.45,52.91 70.71,53.17 71.79,53.88 72.5,54.95 72.76,56.22 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,56.22 85.73,57.49 85.02,58.56 83.94,59.28 82.68,59.53 81.41,59.28 80.34,58.56 79.62,57.49 79.37,56.22 79.62,54.95 80.34,53.88 81.41,53.17 82.68,52.91 83.94,53.17 85.02,53.88 85.73,54.95 85.98,56.22 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,56.22 98.96,57.49 98.24,58.56 97.17,59.28 95.91,59.53 94.64,59.28 93.57,58.56 92.85,57.49 92.6,56.22 92.85,54.95 93.57,53.88 94.64,53.17 95.91,52.91 97.17,53.17 98.24,53.88 98.96,54.95 99.21,56.22 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,62.83 79.12,64.1 78.4,65.17 77.33,65.89 76.06,66.14 74.8,65.89 73.72,65.17 73.01,64.1 72.76,62.83 73.01,61.57 73.72,60.5 74.8,59.78 76.06,59.53 77.33,59.78 78.4,60.5 79.12,61.57 79.37,62.83 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,69.45 19.59,70.71 18.87,71.79 17.8,72.5 16.54,72.76 15.27,72.5 14.2,71.79 13.48,70.71 13.23,69.45 13.48,68.18 14.2,67.11 15.27,66.39 16.54,66.14 17.8,66.39 18.87,67.11 19.59,68.18 19.84,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,69.45 26.2,70.71 25.49,71.79 24.42,72.5 23.15,72.76 21.88,72.5 20.81,71.79 20.09,70.71 19.84,69.45 20.09,68.18 20.81,67.11 21.88,66.39 23.15,66.14 24.42,66.39 25.49,67.11 26.2,68.18 26.46,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,69.45 32.82,70.71 32.1,71.79 31.03,72.5 29.76,72.76 28.5,72.5 27.43,71.79 26.71,70.71 26.46,69.45 26.71,68.18 27.43,67.11 28.5,66.39 29.76,66.14 31.03,66.39 32.1,67.11 32.82,68.18 33.07,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,69.45 39.43,70.71 38.72,71.79 37.64,72.5 36.38,72.76 35.11,72.5 34.04,71.79 33.32,70.71 33.07,69.45 33.32,68.18 34.04,67.11 35.11,66.39 36.38,66.14 37.64,66.39 38.72,67.11 39.43,68.18 39.69,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,69.45 46.05,70.71 45.33,71.79 44.26,72.5 42.99,72.76 41.73,72.5 40.65,71.79 39.94,70.71 39.69,69.45 39.94,68.18 40.65,67.11 41.73,66.39 42.99,66.14 44.26,66.39 45.33,67.11 46.05,68.18 46.3,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,69.45 59.28,70.71 58.56,71.79 57.49,72.5 56.22,72.76 54.95,72.5 53.88,71.79 53.17,70.71 52.91,69.45 53.17,68.18 53.88,67.11 54.95,66.39 56.22,66.14 57.49,66.39 58.56,67.11 59.28,68.18 59.53,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,69.45 65.89,70.71 65.17,71.79 64.1,72.5 62.83,72.76 61.57,72.5 60.5,71.79 59.78,70.71 59.53,69.45 59.78,68.18 60.5,67.11 61.57,66.39 62.83,66.14 64.1,66.39 65.17,67.11 65.89,68.18 66.14,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,69.45 72.5,70.71 71.79,71.79 70.71,72.5 69.45,72.76 68.18,72.5 67.11,71.79 66.39,70.71 66.14,69.45 66.39,68.18 67.11,67.11 68.18,66.39 69.45,66.14 70.71,66.39 71.79,67.11 72.5,68.18 72.76,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,69.45 92.35,70.71 91.63,71.79 90.56,72.5 89.29,72.76 88.03,72.5 86.95,71.79 86.24,70.71 85.98,69.45 86.24,68.18 86.95,67.11 88.03,66.39 89.29,66.14 90.56,66.39 91.63,67.11 92.35,68.18 92.6,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,69.45 105.58,70.71 104.86,71.79 103.79,72.5 102.52,72.76 101.25,72.5 100.18,71.79 99.46,70.71 99.21,69.45 99.46,68.18 100.18,67.11 101.25,66.39 102.52,66.14 103.79,66.39 104.86,67.11 105.58,68.18 105.83,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,69.45 118.8,70.71 118.09,71.79 117.01,72.5 115.75,72.76 114.48,72.5 113.41,71.79 112.69,70.71 112.44,69.45 112.69,68.18 113.41,67.11 114.48,66.39 115.75,66.14 117.01,66.39 118.09,67.11 118.8,68.18 119.06,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,69.45 132.03,70.71 131.31,71.79 130.24,72.5 128.98,72.76 127.71,72.5 126.64,71.79 125.92,70.71 125.67,69.45 125.92,68.18 126.64,67.11 127.71,66.39 128.98,66.14 130.24,66.39 131.31,67.11 132.03,68.18 132.28,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,69.45 145.26,70.71 144.54,71.79 143.47,72.5 142.2,72.76 140.94,72.5 139.87,71.79 139.15,70.71 138.9,69.45 139.15,68.18 139.87,67.11 140.94,66.39 142.2,66.14 143.47,66.39 144.54,67.11 145.26,68.18 145.51,69.45 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,76.06 19.59,77.33 18.87,78.4 17.8,79.12 16.54,79.37 15.27,79.12 14.2,78.4 13.48,77.33 13.23,76.06 13.48,74.8 14.2,73.72 15.27,73.01 16.54,72.76 17.8,73.01 18.87,73.72 19.59,74.8 19.84,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,76.06 26.2,77.33 25.49,78.4 24.42,79.12 23.15,79.37 21.88,79.12 20.81,78.4 20.09,77.33 19.84,76.06 20.09,74.8 20.81,73.72 21.88,73.01 23.15,72.76 24.42,73.01 25.49,73.72 26.2,74.8 26.46,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,76.06 32.82,77.33 32.1,78.4 31.03,79.12 29.76,79.37 28.5,79.12 27.43,78.4 26.71,77.33 26.46,76.06 26.71,74.8 27.43,73.72 28.5,73.01 29.76,72.76 31.03,73.01 32.1,73.72 32.82,74.8 33.07,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"52.91,76.06 52.66,77.33 51.94,78.4 50.87,79.12 49.61,79.37 48.34,79.12 47.27,78.4 46.55,77.33 46.3,76.06 46.55,74.8 47.27,73.72 48.34,73.01 49.61,72.76 50.87,73.01 51.94,73.72 52.66,74.8 52.91,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"66.14,76.06 65.89,77.33 65.17,78.4 64.1,79.12 62.83,79.37 61.57,79.12 60.5,78.4 59.78,77.33 59.53,76.06 59.78,74.8 60.5,73.72 61.57,73.01 62.83,72.76 64.1,73.01 65.17,73.72 65.89,74.8 66.14,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,76.06 79.12,77.33 78.4,78.4 77.33,79.12 76.06,79.37 74.8,79.12 73.72,78.4 73.01,77.33 72.76,76.06 73.01,74.8 73.72,73.72 74.8,73.01 76.06,72.76 77.33,73.01 78.4,73.72 79.12,74.8 79.37,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,76.06 92.35,77.33 91.63,78.4 90.56,79.12 89.29,79.37 88.03,79.12 86.95,78.4 86.24,77.33 85.98,76.06 86.24,74.8 86.95,73.72 88.03,73.01 89.29,72.76 90.56,73.01 91.63,73.72 92.35,74.8 92.6,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,76.06 98.96,77.33 98.24,78.4 97.17,79.12 95.91,79.37 94.64,79.12 93.57,78.4 92.85,77.33 92.6,76.06 92.85,74.8 93.57,73.72 94.64,73.01 95.91,72.76 97.17,73.01 98.24,73.72 98.96,74.8 99.21,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,76.06 105.58,77.33 104.86,78.4 103.79,79.12 102.52,79.37 101.25,79.12 100.18,78.4 99.46,77.33 99.21,76.06 99.46,74.8 100.18,73.72 101.25,73.01 102.52,72.76 103.79,73.01 104.86,73.72 105.58,74.8 105.83,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,76.06 112.19,77.33 111.47,78.4 110.4,79.12 109.13,79.37 107.87,79.12 106.8,78.4 106.08,77.33 105.83,76.06 106.08,74.8 106.8,73.72 107.87,73.01 109.13,72.76 110.4,73.01 111.47,73.72 112.19,74.8 112.44,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,76.06 132.03,77.33 131.31,78.4 130.24,79.12 128.98,79.37 127.71,79.12 126.64,78.4 125.92,77.33 125.67,76.06 125.92,74.8 126.64,73.72 127.71,73.01 128.98,72.76 130.24,73.01 131.31,73.72 132.03,74.8 132.28,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,76.06 138.65,77.33 137.93,78.4 136.86,79.12 135.59,79.37 134.32,79.12 133.25,78.4 132.54,77.33 132.28,76.06 132.54,74.8 133.25,73.72 134.32,73.01 135.59,72.76 136.86,73.01 137.93,73.72 138.65,74.8 138.9,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,76.06 145.26,77.33 144.54,78.4 143.47,79.12 142.2,79.37 140.94,79.12 139.87,78.4 139.15,77.33 138.9,76.06 139.15,74.8 139.87,73.72 140.94,73.01 142.2,72.76 143.47,73.01 144.54,73.72 145.26,74.8 145.51,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,76.06 151.87,77.33 151.16,78.4 150.08,79.12 148.82,79.37 147.55,79.12 146.48,78.4 145.76,77.33 145.51,76.06 145.76,74.8 146.48,73.72 147.55,73.01 148.82,72.76 150.08,73.01 151.16,73.72 151.87,74.8 152.13,76.06 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"33.07,82.68 32.82,83.94 32.1,85.02 31.03,85.73 29.76,85.98 28.5,85.73 27.43,85.02 26.71,83.94 26.46,82.68 26.71,81.41 27.43,80.34 28.5,79.62 29.76,79.37 31.03,79.62 32.1,80.34 32.82,81.41 33.07,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,82.68 46.05,83.94 45.33,85.02 44.26,85.73 42.99,85.98 41.73,85.73 40.65,85.02 39.94,83.94 39.69,82.68 39.94,81.41 40.65,80.34 41.73,79.62 42.99,79.37 44.26,79.62 45.33,80.34 46.05,81.41 46.3,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"52.91,82.68 52.66,83.94 51.94,85.02 50.87,85.73 49.61,85.98 48.34,85.73 47.27,85.02 46.55,83.94 46.3,82.68 46.55,81.41 47.27,80.34 48.34,79.62 49.61,79.37 50.87,79.62 51.94,80.34 52.66,81.41 52.91,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,82.68 59.28,83.94 58.56,85.02 57.49,85.73 56.22,85.98 54.95,85.73 53.88,85.02 53.17,83.94 52.91,82.68 53.17,81.41 53.88,80.34 54.95,79.62 56.22,79.37 57.49,79.62 58.56,80.34 59.28,81.41 59.53,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,82.68 72.5,83.94 71.79,85.02 70.71,85.73 69.45,85.98 68.18,85.73 67.11,85.02 66.39,83.94 66.14,82.68 66.39,81.41 67.11,80.34 68.18,79.62 69.45,79.37 70.71,79.62 71.79,80.34 72.5,81.41 72.76,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,82.68 79.12,83.94 78.4,85.02 77.33,85.73 76.06,85.98 74.8,85.73 73.72,85.02 73.01,83.94 72.76,82.68 73.01,81.41 73.72,80.34 74.8,79.62 76.06,79.37 77.33,79.62 78.4,80.34 79.12,81.41 79.37,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,82.68 98.96,83.94 98.24,85.02 97.17,85.73 95.91,85.98 94.64,85.73 93.57,85.02 92.85,83.94 92.6,82.68 92.85,81.41 93.57,80.34 94.64,79.62 95.91,79.37 97.17,79.62 98.24,80.34 98.96,81.41 99.21,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,82.68 112.19,83.94 111.47,85.02 110.4,85.73 109.13,85.98 107.87,85.73 106.8,85.02 106.08,83.94 105.83,82.68 106.08,81.41 106.8,80.34 107.87,79.62 109.13,79.37 110.4,79.62 111.47,80.34 112.19,81.41 112.44,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,82.68 118.8,83.94 118.09,85.02 117.01,85.73 115.75,85.98 114.48,85.73 113.41,85.02 112.69,83.94 112.44,82.68 112.69,81.41 113.41,80.34 114.48,79.62 115.75,79.37 117.01,79.62 118.09,80.34 118.8,81.41 119.06,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,82.68 132.03,83.94 131.31,85.02 130.24,85.73 128.98,85.98 127.71,85.73 126.64,85.02 125.92,83.94 125.67,82.68 125.92,81.41 126.64,80.34 127.71,79.62 128.98,79.37 130.24,79.62 131.31,80.34 132.03,81.41 132.28,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,82.68 151.87,83.94 151.16,85.02 150.08,85.73 148.82,85.98 147.55,85.73 146.48,85.02 145.76,83.94 145.51,82.68 145.76,81.41 146.48,80.34 147.55,79.62 148.82,79.37 150.08,79.62 151.16,80.34 151.87,81.41 152.13,82.68 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"19.84,89.29 19.59,90.56 18.87,91.63 17.8,92.35 16.54,92.6 15.27,92.35 14.2,91.63 13.48,90.56 13.23,89.29 13.48,88.03 14.2,86.95 15.27,86.24 16.54,85.98 17.8,86.24 18.87,86.95 19.59,88.03 19.84,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,89.29 39.43,90.56 38.72,91.63 37.64,92.35 36.38,92.6 35.11,92.35 34.04,91.63 33.32,90.56 33.07,89.29 33.32,88.03 34.04,86.95 35.11,86.24 36.38,85.98 37.64,86.24 38.72,86.95 39.43,88.03 39.69,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,89.29 92.35,90.56 91.63,91.63 90.56,92.35 89.29,92.6 88.03,92.35 86.95,91.63 86.24,90.56 85.98,89.29 86.24,88.03 86.95,86.95 88.03,86.24 89.29,85.98 90.56,86.24 91.63,86.95 92.35,88.03 92.6,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,89.29 98.96,90.56 98.24,91.63 97.17,92.35 95.91,92.6 94.64,92.35 93.57,91.63 92.85,90.56 92.6,89.29 92.85,88.03 93.57,86.95 94.64,86.24 95.91,85.98 97.17,86.24 98.24,86.95 98.96,88.03 99.21,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,89.29 105.58,90.56 104.86,91.63 103.79,92.35 102.52,92.6 101.25,92.35 100.18,91.63 99.46,90.56 99.21,89.29 99.46,88.03 100.18,86.95 101.25,86.24 102.52,85.98 103.79,86.24 104.86,86.95 105.58,88.03 105.83,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,89.29 112.19,90.56 111.47,91.63 110.4,92.35 109.13,92.6 107.87,92.35 106.8,91.63 106.08,90.56 105.83,89.29 106.08,88.03 106.8,86.95 107.87,86.24 109.13,85.98 110.4,86.24 111.47,86.95 112.19,88.03 112.44,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,89.29 138.65,90.56 137.93,91.63 136.86,92.35 135.59,92.6 134.32,92.35 133.25,91.63 132.54,90.56 132.28,89.29 132.54,88.03 133.25,86.95 134.32,86.24 135.59,85.98 136.86,86.24 137.93,86.95 138.65,88.03 138.9,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,89.29 145.26,90.56 144.54,91.63 143.47,92.35 142.2,92.6 140.94,92.35 139.87,91.63 139.15,90.56 138.9,89.29 139.15,88.03 139.87,86.95 140.94,86.24 142.2,85.98 143.47,86.24 144.54,86.95 145.26,88.03 145.51,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,89.29 151.87,90.56 151.16,91.63 150.08,92.35 148.82,92.6 147.55,92.35 146.48,91.63 145.76,90.56 145.51,89.29 145.76,88.03 146.48,86.95 147.55,86.24 148.82,85.98 150.08,86.24 151.16,86.95 151.87,88.03 152.13,89.29 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"26.46,95.91 26.2,97.17 25.49,98.24 24.42,98.96 23.15,99.21 21.88,98.96 20.81,98.24 20.09,97.17 19.84,95.91 20.09,94.64 20.81,93.57 21.88,92.85 23.15,92.6 24.42,92.85 25.49,93.57 26.2,94.64 26.46,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"39.69,95.91 39.43,97.17 38.72,98.24 37.64,98.96 36.38,99.21 35.11,98.96 34.04,98.24 33.32,97.17 33.07,95.91 33.32,94.64 34.04,93.57 35.11,92.85 36.38,92.6 37.64,92.85 38.72,93.57 39.43,94.64 39.69,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"46.3,95.91 46.05,97.17 45.33,98.24 44.26,98.96 42.99,99.21 41.73,98.96 40.65,98.24 39.94,97.17 39.69,95.91 39.94,94.64 40.65,93.57 41.73,92.85 42.99,92.6 44.26,92.85 45.33,93.57 46.05,94.64 46.3,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"59.53,95.91 59.28,97.17 58.56,98.24 57.49,98.96 56.22,99.21 54.95,98.96 53.88,98.24 53.17,97.17 52.91,95.91 53.17,94.64 53.88,93.57 54.95,92.85 56.22,92.6 57.49,92.85 58.56,93.57 59.28,94.64 59.53,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,95.91 72.5,97.17 71.79,98.24 70.71,98.96 69.45,99.21 68.18,98.96 67.11,98.24 66.39,97.17 66.14,95.91 66.39,94.64 67.11,93.57 68.18,92.85 69.45,92.6 70.71,92.85 71.79,93.57 72.5,94.64 72.76,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,95.91 79.12,97.17 78.4,98.24 77.33,98.96 76.06,99.21 74.8,98.96 73.72,98.24 73.01,97.17 72.76,95.91 73.01,94.64 73.72,93.57 74.8,92.85 76.06,92.6 77.33,92.85 78.4,93.57 79.12,94.64 79.37,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,95.91 98.96,97.17 98.24,98.24 97.17,98.96 95.91,99.21 94.64,98.96 93.57,98.24 92.85,97.17 92.6,95.91 92.85,94.64 93.57,93.57 94.64,92.85 95.91,92.6 97.17,92.85 98.24,93.57 98.96,94.64 99.21,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,95.91 118.8,97.17 118.09,98.24 117.01,98.96 115.75,99.21 114.48,98.96 113.41,98.24 112.69,97.17 112.44,95.91 112.69,94.64 113.41,93.57 114.48,92.85 115.75,92.6 117.01,92.85 118.09,93.57 118.8,94.64 119.06,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,95.91 145.26,97.17 144.54,98.24 143.47,98.96 142.2,99.21 140.94,98.96 139.87,98.24 139.15,97.17 138.9,95.91 139.15,94.64 139.87,93.57 140.94,92.85 142.2,92.6 143.47,92.85 144.54,93.57 145.26,94.64 145.51,95.91 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,102.52 72.5,103.79 71.79,104.86 70.71,105.58 69.45,105.83 68.18,105.58 67.11,104.86 66.39,103.79 66.14,102.52 66.39,101.25 67.11,100.18 68.18,99.46 69.45,99.21 70.71,99.46 71.79,100.18 72.5,101.25 72.76,102.52 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,102.52 85.73,103.79 85.02,104.86 83.94,105.58 82.68,105.83 81.41,105.58 80.34,104.86 79.62,103.79 79.37,102.52 79.62,101.25 80.34,100.18 81.41,99.46 82.68,99.21 83.94,99.46 85.02,100.18 85.73,101.25 85.98,102.52 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,102.52 98.96,103.79 98.24,104.86 97.17,105.58 95.91,105.83 94.64,105.58 93.57,104.86 92.85,103.79 92.6,102.52 92.85,101.25 93.57,100.18 94.64,99.46 95.91,99.21 97.17,99.46 98.24,100.18 98.96,101.25 99.21,102.52 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,102.52 118.8,103.79 118.09,104.86 117.01,105.58 115.75,105.83 114.48,105.58 113.41,104.86 112.69,103.79 112.44,102.52 112.69,101.25 113.41,100.18 114.48,99.46 115.75,99.21 117.01,99.46 118.09,100.18 118.8,101.25 119.06,102.52 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,102.52 138.65,103.79 137.93,104.86 136.86,105.58 135.59,105.83 134.32,105.58 133.25,104.86 132.54,103.79 132.28,102.52 132.54,101.25 133.25,100.18 134.32,99.46 135.59,99.21 136.86,99.46 137.93,100.18 138.65,101.25 138.9,102.52 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,109.13 72.5,110.4 71.79,111.47 70.71,112.19 69.45,112.44 68.18,112.19 67.11,111.47 66.39,110.4 66.14,109.13 66.39,107.87 67.11,106.8 68.18,106.08 69.45,105.83 70.71,106.08 71.79,106.8 72.5,107.87 72.76,109.13 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,109.13 92.35,110.4 91.63,111.47 90.56,112.19 89.29,112.44 88.03,112.19 86.95,111.47 86.24,110.4 85.98,109.13 86.24,107.87 86.95,106.8 88.03,106.08 89.29,105.83 90.56,106.08 91.63,106.8 92.35,107.87 92.6,109.13 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,109.13 105.58,110.4 104.86,111.47 103.79,112.19 102.52,112.44 101.25,112.19 100.18,111.47 99.46,110.4 99.21,109.13 99.46,107.87 100.18,106.8 101.25,106.08 102.52,105.83 103.79,106.08 104.86,106.8 105.58,107.87 105.83,109.13 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,109.13 125.42,110.4 124.7,111.47 123.63,112.19 122.36,112.44 121.1,112.19 120.02,111.47 119.31,110.4 119.06,109.13 119.31,107.87 120.02,106.8 121.1,106.08 122.36,105.83 123.63,106.08 124.7,106.8 125.42,107.87 125.67,109.13 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,109.13 132.03,110.4 131.31,111.47 130.24,112.19 128.98,112.44 127.71,112.19 126.64,111.47 125.92,110.4 125.67,109.13 125.92,107.87 126.64,106.8 127.71,106.08 128.98,105.83 130.24,106.08 131.31,106.8 132.03,107.87 132.28,109.13 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,109.13 145.26,110.4 144.54,111.47 143.47,112.19 142.2,112.44 140.94,112.19 139.87,111.47 139.15,110.4 138.9,109.13 139.15,107.87 139.87,106.8 140.94,106.08 142.2,105.83 143.47,106.08 144.54,106.8 145.26,107.87 145.51,109.13 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,109.13 151.87,110.4 151.16,111.47 150.08,112.19 148.82,112.44 147.55,112.19 146.48,111.47 145.76,110.4 145.51,109.13 145.76,107.87 146.48,106.8 147.55,106.08 148.82,105.83 150.08,106.08 151.16,106.8 151.87,107.87 152.13,109.13 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,115.75 79.12,117.01 78.4,118.09 77.33,118.8 76.06,119.06 74.8,118.8 73.72,118.09 73.01,117.01 72.76,115.75 73.01,114.48 73.72,113.41 74.8,112.69 76.06,112.44 77.33,112.69 78.4,113.41 79.12,114.48 79.37,115.75 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,115.75 85.73,117.01 85.02,118.09 83.94,118.8 82.68,119.06 81.41,118.8 80.34,118.09 79.62,117.01 79.37,115.75 79.62,114.48 80.34,113.41 81.41,112.69 82.68,112.44 83.94,112.69 85.02,113.41 85.73,114.48 85.98,115.75 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,115.75 118.8,117.01 118.09,118.09 117.01,118.8 115.75,119.06 114.48,118.8 113.41,118.09 112.69,117.01 112.44,115.75 112.69,114.48 113.41,113.41 114.48,112.69 115.75,112.44 117.01,112.69 118.09,113.41 118.8,114.48 119.06,115.75 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,115.75 125.42,117.01 124.7,118.09 123.63,118.8 122.36,119.06 121.1,118.8 120.02,118.09 119.31,117.01 119.06,115.75 119.31,114.48 120.02,113.41 121.1,112.69 122.36,112.44 123.63,112.69 124.7,113.41 125.42,114.48 125.67,115.75 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,115.75 138.65,117.01 137.93,118.09 136.86,118.8 135.59,119.06 134.32,118.8 133.25,118.09 132.54,117.01 132.28,115.75 132.54,114.48 133.25,113.41 134.32,112.69 135.59,112.44 136.86,112.69 137.93,113.41 138.65,114.48 138.9,115.75 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"152.13,115.75 151.87,117.01 151.16,118.09 150.08,118.8 148.82,119.06 147.55,118.8 146.48,118.09 145.76,117.01 145.51,115.75 145.76,114.48 146.48,113.41 147.55,112.69 148.82,112.44 150.08,112.69 151.16,113.41 151.87,114.48 152.13,115.75 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,122.36 72.5,123.63 71.79,124.7 70.71,125.42 69.45,125.67 68.18,125.42 67.11,124.7 66.39,123.63 66.14,122.36 66.39,121.1 67.11,120.02 68.18,119.31 69.45,119.06 70.71,119.31 71.79,120.02 72.5,121.1 72.76,122.36 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,122.36 79.12,123.63 78.4,124.7 77.33,125.42 76.06,125.67 74.8,125.42 73.72,124.7 73.01,123.63 72.76,122.36 73.01,121.1 73.72,120.02 74.8,119.31 76.06,119.06 77.33,119.31 78.4,120.02 79.12,121.1 79.37,122.36 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,122.36 85.73,123.63 85.02,124.7 83.94,125.42 82.68,125.67 81.41,125.42 80.34,124.7 79.62,123.63 79.37,122.36 79.62,121.1 80.34,120.02 81.41,119.31 82.68,119.06 83.94,119.31 85.02,120.02 85.73,121.1 85.98,122.36 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,122.36 92.35,123.63 91.63,124.7 90.56,125.42 89.29,125.67 88.03,125.42 86.95,124.7 86.24,123.63 85.98,122.36 86.24,121.1 86.95,120.02 88.03,119.31 89.29,119.06 90.56,119.31 91.63,120.02 92.35,121.1 92.6,122.36 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,122.36 105.58,123.63 104.86,124.7 103.79,125.42 102.52,125.67 101.25,125.42 100.18,124.7 99.46,123.63 99.21,122.36 99.46,121.1 100.18,120.02 101.25,119.31 102.52,119.06 103.79,119.31 104.86,120.02 105.58,121.1 105.83,122.36 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,122.36 125.42,123.63 124.7,124.7 123.63,125.42 122.36,125.67 121.1,125.42 120.02,124.7 119.31,123.63 119.06,122.36 119.31,121.1 120.02,120.02 121.1,119.31 122.36,119.06 123.63,119.31 124.7,120.02 125.42,121.1 125.67,122.36 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,122.36 132.03,123.63 131.31,124.7 130.24,125.42 128.98,125.67 127.71,125.42 126.64,124.7 125.92,123.63 125.67,122.36 125.92,121.1 126.64,120.02 127.71,119.31 128.98,119.06 130.24,119.31 131.31,120.02 132.03,121.1 132.28,122.36 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,122.36 138.65,123.63 137.93,124.7 136.86,125.42 135.59,125.67 134.32,125.42 133.25,124.7 132.54,123.63 132.28,122.36 132.54,121.1 133.25,120.02 134.32,119.31 135.59,119.06 136.86,119.31 137.93,120.02 138.65,121.1 138.9,122.36 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,128.98 72.5,130.24 71.79,131.31 70.71,132.03 69.45,132.28 68.18,132.03 67.11,131.31 66.39,130.24 66.14,128.98 66.39,127.71 67.11,126.64 68.18,125.92 69.45,125.67 70.71,125.92 71.79,126.64 72.5,127.71 72.76,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,128.98 79.12,130.24 78.4,131.31 77.33,132.03 76.06,132.28 74.8,132.03 73.72,131.31 73.01,130.24 72.76,128.98 73.01,127.71 73.72,126.64 74.8,125.92 76.06,125.67 77.33,125.92 78.4,126.64 79.12,127.71 79.37,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,128.98 92.35,130.24 91.63,131.31 90.56,132.03 89.29,132.28 88.03,132.03 86.95,131.31 86.24,130.24 85.98,128.98 86.24,127.71 86.95,126.64 88.03,125.92 89.29,125.67 90.56,125.92 91.63,126.64 92.35,127.71 92.6,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,128.98 98.96,130.24 98.24,131.31 97.17,132.03 95.91,132.28 94.64,132.03 93.57,131.31 92.85,130.24 92.6,128.98 92.85,127.71 93.57,126.64 94.64,125.92 95.91,125.67 97.17,125.92 98.24,126.64 98.96,127.71 99.21,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,128.98 105.58,130.24 104.86,131.31 103.79,132.03 102.52,132.28 101.25,132.03 100.18,131.31 99.46,130.24 99.21,128.98 99.46,127.71 100.18,126.64 101.25,125.92 102.52,125.67 103.79,125.92 104.86,126.64 105.58,127.71 105.83,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,128.98 112.19,130.24 111.47,131.31 110.4,132.03 109.13,132.28 107.87,132.03 106.8,131.31 106.08,130.24 105.83,128.98 106.08,127.71 106.8,126.64 107.87,125.92 109.13,125.67 110.4,125.92 111.47,126.64 112.19,127.71 112.44,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,128.98 118.8,130.24 118.09,131.31 117.01,132.03 115.75,132.28 114.48,132.03 113.41,131.31 112.69,130.24 112.44,128.98 112.69,127.71 113.41,126.64 114.48,125.92 115.75,125.67 117.01,125.92 118.09,126.64 118.8,127.71 119.06,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,128.98 132.03,130.24 131.31,131.31 130.24,132.03 128.98,132.28 127.71,132.03 126.64,131.31 125.92,130.24 125.67,128.98 125.92,127.71 126.64,126.64 127.71,125.92 128.98,125.67 130.24,125.92 131.31,126.64 132.03,127.71 132.28,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,128.98 138.65,130.24 137.93,131.31 136.86,132.03 135.59,132.28 134.32,132.03 133.25,131.31 132.54,130.24 132.28,128.98 132.54,127.71 133.25,126.64 134.32,125.92 135.59,125.67 136.86,125.92 137.93,126.64 138.65,127.71 138.9,128.98 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,135.59 72.5,136.86 71.79,137.93 70.71,138.65 69.45,138.9 68.18,138.65 67.11,137.93 66.39,136.86 66.14,135.59 66.39,134.32 67.11,133.25 68.18,132.54 69.45,132.28 70.71,132.54 71.79,133.25 72.5,134.32 72.76,135.59 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,135.59 79.12,136.86 78.4,137.93 77.33,138.65 76.06,138.9 74.8,138.65 73.72,137.93 73.01,136.86 72.76,135.59 73.01,134.32 73.72,133.25 74.8,132.54 76.06,132.28 77.33,132.54 78.4,133.25 79.12,134.32 79.37,135.59 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,135.59 98.96,136.86 98.24,137.93 97.17,138.65 95.91,138.9 94.64,138.65 93.57,137.93 92.85,136.86 92.6,135.59 92.85,134.32 93.57,133.25 94.64,132.54 95.91,132.28 97.17,132.54 98.24,133.25 98.96,134.32 99.21,135.59 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,135.59 112.19,136.86 111.47,137.93 110.4,138.65 109.13,138.9 107.87,138.65 106.8,137.93 106.08,136.86 105.83,135.59 106.08,134.32 106.8,133.25 107.87,132.54 109.13,132.28 110.4,132.54 111.47,133.25 112.19,134.32 112.44,135.59 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,135.59 118.8,136.86 118.09,137.93 117.01,138.65 115.75,138.9 114.48,138.65 113.41,137.93 112.69,136.86 112.44,135.59 112.69,134.32 113.41,133.25 114.48,132.54 115.75,132.28 117.01,132.54 118.09,133.25 118.8,134.32 119.06,135.59 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"132.28,135.59 132.03,136.86 131.31,137.93 130.24,138.65 128.98,138.9 127.71,138.65 126.64,137.93 125.92,136.86 125.67,135.59 125.92,134.32 126.64,133.25 127.71,132.54 128.98,132.28 130.24,132.54 131.31,133.25 132.03,134.32 132.28,135.59 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,135.59 138.65,136.86 137.93,137.93 136.86,138.65 135.59,138.9 134.32,138.65 133.25,137.93 132.54,136.86 132.28,135.59 132.54,134.32 133.25,133.25 134.32,132.54 135.59,132.28 136.86,132.54 137.93,133.25 138.65,134.32 138.9,135.59 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,142.2 72.5,143.47 71.79,144.54 70.71,145.26 69.45,145.51 68.18,145.26 67.11,144.54 66.39,143.47 66.14,142.2 66.39,140.94 67.11,139.87 68.18,139.15 69.45,138.9 70.71,139.15 71.79,139.87 72.5,140.94 72.76,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,142.2 85.73,143.47 85.02,144.54 83.94,145.26 82.68,145.51 81.41,145.26 80.34,144.54 79.62,143.47 79.37,142.2 79.62,140.94 80.34,139.87 81.41,139.15 82.68,138.9 83.94,139.15 85.02,139.87 85.73,140.94 85.98,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"92.6,142.2 92.35,143.47 91.63,144.54 90.56,145.26 89.29,145.51 88.03,145.26 86.95,144.54 86.24,143.47 85.98,142.2 86.24,140.94 86.95,139.87 88.03,139.15 89.29,138.9 90.56,139.15 91.63,139.87 92.35,140.94 92.6,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,142.2 98.96,143.47 98.24,144.54 97.17,145.26 95.91,145.51 94.64,145.26 93.57,144.54 92.85,143.47 92.6,142.2 92.85,140.94 93.57,139.87 94.64,139.15 95.91,138.9 97.17,139.15 98.24,139.87 98.96,140.94 99.21,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"105.83,142.2 105.58,143.47 104.86,144.54 103.79,145.26 102.52,145.51 101.25,145.26 100.18,144.54 99.46,143.47 99.21,142.2 99.46,140.94 100.18,139.87 101.25,139.15 102.52,138.9 103.79,139.15 104.86,139.87 105.58,140.94 105.83,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"112.44,142.2 112.19,143.47 111.47,144.54 110.4,145.26 109.13,145.51 107.87,145.26 106.8,144.54 106.08,143.47 105.83,142.2 106.08,140.94 106.8,139.87 107.87,139.15 109.13,138.9 110.4,139.15 111.47,139.87 112.19,140.94 112.44,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,142.2 118.8,143.47 118.09,144.54 117.01,145.26 115.75,145.51 114.48,145.26 113.41,144.54 112.69,143.47 112.44,142.2 112.69,140.94 113.41,139.87 114.48,139.15 115.75,138.9 117.01,139.15 118.09,139.87 118.8,140.94 119.06,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"125.67,142.2 125.42,143.47 124.7,144.54 123.63,145.26 122.36,145.51 121.1,145.26 120.02,144.54 119.31,143.47 119.06,142.2 119.31,140.94 120.02,139.87 121.1,139.15 122.36,138.9 123.63,139.15 124.7,139.87 125.42,140.94 125.67,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,142.2 138.65,143.47 137.93,144.54 136.86,145.26 135.59,145.51 134.32,145.26 133.25,144.54 132.54,143.47 132.28,142.2 132.54,140.94 133.25,139.87 134.32,139.15 135.59,138.9 136.86,139.15 137.93,139.87 138.65,140.94 138.9,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"145.51,142.2 145.26,143.47 144.54,144.54 143.47,145.26 142.2,145.51 140.94,145.26 139.87,144.54 139.15,143.47 138.9,142.2 139.15,140.94 139.87,139.87 140.94,139.15 142.2,138.9 143.47,139.15 144.54,139.87 145.26,140.94 145.51,142.2 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"72.76,148.82 72.5,150.08 71.79,151.16 70.71,151.87 69.45,152.13 68.18,151.87 67.11,151.16 66.39,150.08 66.14,148.82 66.39,147.55 67.11,146.48 68.18,145.76 69.45,145.51 70.71,145.76 71.79,146.48 72.5,147.55 72.76,148.82 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"79.37,148.82 79.12,150.08 78.4,151.16 77.33,151.87 76.06,152.13 74.8,151.87 73.72,151.16 73.01,150.08 72.76,148.82 73.01,147.55 73.72,146.48 74.8,145.76 76.06,145.51 77.33,145.76 78.4,146.48 79.12,147.55 79.37,148.82 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"85.98,148.82 85.73,150.08 85.02,151.16 83.94,151.87 82.68,152.13 81.41,151.87 80.34,151.16 79.62,150.08 79.37,148.82 79.62,147.55 80.34,146.48 81.41,145.76 82.68,145.51 83.94,145.76 85.02,146.48 85.73,147.55 85.98,148.82 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"99.21,148.82 98.96,150.08 98.24,151.16 97.17,151.87 95.91,152.13 94.64,151.87 93.57,151.16 92.85,150.08 92.6,148.82 92.85,147.55 93.57,146.48 94.64,145.76 95.91,145.51 97.17,145.76 98.24,146.48 98.96,147.55 99.21,148.82 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"119.06,148.82 118.8,150.08 118.09,151.16 117.01,151.87 115.75,152.13 114.48,151.87 113.41,151.16 112.69,150.08 112.44,148.82 112.69,147.55 113.41,146.48 114.48,145.76 115.75,145.51 117.01,145.76 118.09,146.48 118.8,147.55 119.06,148.82 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n        <polygon\r\n          points=\"138.9,148.82 138.65,150.08 137.93,151.16 136.86,151.87 135.59,152.13 134.32,151.87 133.25,151.16 132.54,150.08 132.28,148.82 132.54,147.55 133.25,146.48 134.32,145.76 135.59,145.51 136.86,145.76 137.93,146.48 138.65,147.55 138.9,148.82 \"\r\n          style=\"fill:url(#gradiente61bf7b05498450e94216666bad1de37);\"\r\n        />\r\n      `,\r\n    },\r\n    {\r\n      value: 10,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <pattern\r\n            id=\"hatch66b57d3d484547528ac58fe19b915123\"\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"8\"\r\n            height=\"8\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"8\" height=\"8\" fill=\"#E5B9B7\" />\r\n            <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"1\" y=\"0\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"2\" y=\"0\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"3\" y=\"0\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"4\" y=\"4\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"5\" y=\"4\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"6\" y=\"4\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n            <rect x=\"7\" y=\"4\" width=\"1\" height=\"1\" fill=\"#DBEEF3\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,13.23 86.05,13.23 85.98,19.91 79.37,19.91 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,13.23 92.66,13.23 92.53,19.84 85.92,19.84 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,13.23 99.21,13.23 99.15,19.91 92.53,19.91 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,19.84 72.82,19.84 72.76,26.46 66.14,26.46 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,19.84 79.44,19.84 79.3,26.46 72.69,26.46 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,19.78 85.98,19.78 85.92,26.52 79.3,26.52 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,19.78 99.21,19.78 99.21,26.52 92.6,26.52 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,26.39 86.05,26.39 85.98,33.07 79.37,33.07 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,26.46 92.66,26.46 92.53,33.07 85.92,33.07 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,26.39 99.21,26.39 99.15,33.14 92.53,33.14 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,33.07 72.82,33.07 72.76,39.69 66.14,39.69 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,33.07 79.37,33.07 79.3,39.75 72.69,39.75 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,33 99.21,33 99.21,39.75 92.6,39.75 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,39.62 79.37,39.62 79.37,46.3 72.76,46.3 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,39.62 99.21,39.62 99.21,46.3 92.6,46.3 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,46.3 72.76,46.3 72.76,52.98 66.14,52.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,46.3 92.6,46.3 92.6,52.91 85.98,52.91 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,52.85 72.76,52.85 72.76,59.53 66.14,59.53 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,52.91 85.98,52.91 85.98,59.53 79.37,59.53 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,52.91 99.21,52.91 99.21,59.53 92.6,59.53 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,59.53 79.37,59.53 79.37,66.14 72.76,66.14 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,66.14 19.91,66.14 19.84,72.82 13.23,72.82 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,66.14 26.52,66.14 26.39,72.82 19.78,72.82 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,66.14 33.14,66.14 33,72.82 26.39,72.82 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"33,66.14 39.75,66.14 39.62,72.76 33,72.76 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,66.14 46.3,66.14 46.23,72.76 39.62,72.76 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,66.14 59.59,66.14 59.53,72.76 52.91,72.76 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"59.46,66.14 66.21,66.14 66.08,72.82 59.46,72.82 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.08,66.14 72.76,66.14 72.69,72.76 66.08,72.76 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,66.14 92.6,66.14 92.6,72.82 85.98,72.82 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,66.14 105.83,66.14 105.83,72.82 99.21,72.82 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,66.14 119.06,66.14 119.06,72.76 112.44,72.76 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,66.14 132.28,66.14 132.28,72.82 125.67,72.82 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,66.14 145.51,66.14 145.51,72.82 138.9,72.82 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,72.69 19.91,72.69 19.84,79.37 13.23,79.37 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,72.69 26.52,72.69 26.39,79.37 19.78,79.37 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,72.69 33.07,72.69 33,79.44 26.39,79.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,72.76 52.91,72.76 52.91,79.44 46.3,79.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,72.69 66.14,72.69 66.14,79.37 59.53,79.37 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,72.76 79.37,72.76 79.37,79.44 72.76,79.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,72.69 92.66,72.69 92.6,79.37 85.98,79.37 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,72.76 99.28,72.76 99.15,79.44 92.53,79.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,72.69 105.89,72.69 105.76,79.37 99.15,79.37 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,72.76 112.44,72.76 112.37,79.44 105.76,79.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,72.69 132.35,72.69 132.28,79.44 125.67,79.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,72.76 138.96,72.76 138.83,79.37 132.22,79.37 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,72.69 145.58,72.69 145.45,79.37 138.83,79.37 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,72.76 152.13,72.76 152.06,79.44 145.45,79.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,79.3 33.07,79.3 33.07,85.98 26.46,85.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,79.37 46.37,79.37 46.3,85.98 39.69,85.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"46.23,79.3 52.98,79.3 52.85,85.98 46.23,85.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"52.85,79.37 59.53,79.37 59.46,85.98 52.85,85.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,79.37 72.82,79.37 72.76,85.98 66.14,85.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,79.3 79.37,79.3 79.3,85.98 72.69,85.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,79.3 99.21,79.3 99.21,86.05 92.6,86.05 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,79.3 112.51,79.3 112.44,86.05 105.83,86.05 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,79.37 119.06,79.37 118.99,85.98 112.37,85.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,79.3 132.28,79.3 132.28,85.98 125.67,85.98 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,79.3 152.13,79.3 152.13,86.05 145.51,86.05 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,85.98 19.84,85.98 19.84,92.6 13.23,92.6 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,85.98 39.69,85.98 39.69,92.66 33.07,92.66 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,85.98 92.66,85.98 92.6,92.6 85.98,92.6 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,85.92 99.28,85.92 99.15,92.66 92.53,92.66 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,85.98 105.89,85.98 105.76,92.6 99.15,92.6 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,85.92 112.44,85.92 112.37,92.6 105.76,92.6 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,85.98 138.96,85.98 138.9,92.6 132.28,92.6 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,85.98 145.58,85.98 145.45,92.66 138.83,92.66 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,85.92 152.13,85.92 152.06,92.6 145.45,92.6 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,92.6 26.46,92.6 26.46,99.21 19.84,99.21 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,92.53 39.75,92.53 39.69,99.21 33.07,99.21 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,92.6 46.3,92.6 46.23,99.21 39.62,99.21 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,92.6 59.53,92.6 59.53,99.21 52.91,99.21 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,92.6 72.82,92.6 72.76,99.28 66.14,99.28 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,92.6 79.37,92.6 79.3,99.21 72.69,99.21 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,92.53 99.21,92.53 99.21,99.28 92.6,99.28 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,92.6 119.06,92.6 119.06,99.28 112.44,99.28 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,92.53 145.51,92.53 145.51,99.21 138.9,99.21 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,99.15 72.76,99.15 72.76,105.89 66.14,105.89 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,99.21 85.98,99.21 85.98,105.83 79.37,105.83 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,99.15 99.21,99.15 99.21,105.83 92.6,105.83 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,99.15 119.06,99.15 119.06,105.83 112.44,105.83 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,99.21 138.9,99.21 138.9,105.83 132.28,105.83 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,105.76 72.76,105.76 72.76,112.44 66.14,112.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,105.83 92.6,105.83 92.6,112.44 85.98,112.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,105.83 105.83,105.83 105.83,112.44 99.21,112.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,105.83 125.74,105.83 125.67,112.51 119.06,112.51 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,105.83 132.28,105.83 132.22,112.44 125.6,112.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,105.83 145.58,105.83 145.51,112.44 138.9,112.44 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,105.83 152.13,105.83 152.06,112.51 145.45,112.51 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,112.44 79.44,112.44 79.37,119.12 72.76,119.12 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,112.44 85.98,112.44 85.92,119.12 79.3,119.12 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,112.44 119.12,112.44 119.06,119.06 112.44,119.06 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,112.37 125.67,112.37 125.6,119.12 118.99,119.12 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,112.44 138.9,112.44 138.9,119.12 132.28,119.12 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,112.37 152.13,112.37 152.13,119.06 145.51,119.06 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,119.06 72.82,119.06 72.76,125.74 66.14,125.74 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,118.99 79.44,118.99 79.3,125.74 72.69,125.74 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,118.99 86.05,118.99 85.92,125.67 79.3,125.67 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,119.06 92.6,119.06 92.53,125.74 85.92,125.74 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,119.06 105.83,119.06 105.83,125.74 99.21,125.74 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,118.99 125.74,118.99 125.67,125.67 119.06,125.67 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,119.06 132.35,119.06 132.22,125.74 125.6,125.74 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,118.99 138.9,118.99 138.83,125.74 132.22,125.74 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,125.6 72.82,125.6 72.76,132.35 66.14,132.35 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,125.6 79.37,125.6 79.3,132.35 72.69,132.35 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,125.6 92.66,125.6 92.6,132.28 85.98,132.28 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,125.67 99.28,125.67 99.15,132.35 92.53,132.35 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,125.6 105.89,125.6 105.76,132.28 99.15,132.28 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,125.67 112.51,125.67 112.37,132.35 105.76,132.35 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,125.67 119.06,125.67 118.99,132.35 112.37,132.35 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,125.6 132.35,125.6 132.28,132.35 125.67,132.35 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,125.6 138.9,125.6 138.83,132.35 132.22,132.35 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,132.22 72.82,132.22 72.76,138.96 66.14,138.96 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,132.22 79.37,132.22 79.3,138.9 72.69,138.9 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,132.22 99.21,132.22 99.21,138.96 92.6,138.96 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,132.22 112.51,132.22 112.44,138.96 105.83,138.96 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,132.22 119.06,132.22 118.99,138.96 112.37,138.96 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,132.22 132.35,132.22 132.28,138.9 125.67,138.9 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,132.22 138.9,132.22 138.83,138.96 132.22,138.96 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,138.83 72.76,138.83 72.76,145.58 66.14,145.58 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,138.9 86.05,138.9 85.98,145.58 79.37,145.58 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,138.9 92.66,138.9 92.53,145.51 85.92,145.51 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,138.83 99.28,138.83 99.15,145.58 92.53,145.58 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,138.9 105.89,138.9 105.76,145.51 99.15,145.51 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,138.83 112.51,138.83 112.37,145.51 105.76,145.51 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,138.83 119.12,138.83 118.99,145.58 112.37,145.58 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,138.9 125.67,138.9 125.6,145.51 118.99,145.51 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,138.83 138.96,138.83 138.9,145.58 132.28,145.58 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,138.9 145.51,138.9 145.45,145.51 138.83,145.51 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,145.45 72.82,145.45 72.76,152.13 66.14,152.13 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,145.51 79.44,145.51 79.3,152.13 72.69,152.13 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,145.45 85.98,145.45 85.92,152.13 79.3,152.13 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,145.45 99.21,145.45 99.21,152.13 92.6,152.13 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,145.45 119.06,145.45 119.06,152.13 112.44,152.13 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,145.45 138.9,145.45 138.9,152.13 132.28,152.13 \"\r\n            style=\"fill:url(#hatch66b57d3d484547528ac58fe19b915123);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 11,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(38,38,38,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <pattern\r\n            id=\"glassecd873593fe44878b761241d367e9637\"\r\n            x=\"13.22835\"\r\n            y=\"13.22835\"\r\n            width=\"138.8976\"\r\n            height=\"138.8976\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"138.8976\" style=\"fill:rgb(204,193,217);fill-opacity:1;\" />\r\n            <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"69.44881\" style=\"fill:rgb(210,199,223);fill-opacity:1;\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,16.54 82.68,13.23 85.98,16.54 82.68,19.84 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,16.54 89.29,13.23 92.6,16.54 89.29,19.84 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,16.54 95.91,13.23 99.21,16.54 95.91,19.84 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,23.15 69.45,19.84 72.76,23.15 69.45,26.46 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,23.15 76.06,19.84 79.37,23.15 76.06,26.46 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,23.15 82.68,19.84 85.98,23.15 82.68,26.46 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,23.15 95.91,19.84 99.21,23.15 95.91,26.46 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,29.76 82.68,26.46 85.98,29.76 82.68,33.07 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,29.76 89.29,26.46 92.6,29.76 89.29,33.07 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,29.76 95.91,26.46 99.21,29.76 95.91,33.07 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,36.38 69.45,33.07 72.76,36.38 69.45,39.69 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,36.38 76.06,33.07 79.37,36.38 76.06,39.69 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,36.38 95.91,33.07 99.21,36.38 95.91,39.69 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,42.99 76.06,39.69 79.37,42.99 76.06,46.3 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,42.99 95.91,39.69 99.21,42.99 95.91,46.3 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,49.61 69.45,46.3 72.76,49.61 69.45,52.91 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,49.61 89.29,46.3 92.6,49.61 89.29,52.91 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,56.22 69.45,52.91 72.76,56.22 69.45,59.53 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,56.22 82.68,52.91 85.98,56.22 82.68,59.53 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,56.22 95.91,52.91 99.21,56.22 95.91,59.53 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,62.83 76.06,59.53 79.37,62.83 76.06,66.14 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,69.45 16.54,66.14 19.84,69.45 16.54,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,69.45 23.15,66.14 26.46,69.45 23.15,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,69.45 29.76,66.14 33.07,69.45 29.76,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,69.45 36.38,66.14 39.69,69.45 36.38,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,69.45 42.99,66.14 46.3,69.45 42.99,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,69.45 56.22,66.14 59.53,69.45 56.22,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,69.45 62.83,66.14 66.14,69.45 62.83,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,69.45 69.45,66.14 72.76,69.45 69.45,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,69.45 89.29,66.14 92.6,69.45 89.29,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,69.45 102.52,66.14 105.83,69.45 102.52,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,69.45 115.75,66.14 119.06,69.45 115.75,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,69.45 128.98,66.14 132.28,69.45 128.98,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,69.45 142.2,66.14 145.51,69.45 142.2,72.76 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,76.06 16.54,72.76 19.84,76.06 16.54,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,76.06 23.15,72.76 26.46,76.06 23.15,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,76.06 29.76,72.76 33.07,76.06 29.76,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,76.06 49.61,72.76 52.91,76.06 49.61,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,76.06 62.83,72.76 66.14,76.06 62.83,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,76.06 76.06,72.76 79.37,76.06 76.06,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,76.06 89.29,72.76 92.6,76.06 89.29,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,76.06 95.91,72.76 99.21,76.06 95.91,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,76.06 102.52,72.76 105.83,76.06 102.52,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,76.06 109.13,72.76 112.44,76.06 109.13,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,76.06 128.98,72.76 132.28,76.06 128.98,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,76.06 135.59,72.76 138.9,76.06 135.59,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,76.06 142.2,72.76 145.51,76.06 142.2,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,76.06 148.82,72.76 152.13,76.06 148.82,79.37 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,82.68 29.76,79.37 33.07,82.68 29.76,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,82.68 42.99,79.37 46.3,82.68 42.99,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,82.68 49.61,79.37 52.91,82.68 49.61,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,82.68 56.22,79.37 59.53,82.68 56.22,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,82.68 69.45,79.37 72.76,82.68 69.45,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,82.68 76.06,79.37 79.37,82.68 76.06,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,82.68 95.91,79.37 99.21,82.68 95.91,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,82.68 109.13,79.37 112.44,82.68 109.13,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,82.68 115.75,79.37 119.06,82.68 115.75,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,82.68 128.98,79.37 132.28,82.68 128.98,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,82.68 148.82,79.37 152.13,82.68 148.82,85.98 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,89.29 16.54,85.98 19.84,89.29 16.54,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,89.29 36.38,85.98 39.69,89.29 36.38,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,89.29 89.29,85.98 92.6,89.29 89.29,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,89.29 95.91,85.98 99.21,89.29 95.91,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,89.29 102.52,85.98 105.83,89.29 102.52,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,89.29 109.13,85.98 112.44,89.29 109.13,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,89.29 135.59,85.98 138.9,89.29 135.59,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,89.29 142.2,85.98 145.51,89.29 142.2,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,89.29 148.82,85.98 152.13,89.29 148.82,92.6 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,95.91 23.15,92.6 26.46,95.91 23.15,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,95.91 36.38,92.6 39.69,95.91 36.38,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,95.91 42.99,92.6 46.3,95.91 42.99,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,95.91 56.22,92.6 59.53,95.91 56.22,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,95.91 69.45,92.6 72.76,95.91 69.45,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,95.91 76.06,92.6 79.37,95.91 76.06,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,95.91 95.91,92.6 99.21,95.91 95.91,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,95.91 115.75,92.6 119.06,95.91 115.75,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,95.91 142.2,92.6 145.51,95.91 142.2,99.21 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,102.52 69.45,99.21 72.76,102.52 69.45,105.83 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,102.52 82.68,99.21 85.98,102.52 82.68,105.83 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,102.52 95.91,99.21 99.21,102.52 95.91,105.83 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,102.52 115.75,99.21 119.06,102.52 115.75,105.83 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,102.52 135.59,99.21 138.9,102.52 135.59,105.83 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,109.13 69.45,105.83 72.76,109.13 69.45,112.44 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,109.13 89.29,105.83 92.6,109.13 89.29,112.44 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,109.13 102.52,105.83 105.83,109.13 102.52,112.44 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,109.13 122.36,105.83 125.67,109.13 122.36,112.44 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,109.13 128.98,105.83 132.28,109.13 128.98,112.44 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,109.13 142.2,105.83 145.51,109.13 142.2,112.44 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,109.13 148.82,105.83 152.13,109.13 148.82,112.44 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,115.75 76.06,112.44 79.37,115.75 76.06,119.06 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,115.75 82.68,112.44 85.98,115.75 82.68,119.06 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,115.75 115.75,112.44 119.06,115.75 115.75,119.06 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,115.75 122.36,112.44 125.67,115.75 122.36,119.06 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,115.75 135.59,112.44 138.9,115.75 135.59,119.06 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,115.75 148.82,112.44 152.13,115.75 148.82,119.06 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,122.36 69.45,119.06 72.76,122.36 69.45,125.67 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,122.36 76.06,119.06 79.37,122.36 76.06,125.67 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,122.36 82.68,119.06 85.98,122.36 82.68,125.67 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,122.36 89.29,119.06 92.6,122.36 89.29,125.67 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,122.36 102.52,119.06 105.83,122.36 102.52,125.67 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,122.36 122.36,119.06 125.67,122.36 122.36,125.67 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,122.36 128.98,119.06 132.28,122.36 128.98,125.67 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,122.36 135.59,119.06 138.9,122.36 135.59,125.67 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,128.98 69.45,125.67 72.76,128.98 69.45,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,128.98 76.06,125.67 79.37,128.98 76.06,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,128.98 89.29,125.67 92.6,128.98 89.29,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,128.98 95.91,125.67 99.21,128.98 95.91,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,128.98 102.52,125.67 105.83,128.98 102.52,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,128.98 109.13,125.67 112.44,128.98 109.13,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,128.98 115.75,125.67 119.06,128.98 115.75,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,128.98 128.98,125.67 132.28,128.98 128.98,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,128.98 135.59,125.67 138.9,128.98 135.59,132.28 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,135.59 69.45,132.28 72.76,135.59 69.45,138.9 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,135.59 76.06,132.28 79.37,135.59 76.06,138.9 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,135.59 95.91,132.28 99.21,135.59 95.91,138.9 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,135.59 109.13,132.28 112.44,135.59 109.13,138.9 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,135.59 115.75,132.28 119.06,135.59 115.75,138.9 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,135.59 128.98,132.28 132.28,135.59 128.98,138.9 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,135.59 135.59,132.28 138.9,135.59 135.59,138.9 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,142.2 69.45,138.9 72.76,142.2 69.45,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,142.2 82.68,138.9 85.98,142.2 82.68,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,142.2 89.29,138.9 92.6,142.2 89.29,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,142.2 95.91,138.9 99.21,142.2 95.91,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,142.2 102.52,138.9 105.83,142.2 102.52,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,142.2 109.13,138.9 112.44,142.2 109.13,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,142.2 115.75,138.9 119.06,142.2 115.75,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,142.2 122.36,138.9 125.67,142.2 122.36,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,142.2 135.59,138.9 138.9,142.2 135.59,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,142.2 142.2,138.9 145.51,142.2 142.2,145.51 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,148.82 69.45,145.51 72.76,148.82 69.45,152.13 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,148.82 76.06,145.51 79.37,148.82 76.06,152.13 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,148.82 82.68,145.51 85.98,148.82 82.68,152.13 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,148.82 95.91,145.51 99.21,148.82 95.91,152.13 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,148.82 115.75,145.51 119.06,148.82 115.75,152.13 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,148.82 135.59,145.51 138.9,148.82 135.59,152.13 \"\r\n            style=\"fill:url(#glassecd873593fe44878b761241d367e9637);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 12,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient89acb651ebd041c6bd575d3854178b85\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"8.73357798631972\"\r\n            y1=\"77.5065212907663\"\r\n            x2=\"156.620742539803\"\r\n            y2=\"87.8477992353567\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#FF93FB\" />\r\n            <stop offset=\"100%\" stop-color=\"#92D050\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"19.84,16.54 19.59,17.8 18.87,18.87 17.8,19.59 16.54,19.84 15.27,19.59 14.2,18.87 13.48,17.8 13.23,16.54 13.48,15.27 14.2,14.2 15.27,13.48 16.54,13.23 17.8,13.48 18.87,14.2 19.59,15.27 19.84,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,56.22 19.59,57.49 18.87,58.56 17.8,59.28 16.54,59.53 15.27,59.28 14.2,58.56 13.48,57.49 13.23,56.22 13.48,54.95 14.2,53.88 15.27,53.17 16.54,52.91 17.8,53.17 18.87,53.88 19.59,54.95 19.84,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,16.54 26.2,17.8 25.49,18.87 24.42,19.59 23.15,19.84 21.88,19.59 20.81,18.87 20.09,17.8 19.84,16.54 20.09,15.27 20.81,14.2 21.88,13.48 23.15,13.23 24.42,13.48 25.49,14.2 26.2,15.27 26.46,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,56.22 26.2,57.49 25.49,58.56 24.42,59.28 23.15,59.53 21.88,59.28 20.81,58.56 20.09,57.49 19.84,56.22 20.09,54.95 20.81,53.88 21.88,53.17 23.15,52.91 24.42,53.17 25.49,53.88 26.2,54.95 26.46,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,16.54 32.82,17.8 32.1,18.87 31.03,19.59 29.76,19.84 28.5,19.59 27.43,18.87 26.71,17.8 26.46,16.54 26.71,15.27 27.43,14.2 28.5,13.48 29.76,13.23 31.03,13.48 32.1,14.2 32.82,15.27 33.07,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,56.22 32.82,57.49 32.1,58.56 31.03,59.28 29.76,59.53 28.5,59.28 27.43,58.56 26.71,57.49 26.46,56.22 26.71,54.95 27.43,53.88 28.5,53.17 29.76,52.91 31.03,53.17 32.1,53.88 32.82,54.95 33.07,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,16.54 39.43,17.8 38.72,18.87 37.64,19.59 36.38,19.84 35.11,19.59 34.04,18.87 33.32,17.8 33.07,16.54 33.32,15.27 34.04,14.2 35.11,13.48 36.38,13.23 37.64,13.48 38.72,14.2 39.43,15.27 39.69,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,56.22 39.43,57.49 38.72,58.56 37.64,59.28 36.38,59.53 35.11,59.28 34.04,58.56 33.32,57.49 33.07,56.22 33.32,54.95 34.04,53.88 35.11,53.17 36.38,52.91 37.64,53.17 38.72,53.88 39.43,54.95 39.69,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,16.54 46.05,17.8 45.33,18.87 44.26,19.59 42.99,19.84 41.73,19.59 40.65,18.87 39.94,17.8 39.69,16.54 39.94,15.27 40.65,14.2 41.73,13.48 42.99,13.23 44.26,13.48 45.33,14.2 46.05,15.27 46.3,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,56.22 46.05,57.49 45.33,58.56 44.26,59.28 42.99,59.53 41.73,59.28 40.65,58.56 39.94,57.49 39.69,56.22 39.94,54.95 40.65,53.88 41.73,53.17 42.99,52.91 44.26,53.17 45.33,53.88 46.05,54.95 46.3,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,16.54 52.66,17.8 51.94,18.87 50.87,19.59 49.61,19.84 48.34,19.59 47.27,18.87 46.55,17.8 46.3,16.54 46.55,15.27 47.27,14.2 48.34,13.48 49.61,13.23 50.87,13.48 51.94,14.2 52.66,15.27 52.91,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,56.22 52.66,57.49 51.94,58.56 50.87,59.28 49.61,59.53 48.34,59.28 47.27,58.56 46.55,57.49 46.3,56.22 46.55,54.95 47.27,53.88 48.34,53.17 49.61,52.91 50.87,53.17 51.94,53.88 52.66,54.95 52.91,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,16.54 59.28,17.8 58.56,18.87 57.49,19.59 56.22,19.84 54.95,19.59 53.88,18.87 53.17,17.8 52.91,16.54 53.17,15.27 53.88,14.2 54.95,13.48 56.22,13.23 57.49,13.48 58.56,14.2 59.28,15.27 59.53,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,56.22 59.28,57.49 58.56,58.56 57.49,59.28 56.22,59.53 54.95,59.28 53.88,58.56 53.17,57.49 52.91,56.22 53.17,54.95 53.88,53.88 54.95,53.17 56.22,52.91 57.49,53.17 58.56,53.88 59.28,54.95 59.53,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,23.15 19.59,24.42 18.87,25.49 17.8,26.2 16.54,26.46 15.27,26.2 14.2,25.49 13.48,24.42 13.23,23.15 13.48,21.88 14.2,20.81 15.27,20.09 16.54,19.84 17.8,20.09 18.87,20.81 19.59,21.88 19.84,23.15 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,23.15 59.28,24.42 58.56,25.49 57.49,26.2 56.22,26.46 54.95,26.2 53.88,25.49 53.17,24.42 52.91,23.15 53.17,21.88 53.88,20.81 54.95,20.09 56.22,19.84 57.49,20.09 58.56,20.81 59.28,21.88 59.53,23.15 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,29.76 19.59,31.03 18.87,32.1 17.8,32.82 16.54,33.07 15.27,32.82 14.2,32.1 13.48,31.03 13.23,29.76 13.48,28.5 14.2,27.43 15.27,26.71 16.54,26.46 17.8,26.71 18.87,27.43 19.59,28.5 19.84,29.76 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,29.76 59.28,31.03 58.56,32.1 57.49,32.82 56.22,33.07 54.95,32.82 53.88,32.1 53.17,31.03 52.91,29.76 53.17,28.5 53.88,27.43 54.95,26.71 56.22,26.46 57.49,26.71 58.56,27.43 59.28,28.5 59.53,29.76 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,36.38 19.59,37.64 18.87,38.72 17.8,39.43 16.54,39.69 15.27,39.43 14.2,38.72 13.48,37.64 13.23,36.38 13.48,35.11 14.2,34.04 15.27,33.32 16.54,33.07 17.8,33.32 18.87,34.04 19.59,35.11 19.84,36.38 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,36.38 59.28,37.64 58.56,38.72 57.49,39.43 56.22,39.69 54.95,39.43 53.88,38.72 53.17,37.64 52.91,36.38 53.17,35.11 53.88,34.04 54.95,33.32 56.22,33.07 57.49,33.32 58.56,34.04 59.28,35.11 59.53,36.38 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,42.99 19.59,44.26 18.87,45.33 17.8,46.05 16.54,46.3 15.27,46.05 14.2,45.33 13.48,44.26 13.23,42.99 13.48,41.73 14.2,40.65 15.27,39.94 16.54,39.69 17.8,39.94 18.87,40.65 19.59,41.73 19.84,42.99 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,42.99 59.28,44.26 58.56,45.33 57.49,46.05 56.22,46.3 54.95,46.05 53.88,45.33 53.17,44.26 52.91,42.99 53.17,41.73 53.88,40.65 54.95,39.94 56.22,39.69 57.49,39.94 58.56,40.65 59.28,41.73 59.53,42.99 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,49.61 19.59,50.87 18.87,51.94 17.8,52.66 16.54,52.91 15.27,52.66 14.2,51.94 13.48,50.87 13.23,49.61 13.48,48.34 14.2,47.27 15.27,46.55 16.54,46.3 17.8,46.55 18.87,47.27 19.59,48.34 19.84,49.61 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,49.61 59.28,50.87 58.56,51.94 57.49,52.66 56.22,52.91 54.95,52.66 53.88,51.94 53.17,50.87 52.91,49.61 53.17,48.34 53.88,47.27 54.95,46.55 56.22,46.3 57.49,46.55 58.56,47.27 59.28,48.34 59.53,49.61 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,109.13 19.59,110.4 18.87,111.47 17.8,112.19 16.54,112.44 15.27,112.19 14.2,111.47 13.48,110.4 13.23,109.13 13.48,107.87 14.2,106.8 15.27,106.08 16.54,105.83 17.8,106.08 18.87,106.8 19.59,107.87 19.84,109.13 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,148.82 19.59,150.08 18.87,151.16 17.8,151.87 16.54,152.13 15.27,151.87 14.2,151.16 13.48,150.08 13.23,148.82 13.48,147.55 14.2,146.48 15.27,145.76 16.54,145.51 17.8,145.76 18.87,146.48 19.59,147.55 19.84,148.82 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,109.13 26.2,110.4 25.49,111.47 24.42,112.19 23.15,112.44 21.88,112.19 20.81,111.47 20.09,110.4 19.84,109.13 20.09,107.87 20.81,106.8 21.88,106.08 23.15,105.83 24.42,106.08 25.49,106.8 26.2,107.87 26.46,109.13 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,148.82 26.2,150.08 25.49,151.16 24.42,151.87 23.15,152.13 21.88,151.87 20.81,151.16 20.09,150.08 19.84,148.82 20.09,147.55 20.81,146.48 21.88,145.76 23.15,145.51 24.42,145.76 25.49,146.48 26.2,147.55 26.46,148.82 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,109.13 32.82,110.4 32.1,111.47 31.03,112.19 29.76,112.44 28.5,112.19 27.43,111.47 26.71,110.4 26.46,109.13 26.71,107.87 27.43,106.8 28.5,106.08 29.76,105.83 31.03,106.08 32.1,106.8 32.82,107.87 33.07,109.13 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,148.82 32.82,150.08 32.1,151.16 31.03,151.87 29.76,152.13 28.5,151.87 27.43,151.16 26.71,150.08 26.46,148.82 26.71,147.55 27.43,146.48 28.5,145.76 29.76,145.51 31.03,145.76 32.1,146.48 32.82,147.55 33.07,148.82 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,109.13 39.43,110.4 38.72,111.47 37.64,112.19 36.38,112.44 35.11,112.19 34.04,111.47 33.32,110.4 33.07,109.13 33.32,107.87 34.04,106.8 35.11,106.08 36.38,105.83 37.64,106.08 38.72,106.8 39.43,107.87 39.69,109.13 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,148.82 39.43,150.08 38.72,151.16 37.64,151.87 36.38,152.13 35.11,151.87 34.04,151.16 33.32,150.08 33.07,148.82 33.32,147.55 34.04,146.48 35.11,145.76 36.38,145.51 37.64,145.76 38.72,146.48 39.43,147.55 39.69,148.82 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,109.13 46.05,110.4 45.33,111.47 44.26,112.19 42.99,112.44 41.73,112.19 40.65,111.47 39.94,110.4 39.69,109.13 39.94,107.87 40.65,106.8 41.73,106.08 42.99,105.83 44.26,106.08 45.33,106.8 46.05,107.87 46.3,109.13 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,148.82 46.05,150.08 45.33,151.16 44.26,151.87 42.99,152.13 41.73,151.87 40.65,151.16 39.94,150.08 39.69,148.82 39.94,147.55 40.65,146.48 41.73,145.76 42.99,145.51 44.26,145.76 45.33,146.48 46.05,147.55 46.3,148.82 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,109.13 52.66,110.4 51.94,111.47 50.87,112.19 49.61,112.44 48.34,112.19 47.27,111.47 46.55,110.4 46.3,109.13 46.55,107.87 47.27,106.8 48.34,106.08 49.61,105.83 50.87,106.08 51.94,106.8 52.66,107.87 52.91,109.13 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,148.82 52.66,150.08 51.94,151.16 50.87,151.87 49.61,152.13 48.34,151.87 47.27,151.16 46.55,150.08 46.3,148.82 46.55,147.55 47.27,146.48 48.34,145.76 49.61,145.51 50.87,145.76 51.94,146.48 52.66,147.55 52.91,148.82 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,109.13 59.28,110.4 58.56,111.47 57.49,112.19 56.22,112.44 54.95,112.19 53.88,111.47 53.17,110.4 52.91,109.13 53.17,107.87 53.88,106.8 54.95,106.08 56.22,105.83 57.49,106.08 58.56,106.8 59.28,107.87 59.53,109.13 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,148.82 59.28,150.08 58.56,151.16 57.49,151.87 56.22,152.13 54.95,151.87 53.88,151.16 53.17,150.08 52.91,148.82 53.17,147.55 53.88,146.48 54.95,145.76 56.22,145.51 57.49,145.76 58.56,146.48 59.28,147.55 59.53,148.82 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,115.75 19.59,117.01 18.87,118.09 17.8,118.8 16.54,119.06 15.27,118.8 14.2,118.09 13.48,117.01 13.23,115.75 13.48,114.48 14.2,113.41 15.27,112.69 16.54,112.44 17.8,112.69 18.87,113.41 19.59,114.48 19.84,115.75 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,115.75 59.28,117.01 58.56,118.09 57.49,118.8 56.22,119.06 54.95,118.8 53.88,118.09 53.17,117.01 52.91,115.75 53.17,114.48 53.88,113.41 54.95,112.69 56.22,112.44 57.49,112.69 58.56,113.41 59.28,114.48 59.53,115.75 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,122.36 19.59,123.63 18.87,124.7 17.8,125.42 16.54,125.67 15.27,125.42 14.2,124.7 13.48,123.63 13.23,122.36 13.48,121.1 14.2,120.02 15.27,119.31 16.54,119.06 17.8,119.31 18.87,120.02 19.59,121.1 19.84,122.36 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,122.36 59.28,123.63 58.56,124.7 57.49,125.42 56.22,125.67 54.95,125.42 53.88,124.7 53.17,123.63 52.91,122.36 53.17,121.1 53.88,120.02 54.95,119.31 56.22,119.06 57.49,119.31 58.56,120.02 59.28,121.1 59.53,122.36 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,128.98 19.59,130.24 18.87,131.31 17.8,132.03 16.54,132.28 15.27,132.03 14.2,131.31 13.48,130.24 13.23,128.98 13.48,127.71 14.2,126.64 15.27,125.92 16.54,125.67 17.8,125.92 18.87,126.64 19.59,127.71 19.84,128.98 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,128.98 59.28,130.24 58.56,131.31 57.49,132.03 56.22,132.28 54.95,132.03 53.88,131.31 53.17,130.24 52.91,128.98 53.17,127.71 53.88,126.64 54.95,125.92 56.22,125.67 57.49,125.92 58.56,126.64 59.28,127.71 59.53,128.98 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,135.59 19.59,136.86 18.87,137.93 17.8,138.65 16.54,138.9 15.27,138.65 14.2,137.93 13.48,136.86 13.23,135.59 13.48,134.32 14.2,133.25 15.27,132.54 16.54,132.28 17.8,132.54 18.87,133.25 19.59,134.32 19.84,135.59 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,135.59 59.28,136.86 58.56,137.93 57.49,138.65 56.22,138.9 54.95,138.65 53.88,137.93 53.17,136.86 52.91,135.59 53.17,134.32 53.88,133.25 54.95,132.54 56.22,132.28 57.49,132.54 58.56,133.25 59.28,134.32 59.53,135.59 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,142.2 19.59,143.47 18.87,144.54 17.8,145.26 16.54,145.51 15.27,145.26 14.2,144.54 13.48,143.47 13.23,142.2 13.48,140.94 14.2,139.87 15.27,139.15 16.54,138.9 17.8,139.15 18.87,139.87 19.59,140.94 19.84,142.2 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,142.2 59.28,143.47 58.56,144.54 57.49,145.26 56.22,145.51 54.95,145.26 53.88,144.54 53.17,143.47 52.91,142.2 53.17,140.94 53.88,139.87 54.95,139.15 56.22,138.9 57.49,139.15 58.56,139.87 59.28,140.94 59.53,142.2 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,16.54 112.19,17.8 111.47,18.87 110.4,19.59 109.13,19.84 107.87,19.59 106.8,18.87 106.08,17.8 105.83,16.54 106.08,15.27 106.8,14.2 107.87,13.48 109.13,13.23 110.4,13.48 111.47,14.2 112.19,15.27 112.44,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,56.22 112.19,57.49 111.47,58.56 110.4,59.28 109.13,59.53 107.87,59.28 106.8,58.56 106.08,57.49 105.83,56.22 106.08,54.95 106.8,53.88 107.87,53.17 109.13,52.91 110.4,53.17 111.47,53.88 112.19,54.95 112.44,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,16.54 118.8,17.8 118.09,18.87 117.01,19.59 115.75,19.84 114.48,19.59 113.41,18.87 112.69,17.8 112.44,16.54 112.69,15.27 113.41,14.2 114.48,13.48 115.75,13.23 117.01,13.48 118.09,14.2 118.8,15.27 119.06,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,56.22 118.8,57.49 118.09,58.56 117.01,59.28 115.75,59.53 114.48,59.28 113.41,58.56 112.69,57.49 112.44,56.22 112.69,54.95 113.41,53.88 114.48,53.17 115.75,52.91 117.01,53.17 118.09,53.88 118.8,54.95 119.06,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,16.54 125.42,17.8 124.7,18.87 123.63,19.59 122.36,19.84 121.1,19.59 120.02,18.87 119.31,17.8 119.06,16.54 119.31,15.27 120.02,14.2 121.1,13.48 122.36,13.23 123.63,13.48 124.7,14.2 125.42,15.27 125.67,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,56.22 125.42,57.49 124.7,58.56 123.63,59.28 122.36,59.53 121.1,59.28 120.02,58.56 119.31,57.49 119.06,56.22 119.31,54.95 120.02,53.88 121.1,53.17 122.36,52.91 123.63,53.17 124.7,53.88 125.42,54.95 125.67,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,16.54 132.03,17.8 131.31,18.87 130.24,19.59 128.98,19.84 127.71,19.59 126.64,18.87 125.92,17.8 125.67,16.54 125.92,15.27 126.64,14.2 127.71,13.48 128.98,13.23 130.24,13.48 131.31,14.2 132.03,15.27 132.28,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,56.22 132.03,57.49 131.31,58.56 130.24,59.28 128.98,59.53 127.71,59.28 126.64,58.56 125.92,57.49 125.67,56.22 125.92,54.95 126.64,53.88 127.71,53.17 128.98,52.91 130.24,53.17 131.31,53.88 132.03,54.95 132.28,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,16.54 138.65,17.8 137.93,18.87 136.86,19.59 135.59,19.84 134.32,19.59 133.25,18.87 132.54,17.8 132.28,16.54 132.54,15.27 133.25,14.2 134.32,13.48 135.59,13.23 136.86,13.48 137.93,14.2 138.65,15.27 138.9,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,56.22 138.65,57.49 137.93,58.56 136.86,59.28 135.59,59.53 134.32,59.28 133.25,58.56 132.54,57.49 132.28,56.22 132.54,54.95 133.25,53.88 134.32,53.17 135.59,52.91 136.86,53.17 137.93,53.88 138.65,54.95 138.9,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,16.54 145.26,17.8 144.54,18.87 143.47,19.59 142.2,19.84 140.94,19.59 139.87,18.87 139.15,17.8 138.9,16.54 139.15,15.27 139.87,14.2 140.94,13.48 142.2,13.23 143.47,13.48 144.54,14.2 145.26,15.27 145.51,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,56.22 145.26,57.49 144.54,58.56 143.47,59.28 142.2,59.53 140.94,59.28 139.87,58.56 139.15,57.49 138.9,56.22 139.15,54.95 139.87,53.88 140.94,53.17 142.2,52.91 143.47,53.17 144.54,53.88 145.26,54.95 145.51,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,16.54 151.87,17.8 151.16,18.87 150.08,19.59 148.82,19.84 147.55,19.59 146.48,18.87 145.76,17.8 145.51,16.54 145.76,15.27 146.48,14.2 147.55,13.48 148.82,13.23 150.08,13.48 151.16,14.2 151.87,15.27 152.13,16.54 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,56.22 151.87,57.49 151.16,58.56 150.08,59.28 148.82,59.53 147.55,59.28 146.48,58.56 145.76,57.49 145.51,56.22 145.76,54.95 146.48,53.88 147.55,53.17 148.82,52.91 150.08,53.17 151.16,53.88 151.87,54.95 152.13,56.22 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,23.15 112.19,24.42 111.47,25.49 110.4,26.2 109.13,26.46 107.87,26.2 106.8,25.49 106.08,24.42 105.83,23.15 106.08,21.88 106.8,20.81 107.87,20.09 109.13,19.84 110.4,20.09 111.47,20.81 112.19,21.88 112.44,23.15 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,23.15 151.87,24.42 151.16,25.49 150.08,26.2 148.82,26.46 147.55,26.2 146.48,25.49 145.76,24.42 145.51,23.15 145.76,21.88 146.48,20.81 147.55,20.09 148.82,19.84 150.08,20.09 151.16,20.81 151.87,21.88 152.13,23.15 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,29.76 112.19,31.03 111.47,32.1 110.4,32.82 109.13,33.07 107.87,32.82 106.8,32.1 106.08,31.03 105.83,29.76 106.08,28.5 106.8,27.43 107.87,26.71 109.13,26.46 110.4,26.71 111.47,27.43 112.19,28.5 112.44,29.76 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,29.76 151.87,31.03 151.16,32.1 150.08,32.82 148.82,33.07 147.55,32.82 146.48,32.1 145.76,31.03 145.51,29.76 145.76,28.5 146.48,27.43 147.55,26.71 148.82,26.46 150.08,26.71 151.16,27.43 151.87,28.5 152.13,29.76 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,36.38 112.19,37.64 111.47,38.72 110.4,39.43 109.13,39.69 107.87,39.43 106.8,38.72 106.08,37.64 105.83,36.38 106.08,35.11 106.8,34.04 107.87,33.32 109.13,33.07 110.4,33.32 111.47,34.04 112.19,35.11 112.44,36.38 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,36.38 151.87,37.64 151.16,38.72 150.08,39.43 148.82,39.69 147.55,39.43 146.48,38.72 145.76,37.64 145.51,36.38 145.76,35.11 146.48,34.04 147.55,33.32 148.82,33.07 150.08,33.32 151.16,34.04 151.87,35.11 152.13,36.38 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,42.99 112.19,44.26 111.47,45.33 110.4,46.05 109.13,46.3 107.87,46.05 106.8,45.33 106.08,44.26 105.83,42.99 106.08,41.73 106.8,40.65 107.87,39.94 109.13,39.69 110.4,39.94 111.47,40.65 112.19,41.73 112.44,42.99 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,42.99 151.87,44.26 151.16,45.33 150.08,46.05 148.82,46.3 147.55,46.05 146.48,45.33 145.76,44.26 145.51,42.99 145.76,41.73 146.48,40.65 147.55,39.94 148.82,39.69 150.08,39.94 151.16,40.65 151.87,41.73 152.13,42.99 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,49.61 112.19,50.87 111.47,51.94 110.4,52.66 109.13,52.91 107.87,52.66 106.8,51.94 106.08,50.87 105.83,49.61 106.08,48.34 106.8,47.27 107.87,46.55 109.13,46.3 110.4,46.55 111.47,47.27 112.19,48.34 112.44,49.61 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,49.61 151.87,50.87 151.16,51.94 150.08,52.66 148.82,52.91 147.55,52.66 146.48,51.94 145.76,50.87 145.51,49.61 145.76,48.34 146.48,47.27 147.55,46.55 148.82,46.3 150.08,46.55 151.16,47.27 151.87,48.34 152.13,49.61 \"\r\n            style=\"fill:url(#gradient89acb651ebd041c6bd575d3854178b85);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,29.76 32.82,31.03 32.1,32.1 31.03,32.82 29.76,33.07 28.5,32.82 27.43,32.1 26.71,31.03 26.46,29.76 26.71,28.5 27.43,27.43 28.5,26.71 29.76,26.46 31.03,26.71 32.1,27.43 32.82,28.5 33.07,29.76 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,29.76 39.43,31.03 38.72,32.1 37.64,32.82 36.38,33.07 35.11,32.82 34.04,32.1 33.32,31.03 33.07,29.76 33.32,28.5 34.04,27.43 35.11,26.71 36.38,26.46 37.64,26.71 38.72,27.43 39.43,28.5 39.69,29.76 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,29.76 46.05,31.03 45.33,32.1 44.26,32.82 42.99,33.07 41.73,32.82 40.65,32.1 39.94,31.03 39.69,29.76 39.94,28.5 40.65,27.43 41.73,26.71 42.99,26.46 44.26,26.71 45.33,27.43 46.05,28.5 46.3,29.76 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,36.38 32.82,37.64 32.1,38.72 31.03,39.43 29.76,39.69 28.5,39.43 27.43,38.72 26.71,37.64 26.46,36.38 26.71,35.11 27.43,34.04 28.5,33.32 29.76,33.07 31.03,33.32 32.1,34.04 32.82,35.11 33.07,36.38 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,36.38 39.43,37.64 38.72,38.72 37.64,39.43 36.38,39.69 35.11,39.43 34.04,38.72 33.32,37.64 33.07,36.38 33.32,35.11 34.04,34.04 35.11,33.32 36.38,33.07 37.64,33.32 38.72,34.04 39.43,35.11 39.69,36.38 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,36.38 46.05,37.64 45.33,38.72 44.26,39.43 42.99,39.69 41.73,39.43 40.65,38.72 39.94,37.64 39.69,36.38 39.94,35.11 40.65,34.04 41.73,33.32 42.99,33.07 44.26,33.32 45.33,34.04 46.05,35.11 46.3,36.38 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,42.99 32.82,44.26 32.1,45.33 31.03,46.05 29.76,46.3 28.5,46.05 27.43,45.33 26.71,44.26 26.46,42.99 26.71,41.73 27.43,40.65 28.5,39.94 29.76,39.69 31.03,39.94 32.1,40.65 32.82,41.73 33.07,42.99 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,42.99 39.43,44.26 38.72,45.33 37.64,46.05 36.38,46.3 35.11,46.05 34.04,45.33 33.32,44.26 33.07,42.99 33.32,41.73 34.04,40.65 35.11,39.94 36.38,39.69 37.64,39.94 38.72,40.65 39.43,41.73 39.69,42.99 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,42.99 46.05,44.26 45.33,45.33 44.26,46.05 42.99,46.3 41.73,46.05 40.65,45.33 39.94,44.26 39.69,42.99 39.94,41.73 40.65,40.65 41.73,39.94 42.99,39.69 44.26,39.94 45.33,40.65 46.05,41.73 46.3,42.99 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,122.36 32.82,123.63 32.1,124.7 31.03,125.42 29.76,125.67 28.5,125.42 27.43,124.7 26.71,123.63 26.46,122.36 26.71,121.1 27.43,120.02 28.5,119.31 29.76,119.06 31.03,119.31 32.1,120.02 32.82,121.1 33.07,122.36 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,122.36 39.43,123.63 38.72,124.7 37.64,125.42 36.38,125.67 35.11,125.42 34.04,124.7 33.32,123.63 33.07,122.36 33.32,121.1 34.04,120.02 35.11,119.31 36.38,119.06 37.64,119.31 38.72,120.02 39.43,121.1 39.69,122.36 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,122.36 46.05,123.63 45.33,124.7 44.26,125.42 42.99,125.67 41.73,125.42 40.65,124.7 39.94,123.63 39.69,122.36 39.94,121.1 40.65,120.02 41.73,119.31 42.99,119.06 44.26,119.31 45.33,120.02 46.05,121.1 46.3,122.36 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,128.98 32.82,130.24 32.1,131.31 31.03,132.03 29.76,132.28 28.5,132.03 27.43,131.31 26.71,130.24 26.46,128.98 26.71,127.71 27.43,126.64 28.5,125.92 29.76,125.67 31.03,125.92 32.1,126.64 32.82,127.71 33.07,128.98 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,128.98 39.43,130.24 38.72,131.31 37.64,132.03 36.38,132.28 35.11,132.03 34.04,131.31 33.32,130.24 33.07,128.98 33.32,127.71 34.04,126.64 35.11,125.92 36.38,125.67 37.64,125.92 38.72,126.64 39.43,127.71 39.69,128.98 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,128.98 46.05,130.24 45.33,131.31 44.26,132.03 42.99,132.28 41.73,132.03 40.65,131.31 39.94,130.24 39.69,128.98 39.94,127.71 40.65,126.64 41.73,125.92 42.99,125.67 44.26,125.92 45.33,126.64 46.05,127.71 46.3,128.98 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,135.59 32.82,136.86 32.1,137.93 31.03,138.65 29.76,138.9 28.5,138.65 27.43,137.93 26.71,136.86 26.46,135.59 26.71,134.32 27.43,133.25 28.5,132.54 29.76,132.28 31.03,132.54 32.1,133.25 32.82,134.32 33.07,135.59 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,135.59 39.43,136.86 38.72,137.93 37.64,138.65 36.38,138.9 35.11,138.65 34.04,137.93 33.32,136.86 33.07,135.59 33.32,134.32 34.04,133.25 35.11,132.54 36.38,132.28 37.64,132.54 38.72,133.25 39.43,134.32 39.69,135.59 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,135.59 46.05,136.86 45.33,137.93 44.26,138.65 42.99,138.9 41.73,138.65 40.65,137.93 39.94,136.86 39.69,135.59 39.94,134.32 40.65,133.25 41.73,132.54 42.99,132.28 44.26,132.54 45.33,133.25 46.05,134.32 46.3,135.59 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,29.76 125.42,31.03 124.7,32.1 123.63,32.82 122.36,33.07 121.1,32.82 120.02,32.1 119.31,31.03 119.06,29.76 119.31,28.5 120.02,27.43 121.1,26.71 122.36,26.46 123.63,26.71 124.7,27.43 125.42,28.5 125.67,29.76 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,29.76 132.03,31.03 131.31,32.1 130.24,32.82 128.98,33.07 127.71,32.82 126.64,32.1 125.92,31.03 125.67,29.76 125.92,28.5 126.64,27.43 127.71,26.71 128.98,26.46 130.24,26.71 131.31,27.43 132.03,28.5 132.28,29.76 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,29.76 138.65,31.03 137.93,32.1 136.86,32.82 135.59,33.07 134.32,32.82 133.25,32.1 132.54,31.03 132.28,29.76 132.54,28.5 133.25,27.43 134.32,26.71 135.59,26.46 136.86,26.71 137.93,27.43 138.65,28.5 138.9,29.76 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,36.38 125.42,37.64 124.7,38.72 123.63,39.43 122.36,39.69 121.1,39.43 120.02,38.72 119.31,37.64 119.06,36.38 119.31,35.11 120.02,34.04 121.1,33.32 122.36,33.07 123.63,33.32 124.7,34.04 125.42,35.11 125.67,36.38 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,36.38 132.03,37.64 131.31,38.72 130.24,39.43 128.98,39.69 127.71,39.43 126.64,38.72 125.92,37.64 125.67,36.38 125.92,35.11 126.64,34.04 127.71,33.32 128.98,33.07 130.24,33.32 131.31,34.04 132.03,35.11 132.28,36.38 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,36.38 138.65,37.64 137.93,38.72 136.86,39.43 135.59,39.69 134.32,39.43 133.25,38.72 132.54,37.64 132.28,36.38 132.54,35.11 133.25,34.04 134.32,33.32 135.59,33.07 136.86,33.32 137.93,34.04 138.65,35.11 138.9,36.38 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,42.99 125.42,44.26 124.7,45.33 123.63,46.05 122.36,46.3 121.1,46.05 120.02,45.33 119.31,44.26 119.06,42.99 119.31,41.73 120.02,40.65 121.1,39.94 122.36,39.69 123.63,39.94 124.7,40.65 125.42,41.73 125.67,42.99 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,42.99 132.03,44.26 131.31,45.33 130.24,46.05 128.98,46.3 127.71,46.05 126.64,45.33 125.92,44.26 125.67,42.99 125.92,41.73 126.64,40.65 127.71,39.94 128.98,39.69 130.24,39.94 131.31,40.65 132.03,41.73 132.28,42.99 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,42.99 138.65,44.26 137.93,45.33 136.86,46.05 135.59,46.3 134.32,46.05 133.25,45.33 132.54,44.26 132.28,42.99 132.54,41.73 133.25,40.65 134.32,39.94 135.59,39.69 136.86,39.94 137.93,40.65 138.65,41.73 138.9,42.99 \"\r\n            style=\"fill:rgba(141,179,226,1);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient9c2f877df85f404f8d09368927b6f99d\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"11.1772292562222\"\r\n            y1=\"78.9300121785742\"\r\n            x2=\"154.177100806644\"\r\n            y2=\"86.424317884292\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#B2A1C7\" />\r\n            <stop offset=\"50%\" stop-color=\"#00FF78\" />\r\n            <stop offset=\"100%\" stop-color=\"#B2A1C7\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"84.66,16.54 84.4,17.53 83.67,18.25 82.68,18.52 81.69,18.25 80.96,17.53 80.69,16.54 80.96,15.54 81.69,14.82 82.68,14.55 83.67,14.82 84.4,15.54 84.66,16.54 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,16.54 91.01,17.53 90.28,18.25 89.29,18.52 88.3,18.25 87.57,17.53 87.31,16.54 87.57,15.54 88.3,14.82 89.29,14.55 90.28,14.82 91.01,15.54 91.28,16.54 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,16.54 97.62,17.53 96.9,18.25 95.91,18.52 94.91,18.25 94.19,17.53 93.92,16.54 94.19,15.54 94.91,14.82 95.91,14.55 96.9,14.82 97.62,15.54 97.89,16.54 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,23.15 71.17,24.14 70.44,24.87 69.45,25.13 68.46,24.87 67.73,24.14 67.46,23.15 67.73,22.16 68.46,21.43 69.45,21.17 70.44,21.43 71.17,22.16 71.43,23.15 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,23.15 77.78,24.14 77.06,24.87 76.06,25.13 75.07,24.87 74.34,24.14 74.08,23.15 74.34,22.16 75.07,21.43 76.06,21.17 77.06,21.43 77.78,22.16 78.05,23.15 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,23.15 84.4,24.14 83.67,24.87 82.68,25.13 81.69,24.87 80.96,24.14 80.69,23.15 80.96,22.16 81.69,21.43 82.68,21.17 83.67,21.43 84.4,22.16 84.66,23.15 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,23.15 97.62,24.14 96.9,24.87 95.91,25.13 94.91,24.87 94.19,24.14 93.92,23.15 94.19,22.16 94.91,21.43 95.91,21.17 96.9,21.43 97.62,22.16 97.89,23.15 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,29.76 84.4,30.76 83.67,31.48 82.68,31.75 81.69,31.48 80.96,30.76 80.69,29.76 80.96,28.77 81.69,28.05 82.68,27.78 83.67,28.05 84.4,28.77 84.66,29.76 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,29.76 91.01,30.76 90.28,31.48 89.29,31.75 88.3,31.48 87.57,30.76 87.31,29.76 87.57,28.77 88.3,28.05 89.29,27.78 90.28,28.05 91.01,28.77 91.28,29.76 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,29.76 97.62,30.76 96.9,31.48 95.91,31.75 94.91,31.48 94.19,30.76 93.92,29.76 94.19,28.77 94.91,28.05 95.91,27.78 96.9,28.05 97.62,28.77 97.89,29.76 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,36.38 71.17,37.37 70.44,38.1 69.45,38.36 68.46,38.1 67.73,37.37 67.46,36.38 67.73,35.39 68.46,34.66 69.45,34.39 70.44,34.66 71.17,35.39 71.43,36.38 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,36.38 77.78,37.37 77.06,38.1 76.06,38.36 75.07,38.1 74.34,37.37 74.08,36.38 74.34,35.39 75.07,34.66 76.06,34.39 77.06,34.66 77.78,35.39 78.05,36.38 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,36.38 97.62,37.37 96.9,38.1 95.91,38.36 94.91,38.1 94.19,37.37 93.92,36.38 94.19,35.39 94.91,34.66 95.91,34.39 96.9,34.66 97.62,35.39 97.89,36.38 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,42.99 77.78,43.98 77.06,44.71 76.06,44.98 75.07,44.71 74.34,43.98 74.08,42.99 74.34,42 75.07,41.27 76.06,41.01 77.06,41.27 77.78,42 78.05,42.99 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,42.99 97.62,43.98 96.9,44.71 95.91,44.98 94.91,44.71 94.19,43.98 93.92,42.99 94.19,42 94.91,41.27 95.91,41.01 96.9,41.27 97.62,42 97.89,42.99 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,49.61 71.17,50.6 70.44,51.32 69.45,51.59 68.46,51.32 67.73,50.6 67.46,49.61 67.73,48.61 68.46,47.89 69.45,47.62 70.44,47.89 71.17,48.61 71.43,49.61 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,49.61 91.01,50.6 90.28,51.32 89.29,51.59 88.3,51.32 87.57,50.6 87.31,49.61 87.57,48.61 88.3,47.89 89.29,47.62 90.28,47.89 91.01,48.61 91.28,49.61 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,56.22 71.17,57.21 70.44,57.94 69.45,58.2 68.46,57.94 67.73,57.21 67.46,56.22 67.73,55.23 68.46,54.5 69.45,54.24 70.44,54.5 71.17,55.23 71.43,56.22 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,56.22 84.4,57.21 83.67,57.94 82.68,58.2 81.69,57.94 80.96,57.21 80.69,56.22 80.96,55.23 81.69,54.5 82.68,54.24 83.67,54.5 84.4,55.23 84.66,56.22 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,56.22 97.62,57.21 96.9,57.94 95.91,58.2 94.91,57.94 94.19,57.21 93.92,56.22 94.19,55.23 94.91,54.5 95.91,54.24 96.9,54.5 97.62,55.23 97.89,56.22 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,62.83 77.78,63.83 77.06,64.55 76.06,64.82 75.07,64.55 74.34,63.83 74.08,62.83 74.34,61.84 75.07,61.12 76.06,60.85 77.06,61.12 77.78,61.84 78.05,62.83 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"18.52,69.45 18.25,70.44 17.53,71.17 16.54,71.43 15.54,71.17 14.82,70.44 14.55,69.45 14.82,68.46 15.54,67.73 16.54,67.46 17.53,67.73 18.25,68.46 18.52,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"25.13,69.45 24.87,70.44 24.14,71.17 23.15,71.43 22.16,71.17 21.43,70.44 21.17,69.45 21.43,68.46 22.16,67.73 23.15,67.46 24.14,67.73 24.87,68.46 25.13,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"31.75,69.45 31.48,70.44 30.76,71.17 29.76,71.43 28.77,71.17 28.05,70.44 27.78,69.45 28.05,68.46 28.77,67.73 29.76,67.46 30.76,67.73 31.48,68.46 31.75,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"38.36,69.45 38.1,70.44 37.37,71.17 36.38,71.43 35.39,71.17 34.66,70.44 34.39,69.45 34.66,68.46 35.39,67.73 36.38,67.46 37.37,67.73 38.1,68.46 38.36,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"44.98,69.45 44.71,70.44 43.98,71.17 42.99,71.43 42,71.17 41.27,70.44 41.01,69.45 41.27,68.46 42,67.73 42.99,67.46 43.98,67.73 44.71,68.46 44.98,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"58.2,69.45 57.94,70.44 57.21,71.17 56.22,71.43 55.23,71.17 54.5,70.44 54.24,69.45 54.5,68.46 55.23,67.73 56.22,67.46 57.21,67.73 57.94,68.46 58.2,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"64.82,69.45 64.55,70.44 63.83,71.17 62.83,71.43 61.84,71.17 61.12,70.44 60.85,69.45 61.12,68.46 61.84,67.73 62.83,67.46 63.83,67.73 64.55,68.46 64.82,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,69.45 71.17,70.44 70.44,71.17 69.45,71.43 68.46,71.17 67.73,70.44 67.46,69.45 67.73,68.46 68.46,67.73 69.45,67.46 70.44,67.73 71.17,68.46 71.43,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,69.45 91.01,70.44 90.28,71.17 89.29,71.43 88.3,71.17 87.57,70.44 87.31,69.45 87.57,68.46 88.3,67.73 89.29,67.46 90.28,67.73 91.01,68.46 91.28,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,69.45 104.24,70.44 103.51,71.17 102.52,71.43 101.53,71.17 100.8,70.44 100.54,69.45 100.8,68.46 101.53,67.73 102.52,67.46 103.51,67.73 104.24,68.46 104.5,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,69.45 117.47,70.44 116.74,71.17 115.75,71.43 114.76,71.17 114.03,70.44 113.76,69.45 114.03,68.46 114.76,67.73 115.75,67.46 116.74,67.73 117.47,68.46 117.73,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,69.45 130.69,70.44 129.97,71.17 128.98,71.43 127.98,71.17 127.26,70.44 126.99,69.45 127.26,68.46 127.98,67.73 128.98,67.46 129.97,67.73 130.69,68.46 130.96,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,69.45 143.92,70.44 143.2,71.17 142.2,71.43 141.21,71.17 140.49,70.44 140.22,69.45 140.49,68.46 141.21,67.73 142.2,67.46 143.2,67.73 143.92,68.46 144.19,69.45 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"18.52,76.06 18.25,77.06 17.53,77.78 16.54,78.05 15.54,77.78 14.82,77.06 14.55,76.06 14.82,75.07 15.54,74.34 16.54,74.08 17.53,74.34 18.25,75.07 18.52,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"25.13,76.06 24.87,77.06 24.14,77.78 23.15,78.05 22.16,77.78 21.43,77.06 21.17,76.06 21.43,75.07 22.16,74.34 23.15,74.08 24.14,74.34 24.87,75.07 25.13,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"31.75,76.06 31.48,77.06 30.76,77.78 29.76,78.05 28.77,77.78 28.05,77.06 27.78,76.06 28.05,75.07 28.77,74.34 29.76,74.08 30.76,74.34 31.48,75.07 31.75,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"51.59,76.06 51.32,77.06 50.6,77.78 49.61,78.05 48.61,77.78 47.89,77.06 47.62,76.06 47.89,75.07 48.61,74.34 49.61,74.08 50.6,74.34 51.32,75.07 51.59,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"64.82,76.06 64.55,77.06 63.83,77.78 62.83,78.05 61.84,77.78 61.12,77.06 60.85,76.06 61.12,75.07 61.84,74.34 62.83,74.08 63.83,74.34 64.55,75.07 64.82,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,76.06 77.78,77.06 77.06,77.78 76.06,78.05 75.07,77.78 74.34,77.06 74.08,76.06 74.34,75.07 75.07,74.34 76.06,74.08 77.06,74.34 77.78,75.07 78.05,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,76.06 91.01,77.06 90.28,77.78 89.29,78.05 88.3,77.78 87.57,77.06 87.31,76.06 87.57,75.07 88.3,74.34 89.29,74.08 90.28,74.34 91.01,75.07 91.28,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,76.06 97.62,77.06 96.9,77.78 95.91,78.05 94.91,77.78 94.19,77.06 93.92,76.06 94.19,75.07 94.91,74.34 95.91,74.08 96.9,74.34 97.62,75.07 97.89,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,76.06 104.24,77.06 103.51,77.78 102.52,78.05 101.53,77.78 100.8,77.06 100.54,76.06 100.8,75.07 101.53,74.34 102.52,74.08 103.51,74.34 104.24,75.07 104.5,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,76.06 110.85,77.06 110.13,77.78 109.13,78.05 108.14,77.78 107.42,77.06 107.15,76.06 107.42,75.07 108.14,74.34 109.13,74.08 110.13,74.34 110.85,75.07 111.12,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,76.06 130.69,77.06 129.97,77.78 128.98,78.05 127.98,77.78 127.26,77.06 126.99,76.06 127.26,75.07 127.98,74.34 128.98,74.08 129.97,74.34 130.69,75.07 130.96,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,76.06 137.31,77.06 136.58,77.78 135.59,78.05 134.6,77.78 133.87,77.06 133.61,76.06 133.87,75.07 134.6,74.34 135.59,74.08 136.58,74.34 137.31,75.07 137.57,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,76.06 143.92,77.06 143.2,77.78 142.2,78.05 141.21,77.78 140.49,77.06 140.22,76.06 140.49,75.07 141.21,74.34 142.2,74.08 143.2,74.34 143.92,75.07 144.19,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,76.06 150.54,77.06 149.81,77.78 148.82,78.05 147.83,77.78 147.1,77.06 146.83,76.06 147.1,75.07 147.83,74.34 148.82,74.08 149.81,74.34 150.54,75.07 150.8,76.06 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"31.75,82.68 31.48,83.67 30.76,84.4 29.76,84.66 28.77,84.4 28.05,83.67 27.78,82.68 28.05,81.69 28.77,80.96 29.76,80.69 30.76,80.96 31.48,81.69 31.75,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"44.98,82.68 44.71,83.67 43.98,84.4 42.99,84.66 42,84.4 41.27,83.67 41.01,82.68 41.27,81.69 42,80.96 42.99,80.69 43.98,80.96 44.71,81.69 44.98,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"51.59,82.68 51.32,83.67 50.6,84.4 49.61,84.66 48.61,84.4 47.89,83.67 47.62,82.68 47.89,81.69 48.61,80.96 49.61,80.69 50.6,80.96 51.32,81.69 51.59,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"58.2,82.68 57.94,83.67 57.21,84.4 56.22,84.66 55.23,84.4 54.5,83.67 54.24,82.68 54.5,81.69 55.23,80.96 56.22,80.69 57.21,80.96 57.94,81.69 58.2,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,82.68 71.17,83.67 70.44,84.4 69.45,84.66 68.46,84.4 67.73,83.67 67.46,82.68 67.73,81.69 68.46,80.96 69.45,80.69 70.44,80.96 71.17,81.69 71.43,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,82.68 77.78,83.67 77.06,84.4 76.06,84.66 75.07,84.4 74.34,83.67 74.08,82.68 74.34,81.69 75.07,80.96 76.06,80.69 77.06,80.96 77.78,81.69 78.05,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,82.68 97.62,83.67 96.9,84.4 95.91,84.66 94.91,84.4 94.19,83.67 93.92,82.68 94.19,81.69 94.91,80.96 95.91,80.69 96.9,80.96 97.62,81.69 97.89,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,82.68 110.85,83.67 110.13,84.4 109.13,84.66 108.14,84.4 107.42,83.67 107.15,82.68 107.42,81.69 108.14,80.96 109.13,80.69 110.13,80.96 110.85,81.69 111.12,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,82.68 117.47,83.67 116.74,84.4 115.75,84.66 114.76,84.4 114.03,83.67 113.76,82.68 114.03,81.69 114.76,80.96 115.75,80.69 116.74,80.96 117.47,81.69 117.73,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,82.68 130.69,83.67 129.97,84.4 128.98,84.66 127.98,84.4 127.26,83.67 126.99,82.68 127.26,81.69 127.98,80.96 128.98,80.69 129.97,80.96 130.69,81.69 130.96,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,82.68 150.54,83.67 149.81,84.4 148.82,84.66 147.83,84.4 147.1,83.67 146.83,82.68 147.1,81.69 147.83,80.96 148.82,80.69 149.81,80.96 150.54,81.69 150.8,82.68 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"18.52,89.29 18.25,90.28 17.53,91.01 16.54,91.28 15.54,91.01 14.82,90.28 14.55,89.29 14.82,88.3 15.54,87.57 16.54,87.31 17.53,87.57 18.25,88.3 18.52,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"38.36,89.29 38.1,90.28 37.37,91.01 36.38,91.28 35.39,91.01 34.66,90.28 34.39,89.29 34.66,88.3 35.39,87.57 36.38,87.31 37.37,87.57 38.1,88.3 38.36,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,89.29 91.01,90.28 90.28,91.01 89.29,91.28 88.3,91.01 87.57,90.28 87.31,89.29 87.57,88.3 88.3,87.57 89.29,87.31 90.28,87.57 91.01,88.3 91.28,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,89.29 97.62,90.28 96.9,91.01 95.91,91.28 94.91,91.01 94.19,90.28 93.92,89.29 94.19,88.3 94.91,87.57 95.91,87.31 96.9,87.57 97.62,88.3 97.89,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,89.29 104.24,90.28 103.51,91.01 102.52,91.28 101.53,91.01 100.8,90.28 100.54,89.29 100.8,88.3 101.53,87.57 102.52,87.31 103.51,87.57 104.24,88.3 104.5,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,89.29 110.85,90.28 110.13,91.01 109.13,91.28 108.14,91.01 107.42,90.28 107.15,89.29 107.42,88.3 108.14,87.57 109.13,87.31 110.13,87.57 110.85,88.3 111.12,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,89.29 137.31,90.28 136.58,91.01 135.59,91.28 134.6,91.01 133.87,90.28 133.61,89.29 133.87,88.3 134.6,87.57 135.59,87.31 136.58,87.57 137.31,88.3 137.57,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,89.29 143.92,90.28 143.2,91.01 142.2,91.28 141.21,91.01 140.49,90.28 140.22,89.29 140.49,88.3 141.21,87.57 142.2,87.31 143.2,87.57 143.92,88.3 144.19,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,89.29 150.54,90.28 149.81,91.01 148.82,91.28 147.83,91.01 147.1,90.28 146.83,89.29 147.1,88.3 147.83,87.57 148.82,87.31 149.81,87.57 150.54,88.3 150.8,89.29 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"25.13,95.91 24.87,96.9 24.14,97.62 23.15,97.89 22.16,97.62 21.43,96.9 21.17,95.91 21.43,94.91 22.16,94.19 23.15,93.92 24.14,94.19 24.87,94.91 25.13,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"38.36,95.91 38.1,96.9 37.37,97.62 36.38,97.89 35.39,97.62 34.66,96.9 34.39,95.91 34.66,94.91 35.39,94.19 36.38,93.92 37.37,94.19 38.1,94.91 38.36,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"44.98,95.91 44.71,96.9 43.98,97.62 42.99,97.89 42,97.62 41.27,96.9 41.01,95.91 41.27,94.91 42,94.19 42.99,93.92 43.98,94.19 44.71,94.91 44.98,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"58.2,95.91 57.94,96.9 57.21,97.62 56.22,97.89 55.23,97.62 54.5,96.9 54.24,95.91 54.5,94.91 55.23,94.19 56.22,93.92 57.21,94.19 57.94,94.91 58.2,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,95.91 71.17,96.9 70.44,97.62 69.45,97.89 68.46,97.62 67.73,96.9 67.46,95.91 67.73,94.91 68.46,94.19 69.45,93.92 70.44,94.19 71.17,94.91 71.43,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,95.91 77.78,96.9 77.06,97.62 76.06,97.89 75.07,97.62 74.34,96.9 74.08,95.91 74.34,94.91 75.07,94.19 76.06,93.92 77.06,94.19 77.78,94.91 78.05,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,95.91 97.62,96.9 96.9,97.62 95.91,97.89 94.91,97.62 94.19,96.9 93.92,95.91 94.19,94.91 94.91,94.19 95.91,93.92 96.9,94.19 97.62,94.91 97.89,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,95.91 117.47,96.9 116.74,97.62 115.75,97.89 114.76,97.62 114.03,96.9 113.76,95.91 114.03,94.91 114.76,94.19 115.75,93.92 116.74,94.19 117.47,94.91 117.73,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,95.91 143.92,96.9 143.2,97.62 142.2,97.89 141.21,97.62 140.49,96.9 140.22,95.91 140.49,94.91 141.21,94.19 142.2,93.92 143.2,94.19 143.92,94.91 144.19,95.91 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,102.52 71.17,103.51 70.44,104.24 69.45,104.5 68.46,104.24 67.73,103.51 67.46,102.52 67.73,101.53 68.46,100.8 69.45,100.54 70.44,100.8 71.17,101.53 71.43,102.52 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,102.52 84.4,103.51 83.67,104.24 82.68,104.5 81.69,104.24 80.96,103.51 80.69,102.52 80.96,101.53 81.69,100.8 82.68,100.54 83.67,100.8 84.4,101.53 84.66,102.52 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,102.52 97.62,103.51 96.9,104.24 95.91,104.5 94.91,104.24 94.19,103.51 93.92,102.52 94.19,101.53 94.91,100.8 95.91,100.54 96.9,100.8 97.62,101.53 97.89,102.52 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,102.52 117.47,103.51 116.74,104.24 115.75,104.5 114.76,104.24 114.03,103.51 113.76,102.52 114.03,101.53 114.76,100.8 115.75,100.54 116.74,100.8 117.47,101.53 117.73,102.52 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,102.52 137.31,103.51 136.58,104.24 135.59,104.5 134.6,104.24 133.87,103.51 133.61,102.52 133.87,101.53 134.6,100.8 135.59,100.54 136.58,100.8 137.31,101.53 137.57,102.52 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,109.13 71.17,110.13 70.44,110.85 69.45,111.12 68.46,110.85 67.73,110.13 67.46,109.13 67.73,108.14 68.46,107.42 69.45,107.15 70.44,107.42 71.17,108.14 71.43,109.13 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,109.13 91.01,110.13 90.28,110.85 89.29,111.12 88.3,110.85 87.57,110.13 87.31,109.13 87.57,108.14 88.3,107.42 89.29,107.15 90.28,107.42 91.01,108.14 91.28,109.13 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,109.13 104.24,110.13 103.51,110.85 102.52,111.12 101.53,110.85 100.8,110.13 100.54,109.13 100.8,108.14 101.53,107.42 102.52,107.15 103.51,107.42 104.24,108.14 104.5,109.13 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"124.35,109.13 124.08,110.13 123.35,110.85 122.36,111.12 121.37,110.85 120.64,110.13 120.38,109.13 120.64,108.14 121.37,107.42 122.36,107.15 123.35,107.42 124.08,108.14 124.35,109.13 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,109.13 130.69,110.13 129.97,110.85 128.98,111.12 127.98,110.85 127.26,110.13 126.99,109.13 127.26,108.14 127.98,107.42 128.98,107.15 129.97,107.42 130.69,108.14 130.96,109.13 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,109.13 143.92,110.13 143.2,110.85 142.2,111.12 141.21,110.85 140.49,110.13 140.22,109.13 140.49,108.14 141.21,107.42 142.2,107.15 143.2,107.42 143.92,108.14 144.19,109.13 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,109.13 150.54,110.13 149.81,110.85 148.82,111.12 147.83,110.85 147.1,110.13 146.83,109.13 147.1,108.14 147.83,107.42 148.82,107.15 149.81,107.42 150.54,108.14 150.8,109.13 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,115.75 77.78,116.74 77.06,117.47 76.06,117.73 75.07,117.47 74.34,116.74 74.08,115.75 74.34,114.76 75.07,114.03 76.06,113.76 77.06,114.03 77.78,114.76 78.05,115.75 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,115.75 84.4,116.74 83.67,117.47 82.68,117.73 81.69,117.47 80.96,116.74 80.69,115.75 80.96,114.76 81.69,114.03 82.68,113.76 83.67,114.03 84.4,114.76 84.66,115.75 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,115.75 117.47,116.74 116.74,117.47 115.75,117.73 114.76,117.47 114.03,116.74 113.76,115.75 114.03,114.76 114.76,114.03 115.75,113.76 116.74,114.03 117.47,114.76 117.73,115.75 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"124.35,115.75 124.08,116.74 123.35,117.47 122.36,117.73 121.37,117.47 120.64,116.74 120.38,115.75 120.64,114.76 121.37,114.03 122.36,113.76 123.35,114.03 124.08,114.76 124.35,115.75 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,115.75 137.31,116.74 136.58,117.47 135.59,117.73 134.6,117.47 133.87,116.74 133.61,115.75 133.87,114.76 134.6,114.03 135.59,113.76 136.58,114.03 137.31,114.76 137.57,115.75 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"150.8,115.75 150.54,116.74 149.81,117.47 148.82,117.73 147.83,117.47 147.1,116.74 146.83,115.75 147.1,114.76 147.83,114.03 148.82,113.76 149.81,114.03 150.54,114.76 150.8,115.75 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,122.36 71.17,123.35 70.44,124.08 69.45,124.35 68.46,124.08 67.73,123.35 67.46,122.36 67.73,121.37 68.46,120.64 69.45,120.38 70.44,120.64 71.17,121.37 71.43,122.36 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,122.36 77.78,123.35 77.06,124.08 76.06,124.35 75.07,124.08 74.34,123.35 74.08,122.36 74.34,121.37 75.07,120.64 76.06,120.38 77.06,120.64 77.78,121.37 78.05,122.36 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,122.36 84.4,123.35 83.67,124.08 82.68,124.35 81.69,124.08 80.96,123.35 80.69,122.36 80.96,121.37 81.69,120.64 82.68,120.38 83.67,120.64 84.4,121.37 84.66,122.36 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,122.36 91.01,123.35 90.28,124.08 89.29,124.35 88.3,124.08 87.57,123.35 87.31,122.36 87.57,121.37 88.3,120.64 89.29,120.38 90.28,120.64 91.01,121.37 91.28,122.36 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,122.36 104.24,123.35 103.51,124.08 102.52,124.35 101.53,124.08 100.8,123.35 100.54,122.36 100.8,121.37 101.53,120.64 102.52,120.38 103.51,120.64 104.24,121.37 104.5,122.36 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"124.35,122.36 124.08,123.35 123.35,124.08 122.36,124.35 121.37,124.08 120.64,123.35 120.38,122.36 120.64,121.37 121.37,120.64 122.36,120.38 123.35,120.64 124.08,121.37 124.35,122.36 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,122.36 130.69,123.35 129.97,124.08 128.98,124.35 127.98,124.08 127.26,123.35 126.99,122.36 127.26,121.37 127.98,120.64 128.98,120.38 129.97,120.64 130.69,121.37 130.96,122.36 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,122.36 137.31,123.35 136.58,124.08 135.59,124.35 134.6,124.08 133.87,123.35 133.61,122.36 133.87,121.37 134.6,120.64 135.59,120.38 136.58,120.64 137.31,121.37 137.57,122.36 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,128.98 71.17,129.97 70.44,130.69 69.45,130.96 68.46,130.69 67.73,129.97 67.46,128.98 67.73,127.98 68.46,127.26 69.45,126.99 70.44,127.26 71.17,127.98 71.43,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,128.98 77.78,129.97 77.06,130.69 76.06,130.96 75.07,130.69 74.34,129.97 74.08,128.98 74.34,127.98 75.07,127.26 76.06,126.99 77.06,127.26 77.78,127.98 78.05,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,128.98 91.01,129.97 90.28,130.69 89.29,130.96 88.3,130.69 87.57,129.97 87.31,128.98 87.57,127.98 88.3,127.26 89.29,126.99 90.28,127.26 91.01,127.98 91.28,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,128.98 97.62,129.97 96.9,130.69 95.91,130.96 94.91,130.69 94.19,129.97 93.92,128.98 94.19,127.98 94.91,127.26 95.91,126.99 96.9,127.26 97.62,127.98 97.89,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,128.98 104.24,129.97 103.51,130.69 102.52,130.96 101.53,130.69 100.8,129.97 100.54,128.98 100.8,127.98 101.53,127.26 102.52,126.99 103.51,127.26 104.24,127.98 104.5,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,128.98 110.85,129.97 110.13,130.69 109.13,130.96 108.14,130.69 107.42,129.97 107.15,128.98 107.42,127.98 108.14,127.26 109.13,126.99 110.13,127.26 110.85,127.98 111.12,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,128.98 117.47,129.97 116.74,130.69 115.75,130.96 114.76,130.69 114.03,129.97 113.76,128.98 114.03,127.98 114.76,127.26 115.75,126.99 116.74,127.26 117.47,127.98 117.73,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,128.98 130.69,129.97 129.97,130.69 128.98,130.96 127.98,130.69 127.26,129.97 126.99,128.98 127.26,127.98 127.98,127.26 128.98,126.99 129.97,127.26 130.69,127.98 130.96,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,128.98 137.31,129.97 136.58,130.69 135.59,130.96 134.6,130.69 133.87,129.97 133.61,128.98 133.87,127.98 134.6,127.26 135.59,126.99 136.58,127.26 137.31,127.98 137.57,128.98 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,135.59 71.17,136.58 70.44,137.31 69.45,137.57 68.46,137.31 67.73,136.58 67.46,135.59 67.73,134.6 68.46,133.87 69.45,133.61 70.44,133.87 71.17,134.6 71.43,135.59 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,135.59 77.78,136.58 77.06,137.31 76.06,137.57 75.07,137.31 74.34,136.58 74.08,135.59 74.34,134.6 75.07,133.87 76.06,133.61 77.06,133.87 77.78,134.6 78.05,135.59 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,135.59 97.62,136.58 96.9,137.31 95.91,137.57 94.91,137.31 94.19,136.58 93.92,135.59 94.19,134.6 94.91,133.87 95.91,133.61 96.9,133.87 97.62,134.6 97.89,135.59 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,135.59 110.85,136.58 110.13,137.31 109.13,137.57 108.14,137.31 107.42,136.58 107.15,135.59 107.42,134.6 108.14,133.87 109.13,133.61 110.13,133.87 110.85,134.6 111.12,135.59 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,135.59 117.47,136.58 116.74,137.31 115.75,137.57 114.76,137.31 114.03,136.58 113.76,135.59 114.03,134.6 114.76,133.87 115.75,133.61 116.74,133.87 117.47,134.6 117.73,135.59 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"130.96,135.59 130.69,136.58 129.97,137.31 128.98,137.57 127.98,137.31 127.26,136.58 126.99,135.59 127.26,134.6 127.98,133.87 128.98,133.61 129.97,133.87 130.69,134.6 130.96,135.59 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,135.59 137.31,136.58 136.58,137.31 135.59,137.57 134.6,137.31 133.87,136.58 133.61,135.59 133.87,134.6 134.6,133.87 135.59,133.61 136.58,133.87 137.31,134.6 137.57,135.59 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,142.2 71.17,143.2 70.44,143.92 69.45,144.19 68.46,143.92 67.73,143.2 67.46,142.2 67.73,141.21 68.46,140.49 69.45,140.22 70.44,140.49 71.17,141.21 71.43,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,142.2 84.4,143.2 83.67,143.92 82.68,144.19 81.69,143.92 80.96,143.2 80.69,142.2 80.96,141.21 81.69,140.49 82.68,140.22 83.67,140.49 84.4,141.21 84.66,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"91.28,142.2 91.01,143.2 90.28,143.92 89.29,144.19 88.3,143.92 87.57,143.2 87.31,142.2 87.57,141.21 88.3,140.49 89.29,140.22 90.28,140.49 91.01,141.21 91.28,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,142.2 97.62,143.2 96.9,143.92 95.91,144.19 94.91,143.92 94.19,143.2 93.92,142.2 94.19,141.21 94.91,140.49 95.91,140.22 96.9,140.49 97.62,141.21 97.89,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"104.5,142.2 104.24,143.2 103.51,143.92 102.52,144.19 101.53,143.92 100.8,143.2 100.54,142.2 100.8,141.21 101.53,140.49 102.52,140.22 103.51,140.49 104.24,141.21 104.5,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"111.12,142.2 110.85,143.2 110.13,143.92 109.13,144.19 108.14,143.92 107.42,143.2 107.15,142.2 107.42,141.21 108.14,140.49 109.13,140.22 110.13,140.49 110.85,141.21 111.12,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,142.2 117.47,143.2 116.74,143.92 115.75,144.19 114.76,143.92 114.03,143.2 113.76,142.2 114.03,141.21 114.76,140.49 115.75,140.22 116.74,140.49 117.47,141.21 117.73,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"124.35,142.2 124.08,143.2 123.35,143.92 122.36,144.19 121.37,143.92 120.64,143.2 120.38,142.2 120.64,141.21 121.37,140.49 122.36,140.22 123.35,140.49 124.08,141.21 124.35,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,142.2 137.31,143.2 136.58,143.92 135.59,144.19 134.6,143.92 133.87,143.2 133.61,142.2 133.87,141.21 134.6,140.49 135.59,140.22 136.58,140.49 137.31,141.21 137.57,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"144.19,142.2 143.92,143.2 143.2,143.92 142.2,144.19 141.21,143.92 140.49,143.2 140.22,142.2 140.49,141.21 141.21,140.49 142.2,140.22 143.2,140.49 143.92,141.21 144.19,142.2 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"71.43,148.82 71.17,149.81 70.44,150.54 69.45,150.8 68.46,150.54 67.73,149.81 67.46,148.82 67.73,147.83 68.46,147.1 69.45,146.83 70.44,147.1 71.17,147.83 71.43,148.82 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"78.05,148.82 77.78,149.81 77.06,150.54 76.06,150.8 75.07,150.54 74.34,149.81 74.08,148.82 74.34,147.83 75.07,147.1 76.06,146.83 77.06,147.1 77.78,147.83 78.05,148.82 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"84.66,148.82 84.4,149.81 83.67,150.54 82.68,150.8 81.69,150.54 80.96,149.81 80.69,148.82 80.96,147.83 81.69,147.1 82.68,146.83 83.67,147.1 84.4,147.83 84.66,148.82 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"97.89,148.82 97.62,149.81 96.9,150.54 95.91,150.8 94.91,150.54 94.19,149.81 93.92,148.82 94.19,147.83 94.91,147.1 95.91,146.83 96.9,147.1 97.62,147.83 97.89,148.82 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"117.73,148.82 117.47,149.81 116.74,150.54 115.75,150.8 114.76,150.54 114.03,149.81 113.76,148.82 114.03,147.83 114.76,147.1 115.75,146.83 116.74,147.1 117.47,147.83 117.73,148.82 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n          <polygon\r\n            points=\"137.57,148.82 137.31,149.81 136.58,150.54 135.59,150.8 134.6,150.54 133.87,149.81 133.61,148.82 133.87,147.83 134.6,147.1 135.59,146.83 136.58,147.1 137.31,147.83 137.57,148.82 \"\r\n            style=\"fill:url(#gradient9c2f877df85f404f8d09368927b6f99d);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 13,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(255,255,255,0);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,29.76 13.55,26.54 14.49,23.44 16.02,20.58 18.07,18.07 20.58,16.02 23.44,14.49 26.54,13.55 29.76,13.23 42.99,13.23 46.22,13.55 49.32,14.49 52.18,16.02 54.68,18.07 56.74,20.58 58.27,23.44 59.21,26.54 59.53,29.76 59.53,42.99 59.21,46.22 58.27,49.32 56.74,52.18 54.68,54.68 52.18,56.74 49.32,58.27 46.22,59.21 42.99,59.53 29.76,59.53 26.54,59.21 23.44,58.27 20.58,56.74 18.07,54.68 16.02,52.18 14.49,49.32 13.55,46.22 13.23,42.99 13.23,29.76 19.84,29.76 19.84,42.99 20.18,45.56 21.17,47.95 22.75,50.01 24.8,51.58 27.2,52.58 29.76,52.91 42.99,52.91 45.56,52.58 47.95,51.58 50.01,50.01 51.58,47.95 52.58,45.56 52.91,42.99 52.91,29.76 52.58,27.2 51.58,24.8 50.01,22.75 47.95,21.17 45.56,20.18 42.99,19.84 29.76,19.84 27.2,20.18 24.8,21.17 22.75,22.75 21.17,24.8 20.18,27.2 19.84,29.76 \"\r\n            style=\"fill:rgba(88,66,111,1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,122.36 13.55,119.14 14.49,116.03 16.02,113.18 18.07,110.67 20.58,108.61 23.44,107.09 26.54,106.14 29.76,105.83 42.99,105.83 46.22,106.14 49.32,107.09 52.18,108.61 54.68,110.67 56.74,113.18 58.27,116.03 59.21,119.14 59.53,122.36 59.53,135.59 59.21,138.82 58.27,141.92 56.74,144.78 54.68,147.28 52.18,149.34 49.32,150.87 46.22,151.81 42.99,152.13 29.76,152.13 26.54,151.81 23.44,150.87 20.58,149.34 18.07,147.28 16.02,144.78 14.49,141.92 13.55,138.82 13.23,135.59 13.23,122.36 19.84,122.36 19.84,135.59 20.18,138.16 21.17,140.55 22.75,142.61 24.8,144.18 27.2,145.17 29.76,145.51 42.99,145.51 45.56,145.17 47.95,144.18 50.01,142.61 51.58,140.55 52.58,138.16 52.91,135.59 52.91,122.36 52.58,119.79 51.58,117.4 50.01,115.35 47.95,113.77 45.56,112.78 42.99,112.44 29.76,112.44 27.2,112.78 24.8,113.77 22.75,115.35 21.17,117.4 20.18,119.79 19.84,122.36 \"\r\n            style=\"fill:rgba(88,66,111,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,29.76 106.14,26.54 107.09,23.44 108.61,20.58 110.67,18.07 113.18,16.02 116.03,14.49 119.14,13.55 122.36,13.23 135.59,13.23 138.82,13.55 141.92,14.49 144.78,16.02 147.28,18.07 149.34,20.58 150.87,23.44 151.81,26.54 152.13,29.76 152.13,42.99 151.81,46.22 150.87,49.32 149.34,52.18 147.28,54.68 144.78,56.74 141.92,58.27 138.82,59.21 135.59,59.53 122.36,59.53 119.14,59.21 116.03,58.27 113.18,56.74 110.67,54.68 108.61,52.18 107.09,49.32 106.14,46.22 105.83,42.99 105.83,29.76 112.44,29.76 112.44,42.99 112.78,45.56 113.77,47.95 115.35,50.01 117.4,51.58 119.79,52.58 122.36,52.91 135.59,52.91 138.16,52.58 140.55,51.58 142.61,50.01 144.18,47.95 145.17,45.56 145.51,42.99 145.51,29.76 145.17,27.2 144.18,24.8 142.61,22.75 140.55,21.17 138.16,20.18 135.59,19.84 122.36,19.84 119.79,20.18 117.4,21.17 115.35,22.75 113.77,24.8 112.78,27.2 112.44,29.76 \"\r\n            style=\"fill:rgba(88,66,111,1);\"\r\n          />\r\n          <polygon\r\n            points=\"29.43,32.74 28.29,32.51 27.33,31.87 26.68,30.9 26.46,29.76 26.68,28.62 27.33,27.66 28.29,27.01 29.43,26.79 43.32,26.79 44.46,27.01 45.43,27.66 46.07,28.62 46.3,29.76 46.07,30.9 45.43,31.87 44.46,32.51 43.32,32.74 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"29.43,39.35 28.29,39.13 27.33,38.48 26.68,37.52 26.46,36.38 26.68,35.24 27.33,34.27 28.29,33.63 29.43,33.4 43.32,33.4 44.46,33.63 45.43,34.27 46.07,35.24 46.3,36.38 46.07,37.52 45.43,38.48 44.46,39.13 43.32,39.35 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"29.43,45.97 28.29,45.74 27.33,45.1 26.68,44.13 26.46,42.99 26.68,41.85 27.33,40.89 28.29,40.24 29.43,40.02 43.32,40.02 44.46,40.24 45.43,40.89 46.07,41.85 46.3,42.99 46.07,44.13 45.43,45.1 44.46,45.74 43.32,45.97 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"29.43,125.34 28.29,125.11 27.33,124.47 26.68,123.5 26.46,122.36 26.68,121.22 27.33,120.26 28.29,119.61 29.43,119.39 43.32,119.39 44.46,119.61 45.43,120.26 46.07,121.22 46.3,122.36 46.07,123.5 45.43,124.47 44.46,125.11 43.32,125.34 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"29.43,131.95 28.29,131.73 27.33,131.08 26.68,130.12 26.46,128.98 26.68,127.84 27.33,126.87 28.29,126.23 29.43,126 43.32,126 44.46,126.23 45.43,126.87 46.07,127.84 46.3,128.98 46.07,130.12 45.43,131.08 44.46,131.73 43.32,131.95 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"29.43,138.57 28.29,138.34 27.33,137.7 26.68,136.73 26.46,135.59 26.68,134.45 27.33,133.49 28.29,132.84 29.43,132.61 43.32,132.61 44.46,132.84 45.43,133.49 46.07,134.45 46.3,135.59 46.07,136.73 45.43,137.7 44.46,138.34 43.32,138.57 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"122.03,32.74 120.89,32.51 119.93,31.87 119.28,30.9 119.06,29.76 119.28,28.62 119.93,27.66 120.89,27.01 122.03,26.79 135.92,26.79 137.06,27.01 138.03,27.66 138.67,28.62 138.9,29.76 138.67,30.9 138.03,31.87 137.06,32.51 135.92,32.74 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"122.03,39.35 120.89,39.13 119.93,38.48 119.28,37.52 119.06,36.38 119.28,35.24 119.93,34.27 120.89,33.63 122.03,33.4 135.92,33.4 137.06,33.63 138.03,34.27 138.67,35.24 138.9,36.38 138.67,37.52 138.03,38.48 137.06,39.13 135.92,39.35 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"122.03,45.97 120.89,45.74 119.93,45.1 119.28,44.13 119.06,42.99 119.28,41.85 119.93,40.89 120.89,40.24 122.03,40.02 135.92,40.02 137.06,40.24 138.03,40.89 138.67,41.85 138.9,42.99 138.67,44.13 138.03,45.1 137.06,45.74 135.92,45.97 \"\r\n            style=\"fill:rgba(211,135,84,1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.89,68.79 14.09,67.77 14.66,66.92 15.52,66.34 16.54,66.14 17.55,66.34 18.41,66.92 18.98,67.77 19.18,68.79 19.18,75.4 18.98,76.41 18.41,77.27 17.55,77.85 16.54,78.05 15.52,77.85 14.66,77.27 14.09,76.41 13.89,75.4 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.89,88.63 14.09,87.62 14.66,86.76 15.52,86.19 16.54,85.98 17.55,86.19 18.41,86.76 18.98,87.62 19.18,88.63 19.18,88.63 18.98,89.64 18.41,90.5 17.55,91.07 16.54,91.28 15.52,91.07 14.66,90.5 14.09,89.64 13.89,88.63 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"20.5,68.79 20.71,67.77 21.28,66.92 22.14,66.34 23.15,66.14 24.16,66.34 25.02,66.92 25.59,67.77 25.8,68.79 25.8,75.4 25.59,76.41 25.02,77.27 24.16,77.85 23.15,78.05 22.14,77.85 21.28,77.27 20.71,76.41 20.5,75.4 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"20.5,95.24 20.71,94.23 21.28,93.37 22.14,92.8 23.15,92.6 24.16,92.8 25.02,93.37 25.59,94.23 25.8,95.24 25.8,95.24 25.59,96.26 25.02,97.11 24.16,97.69 23.15,97.89 22.14,97.69 21.28,97.11 20.71,96.26 20.5,95.24 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"27.12,68.79 27.32,67.77 27.89,66.92 28.75,66.34 29.76,66.14 30.78,66.34 31.63,66.92 32.21,67.77 32.41,68.79 32.41,82.02 32.21,83.03 31.63,83.89 30.78,84.46 29.76,84.66 28.75,84.46 27.89,83.89 27.32,83.03 27.12,82.02 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.73,68.79 33.93,67.77 34.51,66.92 35.37,66.34 36.38,66.14 37.39,66.34 38.25,66.92 38.82,67.77 39.02,68.79 39.02,68.79 38.82,69.8 38.25,70.66 37.39,71.23 36.38,71.43 35.37,71.23 34.51,70.66 33.93,69.8 33.73,68.79 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.73,88.63 33.93,87.62 34.51,86.76 35.37,86.19 36.38,85.98 37.39,86.19 38.25,86.76 38.82,87.62 39.02,88.63 39.02,95.24 38.82,96.26 38.25,97.11 37.39,97.69 36.38,97.89 35.37,97.69 34.51,97.11 33.93,96.26 33.73,95.24 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,68.79 40.55,67.77 41.12,66.92 41.98,66.34 42.99,66.14 44,66.34 44.86,66.92 45.44,67.77 45.64,68.79 45.64,68.79 45.44,69.8 44.86,70.66 44,71.23 42.99,71.43 41.98,71.23 41.12,70.66 40.55,69.8 40.35,68.79 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,82.02 40.55,81 41.12,80.14 41.98,79.57 42.99,79.37 44,79.57 44.86,80.14 45.44,81 45.64,82.02 45.64,82.02 45.44,83.03 44.86,83.89 44,84.46 42.99,84.66 41.98,84.46 41.12,83.89 40.55,83.03 40.35,82.02 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,95.24 40.55,94.23 41.12,93.37 41.98,92.8 42.99,92.6 44,92.8 44.86,93.37 45.44,94.23 45.64,95.24 45.64,95.24 45.44,96.26 44.86,97.11 44,97.69 42.99,97.89 41.98,97.69 41.12,97.11 40.55,96.26 40.35,95.24 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.96,75.4 47.16,74.39 47.74,73.53 48.59,72.96 49.61,72.76 50.62,72.96 51.48,73.53 52.05,74.39 52.25,75.4 52.25,82.02 52.05,83.03 51.48,83.89 50.62,84.46 49.61,84.66 48.59,84.46 47.74,83.89 47.16,83.03 46.96,82.02 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,68.79 53.78,67.77 54.35,66.92 55.21,66.34 56.22,66.14 57.23,66.34 58.09,66.92 58.66,67.77 58.87,68.79 58.87,68.79 58.66,69.8 58.09,70.66 57.23,71.23 56.22,71.43 55.21,71.23 54.35,70.66 53.78,69.8 53.57,68.79 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,82.02 53.78,81 54.35,80.14 55.21,79.57 56.22,79.37 57.23,79.57 58.09,80.14 58.66,81 58.87,82.02 58.87,82.02 58.66,83.03 58.09,83.89 57.23,84.46 56.22,84.66 55.21,84.46 54.35,83.89 53.78,83.03 53.57,82.02 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,95.24 53.78,94.23 54.35,93.37 55.21,92.8 56.22,92.6 57.23,92.8 58.09,93.37 58.66,94.23 58.87,95.24 58.87,95.24 58.66,96.26 58.09,97.11 57.23,97.69 56.22,97.89 55.21,97.69 54.35,97.11 53.78,96.26 53.57,95.24 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"60.19,68.79 60.39,67.77 60.96,66.92 61.82,66.34 62.83,66.14 63.85,66.34 64.71,66.92 65.28,67.77 65.48,68.79 65.48,75.4 65.28,76.41 64.71,77.27 63.85,77.85 62.83,78.05 61.82,77.85 60.96,77.27 60.39,76.41 60.19,75.4 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,22.49 67,21.48 67.58,20.62 68.44,20.04 69.45,19.84 70.46,20.04 71.32,20.62 71.89,21.48 72.09,22.49 72.09,22.49 71.89,23.5 71.32,24.36 70.46,24.93 69.45,25.13 68.44,24.93 67.58,24.36 67,23.5 66.8,22.49 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,35.72 67,34.7 67.58,33.85 68.44,33.27 69.45,33.07 70.46,33.27 71.32,33.85 71.89,34.7 72.09,35.72 72.09,35.72 71.89,36.73 71.32,37.59 70.46,38.16 69.45,38.36 68.44,38.16 67.58,37.59 67,36.73 66.8,35.72 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,48.94 67,47.93 67.58,47.07 68.44,46.5 69.45,46.3 70.46,46.5 71.32,47.07 71.89,47.93 72.09,48.94 72.09,55.56 71.89,56.57 71.32,57.43 70.46,58 69.45,58.2 68.44,58 67.58,57.43 67,56.57 66.8,55.56 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,68.79 67,67.77 67.58,66.92 68.44,66.34 69.45,66.14 70.46,66.34 71.32,66.92 71.89,67.77 72.09,68.79 72.09,68.79 71.89,69.8 71.32,70.66 70.46,71.23 69.45,71.43 68.44,71.23 67.58,70.66 67,69.8 66.8,68.79 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,82.02 67,81 67.58,80.14 68.44,79.57 69.45,79.37 70.46,79.57 71.32,80.14 71.89,81 72.09,82.02 72.09,82.02 71.89,83.03 71.32,83.89 70.46,84.46 69.45,84.66 68.44,84.46 67.58,83.89 67,83.03 66.8,82.02 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,95.24 67,94.23 67.58,93.37 68.44,92.8 69.45,92.6 70.46,92.8 71.32,93.37 71.89,94.23 72.09,95.24 72.09,108.47 71.89,109.48 71.32,110.34 70.46,110.92 69.45,111.12 68.44,110.92 67.58,110.34 67,109.48 66.8,108.47 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,121.7 67,120.69 67.58,119.83 68.44,119.26 69.45,119.06 70.46,119.26 71.32,119.83 71.89,120.69 72.09,121.7 72.09,148.16 71.89,149.17 71.32,150.03 70.46,150.6 69.45,150.8 68.44,150.6 67.58,150.03 67,149.17 66.8,148.16 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,22.49 73.62,21.48 74.19,20.62 75.05,20.04 76.06,19.84 77.08,20.04 77.93,20.62 78.51,21.48 78.71,22.49 78.71,22.49 78.51,23.5 77.93,24.36 77.08,24.93 76.06,25.13 75.05,24.93 74.19,24.36 73.62,23.5 73.42,22.49 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,35.72 73.62,34.7 74.19,33.85 75.05,33.27 76.06,33.07 77.08,33.27 77.93,33.85 78.51,34.7 78.71,35.72 78.71,42.33 78.51,43.34 77.93,44.2 77.08,44.77 76.06,44.98 75.05,44.77 74.19,44.2 73.62,43.34 73.42,42.33 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,62.17 73.62,61.16 74.19,60.3 75.05,59.73 76.06,59.53 77.08,59.73 77.93,60.3 78.51,61.16 78.71,62.17 78.71,62.17 78.51,63.19 77.93,64.04 77.08,64.62 76.06,64.82 75.05,64.62 74.19,64.04 73.62,63.19 73.42,62.17 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,75.4 73.62,74.39 74.19,73.53 75.05,72.96 76.06,72.76 77.08,72.96 77.93,73.53 78.51,74.39 78.71,75.4 78.71,82.02 78.51,83.03 77.93,83.89 77.08,84.46 76.06,84.66 75.05,84.46 74.19,83.89 73.62,83.03 73.42,82.02 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,95.24 73.62,94.23 74.19,93.37 75.05,92.8 76.06,92.6 77.08,92.8 77.93,93.37 78.51,94.23 78.71,95.24 78.71,95.24 78.51,96.26 77.93,97.11 77.08,97.69 76.06,97.89 75.05,97.69 74.19,97.11 73.62,96.26 73.42,95.24 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,115.09 73.62,114.07 74.19,113.22 75.05,112.64 76.06,112.44 77.08,112.64 77.93,113.22 78.51,114.07 78.71,115.09 78.71,134.93 78.51,135.94 77.93,136.8 77.08,137.37 76.06,137.57 75.05,137.37 74.19,136.8 73.62,135.94 73.42,134.93 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,148.16 73.62,147.15 74.19,146.29 75.05,145.71 76.06,145.51 77.08,145.71 77.93,146.29 78.51,147.15 78.71,148.16 78.71,148.16 78.51,149.17 77.93,150.03 77.08,150.6 76.06,150.8 75.05,150.6 74.19,150.03 73.62,149.17 73.42,148.16 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,15.87 80.23,14.86 80.81,14 81.66,13.43 82.68,13.23 83.69,13.43 84.55,14 85.12,14.86 85.32,15.87 85.32,29.1 85.12,30.11 84.55,30.97 83.69,31.55 82.68,31.75 81.66,31.55 80.81,30.97 80.23,30.11 80.03,29.1 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,55.56 80.23,54.55 80.81,53.69 81.66,53.11 82.68,52.91 83.69,53.11 84.55,53.69 85.12,54.55 85.32,55.56 85.32,55.56 85.12,56.57 84.55,57.43 83.69,58 82.68,58.2 81.66,58 80.81,57.43 80.23,56.57 80.03,55.56 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,101.86 80.23,100.85 80.81,99.99 81.66,99.41 82.68,99.21 83.69,99.41 84.55,99.99 85.12,100.85 85.32,101.86 85.32,101.86 85.12,102.87 84.55,103.73 83.69,104.3 82.68,104.5 81.66,104.3 80.81,103.73 80.23,102.87 80.03,101.86 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,115.09 80.23,114.07 80.81,113.22 81.66,112.64 82.68,112.44 83.69,112.64 84.55,113.22 85.12,114.07 85.32,115.09 85.32,121.7 85.12,122.71 84.55,123.57 83.69,124.15 82.68,124.35 81.66,124.15 80.81,123.57 80.23,122.71 80.03,121.7 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,141.54 80.23,140.53 80.81,139.67 81.66,139.1 82.68,138.9 83.69,139.1 84.55,139.67 85.12,140.53 85.32,141.54 85.32,148.16 85.12,149.17 84.55,150.03 83.69,150.6 82.68,150.8 81.66,150.6 80.81,150.03 80.23,149.17 80.03,148.16 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,15.87 86.85,14.86 87.42,14 88.28,13.43 89.29,13.23 90.3,13.43 91.16,14 91.74,14.86 91.94,15.87 91.94,15.87 91.74,16.89 91.16,17.74 90.3,18.32 89.29,18.52 88.28,18.32 87.42,17.74 86.85,16.89 86.65,15.87 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,29.1 86.85,28.09 87.42,27.23 88.28,26.66 89.29,26.46 90.3,26.66 91.16,27.23 91.74,28.09 91.94,29.1 91.94,29.1 91.74,30.11 91.16,30.97 90.3,31.55 89.29,31.75 88.28,31.55 87.42,30.97 86.85,30.11 86.65,29.1 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,48.94 86.85,47.93 87.42,47.07 88.28,46.5 89.29,46.3 90.3,46.5 91.16,47.07 91.74,47.93 91.94,48.94 91.94,48.94 91.74,49.96 91.16,50.82 90.3,51.39 89.29,51.59 88.28,51.39 87.42,50.82 86.85,49.96 86.65,48.94 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,68.79 86.85,67.77 87.42,66.92 88.28,66.34 89.29,66.14 90.3,66.34 91.16,66.92 91.74,67.77 91.94,68.79 91.94,75.4 91.74,76.41 91.16,77.27 90.3,77.85 89.29,78.05 88.28,77.85 87.42,77.27 86.85,76.41 86.65,75.4 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,88.63 86.85,87.62 87.42,86.76 88.28,86.19 89.29,85.98 90.3,86.19 91.16,86.76 91.74,87.62 91.94,88.63 91.94,88.63 91.74,89.64 91.16,90.5 90.3,91.07 89.29,91.28 88.28,91.07 87.42,90.5 86.85,89.64 86.65,88.63 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,108.47 86.85,107.46 87.42,106.6 88.28,106.03 89.29,105.83 90.3,106.03 91.16,106.6 91.74,107.46 91.94,108.47 91.94,108.47 91.74,109.48 91.16,110.34 90.3,110.92 89.29,111.12 88.28,110.92 87.42,110.34 86.85,109.48 86.65,108.47 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,121.7 86.85,120.69 87.42,119.83 88.28,119.26 89.29,119.06 90.3,119.26 91.16,119.83 91.74,120.69 91.94,121.7 91.94,128.31 91.74,129.33 91.16,130.19 90.3,130.76 89.29,130.96 88.28,130.76 87.42,130.19 86.85,129.33 86.65,128.31 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,141.54 86.85,140.53 87.42,139.67 88.28,139.1 89.29,138.9 90.3,139.1 91.16,139.67 91.74,140.53 91.94,141.54 91.94,141.54 91.74,142.56 91.16,143.41 90.3,143.99 89.29,144.19 88.28,143.99 87.42,143.41 86.85,142.56 86.65,141.54 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,15.87 93.46,14.86 94.03,14 94.89,13.43 95.91,13.23 96.92,13.43 97.78,14 98.35,14.86 98.55,15.87 98.55,42.33 98.35,43.34 97.78,44.2 96.92,44.77 95.91,44.98 94.89,44.77 94.03,44.2 93.46,43.34 93.26,42.33 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,55.56 93.46,54.55 94.03,53.69 94.89,53.11 95.91,52.91 96.92,53.11 97.78,53.69 98.35,54.55 98.55,55.56 98.55,55.56 98.35,56.57 97.78,57.43 96.92,58 95.91,58.2 94.89,58 94.03,57.43 93.46,56.57 93.26,55.56 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,75.4 93.46,74.39 94.03,73.53 94.89,72.96 95.91,72.76 96.92,72.96 97.78,73.53 98.35,74.39 98.55,75.4 98.55,101.86 98.35,102.87 97.78,103.73 96.92,104.3 95.91,104.5 94.89,104.3 94.03,103.73 93.46,102.87 93.26,101.86 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,128.31 93.46,127.3 94.03,126.44 94.89,125.87 95.91,125.67 96.92,125.87 97.78,126.44 98.35,127.3 98.55,128.31 98.55,148.16 98.35,149.17 97.78,150.03 96.92,150.6 95.91,150.8 94.89,150.6 94.03,150.03 93.46,149.17 93.26,148.16 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,68.79 100.08,67.77 100.65,66.92 101.51,66.34 102.52,66.14 103.53,66.34 104.39,66.92 104.96,67.77 105.17,68.79 105.17,75.4 104.96,76.41 104.39,77.27 103.53,77.85 102.52,78.05 101.51,77.85 100.65,77.27 100.08,76.41 99.87,75.4 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,88.63 100.08,87.62 100.65,86.76 101.51,86.19 102.52,85.98 103.53,86.19 104.39,86.76 104.96,87.62 105.17,88.63 105.17,88.63 104.96,89.64 104.39,90.5 103.53,91.07 102.52,91.28 101.51,91.07 100.65,90.5 100.08,89.64 99.87,88.63 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,108.47 100.08,107.46 100.65,106.6 101.51,106.03 102.52,105.83 103.53,106.03 104.39,106.6 104.96,107.46 105.17,108.47 105.17,108.47 104.96,109.48 104.39,110.34 103.53,110.92 102.52,111.12 101.51,110.92 100.65,110.34 100.08,109.48 99.87,108.47 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,121.7 100.08,120.69 100.65,119.83 101.51,119.26 102.52,119.06 103.53,119.26 104.39,119.83 104.96,120.69 105.17,121.7 105.17,128.31 104.96,129.33 104.39,130.19 103.53,130.76 102.52,130.96 101.51,130.76 100.65,130.19 100.08,129.33 99.87,128.31 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,141.54 100.08,140.53 100.65,139.67 101.51,139.1 102.52,138.9 103.53,139.1 104.39,139.67 104.96,140.53 105.17,141.54 105.17,141.54 104.96,142.56 104.39,143.41 103.53,143.99 102.52,144.19 101.51,143.99 100.65,143.41 100.08,142.56 99.87,141.54 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"106.49,75.4 106.69,74.39 107.26,73.53 108.12,72.96 109.13,72.76 110.15,72.96 111,73.53 111.58,74.39 111.78,75.4 111.78,88.63 111.58,89.64 111,90.5 110.15,91.07 109.13,91.28 108.12,91.07 107.26,90.5 106.69,89.64 106.49,88.63 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"106.49,128.31 106.69,127.3 107.26,126.44 108.12,125.87 109.13,125.67 110.15,125.87 111,126.44 111.58,127.3 111.78,128.31 111.78,141.54 111.58,142.56 111,143.41 110.15,143.99 109.13,144.19 108.12,143.99 107.26,143.41 106.69,142.56 106.49,141.54 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,68.79 113.3,67.77 113.88,66.92 114.74,66.34 115.75,66.14 116.76,66.34 117.62,66.92 118.19,67.77 118.39,68.79 118.39,68.79 118.19,69.8 117.62,70.66 116.76,71.23 115.75,71.43 114.74,71.23 113.88,70.66 113.3,69.8 113.1,68.79 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,82.02 113.3,81 113.88,80.14 114.74,79.57 115.75,79.37 116.76,79.57 117.62,80.14 118.19,81 118.39,82.02 118.39,82.02 118.19,83.03 117.62,83.89 116.76,84.46 115.75,84.66 114.74,84.46 113.88,83.89 113.3,83.03 113.1,82.02 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,95.24 113.3,94.23 113.88,93.37 114.74,92.8 115.75,92.6 116.76,92.8 117.62,93.37 118.19,94.23 118.39,95.24 118.39,101.86 118.19,102.87 117.62,103.73 116.76,104.3 115.75,104.5 114.74,104.3 113.88,103.73 113.3,102.87 113.1,101.86 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,115.09 113.3,114.07 113.88,113.22 114.74,112.64 115.75,112.44 116.76,112.64 117.62,113.22 118.19,114.07 118.39,115.09 118.39,115.09 118.19,116.1 117.62,116.96 116.76,117.53 115.75,117.73 114.74,117.53 113.88,116.96 113.3,116.1 113.1,115.09 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,128.31 113.3,127.3 113.88,126.44 114.74,125.87 115.75,125.67 116.76,125.87 117.62,126.44 118.19,127.3 118.39,128.31 118.39,148.16 118.19,149.17 117.62,150.03 116.76,150.6 115.75,150.8 114.74,150.6 113.88,150.03 113.3,149.17 113.1,148.16 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.72,108.47 119.92,107.46 120.49,106.6 121.35,106.03 122.36,105.83 123.37,106.03 124.23,106.6 124.81,107.46 125.01,108.47 125.01,121.7 124.81,122.71 124.23,123.57 123.37,124.15 122.36,124.35 121.35,124.15 120.49,123.57 119.92,122.71 119.72,121.7 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.72,141.54 119.92,140.53 120.49,139.67 121.35,139.1 122.36,138.9 123.37,139.1 124.23,139.67 124.81,140.53 125.01,141.54 125.01,141.54 124.81,142.56 124.23,143.41 123.37,143.99 122.36,144.19 121.35,143.99 120.49,143.41 119.92,142.56 119.72,141.54 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,68.79 126.53,67.77 127.11,66.92 127.96,66.34 128.98,66.14 129.99,66.34 130.85,66.92 131.42,67.77 131.62,68.79 131.62,82.02 131.42,83.03 130.85,83.89 129.99,84.46 128.98,84.66 127.96,84.46 127.11,83.89 126.53,83.03 126.33,82.02 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,108.47 126.53,107.46 127.11,106.6 127.96,106.03 128.98,105.83 129.99,106.03 130.85,106.6 131.42,107.46 131.62,108.47 131.62,108.47 131.42,109.48 130.85,110.34 129.99,110.92 128.98,111.12 127.96,110.92 127.11,110.34 126.53,109.48 126.33,108.47 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,121.7 126.53,120.69 127.11,119.83 127.96,119.26 128.98,119.06 129.99,119.26 130.85,119.83 131.42,120.69 131.62,121.7 131.62,134.93 131.42,135.94 130.85,136.8 129.99,137.37 128.98,137.57 127.96,137.37 127.11,136.8 126.53,135.94 126.33,134.93 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,75.4 133.15,74.39 133.72,73.53 134.58,72.96 135.59,72.76 136.6,72.96 137.46,73.53 138.03,74.39 138.24,75.4 138.24,75.4 138.03,76.41 137.46,77.27 136.6,77.85 135.59,78.05 134.58,77.85 133.72,77.27 133.15,76.41 132.94,75.4 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,88.63 133.15,87.62 133.72,86.76 134.58,86.19 135.59,85.98 136.6,86.19 137.46,86.76 138.03,87.62 138.24,88.63 138.24,88.63 138.03,89.64 137.46,90.5 136.6,91.07 135.59,91.28 134.58,91.07 133.72,90.5 133.15,89.64 132.94,88.63 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,101.86 133.15,100.85 133.72,99.99 134.58,99.41 135.59,99.21 136.6,99.41 137.46,99.99 138.03,100.85 138.24,101.86 138.24,101.86 138.03,102.87 137.46,103.73 136.6,104.3 135.59,104.5 134.58,104.3 133.72,103.73 133.15,102.87 132.94,101.86 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,115.09 133.15,114.07 133.72,113.22 134.58,112.64 135.59,112.44 136.6,112.64 137.46,113.22 138.03,114.07 138.24,115.09 138.24,148.16 138.03,149.17 137.46,150.03 136.6,150.6 135.59,150.8 134.58,150.6 133.72,150.03 133.15,149.17 132.94,148.16 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,68.79 139.76,67.77 140.33,66.92 141.19,66.34 142.2,66.14 143.22,66.34 144.08,66.92 144.65,67.77 144.85,68.79 144.85,75.4 144.65,76.41 144.08,77.27 143.22,77.85 142.2,78.05 141.19,77.85 140.33,77.27 139.76,76.41 139.56,75.4 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,88.63 139.76,87.62 140.33,86.76 141.19,86.19 142.2,85.98 143.22,86.19 144.08,86.76 144.65,87.62 144.85,88.63 144.85,95.24 144.65,96.26 144.08,97.11 143.22,97.69 142.2,97.89 141.19,97.69 140.33,97.11 139.76,96.26 139.56,95.24 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,108.47 139.76,107.46 140.33,106.6 141.19,106.03 142.2,105.83 143.22,106.03 144.08,106.6 144.65,107.46 144.85,108.47 144.85,108.47 144.65,109.48 144.08,110.34 143.22,110.92 142.2,111.12 141.19,110.92 140.33,110.34 139.76,109.48 139.56,108.47 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,141.54 139.76,140.53 140.33,139.67 141.19,139.1 142.2,138.9 143.22,139.1 144.08,139.67 144.65,140.53 144.85,141.54 144.85,141.54 144.65,142.56 144.08,143.41 143.22,143.99 142.2,144.19 141.19,143.99 140.33,143.41 139.76,142.56 139.56,141.54 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"146.17,75.4 146.37,74.39 146.95,73.53 147.81,72.96 148.82,72.76 149.83,72.96 150.69,73.53 151.26,74.39 151.46,75.4 151.46,88.63 151.26,89.64 150.69,90.5 149.83,91.07 148.82,91.28 147.81,91.07 146.95,90.5 146.37,89.64 146.17,88.63 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n          <polygon\r\n            points=\"146.17,108.47 146.37,107.46 146.95,106.6 147.81,106.03 148.82,105.83 149.83,106.03 150.69,106.6 151.26,107.46 151.46,108.47 151.46,115.09 151.26,116.1 150.69,116.96 149.83,117.53 148.82,117.73 147.81,117.53 146.95,116.96 146.37,116.1 146.17,115.09 \"\r\n            style=\"fill:rgba(28,125,138,1);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 14,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(255,255,255,0);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon\r\n            points=\"79.37,15.54 79.55,14.66 80.05,13.91 80.8,13.4 81.69,13.23 86.05,13.23 86.05,19.91 79.37,19.91 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,16.54 85.92,13.23 92.66,13.23 92.66,19.84 85.92,19.84 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,13.23 96.9,13.23 97.78,13.4 98.53,13.91 99.04,14.66 99.21,15.54 99.21,19.91 92.53,19.91 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,22.16 66.32,21.27 66.82,20.52 67.57,20.02 68.46,19.84 72.82,19.84 72.82,26.46 68.46,26.46 67.57,26.28 66.82,25.78 66.32,25.03 66.14,24.14 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,23.15 72.69,19.84 79.44,19.84 79.44,26.46 72.69,26.46 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon points=\"79.3,23.15 79.3,19.78 85.98,19.78 85.98,26.52 79.3,26.52 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon points=\"92.6,23.15 92.6,19.78 99.21,19.78 99.21,26.52 92.6,26.52 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon\r\n            points=\"79.37,26.39 86.05,26.39 86.05,33.07 81.69,33.07 80.8,32.89 80.05,32.39 79.55,31.64 79.37,30.76 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,29.76 85.92,26.46 92.66,26.46 92.66,33.07 85.92,33.07 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,29.76 92.53,26.39 99.21,26.39 99.21,33.14 92.53,33.14 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,35.39 66.32,34.5 66.82,33.75 67.57,33.25 68.46,33.07 72.82,33.07 72.82,39.69 68.46,39.69 67.57,39.51 66.82,39.01 66.32,38.26 66.14,37.37 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,33.07 77.06,33.07 77.94,33.25 78.69,33.75 79.19,34.5 79.37,35.39 79.37,39.75 72.69,39.75 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon points=\"92.6,36.38 92.6,33 99.21,33 99.21,39.75 92.6,39.75 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon\r\n            points=\"72.76,39.62 79.37,39.62 79.37,43.98 79.19,44.87 78.69,45.62 77.94,46.12 77.06,46.3 75.07,46.3 74.18,46.12 73.43,45.62 72.93,44.87 72.76,43.98 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,39.62 99.21,39.62 99.21,43.98 99.04,44.87 98.53,45.62 97.78,46.12 96.9,46.3 94.91,46.3 94.03,46.12 93.28,45.62 92.77,44.87 92.6,43.98 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,48.61 66.32,47.73 66.82,46.98 67.57,46.48 68.46,46.3 70.44,46.3 71.33,46.48 72.08,46.98 72.58,47.73 72.76,48.61 72.76,52.98 66.14,52.98 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,48.61 86.16,47.73 86.66,46.98 87.41,46.48 88.3,46.3 90.28,46.3 91.17,46.48 91.92,46.98 92.42,47.73 92.6,48.61 92.6,50.6 92.42,51.48 91.92,52.24 91.17,52.74 90.28,52.91 88.3,52.91 87.41,52.74 86.66,52.24 86.16,51.48 85.98,50.6 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,52.85 72.76,52.85 72.76,57.21 72.58,58.1 72.08,58.85 71.33,59.35 70.44,59.53 68.46,59.53 67.57,59.35 66.82,58.85 66.32,58.1 66.14,57.21 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,55.23 79.55,54.34 80.05,53.59 80.8,53.09 81.69,52.91 83.67,52.91 84.56,53.09 85.31,53.59 85.81,54.34 85.98,55.23 85.98,57.21 85.81,58.1 85.31,58.85 84.56,59.35 83.67,59.53 81.69,59.53 80.8,59.35 80.05,58.85 79.55,58.1 79.37,57.21 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,55.23 92.77,54.34 93.28,53.59 94.03,53.09 94.91,52.91 96.9,52.91 97.78,53.09 98.53,53.59 99.04,54.34 99.21,55.23 99.21,57.21 99.04,58.1 98.53,58.85 97.78,59.35 96.9,59.53 94.91,59.53 94.03,59.35 93.28,58.85 92.77,58.1 92.6,57.21 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,61.84 72.93,60.96 73.43,60.21 74.18,59.7 75.07,59.53 77.06,59.53 77.94,59.7 78.69,60.21 79.19,60.96 79.37,61.84 79.37,63.83 79.19,64.71 78.69,65.46 77.94,65.97 77.06,66.14 75.07,66.14 74.18,65.97 73.43,65.46 72.93,64.71 72.76,63.83 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,68.46 13.4,67.57 13.91,66.82 14.66,66.32 15.54,66.14 19.91,66.14 19.91,72.82 13.23,72.82 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,69.45 19.78,66.14 26.52,66.14 26.52,72.82 19.78,72.82 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,69.45 26.39,66.14 33.14,66.14 33.14,72.82 26.39,72.82 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon points=\"33,69.45 33,66.14 39.75,66.14 39.75,72.76 33,72.76 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon\r\n            points=\"39.62,66.14 43.98,66.14 44.87,66.32 45.62,66.82 46.12,67.57 46.3,68.46 46.3,70.44 46.12,71.33 45.62,72.08 44.87,72.58 43.98,72.76 39.62,72.76 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,68.46 53.09,67.57 53.59,66.82 54.34,66.32 55.23,66.14 59.59,66.14 59.59,72.76 55.23,72.76 54.34,72.58 53.59,72.08 53.09,71.33 52.91,70.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"59.46,69.45 59.46,66.14 66.21,66.14 66.21,72.82 59.46,72.82 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.08,66.14 70.44,66.14 71.33,66.32 72.08,66.82 72.58,67.57 72.76,68.46 72.76,70.44 72.58,71.33 72.08,72.08 71.33,72.58 70.44,72.76 66.08,72.76 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,68.46 86.16,67.57 86.66,66.82 87.41,66.32 88.3,66.14 90.28,66.14 91.17,66.32 91.92,66.82 92.42,67.57 92.6,68.46 92.6,72.82 85.98,72.82 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,68.46 99.39,67.57 99.89,66.82 100.64,66.32 101.53,66.14 103.51,66.14 104.4,66.32 105.15,66.82 105.65,67.57 105.83,68.46 105.83,72.82 99.21,72.82 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,68.46 112.62,67.57 113.12,66.82 113.87,66.32 114.76,66.14 116.74,66.14 117.63,66.32 118.38,66.82 118.88,67.57 119.06,68.46 119.06,70.44 118.88,71.33 118.38,72.08 117.63,72.58 116.74,72.76 114.76,72.76 113.87,72.58 113.12,72.08 112.62,71.33 112.44,70.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,68.46 125.85,67.57 126.35,66.82 127.1,66.32 127.98,66.14 129.97,66.14 130.85,66.32 131.61,66.82 132.11,67.57 132.28,68.46 132.28,72.82 125.67,72.82 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,68.46 139.07,67.57 139.58,66.82 140.33,66.32 141.21,66.14 143.2,66.14 144.08,66.32 144.83,66.82 145.34,67.57 145.51,68.46 145.51,72.82 138.9,72.82 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,72.69 19.91,72.69 19.91,79.37 15.54,79.37 14.66,79.19 13.91,78.69 13.4,77.94 13.23,77.06 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,76.06 19.78,72.69 26.52,72.69 26.52,79.37 19.78,79.37 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,76.06 26.39,72.69 33.07,72.69 33.07,79.44 26.39,79.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,75.07 46.48,74.18 46.98,73.43 47.73,72.93 48.61,72.76 50.6,72.76 51.48,72.93 52.24,73.43 52.74,74.18 52.91,75.07 52.91,79.44 46.3,79.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,72.69 66.14,72.69 66.14,77.06 65.97,77.94 65.46,78.69 64.71,79.19 63.83,79.37 61.84,79.37 60.96,79.19 60.21,78.69 59.7,77.94 59.53,77.06 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,75.07 72.93,74.18 73.43,73.43 74.18,72.93 75.07,72.76 77.06,72.76 77.94,72.93 78.69,73.43 79.19,74.18 79.37,75.07 79.37,79.44 72.76,79.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,72.69 92.66,72.69 92.66,79.37 88.3,79.37 87.41,79.19 86.66,78.69 86.16,77.94 85.98,77.06 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,76.06 92.53,72.76 99.28,72.76 99.28,79.44 92.53,79.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,76.06 99.15,72.69 105.89,72.69 105.89,79.37 99.15,79.37 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,72.76 110.13,72.76 111.01,72.93 111.76,73.43 112.26,74.18 112.44,75.07 112.44,79.44 105.76,79.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,76.06 125.67,72.69 132.35,72.69 132.35,79.44 125.67,79.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,76.06 132.22,72.76 138.96,72.76 138.96,79.37 132.22,79.37 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,76.06 138.83,72.69 145.58,72.69 145.58,79.37 138.83,79.37 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,72.76 149.81,72.76 150.7,72.93 151.45,73.43 151.95,74.18 152.13,75.07 152.13,79.44 145.45,79.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,79.3 33.07,79.3 33.07,83.67 32.89,84.56 32.39,85.31 31.64,85.81 30.76,85.98 28.77,85.98 27.89,85.81 27.13,85.31 26.63,84.56 26.46,83.67 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,81.69 39.86,80.8 40.36,80.05 41.11,79.55 42,79.37 46.37,79.37 46.37,85.98 42,85.98 41.11,85.81 40.36,85.31 39.86,84.56 39.69,83.67 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon points=\"46.23,82.68 46.23,79.3 52.98,79.3 52.98,85.98 46.23,85.98 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon\r\n            points=\"52.85,79.37 57.21,79.37 58.1,79.55 58.85,80.05 59.35,80.8 59.53,81.69 59.53,83.67 59.35,84.56 58.85,85.31 58.1,85.81 57.21,85.98 52.85,85.98 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,81.69 66.32,80.8 66.82,80.05 67.57,79.55 68.46,79.37 72.82,79.37 72.82,85.98 68.46,85.98 67.57,85.81 66.82,85.31 66.32,84.56 66.14,83.67 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,79.3 79.37,79.3 79.37,83.67 79.19,84.56 78.69,85.31 77.94,85.81 77.06,85.98 72.69,85.98 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon points=\"92.6,82.68 92.6,79.3 99.21,79.3 99.21,86.05 92.6,86.05 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon\r\n            points=\"105.83,82.68 105.83,79.3 112.51,79.3 112.51,86.05 105.83,86.05 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,79.37 116.74,79.37 117.63,79.55 118.38,80.05 118.88,80.8 119.06,81.69 119.06,83.67 118.88,84.56 118.38,85.31 117.63,85.81 116.74,85.98 112.37,85.98 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,79.3 132.28,79.3 132.28,83.67 132.11,84.56 131.61,85.31 130.85,85.81 129.97,85.98 127.98,85.98 127.1,85.81 126.35,85.31 125.85,84.56 125.67,83.67 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,82.68 145.51,79.3 152.13,79.3 152.13,86.05 145.51,86.05 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,88.3 13.4,87.41 13.91,86.66 14.66,86.16 15.54,85.98 17.53,85.98 18.41,86.16 19.16,86.66 19.67,87.41 19.84,88.3 19.84,90.28 19.67,91.17 19.16,91.92 18.41,92.42 17.53,92.6 15.54,92.6 14.66,92.42 13.91,91.92 13.4,91.17 13.23,90.28 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,88.3 33.25,87.41 33.75,86.66 34.5,86.16 35.39,85.98 37.37,85.98 38.26,86.16 39.01,86.66 39.51,87.41 39.69,88.3 39.69,92.66 33.07,92.66 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,88.3 86.16,87.41 86.66,86.66 87.41,86.16 88.3,85.98 92.66,85.98 92.66,92.6 88.3,92.6 87.41,92.42 86.66,91.92 86.16,91.17 85.98,90.28 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,89.29 92.53,85.92 99.28,85.92 99.28,92.66 92.53,92.66 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,89.29 99.15,85.98 105.89,85.98 105.89,92.6 99.15,92.6 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,85.92 112.44,85.92 112.44,90.28 112.26,91.17 111.76,91.92 111.01,92.42 110.13,92.6 105.76,92.6 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,88.3 132.46,87.41 132.96,86.66 133.71,86.16 134.6,85.98 138.96,85.98 138.96,92.6 134.6,92.6 133.71,92.42 132.96,91.92 132.46,91.17 132.28,90.28 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,89.29 138.83,85.98 145.58,85.98 145.58,92.66 138.83,92.66 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,85.92 152.13,85.92 152.13,90.28 151.95,91.17 151.45,91.92 150.7,92.42 149.81,92.6 145.45,92.6 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,94.91 20.02,94.03 20.52,93.28 21.27,92.77 22.16,92.6 24.14,92.6 25.03,92.77 25.78,93.28 26.28,94.03 26.46,94.91 26.46,96.9 26.28,97.78 25.78,98.53 25.03,99.04 24.14,99.21 22.16,99.21 21.27,99.04 20.52,98.53 20.02,97.78 19.84,96.9 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,92.53 39.75,92.53 39.75,99.21 35.39,99.21 34.5,99.04 33.75,98.53 33.25,97.78 33.07,96.9 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,92.6 43.98,92.6 44.87,92.77 45.62,93.28 46.12,94.03 46.3,94.91 46.3,96.9 46.12,97.78 45.62,98.53 44.87,99.04 43.98,99.21 39.62,99.21 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,94.91 53.09,94.03 53.59,93.28 54.34,92.77 55.23,92.6 57.21,92.6 58.1,92.77 58.85,93.28 59.35,94.03 59.53,94.91 59.53,96.9 59.35,97.78 58.85,98.53 58.1,99.04 57.21,99.21 55.23,99.21 54.34,99.04 53.59,98.53 53.09,97.78 52.91,96.9 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,94.91 66.32,94.03 66.82,93.28 67.57,92.77 68.46,92.6 72.82,92.6 72.82,99.28 66.14,99.28 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,92.6 77.06,92.6 77.94,92.77 78.69,93.28 79.19,94.03 79.37,94.91 79.37,96.9 79.19,97.78 78.69,98.53 77.94,99.04 77.06,99.21 72.69,99.21 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon points=\"92.6,95.91 92.6,92.53 99.21,92.53 99.21,99.28 92.6,99.28 \" style=\"fill:rgba(34,82,94,1);\" />\r\n          <polygon\r\n            points=\"112.44,94.91 112.62,94.03 113.12,93.28 113.87,92.77 114.76,92.6 116.74,92.6 117.63,92.77 118.38,93.28 118.88,94.03 119.06,94.91 119.06,99.28 112.44,99.28 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,92.53 145.51,92.53 145.51,96.9 145.34,97.78 144.83,98.53 144.08,99.04 143.2,99.21 141.21,99.21 140.33,99.04 139.58,98.53 139.07,97.78 138.9,96.9 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,102.52 66.14,99.15 72.76,99.15 72.76,105.89 66.14,105.89 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,101.53 79.55,100.64 80.05,99.89 80.8,99.39 81.69,99.21 83.67,99.21 84.56,99.39 85.31,99.89 85.81,100.64 85.98,101.53 85.98,103.51 85.81,104.4 85.31,105.15 84.56,105.65 83.67,105.83 81.69,105.83 80.8,105.65 80.05,105.15 79.55,104.4 79.37,103.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,99.15 99.21,99.15 99.21,103.51 99.04,104.4 98.53,105.15 97.78,105.65 96.9,105.83 94.91,105.83 94.03,105.65 93.28,105.15 92.77,104.4 92.6,103.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,99.15 119.06,99.15 119.06,103.51 118.88,104.4 118.38,105.15 117.63,105.65 116.74,105.83 114.76,105.83 113.87,105.65 113.12,105.15 112.62,104.4 112.44,103.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,101.53 132.46,100.64 132.96,99.89 133.71,99.39 134.6,99.21 136.58,99.21 137.47,99.39 138.22,99.89 138.72,100.64 138.9,101.53 138.9,103.51 138.72,104.4 138.22,105.15 137.47,105.65 136.58,105.83 134.6,105.83 133.71,105.65 132.96,105.15 132.46,104.4 132.28,103.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,105.76 72.76,105.76 72.76,110.13 72.58,111.01 72.08,111.76 71.33,112.26 70.44,112.44 68.46,112.44 67.57,112.26 66.82,111.76 66.32,111.01 66.14,110.13 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,108.14 86.16,107.26 86.66,106.5 87.41,106 88.3,105.83 90.28,105.83 91.17,106 91.92,106.5 92.42,107.26 92.6,108.14 92.6,110.13 92.42,111.01 91.92,111.76 91.17,112.26 90.28,112.44 88.3,112.44 87.41,112.26 86.66,111.76 86.16,111.01 85.98,110.13 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,108.14 99.39,107.26 99.89,106.5 100.64,106 101.53,105.83 103.51,105.83 104.4,106 105.15,106.5 105.65,107.26 105.83,108.14 105.83,110.13 105.65,111.01 105.15,111.76 104.4,112.26 103.51,112.44 101.53,112.44 100.64,112.26 99.89,111.76 99.39,111.01 99.21,110.13 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,108.14 119.23,107.26 119.73,106.5 120.48,106 121.37,105.83 125.74,105.83 125.74,112.51 119.06,112.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,105.83 129.97,105.83 130.85,106 131.61,106.5 132.11,107.26 132.28,108.14 132.28,110.13 132.11,111.01 131.61,111.76 130.85,112.26 129.97,112.44 125.6,112.44 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,108.14 139.07,107.26 139.58,106.5 140.33,106 141.21,105.83 145.58,105.83 145.58,112.44 141.21,112.44 140.33,112.26 139.58,111.76 139.07,111.01 138.9,110.13 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,105.83 149.81,105.83 150.7,106 151.45,106.5 151.95,107.26 152.13,108.14 152.13,112.51 145.45,112.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,114.76 72.93,113.87 73.43,113.12 74.18,112.62 75.07,112.44 79.44,112.44 79.44,119.12 72.76,119.12 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,112.44 83.67,112.44 84.56,112.62 85.31,113.12 85.81,113.87 85.98,114.76 85.98,119.12 79.3,119.12 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,114.76 112.62,113.87 113.12,113.12 113.87,112.62 114.76,112.44 119.12,112.44 119.12,119.06 114.76,119.06 113.87,118.88 113.12,118.38 112.62,117.63 112.44,116.74 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,115.75 118.99,112.37 125.67,112.37 125.67,119.12 118.99,119.12 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,114.76 132.46,113.87 132.96,113.12 133.71,112.62 134.6,112.44 136.58,112.44 137.47,112.62 138.22,113.12 138.72,113.87 138.9,114.76 138.9,119.12 132.28,119.12 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,112.37 152.13,112.37 152.13,116.74 151.95,117.63 151.45,118.38 150.7,118.88 149.81,119.06 147.83,119.06 146.94,118.88 146.19,118.38 145.69,117.63 145.51,116.74 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,121.37 66.32,120.48 66.82,119.73 67.57,119.23 68.46,119.06 72.82,119.06 72.82,125.74 66.14,125.74 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,122.36 72.69,118.99 79.44,118.99 79.44,125.74 72.69,125.74 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,122.36 79.3,118.99 86.05,118.99 86.05,125.67 79.3,125.67 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,119.06 90.28,119.06 91.17,119.23 91.92,119.73 92.42,120.48 92.6,121.37 92.6,125.74 85.92,125.74 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,121.37 99.39,120.48 99.89,119.73 100.64,119.23 101.53,119.06 103.51,119.06 104.4,119.23 105.15,119.73 105.65,120.48 105.83,121.37 105.83,125.74 99.21,125.74 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,118.99 125.74,118.99 125.74,125.67 121.37,125.67 120.48,125.49 119.73,124.99 119.23,124.24 119.06,123.35 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,122.36 125.6,119.06 132.35,119.06 132.35,125.74 125.6,125.74 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,122.36 132.22,118.99 138.9,118.99 138.9,125.74 132.22,125.74 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,128.98 66.14,125.6 72.82,125.6 72.82,132.35 66.14,132.35 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,128.98 72.69,125.6 79.37,125.6 79.37,132.35 72.69,132.35 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,125.6 92.66,125.6 92.66,132.28 88.3,132.28 87.41,132.11 86.66,131.61 86.16,130.85 85.98,129.97 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,128.98 92.53,125.67 99.28,125.67 99.28,132.35 92.53,132.35 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,128.98 99.15,125.6 105.89,125.6 105.89,132.28 99.15,132.28 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,128.98 105.76,125.67 112.51,125.67 112.51,132.35 105.76,132.35 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,125.67 116.74,125.67 117.63,125.85 118.38,126.35 118.88,127.1 119.06,127.98 119.06,132.35 112.37,132.35 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,128.98 125.67,125.6 132.35,125.6 132.35,132.35 125.67,132.35 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,128.98 132.22,125.6 138.9,125.6 138.9,132.35 132.22,132.35 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,135.59 66.14,132.22 72.82,132.22 72.82,138.96 66.14,138.96 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,132.22 79.37,132.22 79.37,136.58 79.19,137.47 78.69,138.22 77.94,138.72 77.06,138.9 72.69,138.9 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,135.59 92.6,132.22 99.21,132.22 99.21,138.96 92.6,138.96 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,135.59 105.83,132.22 112.51,132.22 112.51,138.96 105.83,138.96 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,135.59 112.37,132.22 119.06,132.22 119.06,138.96 112.37,138.96 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,132.22 132.35,132.22 132.35,138.9 127.98,138.9 127.1,138.72 126.35,138.22 125.85,137.47 125.67,136.58 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,135.59 132.22,132.22 138.9,132.22 138.9,138.96 132.22,138.96 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,142.2 66.14,138.83 72.76,138.83 72.76,145.58 66.14,145.58 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,141.21 79.55,140.33 80.05,139.58 80.8,139.07 81.69,138.9 86.05,138.9 86.05,145.58 79.37,145.58 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,142.2 85.92,138.9 92.66,138.9 92.66,145.51 85.92,145.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,142.2 92.53,138.83 99.28,138.83 99.28,145.58 92.53,145.58 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,142.2 99.15,138.9 105.89,138.9 105.89,145.51 99.15,145.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,142.2 105.76,138.83 112.51,138.83 112.51,145.51 105.76,145.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,142.2 112.37,138.83 119.12,138.83 119.12,145.58 112.37,145.58 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,138.9 123.35,138.9 124.24,139.07 124.99,139.58 125.49,140.33 125.67,141.21 125.67,143.2 125.49,144.08 124.99,144.83 124.24,145.34 123.35,145.51 118.99,145.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,142.2 132.28,138.83 138.96,138.83 138.96,145.58 132.28,145.58 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,138.9 143.2,138.9 144.08,139.07 144.83,139.58 145.34,140.33 145.51,141.21 145.51,143.2 145.34,144.08 144.83,144.83 144.08,145.34 143.2,145.51 138.83,145.51 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,145.45 72.82,145.45 72.82,152.13 68.46,152.13 67.57,151.95 66.82,151.45 66.32,150.7 66.14,149.81 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,148.82 72.69,145.51 79.44,145.51 79.44,152.13 72.69,152.13 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,145.45 85.98,145.45 85.98,149.81 85.81,150.7 85.31,151.45 84.56,151.95 83.67,152.13 79.3,152.13 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,145.45 99.21,145.45 99.21,149.81 99.04,150.7 98.53,151.45 97.78,151.95 96.9,152.13 94.91,152.13 94.03,151.95 93.28,151.45 92.77,150.7 92.6,149.81 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,145.45 119.06,145.45 119.06,149.81 118.88,150.7 118.38,151.45 117.63,151.95 116.74,152.13 114.76,152.13 113.87,151.95 113.12,151.45 112.62,150.7 112.44,149.81 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,145.45 138.9,145.45 138.9,149.81 138.72,150.7 138.22,151.45 137.47,151.95 136.58,152.13 134.6,152.13 133.71,151.95 132.96,151.45 132.46,150.7 132.28,149.81 \"\r\n            style=\"fill:rgba(34,82,94,1);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 15,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(255,255,255,0);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient8cf8a5340f764af99aaa126963e7fc60\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"13.2283458709717\"\r\n            y1=\"82.6771602630615\"\r\n            x2=\"152.125974655151\"\r\n            y2=\"82.6771602630615\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#664F80\" />\r\n            <stop offset=\"50%\" stop-color=\"#BD5F20\" />\r\n            <stop offset=\"100%\" stop-color=\"#664F80\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n            style=\"fill:url(#gradient8cf8a5340f764af99aaa126963e7fc60);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n            style=\"fill:url(#gradient8cf8a5340f764af99aaa126963e7fc60);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n            style=\"fill:url(#gradient8cf8a5340f764af99aaa126963e7fc60);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradienta6cf858c9d1545e2a4924e8cdc53b488\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"16.1676322453161\"\r\n            y1=\"44.2778655522009\"\r\n            x2=\"149.18668446611\"\r\n            y2=\"121.076451159225\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#BFB7B8\" />\r\n            <stop offset=\"50%\" stop-color=\"#C71D1C\" />\r\n            <stop offset=\"100%\" stop-color=\"#BFB7B8\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n            style=\"fill:url(#gradienta6cf858c9d1545e2a4924e8cdc53b488);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \"\r\n            style=\"fill:url(#gradienta6cf858c9d1545e2a4924e8cdc53b488);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#gradienta6cf858c9d1545e2a4924e8cdc53b488);\"\r\n          />\r\n          <pattern\r\n            id=\"hatchfbccd1d7ad5144ee8da67c1bcd81b9e1\"\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"8\"\r\n            height=\"8\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"8\" height=\"8\" fill=\"#5B8B96\" />\r\n            <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"1\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"2\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"3\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"4\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"5\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"6\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"7\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"0\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"1\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"2\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"3\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"4\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"5\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"6\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"7\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"0\" y=\"4\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"1\" y=\"4\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"2\" y=\"4\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"3\" y=\"4\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"4\" y=\"4\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"5\" y=\"4\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"6\" y=\"4\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"7\" y=\"4\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"0\" y=\"5\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"1\" y=\"5\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"2\" y=\"5\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"3\" y=\"5\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"4\" y=\"5\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"5\" y=\"5\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"6\" y=\"5\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n            <rect x=\"7\" y=\"5\" width=\"1\" height=\"1\" fill=\"#B04743\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"79.37,13.23 86.05,13.23 85.98,19.91 79.37,19.91 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,13.23 92.66,13.23 92.53,19.84 85.92,19.84 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,13.23 99.21,13.23 99.15,19.91 92.53,19.91 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,19.84 72.82,19.84 72.76,26.46 66.14,26.46 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,19.84 79.44,19.84 79.3,26.46 72.69,26.46 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,19.78 85.98,19.78 85.92,26.52 79.3,26.52 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,19.78 99.21,19.78 99.21,26.52 92.6,26.52 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,26.39 86.05,26.39 85.98,33.07 79.37,33.07 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,26.46 92.66,26.46 92.53,33.07 85.92,33.07 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,26.39 99.21,26.39 99.15,33.14 92.53,33.14 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,33.07 72.82,33.07 72.76,39.69 66.14,39.69 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,33.07 79.37,33.07 79.3,39.75 72.69,39.75 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,33 99.21,33 99.21,39.75 92.6,39.75 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,39.62 79.37,39.62 79.37,46.3 72.76,46.3 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,39.62 99.21,39.62 99.21,46.3 92.6,46.3 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,46.3 72.76,46.3 72.76,52.98 66.14,52.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,46.3 92.6,46.3 92.6,52.91 85.98,52.91 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,52.85 72.76,52.85 72.76,59.53 66.14,59.53 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,52.91 85.98,52.91 85.98,59.53 79.37,59.53 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,52.91 99.21,52.91 99.21,59.53 92.6,59.53 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,59.53 79.37,59.53 79.37,66.14 72.76,66.14 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,66.14 19.91,66.14 19.84,72.82 13.23,72.82 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,66.14 26.52,66.14 26.39,72.82 19.78,72.82 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,66.14 33.14,66.14 33,72.82 26.39,72.82 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"33,66.14 39.75,66.14 39.62,72.76 33,72.76 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,66.14 46.3,66.14 46.23,72.76 39.62,72.76 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,66.14 59.59,66.14 59.53,72.76 52.91,72.76 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"59.46,66.14 66.21,66.14 66.08,72.82 59.46,72.82 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.08,66.14 72.76,66.14 72.69,72.76 66.08,72.76 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,66.14 92.6,66.14 92.6,72.82 85.98,72.82 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,66.14 105.83,66.14 105.83,72.82 99.21,72.82 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,66.14 119.06,66.14 119.06,72.76 112.44,72.76 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,66.14 132.28,66.14 132.28,72.82 125.67,72.82 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,66.14 145.51,66.14 145.51,72.82 138.9,72.82 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,72.69 19.91,72.69 19.84,79.37 13.23,79.37 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,72.69 26.52,72.69 26.39,79.37 19.78,79.37 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,72.69 33.07,72.69 33,79.44 26.39,79.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,72.76 52.91,72.76 52.91,79.44 46.3,79.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,72.69 66.14,72.69 66.14,79.37 59.53,79.37 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,72.76 79.37,72.76 79.37,79.44 72.76,79.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,72.69 92.66,72.69 92.6,79.37 85.98,79.37 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,72.76 99.28,72.76 99.15,79.44 92.53,79.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,72.69 105.89,72.69 105.76,79.37 99.15,79.37 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,72.76 112.44,72.76 112.37,79.44 105.76,79.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,72.69 132.35,72.69 132.28,79.44 125.67,79.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,72.76 138.96,72.76 138.83,79.37 132.22,79.37 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,72.69 145.58,72.69 145.45,79.37 138.83,79.37 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,72.76 152.13,72.76 152.06,79.44 145.45,79.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,79.3 33.07,79.3 33.07,85.98 26.46,85.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,79.37 46.37,79.37 46.3,85.98 39.69,85.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"46.23,79.3 52.98,79.3 52.85,85.98 46.23,85.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"52.85,79.37 59.53,79.37 59.46,85.98 52.85,85.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,79.37 72.82,79.37 72.76,85.98 66.14,85.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,79.3 79.37,79.3 79.3,85.98 72.69,85.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,79.3 99.21,79.3 99.21,86.05 92.6,86.05 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,79.3 112.51,79.3 112.44,86.05 105.83,86.05 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,79.37 119.06,79.37 118.99,85.98 112.37,85.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,79.3 132.28,79.3 132.28,85.98 125.67,85.98 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,79.3 152.13,79.3 152.13,86.05 145.51,86.05 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,85.98 19.84,85.98 19.84,92.6 13.23,92.6 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,85.98 39.69,85.98 39.69,92.66 33.07,92.66 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,85.98 92.66,85.98 92.6,92.6 85.98,92.6 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,85.92 99.28,85.92 99.15,92.66 92.53,92.66 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,85.98 105.89,85.98 105.76,92.6 99.15,92.6 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,85.92 112.44,85.92 112.37,92.6 105.76,92.6 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,85.98 138.96,85.98 138.9,92.6 132.28,92.6 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,85.98 145.58,85.98 145.45,92.66 138.83,92.66 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,85.92 152.13,85.92 152.06,92.6 145.45,92.6 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,92.6 26.46,92.6 26.46,99.21 19.84,99.21 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,92.53 39.75,92.53 39.69,99.21 33.07,99.21 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,92.6 46.3,92.6 46.23,99.21 39.62,99.21 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,92.6 59.53,92.6 59.53,99.21 52.91,99.21 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,92.6 72.82,92.6 72.76,99.28 66.14,99.28 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,92.6 79.37,92.6 79.3,99.21 72.69,99.21 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,92.53 99.21,92.53 99.21,99.28 92.6,99.28 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,92.6 119.06,92.6 119.06,99.28 112.44,99.28 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,92.53 145.51,92.53 145.51,99.21 138.9,99.21 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,99.15 72.76,99.15 72.76,105.89 66.14,105.89 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,99.21 85.98,99.21 85.98,105.83 79.37,105.83 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,99.15 99.21,99.15 99.21,105.83 92.6,105.83 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,99.15 119.06,99.15 119.06,105.83 112.44,105.83 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,99.21 138.9,99.21 138.9,105.83 132.28,105.83 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,105.76 72.76,105.76 72.76,112.44 66.14,112.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,105.83 92.6,105.83 92.6,112.44 85.98,112.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,105.83 105.83,105.83 105.83,112.44 99.21,112.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,105.83 125.74,105.83 125.67,112.51 119.06,112.51 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,105.83 132.28,105.83 132.22,112.44 125.6,112.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,105.83 145.58,105.83 145.51,112.44 138.9,112.44 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,105.83 152.13,105.83 152.06,112.51 145.45,112.51 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,112.44 79.44,112.44 79.37,119.12 72.76,119.12 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,112.44 85.98,112.44 85.92,119.12 79.3,119.12 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,112.44 119.12,112.44 119.06,119.06 112.44,119.06 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,112.37 125.67,112.37 125.6,119.12 118.99,119.12 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,112.44 138.9,112.44 138.9,119.12 132.28,119.12 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,112.37 152.13,112.37 152.13,119.06 145.51,119.06 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,119.06 72.82,119.06 72.76,125.74 66.14,125.74 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,118.99 79.44,118.99 79.3,125.74 72.69,125.74 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,118.99 86.05,118.99 85.92,125.67 79.3,125.67 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,119.06 92.6,119.06 92.53,125.74 85.92,125.74 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,119.06 105.83,119.06 105.83,125.74 99.21,125.74 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,118.99 125.74,118.99 125.67,125.67 119.06,125.67 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,119.06 132.35,119.06 132.22,125.74 125.6,125.74 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,118.99 138.9,118.99 138.83,125.74 132.22,125.74 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,125.6 72.82,125.6 72.76,132.35 66.14,132.35 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,125.6 79.37,125.6 79.3,132.35 72.69,132.35 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,125.6 92.66,125.6 92.6,132.28 85.98,132.28 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,125.67 99.28,125.67 99.15,132.35 92.53,132.35 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,125.6 105.89,125.6 105.76,132.28 99.15,132.28 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,125.67 112.51,125.67 112.37,132.35 105.76,132.35 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,125.67 119.06,125.67 118.99,132.35 112.37,132.35 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,125.6 132.35,125.6 132.28,132.35 125.67,132.35 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,125.6 138.9,125.6 138.83,132.35 132.22,132.35 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,132.22 72.82,132.22 72.76,138.96 66.14,138.96 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,132.22 79.37,132.22 79.3,138.9 72.69,138.9 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,132.22 99.21,132.22 99.21,138.96 92.6,138.96 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,132.22 112.51,132.22 112.44,138.96 105.83,138.96 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,132.22 119.06,132.22 118.99,138.96 112.37,138.96 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,132.22 132.35,132.22 132.28,138.9 125.67,138.9 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,132.22 138.9,132.22 138.83,138.96 132.22,138.96 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,138.83 72.76,138.83 72.76,145.58 66.14,145.58 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,138.9 86.05,138.9 85.98,145.58 79.37,145.58 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,138.9 92.66,138.9 92.53,145.51 85.92,145.51 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,138.83 99.28,138.83 99.15,145.58 92.53,145.58 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,138.9 105.89,138.9 105.76,145.51 99.15,145.51 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,138.83 112.51,138.83 112.37,145.51 105.76,145.51 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,138.83 119.12,138.83 118.99,145.58 112.37,145.58 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,138.9 125.67,138.9 125.6,145.51 118.99,145.51 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,138.83 138.96,138.83 138.9,145.58 132.28,145.58 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,138.9 145.51,138.9 145.45,145.51 138.83,145.51 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,145.45 72.82,145.45 72.76,152.13 66.14,152.13 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,145.51 79.44,145.51 79.3,152.13 72.69,152.13 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,145.45 85.98,145.45 85.92,152.13 79.3,152.13 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,145.45 99.21,145.45 99.21,152.13 92.6,152.13 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,145.45 119.06,145.45 119.06,152.13 112.44,152.13 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,145.45 138.9,145.45 138.9,152.13 132.28,152.13 \"\r\n            style=\"fill:url(#hatchfbccd1d7ad5144ee8da67c1bcd81b9e1);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 16,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(255,255,255,0);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient0cf66245bbc14c159cbe9c68d2239764\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"9.78888088478347\"\r\n            y1=\"78.8572474050841\"\r\n            x2=\"155.56543964134\"\r\n            y2=\"86.497073121039\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#933C35\" />\r\n            <stop offset=\"100%\" stop-color=\"#7A6A42\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,19.18 81.66,18.98 80.81,18.41 80.23,17.55 80.03,16.54 80.23,15.52 80.81,14.66 81.66,14.09 82.68,13.89 95.91,13.89 96.92,14.09 97.78,14.66 98.35,15.52 98.55,16.54 98.35,17.55 97.78,18.41 96.92,18.98 95.91,19.18 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,25.8 68.44,25.59 67.58,25.02 67,24.16 66.8,23.15 67,22.14 67.58,21.28 68.44,20.71 69.45,20.5 82.68,20.5 83.69,20.71 84.55,21.28 85.12,22.14 85.32,23.15 85.12,24.16 84.55,25.02 83.69,25.59 82.68,25.8 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,25.8 94.89,25.59 94.03,25.02 93.46,24.16 93.26,23.15 93.46,22.14 94.03,21.28 94.89,20.71 95.91,20.5 95.91,20.5 96.92,20.71 97.78,21.28 98.35,22.14 98.55,23.15 98.35,24.16 97.78,25.02 96.92,25.59 95.91,25.8 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,32.41 81.66,32.21 80.81,31.63 80.23,30.78 80.03,29.76 80.23,28.75 80.81,27.89 81.66,27.32 82.68,27.12 95.91,27.12 96.92,27.32 97.78,27.89 98.35,28.75 98.55,29.76 98.35,30.78 97.78,31.63 96.92,32.21 95.91,32.41 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,39.02 68.44,38.82 67.58,38.25 67,37.39 66.8,36.38 67,35.37 67.58,34.51 68.44,33.93 69.45,33.73 76.06,33.73 77.08,33.93 77.93,34.51 78.51,35.37 78.71,36.38 78.51,37.39 77.93,38.25 77.08,38.82 76.06,39.02 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,39.02 94.89,38.82 94.03,38.25 93.46,37.39 93.26,36.38 93.46,35.37 94.03,34.51 94.89,33.93 95.91,33.73 95.91,33.73 96.92,33.93 97.78,34.51 98.35,35.37 98.55,36.38 98.35,37.39 97.78,38.25 96.92,38.82 95.91,39.02 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,45.64 75.05,45.44 74.19,44.86 73.62,44 73.42,42.99 73.62,41.98 74.19,41.12 75.05,40.55 76.06,40.35 76.06,40.35 77.08,40.55 77.93,41.12 78.51,41.98 78.71,42.99 78.51,44 77.93,44.86 77.08,45.44 76.06,45.64 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,45.64 94.89,45.44 94.03,44.86 93.46,44 93.26,42.99 93.46,41.98 94.03,41.12 94.89,40.55 95.91,40.35 95.91,40.35 96.92,40.55 97.78,41.12 98.35,41.98 98.55,42.99 98.35,44 97.78,44.86 96.92,45.44 95.91,45.64 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,52.25 68.44,52.05 67.58,51.48 67,50.62 66.8,49.61 67,48.59 67.58,47.74 68.44,47.16 69.45,46.96 69.45,46.96 70.46,47.16 71.32,47.74 71.89,48.59 72.09,49.61 71.89,50.62 71.32,51.48 70.46,52.05 69.45,52.25 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,52.25 88.28,52.05 87.42,51.48 86.85,50.62 86.65,49.61 86.85,48.59 87.42,47.74 88.28,47.16 89.29,46.96 89.29,46.96 90.3,47.16 91.16,47.74 91.74,48.59 91.94,49.61 91.74,50.62 91.16,51.48 90.3,52.05 89.29,52.25 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,58.87 68.44,58.66 67.58,58.09 67,57.23 66.8,56.22 67,55.21 67.58,54.35 68.44,53.78 69.45,53.57 69.45,53.57 70.46,53.78 71.32,54.35 71.89,55.21 72.09,56.22 71.89,57.23 71.32,58.09 70.46,58.66 69.45,58.87 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,58.87 81.66,58.66 80.81,58.09 80.23,57.23 80.03,56.22 80.23,55.21 80.81,54.35 81.66,53.78 82.68,53.57 82.68,53.57 83.69,53.78 84.55,54.35 85.12,55.21 85.32,56.22 85.12,57.23 84.55,58.09 83.69,58.66 82.68,58.87 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,58.87 94.89,58.66 94.03,58.09 93.46,57.23 93.26,56.22 93.46,55.21 94.03,54.35 94.89,53.78 95.91,53.57 95.91,53.57 96.92,53.78 97.78,54.35 98.35,55.21 98.55,56.22 98.35,57.23 97.78,58.09 96.92,58.66 95.91,58.87 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,65.48 75.05,65.28 74.19,64.71 73.62,63.85 73.42,62.83 73.62,61.82 74.19,60.96 75.05,60.39 76.06,60.19 76.06,60.19 77.08,60.39 77.93,60.96 78.51,61.82 78.71,62.83 78.51,63.85 77.93,64.71 77.08,65.28 76.06,65.48 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,72.09 68.44,71.89 67.58,71.32 67,70.46 66.8,69.45 67,68.44 67.58,67.58 68.44,67 69.45,66.8 69.45,66.8 70.46,67 71.32,67.58 71.89,68.44 72.09,69.45 71.89,70.46 71.32,71.32 70.46,71.89 69.45,72.09 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,72.09 88.28,71.89 87.42,71.32 86.85,70.46 86.65,69.45 86.85,68.44 87.42,67.58 88.28,67 89.29,66.8 89.29,66.8 90.3,67 91.16,67.58 91.74,68.44 91.94,69.45 91.74,70.46 91.16,71.32 90.3,71.89 89.29,72.09 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,78.71 75.05,78.51 74.19,77.93 73.62,77.08 73.42,76.06 73.62,75.05 74.19,74.19 75.05,73.62 76.06,73.42 76.06,73.42 77.08,73.62 77.93,74.19 78.51,75.05 78.71,76.06 78.51,77.08 77.93,77.93 77.08,78.51 76.06,78.71 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,78.71 88.28,78.51 87.42,77.93 86.85,77.08 86.65,76.06 86.85,75.05 87.42,74.19 88.28,73.62 89.29,73.42 89.29,73.42 90.3,73.62 91.16,74.19 91.74,75.05 91.94,76.06 91.74,77.08 91.16,77.93 90.3,78.51 89.29,78.71 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,91.94 88.28,91.74 87.42,91.16 86.85,90.3 86.65,89.29 86.85,88.28 87.42,87.42 88.28,86.85 89.29,86.65 89.29,86.65 90.3,86.85 91.16,87.42 91.74,88.28 91.94,89.29 91.74,90.3 91.16,91.16 90.3,91.74 89.29,91.94 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,98.55 68.44,98.35 67.58,97.78 67,96.92 66.8,95.91 67,94.89 67.58,94.03 68.44,93.46 69.45,93.26 76.06,93.26 77.08,93.46 77.93,94.03 78.51,94.89 78.71,95.91 78.51,96.92 77.93,97.78 77.08,98.35 76.06,98.55 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,98.55 94.89,98.35 94.03,97.78 93.46,96.92 93.26,95.91 93.46,94.89 94.03,94.03 94.89,93.46 95.91,93.26 95.91,93.26 96.92,93.46 97.78,94.03 98.35,94.89 98.55,95.91 98.35,96.92 97.78,97.78 96.92,98.35 95.91,98.55 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,105.17 68.44,104.96 67.58,104.39 67,103.53 66.8,102.52 67,101.51 67.58,100.65 68.44,100.08 69.45,99.87 69.45,99.87 70.46,100.08 71.32,100.65 71.89,101.51 72.09,102.52 71.89,103.53 71.32,104.39 70.46,104.96 69.45,105.17 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,105.17 81.66,104.96 80.81,104.39 80.23,103.53 80.03,102.52 80.23,101.51 80.81,100.65 81.66,100.08 82.68,99.87 82.68,99.87 83.69,100.08 84.55,100.65 85.12,101.51 85.32,102.52 85.12,103.53 84.55,104.39 83.69,104.96 82.68,105.17 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,105.17 94.89,104.96 94.03,104.39 93.46,103.53 93.26,102.52 93.46,101.51 94.03,100.65 94.89,100.08 95.91,99.87 95.91,99.87 96.92,100.08 97.78,100.65 98.35,101.51 98.55,102.52 98.35,103.53 97.78,104.39 96.92,104.96 95.91,105.17 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,111.78 68.44,111.58 67.58,111 67,110.15 66.8,109.13 67,108.12 67.58,107.26 68.44,106.69 69.45,106.49 69.45,106.49 70.46,106.69 71.32,107.26 71.89,108.12 72.09,109.13 71.89,110.15 71.32,111 70.46,111.58 69.45,111.78 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,111.78 88.28,111.58 87.42,111 86.85,110.15 86.65,109.13 86.85,108.12 87.42,107.26 88.28,106.69 89.29,106.49 89.29,106.49 90.3,106.69 91.16,107.26 91.74,108.12 91.94,109.13 91.74,110.15 91.16,111 90.3,111.58 89.29,111.78 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"102.52,111.78 101.51,111.58 100.65,111 100.08,110.15 99.87,109.13 100.08,108.12 100.65,107.26 101.51,106.69 102.52,106.49 102.52,106.49 103.53,106.69 104.39,107.26 104.96,108.12 105.17,109.13 104.96,110.15 104.39,111 103.53,111.58 102.52,111.78 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,118.39 75.05,118.19 74.19,117.62 73.62,116.76 73.42,115.75 73.62,114.74 74.19,113.88 75.05,113.3 76.06,113.1 82.68,113.1 83.69,113.3 84.55,113.88 85.12,114.74 85.32,115.75 85.12,116.76 84.55,117.62 83.69,118.19 82.68,118.39 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,118.39 114.74,118.19 113.88,117.62 113.3,116.76 113.1,115.75 113.3,114.74 113.88,113.88 114.74,113.3 115.75,113.1 115.75,113.1 116.76,113.3 117.62,113.88 118.19,114.74 118.39,115.75 118.19,116.76 117.62,117.62 116.76,118.19 115.75,118.39 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,125.01 68.44,124.81 67.58,124.23 67,123.37 66.8,122.36 67,121.35 67.58,120.49 68.44,119.92 69.45,119.72 89.29,119.72 90.3,119.92 91.16,120.49 91.74,121.35 91.94,122.36 91.74,123.37 91.16,124.23 90.3,124.81 89.29,125.01 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"102.52,125.01 101.51,124.81 100.65,124.23 100.08,123.37 99.87,122.36 100.08,121.35 100.65,120.49 101.51,119.92 102.52,119.72 102.52,119.72 103.53,119.92 104.39,120.49 104.96,121.35 105.17,122.36 104.96,123.37 104.39,124.23 103.53,124.81 102.52,125.01 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"122.36,125.01 121.35,124.81 120.49,124.23 119.92,123.37 119.72,122.36 119.92,121.35 120.49,120.49 121.35,119.92 122.36,119.72 122.36,119.72 123.37,119.92 124.23,120.49 124.81,121.35 125.01,122.36 124.81,123.37 124.23,124.23 123.37,124.81 122.36,125.01 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,131.62 68.44,131.42 67.58,130.85 67,129.99 66.8,128.98 67,127.96 67.58,127.11 68.44,126.53 69.45,126.33 76.06,126.33 77.08,126.53 77.93,127.11 78.51,127.96 78.71,128.98 78.51,129.99 77.93,130.85 77.08,131.42 76.06,131.62 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,131.62 88.28,131.42 87.42,130.85 86.85,129.99 86.65,128.98 86.85,127.96 87.42,127.11 88.28,126.53 89.29,126.33 115.75,126.33 116.76,126.53 117.62,127.11 118.19,127.96 118.39,128.98 118.19,129.99 117.62,130.85 116.76,131.42 115.75,131.62 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,131.62 127.96,131.42 127.11,130.85 126.53,129.99 126.33,128.98 126.53,127.96 127.11,127.11 127.96,126.53 128.98,126.33 128.98,126.33 129.99,126.53 130.85,127.11 131.42,127.96 131.62,128.98 131.42,129.99 130.85,130.85 129.99,131.42 128.98,131.62 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,138.24 68.44,138.03 67.58,137.46 67,136.6 66.8,135.59 67,134.58 67.58,133.72 68.44,133.15 69.45,132.94 76.06,132.94 77.08,133.15 77.93,133.72 78.51,134.58 78.71,135.59 78.51,136.6 77.93,137.46 77.08,138.03 76.06,138.24 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,138.24 94.89,138.03 94.03,137.46 93.46,136.6 93.26,135.59 93.46,134.58 94.03,133.72 94.89,133.15 95.91,132.94 95.91,132.94 96.92,133.15 97.78,133.72 98.35,134.58 98.55,135.59 98.35,136.6 97.78,137.46 96.92,138.03 95.91,138.24 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"109.13,138.24 108.12,138.03 107.26,137.46 106.69,136.6 106.49,135.59 106.69,134.58 107.26,133.72 108.12,133.15 109.13,132.94 115.75,132.94 116.76,133.15 117.62,133.72 118.19,134.58 118.39,135.59 118.19,136.6 117.62,137.46 116.76,138.03 115.75,138.24 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,138.24 127.96,138.03 127.11,137.46 126.53,136.6 126.33,135.59 126.53,134.58 127.11,133.72 127.96,133.15 128.98,132.94 135.59,132.94 136.6,133.15 137.46,133.72 138.03,134.58 138.24,135.59 138.03,136.6 137.46,137.46 136.6,138.03 135.59,138.24 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,144.85 68.44,144.65 67.58,144.08 67,143.22 66.8,142.2 67,141.19 67.58,140.33 68.44,139.76 69.45,139.56 69.45,139.56 70.46,139.76 71.32,140.33 71.89,141.19 72.09,142.2 71.89,143.22 71.32,144.08 70.46,144.65 69.45,144.85 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,144.85 81.66,144.65 80.81,144.08 80.23,143.22 80.03,142.2 80.23,141.19 80.81,140.33 81.66,139.76 82.68,139.56 122.36,139.56 123.37,139.76 124.23,140.33 124.81,141.19 125.01,142.2 124.81,143.22 124.23,144.08 123.37,144.65 122.36,144.85 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,144.85 134.58,144.65 133.72,144.08 133.15,143.22 132.94,142.2 133.15,141.19 133.72,140.33 134.58,139.76 135.59,139.56 142.2,139.56 143.22,139.76 144.08,140.33 144.65,141.19 144.85,142.2 144.65,143.22 144.08,144.08 143.22,144.65 142.2,144.85 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,151.46 68.44,151.26 67.58,150.69 67,149.83 66.8,148.82 67,147.81 67.58,146.95 68.44,146.37 69.45,146.17 82.68,146.17 83.69,146.37 84.55,146.95 85.12,147.81 85.32,148.82 85.12,149.83 84.55,150.69 83.69,151.26 82.68,151.46 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,151.46 94.89,151.26 94.03,150.69 93.46,149.83 93.26,148.82 93.46,147.81 94.03,146.95 94.89,146.37 95.91,146.17 95.91,146.17 96.92,146.37 97.78,146.95 98.35,147.81 98.55,148.82 98.35,149.83 97.78,150.69 96.92,151.26 95.91,151.46 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,151.46 114.74,151.26 113.88,150.69 113.3,149.83 113.1,148.82 113.3,147.81 113.88,146.95 114.74,146.37 115.75,146.17 115.75,146.17 116.76,146.37 117.62,146.95 118.19,147.81 118.39,148.82 118.19,149.83 117.62,150.69 116.76,151.26 115.75,151.46 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,151.46 134.58,151.26 133.72,150.69 133.15,149.83 132.94,148.82 133.15,147.81 133.72,146.95 134.58,146.37 135.59,146.17 135.59,146.17 136.6,146.37 137.46,146.95 138.03,147.81 138.24,148.82 138.03,149.83 137.46,150.69 136.6,151.26 135.59,151.46 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"13.89,69.45 14.09,68.44 14.66,67.58 15.52,67 16.54,66.8 17.55,67 18.41,67.58 18.98,68.44 19.18,69.45 19.18,76.06 18.98,77.08 18.41,77.93 17.55,78.51 16.54,78.71 15.52,78.51 14.66,77.93 14.09,77.08 13.89,76.06 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"13.89,89.29 14.09,88.28 14.66,87.42 15.52,86.85 16.54,86.65 17.55,86.85 18.41,87.42 18.98,88.28 19.18,89.29 19.18,89.29 18.98,90.3 18.41,91.16 17.55,91.74 16.54,91.94 15.52,91.74 14.66,91.16 14.09,90.3 13.89,89.29 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"20.5,69.45 20.71,68.44 21.28,67.58 22.14,67 23.15,66.8 24.16,67 25.02,67.58 25.59,68.44 25.8,69.45 25.8,76.06 25.59,77.08 25.02,77.93 24.16,78.51 23.15,78.71 22.14,78.51 21.28,77.93 20.71,77.08 20.5,76.06 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"20.5,95.91 20.71,94.89 21.28,94.03 22.14,93.46 23.15,93.26 24.16,93.46 25.02,94.03 25.59,94.89 25.8,95.91 25.8,95.91 25.59,96.92 25.02,97.78 24.16,98.35 23.15,98.55 22.14,98.35 21.28,97.78 20.71,96.92 20.5,95.91 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"27.12,69.45 27.32,68.44 27.89,67.58 28.75,67 29.76,66.8 30.78,67 31.63,67.58 32.21,68.44 32.41,69.45 32.41,82.68 32.21,83.69 31.63,84.55 30.78,85.12 29.76,85.32 28.75,85.12 27.89,84.55 27.32,83.69 27.12,82.68 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"33.73,69.45 33.93,68.44 34.51,67.58 35.37,67 36.38,66.8 37.39,67 38.25,67.58 38.82,68.44 39.02,69.45 39.02,69.45 38.82,70.46 38.25,71.32 37.39,71.89 36.38,72.09 35.37,71.89 34.51,71.32 33.93,70.46 33.73,69.45 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"33.73,89.29 33.93,88.28 34.51,87.42 35.37,86.85 36.38,86.65 37.39,86.85 38.25,87.42 38.82,88.28 39.02,89.29 39.02,95.91 38.82,96.92 38.25,97.78 37.39,98.35 36.38,98.55 35.37,98.35 34.51,97.78 33.93,96.92 33.73,95.91 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,69.45 40.55,68.44 41.12,67.58 41.98,67 42.99,66.8 44,67 44.86,67.58 45.44,68.44 45.64,69.45 45.64,69.45 45.44,70.46 44.86,71.32 44,71.89 42.99,72.09 41.98,71.89 41.12,71.32 40.55,70.46 40.35,69.45 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,82.68 40.55,81.66 41.12,80.81 41.98,80.23 42.99,80.03 44,80.23 44.86,80.81 45.44,81.66 45.64,82.68 45.64,82.68 45.44,83.69 44.86,84.55 44,85.12 42.99,85.32 41.98,85.12 41.12,84.55 40.55,83.69 40.35,82.68 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,95.91 40.55,94.89 41.12,94.03 41.98,93.46 42.99,93.26 44,93.46 44.86,94.03 45.44,94.89 45.64,95.91 45.64,95.91 45.44,96.92 44.86,97.78 44,98.35 42.99,98.55 41.98,98.35 41.12,97.78 40.55,96.92 40.35,95.91 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"46.96,76.06 47.16,75.05 47.74,74.19 48.59,73.62 49.61,73.42 50.62,73.62 51.48,74.19 52.05,75.05 52.25,76.06 52.25,82.68 52.05,83.69 51.48,84.55 50.62,85.12 49.61,85.32 48.59,85.12 47.74,84.55 47.16,83.69 46.96,82.68 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,69.45 53.78,68.44 54.35,67.58 55.21,67 56.22,66.8 57.23,67 58.09,67.58 58.66,68.44 58.87,69.45 58.87,69.45 58.66,70.46 58.09,71.32 57.23,71.89 56.22,72.09 55.21,71.89 54.35,71.32 53.78,70.46 53.57,69.45 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,82.68 53.78,81.66 54.35,80.81 55.21,80.23 56.22,80.03 57.23,80.23 58.09,80.81 58.66,81.66 58.87,82.68 58.87,82.68 58.66,83.69 58.09,84.55 57.23,85.12 56.22,85.32 55.21,85.12 54.35,84.55 53.78,83.69 53.57,82.68 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,95.91 53.78,94.89 54.35,94.03 55.21,93.46 56.22,93.26 57.23,93.46 58.09,94.03 58.66,94.89 58.87,95.91 58.87,95.91 58.66,96.92 58.09,97.78 57.23,98.35 56.22,98.55 55.21,98.35 54.35,97.78 53.78,96.92 53.57,95.91 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"60.19,69.45 60.39,68.44 60.96,67.58 61.82,67 62.83,66.8 63.85,67 64.71,67.58 65.28,68.44 65.48,69.45 65.48,76.06 65.28,77.08 64.71,77.93 63.85,78.51 62.83,78.71 61.82,78.51 60.96,77.93 60.39,77.08 60.19,76.06 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,69.45 67,68.44 67.58,67.58 68.44,67 69.45,66.8 70.46,67 71.32,67.58 71.89,68.44 72.09,69.45 72.09,69.45 71.89,70.46 71.32,71.32 70.46,71.89 69.45,72.09 68.44,71.89 67.58,71.32 67,70.46 66.8,69.45 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,82.68 67,81.66 67.58,80.81 68.44,80.23 69.45,80.03 70.46,80.23 71.32,80.81 71.89,81.66 72.09,82.68 72.09,82.68 71.89,83.69 71.32,84.55 70.46,85.12 69.45,85.32 68.44,85.12 67.58,84.55 67,83.69 66.8,82.68 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,76.06 73.62,75.05 74.19,74.19 75.05,73.62 76.06,73.42 77.08,73.62 77.93,74.19 78.51,75.05 78.71,76.06 78.71,82.68 78.51,83.69 77.93,84.55 77.08,85.12 76.06,85.32 75.05,85.12 74.19,84.55 73.62,83.69 73.42,82.68 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,76.06 86.85,75.05 87.42,74.19 88.28,73.62 89.29,73.42 90.3,73.62 91.16,74.19 91.74,75.05 91.94,76.06 91.94,76.06 91.74,77.08 91.16,77.93 90.3,78.51 89.29,78.71 88.28,78.51 87.42,77.93 86.85,77.08 86.65,76.06 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,76.06 93.46,75.05 94.03,74.19 94.89,73.62 95.91,73.42 96.92,73.62 97.78,74.19 98.35,75.05 98.55,76.06 98.55,89.29 98.35,90.3 97.78,91.16 96.92,91.74 95.91,91.94 94.89,91.74 94.03,91.16 93.46,90.3 93.26,89.29 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,69.45 100.08,68.44 100.65,67.58 101.51,67 102.52,66.8 103.53,67 104.39,67.58 104.96,68.44 105.17,69.45 105.17,76.06 104.96,77.08 104.39,77.93 103.53,78.51 102.52,78.71 101.51,78.51 100.65,77.93 100.08,77.08 99.87,76.06 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,89.29 100.08,88.28 100.65,87.42 101.51,86.85 102.52,86.65 103.53,86.85 104.39,87.42 104.96,88.28 105.17,89.29 105.17,89.29 104.96,90.3 104.39,91.16 103.53,91.74 102.52,91.94 101.51,91.74 100.65,91.16 100.08,90.3 99.87,89.29 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"106.49,76.06 106.69,75.05 107.26,74.19 108.12,73.62 109.13,73.42 110.15,73.62 111,74.19 111.58,75.05 111.78,76.06 111.78,89.29 111.58,90.3 111,91.16 110.15,91.74 109.13,91.94 108.12,91.74 107.26,91.16 106.69,90.3 106.49,89.29 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,69.45 113.3,68.44 113.88,67.58 114.74,67 115.75,66.8 116.76,67 117.62,67.58 118.19,68.44 118.39,69.45 118.39,69.45 118.19,70.46 117.62,71.32 116.76,71.89 115.75,72.09 114.74,71.89 113.88,71.32 113.3,70.46 113.1,69.45 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,82.68 113.3,81.66 113.88,80.81 114.74,80.23 115.75,80.03 116.76,80.23 117.62,80.81 118.19,81.66 118.39,82.68 118.39,82.68 118.19,83.69 117.62,84.55 116.76,85.12 115.75,85.32 114.74,85.12 113.88,84.55 113.3,83.69 113.1,82.68 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,95.91 113.3,94.89 113.88,94.03 114.74,93.46 115.75,93.26 116.76,93.46 117.62,94.03 118.19,94.89 118.39,95.91 118.39,102.52 118.19,103.53 117.62,104.39 116.76,104.96 115.75,105.17 114.74,104.96 113.88,104.39 113.3,103.53 113.1,102.52 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"119.72,109.13 119.92,108.12 120.49,107.26 121.35,106.69 122.36,106.49 123.37,106.69 124.23,107.26 124.81,108.12 125.01,109.13 125.01,115.75 124.81,116.76 124.23,117.62 123.37,118.19 122.36,118.39 121.35,118.19 120.49,117.62 119.92,116.76 119.72,115.75 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,69.45 126.53,68.44 127.11,67.58 127.96,67 128.98,66.8 129.99,67 130.85,67.58 131.42,68.44 131.62,69.45 131.62,82.68 131.42,83.69 130.85,84.55 129.99,85.12 128.98,85.32 127.96,85.12 127.11,84.55 126.53,83.69 126.33,82.68 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,109.13 126.53,108.12 127.11,107.26 127.96,106.69 128.98,106.49 129.99,106.69 130.85,107.26 131.42,108.12 131.62,109.13 131.62,109.13 131.42,110.15 130.85,111 129.99,111.58 128.98,111.78 127.96,111.58 127.11,111 126.53,110.15 126.33,109.13 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,122.36 126.53,121.35 127.11,120.49 127.96,119.92 128.98,119.72 129.99,119.92 130.85,120.49 131.42,121.35 131.62,122.36 131.62,122.36 131.42,123.37 130.85,124.23 129.99,124.81 128.98,125.01 127.96,124.81 127.11,124.23 126.53,123.37 126.33,122.36 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,76.06 133.15,75.05 133.72,74.19 134.58,73.62 135.59,73.42 136.6,73.62 137.46,74.19 138.03,75.05 138.24,76.06 138.24,76.06 138.03,77.08 137.46,77.93 136.6,78.51 135.59,78.71 134.58,78.51 133.72,77.93 133.15,77.08 132.94,76.06 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,89.29 133.15,88.28 133.72,87.42 134.58,86.85 135.59,86.65 136.6,86.85 137.46,87.42 138.03,88.28 138.24,89.29 138.24,89.29 138.03,90.3 137.46,91.16 136.6,91.74 135.59,91.94 134.58,91.74 133.72,91.16 133.15,90.3 132.94,89.29 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,102.52 133.15,101.51 133.72,100.65 134.58,100.08 135.59,99.87 136.6,100.08 137.46,100.65 138.03,101.51 138.24,102.52 138.24,102.52 138.03,103.53 137.46,104.39 136.6,104.96 135.59,105.17 134.58,104.96 133.72,104.39 133.15,103.53 132.94,102.52 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,115.75 133.15,114.74 133.72,113.88 134.58,113.3 135.59,113.1 136.6,113.3 137.46,113.88 138.03,114.74 138.24,115.75 138.24,128.98 138.03,129.99 137.46,130.85 136.6,131.42 135.59,131.62 134.58,131.42 133.72,130.85 133.15,129.99 132.94,128.98 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,69.45 139.76,68.44 140.33,67.58 141.19,67 142.2,66.8 143.22,67 144.08,67.58 144.65,68.44 144.85,69.45 144.85,76.06 144.65,77.08 144.08,77.93 143.22,78.51 142.2,78.71 141.19,78.51 140.33,77.93 139.76,77.08 139.56,76.06 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,89.29 139.76,88.28 140.33,87.42 141.19,86.85 142.2,86.65 143.22,86.85 144.08,87.42 144.65,88.28 144.85,89.29 144.85,95.91 144.65,96.92 144.08,97.78 143.22,98.35 142.2,98.55 141.19,98.35 140.33,97.78 139.76,96.92 139.56,95.91 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,109.13 139.76,108.12 140.33,107.26 141.19,106.69 142.2,106.49 143.22,106.69 144.08,107.26 144.65,108.12 144.85,109.13 144.85,109.13 144.65,110.15 144.08,111 143.22,111.58 142.2,111.78 141.19,111.58 140.33,111 139.76,110.15 139.56,109.13 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"146.17,76.06 146.37,75.05 146.95,74.19 147.81,73.62 148.82,73.42 149.83,73.62 150.69,74.19 151.26,75.05 151.46,76.06 151.46,89.29 151.26,90.3 150.69,91.16 149.83,91.74 148.82,91.94 147.81,91.74 146.95,91.16 146.37,90.3 146.17,89.29 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n          <polygon\r\n            points=\"146.17,109.13 146.37,108.12 146.95,107.26 147.81,106.69 148.82,106.49 149.83,106.69 150.69,107.26 151.26,108.12 151.46,109.13 151.46,115.75 151.26,116.76 150.69,117.62 149.83,118.19 148.82,118.39 147.81,118.19 146.95,117.62 146.37,116.76 146.17,115.75 \"\r\n            style=\"fill:url(#gradient0cf66245bbc14c159cbe9c68d2239764);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 17,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(255,255,255,0);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradiente980077bb02c4ed680664ae32429818f\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"7.7260570069796\"\r\n            y1=\"76.1197953713024\"\r\n            x2=\"157.628278777933\"\r\n            y2=\"89.2345404136097\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#CB07CB\" />\r\n            <stop offset=\"100%\" stop-color=\"#129EB1\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,19.78 19.84,19.78 19.84,52.91 52.91,52.91 52.91,19.84 13.23,19.84 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,105.83 59.53,105.83 59.53,152.13 13.23,152.13 13.23,112.37 19.84,112.37 19.84,145.51 52.91,145.51 52.91,112.44 13.23,112.44 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,13.23 152.13,13.23 152.13,59.53 105.83,59.53 105.83,19.78 112.44,19.78 112.44,52.91 145.51,52.91 145.51,19.84 105.83,19.84 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,119.06 46.3,119.06 46.3,138.9 26.46,138.9 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,26.46 138.9,26.46 138.9,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,19.91 79.37,19.84 79.5,18.55 79.87,17.31 80.48,16.17 81.31,15.17 82.31,14.34 83.45,13.73 84.69,13.36 85.98,13.23 86.05,13.23 86.05,19.91 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,16.54 85.92,13.23 92.66,13.23 92.66,19.84 85.92,19.84 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,13.23 92.6,13.23 93.89,13.36 95.13,13.73 96.27,14.34 97.28,15.17 98.1,16.17 98.71,17.31 99.09,18.55 99.21,19.84 99.21,19.91 92.53,19.91 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,19.84 72.76,26.46 69.45,26.46 68.18,26.2 67.11,25.49 66.39,24.42 66.14,23.15 66.39,21.88 67.11,20.81 68.18,20.09 69.45,19.84 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,23.15 72.69,19.84 79.44,19.84 79.44,26.46 72.69,26.46 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,23.15 79.3,19.78 85.98,19.78 85.98,26.52 79.3,26.52 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,23.15 92.6,19.78 99.21,19.78 99.21,26.52 92.6,26.52 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,26.39 86.05,26.39 86.05,33.07 85.98,33.07 84.69,32.94 83.45,32.57 82.31,31.96 81.31,31.13 80.48,30.13 79.87,28.99 79.5,27.75 79.37,26.46 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,29.76 85.92,26.46 92.66,26.46 92.66,33.07 85.92,33.07 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,29.76 92.53,26.39 99.21,26.39 99.21,33.14 92.53,33.14 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,33.07 72.76,39.69 69.45,39.69 68.18,39.43 67.11,38.72 66.39,37.64 66.14,36.38 66.39,35.11 67.11,34.04 68.18,33.32 69.45,33.07 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,33.07 72.76,33.07 74.05,33.2 75.29,33.57 76.43,34.19 77.43,35.01 78.26,36.01 78.87,37.15 79.24,38.39 79.37,39.69 79.37,39.75 72.69,39.75 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,36.38 92.6,33 99.21,33 99.21,39.75 92.6,39.75 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,39.62 79.37,39.62 79.37,42.99 79.12,44.26 78.4,45.33 77.33,46.05 76.06,46.3 74.8,46.05 73.72,45.33 73.01,44.26 72.76,42.99 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,39.62 99.21,39.62 99.21,42.99 98.96,44.26 98.24,45.33 97.17,46.05 95.91,46.3 94.64,46.05 93.57,45.33 92.85,44.26 92.6,42.99 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,52.98 66.14,52.98 66.14,49.61 66.39,48.34 67.11,47.27 68.18,46.55 69.45,46.3 70.71,46.55 71.79,47.27 72.5,48.34 72.76,49.61 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,49.61 92.35,50.87 91.63,51.94 90.56,52.66 89.29,52.91 88.03,52.66 86.95,51.94 86.24,50.87 85.98,49.61 86.24,48.34 86.95,47.27 88.03,46.55 89.29,46.3 90.56,46.55 91.63,47.27 92.35,48.34 92.6,49.61 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,52.85 72.76,52.85 72.76,56.22 72.5,57.49 71.79,58.56 70.71,59.28 69.45,59.53 68.18,59.28 67.11,58.56 66.39,57.49 66.14,56.22 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,56.22 85.73,57.49 85.02,58.56 83.94,59.28 82.68,59.53 81.41,59.28 80.34,58.56 79.62,57.49 79.37,56.22 79.62,54.95 80.34,53.88 81.41,53.17 82.68,52.91 83.94,53.17 85.02,53.88 85.73,54.95 85.98,56.22 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,56.22 98.96,57.49 98.24,58.56 97.17,59.28 95.91,59.53 94.64,59.28 93.57,58.56 92.85,57.49 92.6,56.22 92.85,54.95 93.57,53.88 94.64,53.17 95.91,52.91 97.17,53.17 98.24,53.88 98.96,54.95 99.21,56.22 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,62.83 79.12,64.1 78.4,65.17 77.33,65.89 76.06,66.14 74.8,65.89 73.72,65.17 73.01,64.1 72.76,62.83 73.01,61.57 73.72,60.5 74.8,59.78 76.06,59.53 77.33,59.78 78.4,60.5 79.12,61.57 79.37,62.83 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,72.82 13.23,72.76 13.36,71.47 13.73,70.22 14.34,69.08 15.17,68.08 16.17,67.26 17.31,66.65 18.55,66.27 19.84,66.14 19.91,66.14 19.91,72.82 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,69.45 19.78,66.14 26.52,66.14 26.52,72.82 19.78,72.82 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,69.45 26.39,66.14 33.14,66.14 33.14,72.82 26.39,72.82 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"33,69.45 33,66.14 39.75,66.14 39.75,72.76 33,72.76 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,72.76 39.62,66.14 42.99,66.14 44.26,66.39 45.33,67.11 46.05,68.18 46.3,69.45 46.05,70.71 45.33,71.79 44.26,72.5 42.99,72.76 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,66.14 59.53,72.76 56.22,72.76 54.95,72.5 53.88,71.79 53.17,70.71 52.91,69.45 53.17,68.18 53.88,67.11 54.95,66.39 56.22,66.14 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"59.46,69.45 59.46,66.14 66.21,66.14 66.21,72.82 59.46,72.82 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.08,72.76 66.08,66.14 69.45,66.14 70.71,66.39 71.79,67.11 72.5,68.18 72.76,69.45 72.5,70.71 71.79,71.79 70.71,72.5 69.45,72.76 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,72.82 85.98,72.82 85.98,69.45 86.24,68.18 86.95,67.11 88.03,66.39 89.29,66.14 90.56,66.39 91.63,67.11 92.35,68.18 92.6,69.45 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,72.82 99.21,72.82 99.21,69.45 99.46,68.18 100.18,67.11 101.25,66.39 102.52,66.14 103.79,66.39 104.86,67.11 105.58,68.18 105.83,69.45 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,69.45 118.8,70.71 118.09,71.79 117.01,72.5 115.75,72.76 114.48,72.5 113.41,71.79 112.69,70.71 112.44,69.45 112.69,68.18 113.41,67.11 114.48,66.39 115.75,66.14 117.01,66.39 118.09,67.11 118.8,68.18 119.06,69.45 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,72.82 125.67,72.82 125.67,69.45 125.92,68.18 126.64,67.11 127.71,66.39 128.98,66.14 130.24,66.39 131.31,67.11 132.03,68.18 132.28,69.45 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,72.82 138.9,72.82 138.9,69.45 139.15,68.18 139.87,67.11 140.94,66.39 142.2,66.14 143.47,66.39 144.54,67.11 145.26,68.18 145.51,69.45 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,72.69 19.91,72.69 19.91,79.37 19.84,79.37 18.55,79.24 17.31,78.87 16.17,78.26 15.17,77.43 14.34,76.43 13.73,75.29 13.36,74.05 13.23,72.76 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,76.06 19.78,72.69 26.52,72.69 26.52,79.37 19.78,79.37 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,76.06 26.39,72.69 33.07,72.69 33.07,79.44 26.39,79.44 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,79.44 46.3,79.44 46.3,76.06 46.55,74.8 47.27,73.72 48.34,73.01 49.61,72.76 50.87,73.01 51.94,73.72 52.66,74.8 52.91,76.06 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,72.69 66.14,72.69 66.14,76.06 65.89,77.33 65.17,78.4 64.1,79.12 62.83,79.37 61.57,79.12 60.5,78.4 59.78,77.33 59.53,76.06 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,79.44 72.76,79.44 72.76,76.06 73.01,74.8 73.72,73.72 74.8,73.01 76.06,72.76 77.33,73.01 78.4,73.72 79.12,74.8 79.37,76.06 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,72.69 92.66,72.69 92.66,79.37 92.6,79.37 91.31,79.24 90.07,78.87 88.92,78.26 87.92,77.43 87.1,76.43 86.49,75.29 86.11,74.05 85.98,72.76 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,76.06 92.53,72.76 99.28,72.76 99.28,79.44 92.53,79.44 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,76.06 99.15,72.69 105.89,72.69 105.89,79.37 99.15,79.37 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,72.76 105.83,72.76 107.12,72.88 108.36,73.26 109.5,73.87 110.5,74.69 111.33,75.7 111.94,76.84 112.31,78.08 112.44,79.37 112.44,79.44 105.76,79.44 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,76.06 125.67,72.69 132.35,72.69 132.35,79.44 125.67,79.44 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,76.06 132.22,72.76 138.96,72.76 138.96,79.37 132.22,79.37 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,76.06 138.83,72.69 145.58,72.69 145.58,79.37 138.83,79.37 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,72.76 145.51,72.76 146.8,72.88 148.04,73.26 149.19,73.87 150.19,74.69 151.01,75.7 151.62,76.84 152,78.08 152.13,79.37 152.13,79.44 145.45,79.44 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,79.3 33.07,79.3 33.07,82.68 32.82,83.94 32.1,85.02 31.03,85.73 29.76,85.98 28.5,85.73 27.43,85.02 26.71,83.94 26.46,82.68 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,79.37 46.3,85.98 42.99,85.98 41.73,85.73 40.65,85.02 39.94,83.94 39.69,82.68 39.94,81.41 40.65,80.34 41.73,79.62 42.99,79.37 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"46.23,82.68 46.23,79.3 52.98,79.3 52.98,85.98 46.23,85.98 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"52.85,85.98 52.85,79.37 56.22,79.37 57.49,79.62 58.56,80.34 59.28,81.41 59.53,82.68 59.28,83.94 58.56,85.02 57.49,85.73 56.22,85.98 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,79.37 72.76,85.98 69.45,85.98 68.18,85.73 67.11,85.02 66.39,83.94 66.14,82.68 66.39,81.41 67.11,80.34 68.18,79.62 69.45,79.37 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,79.3 79.37,79.3 79.37,79.37 79.24,80.66 78.87,81.9 78.26,83.04 77.43,84.05 76.43,84.87 75.29,85.48 74.05,85.86 72.76,85.98 72.69,85.98 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,82.68 92.6,79.3 99.21,79.3 99.21,86.05 92.6,86.05 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,82.68 105.83,79.3 112.51,79.3 112.51,86.05 105.83,86.05 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,85.98 112.37,79.37 115.75,79.37 117.01,79.62 118.09,80.34 118.8,81.41 119.06,82.68 118.8,83.94 118.09,85.02 117.01,85.73 115.75,85.98 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,79.3 132.28,79.3 132.28,82.68 132.03,83.94 131.31,85.02 130.24,85.73 128.98,85.98 127.71,85.73 126.64,85.02 125.92,83.94 125.67,82.68 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,82.68 145.51,79.3 152.13,79.3 152.13,86.05 145.51,86.05 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,89.29 19.59,90.56 18.87,91.63 17.8,92.35 16.54,92.6 15.27,92.35 14.2,91.63 13.48,90.56 13.23,89.29 13.48,88.03 14.2,86.95 15.27,86.24 16.54,85.98 17.8,86.24 18.87,86.95 19.59,88.03 19.84,89.29 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,92.66 33.07,92.66 33.07,89.29 33.32,88.03 34.04,86.95 35.11,86.24 36.38,85.98 37.64,86.24 38.72,86.95 39.43,88.03 39.69,89.29 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,85.98 92.6,92.6 89.29,92.6 88.03,92.35 86.95,91.63 86.24,90.56 85.98,89.29 86.24,88.03 86.95,86.95 88.03,86.24 89.29,85.98 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,89.29 92.53,85.92 99.28,85.92 99.28,92.66 92.53,92.66 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,89.29 99.15,85.98 105.89,85.98 105.89,92.6 99.15,92.6 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,85.92 112.44,85.92 112.44,85.98 112.31,87.27 111.94,88.52 111.33,89.66 110.5,90.66 109.5,91.48 108.36,92.09 107.12,92.47 105.83,92.6 105.76,92.6 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,85.98 138.9,92.6 135.59,92.6 134.32,92.35 133.25,91.63 132.54,90.56 132.28,89.29 132.54,88.03 133.25,86.95 134.32,86.24 135.59,85.98 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,89.29 138.83,85.98 145.58,85.98 145.58,92.66 138.83,92.66 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,85.92 152.13,85.92 152.13,85.98 152,87.27 151.62,88.52 151.01,89.66 150.19,90.66 149.19,91.48 148.04,92.09 146.8,92.47 145.51,92.6 145.45,92.6 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,95.91 26.2,97.17 25.49,98.24 24.42,98.96 23.15,99.21 21.88,98.96 20.81,98.24 20.09,97.17 19.84,95.91 20.09,94.64 20.81,93.57 21.88,92.85 23.15,92.6 24.42,92.85 25.49,93.57 26.2,94.64 26.46,95.91 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,92.53 39.75,92.53 39.75,99.21 39.69,99.21 38.39,99.09 37.15,98.71 36.01,98.1 35.01,97.28 34.19,96.27 33.57,95.13 33.2,93.89 33.07,92.6 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,99.21 39.62,92.6 42.99,92.6 44.26,92.85 45.33,93.57 46.05,94.64 46.3,95.91 46.05,97.17 45.33,98.24 44.26,98.96 42.99,99.21 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,95.91 59.28,97.17 58.56,98.24 57.49,98.96 56.22,99.21 54.95,98.96 53.88,98.24 53.17,97.17 52.91,95.91 53.17,94.64 53.88,93.57 54.95,92.85 56.22,92.6 57.49,92.85 58.56,93.57 59.28,94.64 59.53,95.91 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,99.28 66.14,99.21 66.27,97.92 66.65,96.68 67.26,95.54 68.08,94.54 69.08,93.71 70.22,93.1 71.47,92.73 72.76,92.6 72.82,92.6 72.82,99.28 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,99.21 72.69,92.6 76.06,92.6 77.33,92.85 78.4,93.57 79.12,94.64 79.37,95.91 79.12,97.17 78.4,98.24 77.33,98.96 76.06,99.21 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,95.91 92.6,92.53 99.21,92.53 99.21,99.28 92.6,99.28 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,99.28 112.44,99.28 112.44,95.91 112.69,94.64 113.41,93.57 114.48,92.85 115.75,92.6 117.01,92.85 118.09,93.57 118.8,94.64 119.06,95.91 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,92.53 145.51,92.53 145.51,95.91 145.26,97.17 144.54,98.24 143.47,98.96 142.2,99.21 140.94,98.96 139.87,98.24 139.15,97.17 138.9,95.91 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,102.52 66.14,99.15 72.76,99.15 72.76,105.89 66.14,105.89 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,102.52 85.73,103.79 85.02,104.86 83.94,105.58 82.68,105.83 81.41,105.58 80.34,104.86 79.62,103.79 79.37,102.52 79.62,101.25 80.34,100.18 81.41,99.46 82.68,99.21 83.94,99.46 85.02,100.18 85.73,101.25 85.98,102.52 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,99.15 99.21,99.15 99.21,102.52 98.96,103.79 98.24,104.86 97.17,105.58 95.91,105.83 94.64,105.58 93.57,104.86 92.85,103.79 92.6,102.52 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,99.15 119.06,99.15 119.06,102.52 118.8,103.79 118.09,104.86 117.01,105.58 115.75,105.83 114.48,105.58 113.41,104.86 112.69,103.79 112.44,102.52 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,102.52 138.65,103.79 137.93,104.86 136.86,105.58 135.59,105.83 134.32,105.58 133.25,104.86 132.54,103.79 132.28,102.52 132.54,101.25 133.25,100.18 134.32,99.46 135.59,99.21 136.86,99.46 137.93,100.18 138.65,101.25 138.9,102.52 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,105.76 72.76,105.76 72.76,109.13 72.5,110.4 71.79,111.47 70.71,112.19 69.45,112.44 68.18,112.19 67.11,111.47 66.39,110.4 66.14,109.13 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,109.13 92.35,110.4 91.63,111.47 90.56,112.19 89.29,112.44 88.03,112.19 86.95,111.47 86.24,110.4 85.98,109.13 86.24,107.87 86.95,106.8 88.03,106.08 89.29,105.83 90.56,106.08 91.63,106.8 92.35,107.87 92.6,109.13 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,109.13 105.58,110.4 104.86,111.47 103.79,112.19 102.52,112.44 101.25,112.19 100.18,111.47 99.46,110.4 99.21,109.13 99.46,107.87 100.18,106.8 101.25,106.08 102.52,105.83 103.79,106.08 104.86,106.8 105.58,107.87 105.83,109.13 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,112.51 119.06,112.44 119.18,111.15 119.56,109.91 120.17,108.77 120.99,107.76 121.99,106.94 123.14,106.33 124.38,105.95 125.67,105.83 125.74,105.83 125.74,112.51 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,112.44 125.6,105.83 128.98,105.83 130.24,106.08 131.31,106.8 132.03,107.87 132.28,109.13 132.03,110.4 131.31,111.47 130.24,112.19 128.98,112.44 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,105.83 145.51,112.44 142.2,112.44 140.94,112.19 139.87,111.47 139.15,110.4 138.9,109.13 139.15,107.87 139.87,106.8 140.94,106.08 142.2,105.83 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,105.83 145.51,105.83 146.8,105.95 148.04,106.33 149.19,106.94 150.19,107.76 151.01,108.77 151.62,109.91 152,111.15 152.13,112.44 152.13,112.51 145.45,112.51 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,119.12 72.76,119.06 72.88,117.76 73.26,116.52 73.87,115.38 74.69,114.38 75.7,113.56 76.84,112.94 78.08,112.57 79.37,112.44 79.44,112.44 79.44,119.12 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,112.44 79.37,112.44 80.66,112.57 81.9,112.94 83.04,113.56 84.05,114.38 84.87,115.38 85.48,116.52 85.86,117.76 85.98,119.06 85.98,119.12 79.3,119.12 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,112.44 119.06,119.06 115.75,119.06 114.48,118.8 113.41,118.09 112.69,117.01 112.44,115.75 112.69,114.48 113.41,113.41 114.48,112.69 115.75,112.44 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,115.75 118.99,112.37 125.67,112.37 125.67,119.12 118.99,119.12 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,119.12 132.28,119.12 132.28,115.75 132.54,114.48 133.25,113.41 134.32,112.69 135.59,112.44 136.86,112.69 137.93,113.41 138.65,114.48 138.9,115.75 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,112.37 152.13,112.37 152.13,115.75 151.87,117.01 151.16,118.09 150.08,118.8 148.82,119.06 147.55,118.8 146.48,118.09 145.76,117.01 145.51,115.75 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,125.74 66.14,125.67 66.27,124.38 66.65,123.14 67.26,121.99 68.08,120.99 69.08,120.17 70.22,119.56 71.47,119.18 72.76,119.06 72.82,119.06 72.82,125.74 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,122.36 72.69,118.99 79.44,118.99 79.44,125.74 72.69,125.74 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,122.36 79.3,118.99 86.05,118.99 86.05,125.67 79.3,125.67 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,119.06 85.98,119.06 87.27,119.18 88.52,119.56 89.66,120.17 90.66,120.99 91.48,121.99 92.09,123.14 92.47,124.38 92.6,125.67 92.6,125.74 85.92,125.74 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,125.74 99.21,125.74 99.21,122.36 99.46,121.1 100.18,120.02 101.25,119.31 102.52,119.06 103.79,119.31 104.86,120.02 105.58,121.1 105.83,122.36 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,118.99 125.74,118.99 125.74,125.67 125.67,125.67 124.38,125.54 123.14,125.17 121.99,124.55 120.99,123.73 120.17,122.73 119.56,121.59 119.18,120.35 119.06,119.06 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,122.36 125.6,119.06 132.35,119.06 132.35,125.74 125.6,125.74 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,122.36 132.22,118.99 138.9,118.99 138.9,125.74 132.22,125.74 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,128.98 66.14,125.6 72.82,125.6 72.82,132.35 66.14,132.35 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,128.98 72.69,125.6 79.37,125.6 79.37,132.35 72.69,132.35 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,125.6 92.66,125.6 92.66,132.28 92.6,132.28 91.31,132.16 90.07,131.78 88.92,131.17 87.92,130.35 87.1,129.34 86.49,128.2 86.11,126.96 85.98,125.67 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,128.98 92.53,125.67 99.28,125.67 99.28,132.35 92.53,132.35 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,128.98 99.15,125.6 105.89,125.6 105.89,132.28 99.15,132.28 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,128.98 105.76,125.67 112.51,125.67 112.51,132.35 105.76,132.35 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,125.67 112.44,125.67 113.73,125.8 114.97,126.17 116.12,126.78 117.12,127.61 117.94,128.61 118.55,129.75 118.93,130.99 119.06,132.28 119.06,132.35 112.37,132.35 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,128.98 125.67,125.6 132.35,125.6 132.35,132.35 125.67,132.35 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,128.98 132.22,125.6 138.9,125.6 138.9,132.35 132.22,132.35 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,135.59 66.14,132.22 72.82,132.22 72.82,138.96 66.14,138.96 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,132.22 79.37,132.22 79.37,132.28 79.24,133.57 78.87,134.81 78.26,135.96 77.43,136.96 76.43,137.78 75.29,138.39 74.05,138.77 72.76,138.9 72.69,138.9 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,135.59 92.6,132.22 99.21,132.22 99.21,138.96 92.6,138.96 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,135.59 105.83,132.22 112.51,132.22 112.51,138.96 105.83,138.96 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,135.59 112.37,132.22 119.06,132.22 119.06,138.96 112.37,138.96 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,132.22 132.35,132.22 132.35,138.9 132.28,138.9 130.99,138.77 129.75,138.39 128.61,137.78 127.61,136.96 126.78,135.96 126.17,134.81 125.8,133.57 125.67,132.28 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,135.59 132.22,132.22 138.9,132.22 138.9,138.96 132.22,138.96 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,142.2 66.14,138.83 72.76,138.83 72.76,145.58 66.14,145.58 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,145.58 79.37,145.51 79.5,144.22 79.87,142.98 80.48,141.84 81.31,140.83 82.31,140.01 83.45,139.4 84.69,139.02 85.98,138.9 86.05,138.9 86.05,145.58 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,142.2 85.92,138.9 92.66,138.9 92.66,145.51 85.92,145.51 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,142.2 92.53,138.83 99.28,138.83 99.28,145.58 92.53,145.58 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,142.2 99.15,138.9 105.89,138.9 105.89,145.51 99.15,145.51 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,142.2 105.76,138.83 112.51,138.83 112.51,145.51 105.76,145.51 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,142.2 112.37,138.83 119.12,138.83 119.12,145.58 112.37,145.58 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,145.51 118.99,138.9 122.36,138.9 123.63,139.15 124.7,139.87 125.42,140.94 125.67,142.2 125.42,143.47 124.7,144.54 123.63,145.26 122.36,145.51 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,142.2 132.28,138.83 138.96,138.83 138.96,145.58 132.28,145.58 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,145.51 138.83,138.9 142.2,138.9 143.47,139.15 144.54,139.87 145.26,140.94 145.51,142.2 145.26,143.47 144.54,144.54 143.47,145.26 142.2,145.51 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,145.45 72.82,145.45 72.82,152.13 72.76,152.13 71.47,152 70.22,151.62 69.08,151.01 68.08,150.19 67.26,149.19 66.65,148.04 66.27,146.8 66.14,145.51 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,148.82 72.69,145.51 79.44,145.51 79.44,152.13 72.69,152.13 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,145.45 85.98,145.45 85.98,145.51 85.86,146.8 85.48,148.04 84.87,149.19 84.05,150.19 83.04,151.01 81.9,151.62 80.66,152 79.37,152.13 79.3,152.13 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,145.45 99.21,145.45 99.21,148.82 98.96,150.08 98.24,151.16 97.17,151.87 95.91,152.13 94.64,151.87 93.57,151.16 92.85,150.08 92.6,148.82 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,145.45 119.06,145.45 119.06,148.82 118.8,150.08 118.09,151.16 117.01,151.87 115.75,152.13 114.48,151.87 113.41,151.16 112.69,150.08 112.44,148.82 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,145.45 138.9,145.45 138.9,148.82 138.65,150.08 137.93,151.16 136.86,151.87 135.59,152.13 134.32,151.87 133.25,151.16 132.54,150.08 132.28,148.82 \"\r\n            style=\"fill:url(#gradiente980077bb02c4ed680664ae32429818f);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 18,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(255,255,255,0);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient7c02ecf658b94d13a18cfb76a0b221ad\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"5.00216673346307\"\r\n            y1=\"71.7606518369089\"\r\n            x2=\"160.35215379266\"\r\n            y2=\"93.5936686892141\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#833231\" />\r\n            <stop offset=\"100%\" stop-color=\"#2A525C\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,29.76 13.55,26.54 14.49,23.44 16.02,20.58 18.07,18.07 20.58,16.02 23.44,14.49 26.54,13.55 29.76,13.23 42.99,13.23 46.22,13.55 49.32,14.49 52.18,16.02 54.68,18.07 56.74,20.58 58.27,23.44 59.21,26.54 59.53,29.76 59.53,59.53 29.76,59.53 26.54,59.21 23.44,58.27 20.58,56.74 18.07,54.68 16.02,52.18 14.49,49.32 13.55,46.22 13.23,42.99 13.23,29.76 19.84,29.76 19.84,42.99 20.18,45.56 21.17,47.95 22.75,50.01 24.8,51.58 27.2,52.58 29.76,52.91 52.91,52.91 52.91,29.76 52.58,27.2 51.58,24.8 50.01,22.75 47.95,21.17 45.56,20.18 42.99,19.84 29.76,19.84 27.2,20.18 24.8,21.17 22.75,22.75 21.17,24.8 20.18,27.2 19.84,29.76 \"\r\n            style=\"fill:url(#gradient7c02ecf658b94d13a18cfb76a0b221ad);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,122.36 13.55,119.14 14.49,116.03 16.02,113.18 18.07,110.67 20.58,108.61 23.44,107.09 26.54,106.14 29.76,105.83 59.53,105.83 59.53,135.59 59.21,138.82 58.27,141.92 56.74,144.78 54.68,147.28 52.18,149.34 49.32,150.87 46.22,151.81 42.99,152.13 29.76,152.13 26.54,151.81 23.44,150.87 20.58,149.34 18.07,147.28 16.02,144.78 14.49,141.92 13.55,138.82 13.23,135.59 13.23,122.36 19.84,122.36 19.84,135.59 20.18,138.16 21.17,140.55 22.75,142.61 24.8,144.18 27.2,145.17 29.76,145.51 42.99,145.51 45.56,145.17 47.95,144.18 50.01,142.61 51.58,140.55 52.58,138.16 52.91,135.59 52.91,112.44 29.76,112.44 27.2,112.78 24.8,113.77 22.75,115.35 21.17,117.4 20.18,119.79 19.84,122.36 \"\r\n            style=\"fill:url(#gradient7c02ecf658b94d13a18cfb76a0b221ad);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,29.76 106.14,26.54 107.09,23.44 108.61,20.58 110.67,18.07 113.18,16.02 116.03,14.49 119.14,13.55 122.36,13.23 135.59,13.23 138.82,13.55 141.92,14.49 144.78,16.02 147.28,18.07 149.34,20.58 150.87,23.44 151.81,26.54 152.13,29.76 152.13,42.99 151.81,46.22 150.87,49.32 149.34,52.18 147.28,54.68 144.78,56.74 141.92,58.27 138.82,59.21 135.59,59.53 105.83,59.53 105.83,29.76 112.44,29.76 112.44,52.91 135.59,52.91 138.16,52.58 140.55,51.58 142.61,50.01 144.18,47.95 145.17,45.56 145.51,42.99 145.51,29.76 145.17,27.2 144.18,24.8 142.61,22.75 140.55,21.17 138.16,20.18 135.59,19.84 122.36,19.84 119.79,20.18 117.4,21.17 115.35,22.75 113.77,24.8 112.78,27.2 112.44,29.76 \"\r\n            style=\"fill:url(#gradient7c02ecf658b94d13a18cfb76a0b221ad);\"\r\n          />\r\n          <pattern\r\n            id=\"hatch8a2f2b565227486eb71f2fc5a259fae6\"\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"8\"\r\n            height=\"8\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"8\" height=\"8\" fill=\"#7D2A23\" />\r\n            <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"1\" y=\"0\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"2\" y=\"0\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"3\" y=\"0\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"0\" y=\"1\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"1\" y=\"1\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"2\" y=\"1\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"3\" y=\"1\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"0\" y=\"2\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"1\" y=\"2\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"2\" y=\"2\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"3\" y=\"2\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"0\" y=\"3\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"1\" y=\"3\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"2\" y=\"3\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"3\" y=\"3\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"0\" y=\"4\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"2\" y=\"4\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"4\" y=\"4\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"6\" y=\"4\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"1\" y=\"5\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"3\" y=\"5\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"5\" y=\"5\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"7\" y=\"5\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"0\" y=\"6\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"2\" y=\"6\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"4\" y=\"6\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"6\" y=\"6\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"1\" y=\"7\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"3\" y=\"7\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"5\" y=\"7\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n            <rect x=\"7\" y=\"7\" width=\"1\" height=\"1\" fill=\"#514473\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"26.46,31.09 26.61,29.89 27.08,28.77 27.81,27.81 28.77,27.08 29.89,26.61 31.09,26.46 41.67,26.46 42.87,26.61 43.98,27.08 44.94,27.81 45.68,28.77 46.14,29.89 46.3,31.09 46.3,46.3 31.09,46.3 29.89,46.14 28.77,45.68 27.81,44.94 27.08,43.98 26.61,42.87 26.46,41.67 \"\r\n            style=\"fill:url(#hatch8a2f2b565227486eb71f2fc5a259fae6);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,123.69 26.61,122.49 27.08,121.37 27.81,120.41 28.77,119.68 29.89,119.21 31.09,119.06 46.3,119.06 46.3,134.27 46.14,135.47 45.68,136.58 44.94,137.54 43.98,138.28 42.87,138.74 41.67,138.9 31.09,138.9 29.89,138.74 28.77,138.28 27.81,137.54 27.08,136.58 26.61,135.47 26.46,134.27 \"\r\n            style=\"fill:url(#hatch8a2f2b565227486eb71f2fc5a259fae6);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,31.09 119.21,29.89 119.68,28.77 120.41,27.81 121.37,27.08 122.49,26.61 123.69,26.46 134.27,26.46 135.47,26.61 136.58,27.08 137.54,27.81 138.28,28.77 138.74,29.89 138.9,31.09 138.9,41.67 138.74,42.87 138.28,43.98 137.54,44.94 136.58,45.68 135.47,46.14 134.27,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#hatch8a2f2b565227486eb71f2fc5a259fae6);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient80618ad2d9ad494d91b68c40b4cb4fde\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"9.79838695230475\"\r\n            y1=\"78.6758608313476\"\r\n            x2=\"155.555933573818\"\r\n            y2=\"86.3146901635255\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#8A3900\" />\r\n            <stop offset=\"100%\" stop-color=\"#89039C\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"79.37,15.84 79.67,15.48 81.42,15.08 82.21,13.29 82.58,13.23 82.88,13.39 83.74,14.98 85.46,15.34 85.98,15.77 85.79,16.2 84.36,17.13 84.86,18.78 84.79,19.35 84.43,19.48 82.58,18.29 81.22,19.45 80.83,19.48 80.56,19.15 80.89,17.16 79.54,16.2 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,15.84 86.28,15.48 88.03,15.08 88.83,13.29 89.19,13.23 89.49,13.39 90.35,14.98 92.07,15.34 92.6,15.77 92.4,16.2 90.98,17.13 91.47,18.78 91.41,19.35 91.04,19.48 89.19,18.29 87.84,19.45 87.44,19.48 87.17,19.15 87.51,17.16 86.15,16.2 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,15.84 92.9,15.48 94.65,15.08 95.44,13.29 95.81,13.23 96.1,13.39 96.96,14.98 98.68,15.34 99.21,15.77 99.01,16.2 97.59,17.13 98.09,18.78 98.02,19.35 97.66,19.48 95.81,18.29 94.45,19.45 94.05,19.48 93.79,19.15 94.12,17.16 92.76,16.2 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,22.46 66.44,22.09 68.19,21.69 68.99,19.91 69.35,19.84 69.65,20.01 70.51,21.6 72.23,21.96 72.76,22.39 72.56,22.82 71.14,23.74 71.63,25.4 71.57,25.96 71.2,26.09 69.35,24.9 67.99,26.06 67.6,26.09 67.33,25.76 67.66,23.78 66.31,22.82 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,22.46 73.05,22.09 74.81,21.69 75.6,19.91 75.96,19.84 76.26,20.01 77.12,21.6 78.84,21.96 79.37,22.39 79.17,22.82 77.75,23.74 78.25,25.4 78.18,25.96 77.82,26.09 75.96,24.9 74.61,26.06 74.21,26.09 73.95,25.76 74.28,23.78 72.92,22.82 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,22.46 79.67,22.09 81.42,21.69 82.21,19.91 82.58,19.84 82.88,20.01 83.74,21.6 85.46,21.96 85.98,22.39 85.79,22.82 84.36,23.74 84.86,25.4 84.79,25.96 84.43,26.09 82.58,24.9 81.22,26.06 80.83,26.09 80.56,25.76 80.89,23.78 79.54,22.82 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,22.46 92.9,22.09 94.65,21.69 95.44,19.91 95.81,19.84 96.1,20.01 96.96,21.6 98.68,21.96 99.21,22.39 99.01,22.82 97.59,23.74 98.09,25.4 98.02,25.96 97.66,26.09 95.81,24.9 94.45,26.06 94.05,26.09 93.79,25.76 94.12,23.78 92.76,22.82 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,29.07 79.67,28.71 81.42,28.31 82.21,26.52 82.58,26.46 82.88,26.62 83.74,28.21 85.46,28.57 85.98,29 85.79,29.43 84.36,30.36 84.86,32.01 84.79,32.57 84.43,32.71 82.58,31.52 81.22,32.67 80.83,32.71 80.56,32.38 80.89,30.39 79.54,29.43 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,29.07 86.28,28.71 88.03,28.31 88.83,26.52 89.19,26.46 89.49,26.62 90.35,28.21 92.07,28.57 92.6,29 92.4,29.43 90.98,30.36 91.47,32.01 91.41,32.57 91.04,32.71 89.19,31.52 87.84,32.67 87.44,32.71 87.17,32.38 87.51,30.39 86.15,29.43 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,29.07 92.9,28.71 94.65,28.31 95.44,26.52 95.81,26.46 96.1,26.62 96.96,28.21 98.68,28.57 99.21,29 99.01,29.43 97.59,30.36 98.09,32.01 98.02,32.57 97.66,32.71 95.81,31.52 94.45,32.67 94.05,32.71 93.79,32.38 94.12,30.39 92.76,29.43 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,35.68 66.44,35.32 68.19,34.92 68.99,33.14 69.35,33.07 69.65,33.24 70.51,34.82 72.23,35.19 72.76,35.62 72.56,36.05 71.14,36.97 71.63,38.63 71.57,39.19 71.2,39.32 69.35,38.13 67.99,39.29 67.6,39.32 67.33,38.99 67.66,37.01 66.31,36.05 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,35.68 73.05,35.32 74.81,34.92 75.6,33.14 75.96,33.07 76.26,33.24 77.12,34.82 78.84,35.19 79.37,35.62 79.17,36.05 77.75,36.97 78.25,38.63 78.18,39.19 77.82,39.32 75.96,38.13 74.61,39.29 74.21,39.32 73.95,38.99 74.28,37.01 72.92,36.05 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,35.68 92.9,35.32 94.65,34.92 95.44,33.14 95.81,33.07 96.1,33.24 96.96,34.82 98.68,35.19 99.21,35.62 99.01,36.05 97.59,36.97 98.09,38.63 98.02,39.19 97.66,39.32 95.81,38.13 94.45,39.29 94.05,39.32 93.79,38.99 94.12,37.01 92.76,36.05 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,42.3 73.05,41.93 74.81,41.54 75.6,39.75 75.96,39.69 76.26,39.85 77.12,41.44 78.84,41.8 79.37,42.23 79.17,42.66 77.75,43.59 78.25,45.24 78.18,45.8 77.82,45.94 75.96,44.74 74.61,45.9 74.21,45.94 73.95,45.6 74.28,43.62 72.92,42.66 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,42.3 92.9,41.93 94.65,41.54 95.44,39.75 95.81,39.69 96.1,39.85 96.96,41.44 98.68,41.8 99.21,42.23 99.01,42.66 97.59,43.59 98.09,45.24 98.02,45.8 97.66,45.94 95.81,44.74 94.45,45.9 94.05,45.94 93.79,45.6 94.12,43.62 92.76,42.66 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,48.91 66.44,48.55 68.19,48.15 68.99,46.37 69.35,46.3 69.65,46.46 70.51,48.05 72.23,48.42 72.76,48.85 72.56,49.28 71.14,50.2 71.63,51.86 71.57,52.42 71.2,52.55 69.35,51.36 67.99,52.52 67.6,52.55 67.33,52.22 67.66,50.23 66.31,49.28 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,48.91 86.28,48.55 88.03,48.15 88.83,46.37 89.19,46.3 89.49,46.46 90.35,48.05 92.07,48.42 92.6,48.85 92.4,49.28 90.98,50.2 91.47,51.86 91.41,52.42 91.04,52.55 89.19,51.36 87.84,52.52 87.44,52.55 87.17,52.22 87.51,50.23 86.15,49.28 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,55.53 66.44,55.16 68.19,54.77 68.99,52.98 69.35,52.91 69.65,53.08 70.51,54.67 72.23,55.03 72.76,55.46 72.56,55.89 71.14,56.82 71.63,58.47 71.57,59.03 71.2,59.16 69.35,57.97 67.99,59.13 67.6,59.16 67.33,58.83 67.66,56.85 66.31,55.89 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,55.53 79.67,55.16 81.42,54.77 82.21,52.98 82.58,52.91 82.88,53.08 83.74,54.67 85.46,55.03 85.98,55.46 85.79,55.89 84.36,56.82 84.86,58.47 84.79,59.03 84.43,59.16 82.58,57.97 81.22,59.13 80.83,59.16 80.56,58.83 80.89,56.85 79.54,55.89 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,55.53 92.9,55.16 94.65,54.77 95.44,52.98 95.81,52.91 96.1,53.08 96.96,54.67 98.68,55.03 99.21,55.46 99.01,55.89 97.59,56.82 98.09,58.47 98.02,59.03 97.66,59.16 95.81,57.97 94.45,59.13 94.05,59.16 93.79,58.83 94.12,56.85 92.76,55.89 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,62.14 73.05,61.78 74.81,61.38 75.6,59.59 75.96,59.53 76.26,59.69 77.12,61.28 78.84,61.64 79.37,62.07 79.17,62.5 77.75,63.43 78.25,65.08 78.18,65.65 77.82,65.78 75.96,64.59 74.61,65.74 74.21,65.78 73.95,65.45 74.28,63.46 72.92,62.5 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,68.75 13.53,68.39 15.28,67.99 16.07,66.21 16.44,66.14 16.73,66.31 17.59,67.89 19.31,68.26 19.84,68.69 19.64,69.12 18.22,70.04 18.72,71.7 18.65,72.26 18.29,72.39 16.44,71.2 15.08,72.36 14.68,72.39 14.42,72.06 14.75,70.08 13.39,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,68.75 20.14,68.39 21.89,67.99 22.69,66.21 23.05,66.14 23.35,66.31 24.21,67.89 25.93,68.26 26.46,68.69 26.26,69.12 24.84,70.04 25.33,71.7 25.27,72.26 24.9,72.39 23.05,71.2 21.69,72.36 21.3,72.39 21.03,72.06 21.36,70.08 20.01,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,68.75 26.75,68.39 28.51,67.99 29.3,66.21 29.66,66.14 29.96,66.31 30.82,67.89 32.54,68.26 33.07,68.69 32.87,69.12 31.45,70.04 31.95,71.7 31.88,72.26 31.52,72.39 29.66,71.2 28.31,72.36 27.91,72.39 27.65,72.06 27.98,70.08 26.62,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,68.75 33.37,68.39 35.12,67.99 35.91,66.21 36.28,66.14 36.58,66.31 37.44,67.89 39.16,68.26 39.69,68.69 39.49,69.12 38.06,70.04 38.56,71.7 38.49,72.26 38.13,72.39 36.28,71.2 34.92,72.36 34.53,72.39 34.26,72.06 34.59,70.08 33.24,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,68.75 39.98,68.39 41.74,67.99 42.53,66.21 42.89,66.14 43.19,66.31 44.05,67.89 45.77,68.26 46.3,68.69 46.1,69.12 44.68,70.04 45.17,71.7 45.11,72.26 44.74,72.39 42.89,71.2 41.54,72.36 41.14,72.39 40.88,72.06 41.21,70.08 39.85,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,68.75 53.21,68.39 54.96,67.99 55.76,66.21 56.12,66.14 56.42,66.31 57.28,67.89 59,68.26 59.53,68.69 59.33,69.12 57.91,70.04 58.4,71.7 58.34,72.26 57.97,72.39 56.12,71.2 54.77,72.36 54.37,72.39 54.1,72.06 54.43,70.08 53.08,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,68.75 59.83,68.39 61.58,67.99 62.37,66.21 62.74,66.14 63.03,66.31 63.89,67.89 65.61,68.26 66.14,68.69 65.94,69.12 64.52,70.04 65.02,71.7 64.95,72.26 64.59,72.39 62.74,71.2 61.38,72.36 60.98,72.39 60.72,72.06 61.05,70.08 59.69,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,68.75 66.44,68.39 68.19,67.99 68.99,66.21 69.35,66.14 69.65,66.31 70.51,67.89 72.23,68.26 72.76,68.69 72.56,69.12 71.14,70.04 71.63,71.7 71.57,72.26 71.2,72.39 69.35,71.2 67.99,72.36 67.6,72.39 67.33,72.06 67.66,70.08 66.31,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,68.75 86.28,68.39 88.03,67.99 88.83,66.21 89.19,66.14 89.49,66.31 90.35,67.89 92.07,68.26 92.6,68.69 92.4,69.12 90.98,70.04 91.47,71.7 91.41,72.26 91.04,72.39 89.19,71.2 87.84,72.36 87.44,72.39 87.17,72.06 87.51,70.08 86.15,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,68.75 99.51,68.39 101.26,67.99 102.06,66.21 102.42,66.14 102.72,66.31 103.58,67.89 105.3,68.26 105.83,68.69 105.63,69.12 104.21,70.04 104.7,71.7 104.64,72.26 104.27,72.39 102.42,71.2 101.06,72.36 100.67,72.39 100.4,72.06 100.73,70.08 99.38,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,68.75 112.74,68.39 114.49,67.99 115.29,66.21 115.65,66.14 115.95,66.31 116.81,67.89 118.53,68.26 119.06,68.69 118.86,69.12 117.43,70.04 117.93,71.7 117.86,72.26 117.5,72.39 115.65,71.2 114.29,72.36 113.9,72.39 113.63,72.06 113.96,70.08 112.61,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,68.75 125.97,68.39 127.72,67.99 128.51,66.21 128.88,66.14 129.17,66.31 130.03,67.89 131.75,68.26 132.28,68.69 132.09,69.12 130.66,70.04 131.16,71.7 131.09,72.26 130.73,72.39 128.88,71.2 127.52,72.36 127.12,72.39 126.86,72.06 127.19,70.08 125.83,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,68.75 139.2,68.39 140.95,67.99 141.74,66.21 142.11,66.14 142.4,66.31 143.26,67.89 144.98,68.26 145.51,68.69 145.31,69.12 143.89,70.04 144.39,71.7 144.32,72.26 143.96,72.39 142.11,71.2 140.75,72.36 140.35,72.39 140.09,72.06 140.42,70.08 139.06,69.12 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,75.37 13.53,75 15.28,74.61 16.07,72.82 16.44,72.76 16.73,72.92 17.59,74.51 19.31,74.87 19.84,75.3 19.64,75.73 18.22,76.66 18.72,78.31 18.65,78.87 18.29,79.01 16.44,77.82 15.08,78.97 14.68,79.01 14.42,78.68 14.75,76.69 13.39,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,75.37 20.14,75 21.89,74.61 22.69,72.82 23.05,72.76 23.35,72.92 24.21,74.51 25.93,74.87 26.46,75.3 26.26,75.73 24.84,76.66 25.33,78.31 25.27,78.87 24.9,79.01 23.05,77.82 21.69,78.97 21.3,79.01 21.03,78.68 21.36,76.69 20.01,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,75.37 26.75,75 28.51,74.61 29.3,72.82 29.66,72.76 29.96,72.92 30.82,74.51 32.54,74.87 33.07,75.3 32.87,75.73 31.45,76.66 31.95,78.31 31.88,78.87 31.52,79.01 29.66,77.82 28.31,78.97 27.91,79.01 27.65,78.68 27.98,76.69 26.62,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,75.37 46.6,75 48.35,74.61 49.14,72.82 49.51,72.76 49.8,72.92 50.66,74.51 52.38,74.87 52.91,75.3 52.71,75.73 51.29,76.66 51.79,78.31 51.72,78.87 51.36,79.01 49.51,77.82 48.15,78.97 47.75,79.01 47.49,78.68 47.82,76.69 46.46,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,75.37 59.83,75 61.58,74.61 62.37,72.82 62.74,72.76 63.03,72.92 63.89,74.51 65.61,74.87 66.14,75.3 65.94,75.73 64.52,76.66 65.02,78.31 64.95,78.87 64.59,79.01 62.74,77.82 61.38,78.97 60.98,79.01 60.72,78.68 61.05,76.69 59.69,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,75.37 73.05,75 74.81,74.61 75.6,72.82 75.96,72.76 76.26,72.92 77.12,74.51 78.84,74.87 79.37,75.3 79.17,75.73 77.75,76.66 78.25,78.31 78.18,78.87 77.82,79.01 75.96,77.82 74.61,78.97 74.21,79.01 73.95,78.68 74.28,76.69 72.92,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,75.37 86.28,75 88.03,74.61 88.83,72.82 89.19,72.76 89.49,72.92 90.35,74.51 92.07,74.87 92.6,75.3 92.4,75.73 90.98,76.66 91.47,78.31 91.41,78.87 91.04,79.01 89.19,77.82 87.84,78.97 87.44,79.01 87.17,78.68 87.51,76.69 86.15,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,75.37 92.9,75 94.65,74.61 95.44,72.82 95.81,72.76 96.1,72.92 96.96,74.51 98.68,74.87 99.21,75.3 99.01,75.73 97.59,76.66 98.09,78.31 98.02,78.87 97.66,79.01 95.81,77.82 94.45,78.97 94.05,79.01 93.79,78.68 94.12,76.69 92.76,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,75.37 99.51,75 101.26,74.61 102.06,72.82 102.42,72.76 102.72,72.92 103.58,74.51 105.3,74.87 105.83,75.3 105.63,75.73 104.21,76.66 104.7,78.31 104.64,78.87 104.27,79.01 102.42,77.82 101.06,78.97 100.67,79.01 100.4,78.68 100.73,76.69 99.38,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,75.37 106.12,75 107.88,74.61 108.67,72.82 109.03,72.76 109.33,72.92 110.19,74.51 111.91,74.87 112.44,75.3 112.24,75.73 110.82,76.66 111.32,78.31 111.25,78.87 110.89,79.01 109.03,77.82 107.68,78.97 107.28,79.01 107.02,78.68 107.35,76.69 105.99,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,75.37 125.97,75 127.72,74.61 128.51,72.82 128.88,72.76 129.17,72.92 130.03,74.51 131.75,74.87 132.28,75.3 132.09,75.73 130.66,76.66 131.16,78.31 131.09,78.87 130.73,79.01 128.88,77.82 127.52,78.97 127.12,79.01 126.86,78.68 127.19,76.69 125.83,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,75.37 132.58,75 134.33,74.61 135.13,72.82 135.49,72.76 135.79,72.92 136.65,74.51 138.37,74.87 138.9,75.3 138.7,75.73 137.28,76.66 137.77,78.31 137.71,78.87 137.34,79.01 135.49,77.82 134.14,78.97 133.74,79.01 133.47,78.68 133.8,76.69 132.45,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,75.37 139.2,75 140.95,74.61 141.74,72.82 142.11,72.76 142.4,72.92 143.26,74.51 144.98,74.87 145.51,75.3 145.31,75.73 143.89,76.66 144.39,78.31 144.32,78.87 143.96,79.01 142.11,77.82 140.75,78.97 140.35,79.01 140.09,78.68 140.42,76.69 139.06,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,75.37 145.81,75 147.56,74.61 148.36,72.82 148.72,72.76 149.02,72.92 149.88,74.51 151.6,74.87 152.13,75.3 151.93,75.73 150.51,76.66 151,78.31 150.94,78.87 150.57,79.01 148.72,77.82 147.36,78.97 146.97,79.01 146.7,78.68 147.03,76.69 145.68,75.73 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,81.98 26.75,81.62 28.51,81.22 29.3,79.44 29.66,79.37 29.96,79.54 30.82,81.12 32.54,81.49 33.07,81.92 32.87,82.35 31.45,83.27 31.95,84.93 31.88,85.49 31.52,85.62 29.66,84.43 28.31,85.59 27.91,85.62 27.65,85.29 27.98,83.31 26.62,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,81.98 39.98,81.62 41.74,81.22 42.53,79.44 42.89,79.37 43.19,79.54 44.05,81.12 45.77,81.49 46.3,81.92 46.1,82.35 44.68,83.27 45.17,84.93 45.11,85.49 44.74,85.62 42.89,84.43 41.54,85.59 41.14,85.62 40.88,85.29 41.21,83.31 39.85,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,81.98 46.6,81.62 48.35,81.22 49.14,79.44 49.51,79.37 49.8,79.54 50.66,81.12 52.38,81.49 52.91,81.92 52.71,82.35 51.29,83.27 51.79,84.93 51.72,85.49 51.36,85.62 49.51,84.43 48.15,85.59 47.75,85.62 47.49,85.29 47.82,83.31 46.46,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,81.98 53.21,81.62 54.96,81.22 55.76,79.44 56.12,79.37 56.42,79.54 57.28,81.12 59,81.49 59.53,81.92 59.33,82.35 57.91,83.27 58.4,84.93 58.34,85.49 57.97,85.62 56.12,84.43 54.77,85.59 54.37,85.62 54.1,85.29 54.43,83.31 53.08,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,81.98 66.44,81.62 68.19,81.22 68.99,79.44 69.35,79.37 69.65,79.54 70.51,81.12 72.23,81.49 72.76,81.92 72.56,82.35 71.14,83.27 71.63,84.93 71.57,85.49 71.2,85.62 69.35,84.43 67.99,85.59 67.6,85.62 67.33,85.29 67.66,83.31 66.31,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,81.98 73.05,81.62 74.81,81.22 75.6,79.44 75.96,79.37 76.26,79.54 77.12,81.12 78.84,81.49 79.37,81.92 79.17,82.35 77.75,83.27 78.25,84.93 78.18,85.49 77.82,85.62 75.96,84.43 74.61,85.59 74.21,85.62 73.95,85.29 74.28,83.31 72.92,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,81.98 92.9,81.62 94.65,81.22 95.44,79.44 95.81,79.37 96.1,79.54 96.96,81.12 98.68,81.49 99.21,81.92 99.01,82.35 97.59,83.27 98.09,84.93 98.02,85.49 97.66,85.62 95.81,84.43 94.45,85.59 94.05,85.62 93.79,85.29 94.12,83.31 92.76,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,81.98 106.12,81.62 107.88,81.22 108.67,79.44 109.03,79.37 109.33,79.54 110.19,81.12 111.91,81.49 112.44,81.92 112.24,82.35 110.82,83.27 111.32,84.93 111.25,85.49 110.89,85.62 109.03,84.43 107.68,85.59 107.28,85.62 107.02,85.29 107.35,83.31 105.99,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,81.98 112.74,81.62 114.49,81.22 115.29,79.44 115.65,79.37 115.95,79.54 116.81,81.12 118.53,81.49 119.06,81.92 118.86,82.35 117.43,83.27 117.93,84.93 117.86,85.49 117.5,85.62 115.65,84.43 114.29,85.59 113.9,85.62 113.63,85.29 113.96,83.31 112.61,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,81.98 125.97,81.62 127.72,81.22 128.51,79.44 128.88,79.37 129.17,79.54 130.03,81.12 131.75,81.49 132.28,81.92 132.09,82.35 130.66,83.27 131.16,84.93 131.09,85.49 130.73,85.62 128.88,84.43 127.52,85.59 127.12,85.62 126.86,85.29 127.19,83.31 125.83,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,81.98 145.81,81.62 147.56,81.22 148.36,79.44 148.72,79.37 149.02,79.54 149.88,81.12 151.6,81.49 152.13,81.92 151.93,82.35 150.51,83.27 151,84.93 150.94,85.49 150.57,85.62 148.72,84.43 147.36,85.59 146.97,85.62 146.7,85.29 147.03,83.31 145.68,82.35 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,88.6 13.53,88.23 15.28,87.84 16.07,86.05 16.44,85.98 16.73,86.15 17.59,87.74 19.31,88.1 19.84,88.53 19.64,88.96 18.22,89.89 18.72,91.54 18.65,92.1 18.29,92.23 16.44,91.04 15.08,92.2 14.68,92.23 14.42,91.9 14.75,89.92 13.39,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,88.6 33.37,88.23 35.12,87.84 35.91,86.05 36.28,85.98 36.58,86.15 37.44,87.74 39.16,88.1 39.69,88.53 39.49,88.96 38.06,89.89 38.56,91.54 38.49,92.1 38.13,92.23 36.28,91.04 34.92,92.2 34.53,92.23 34.26,91.9 34.59,89.92 33.24,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,88.6 86.28,88.23 88.03,87.84 88.83,86.05 89.19,85.98 89.49,86.15 90.35,87.74 92.07,88.1 92.6,88.53 92.4,88.96 90.98,89.89 91.47,91.54 91.41,92.1 91.04,92.23 89.19,91.04 87.84,92.2 87.44,92.23 87.17,91.9 87.51,89.92 86.15,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,88.6 92.9,88.23 94.65,87.84 95.44,86.05 95.81,85.98 96.1,86.15 96.96,87.74 98.68,88.1 99.21,88.53 99.01,88.96 97.59,89.89 98.09,91.54 98.02,92.1 97.66,92.23 95.81,91.04 94.45,92.2 94.05,92.23 93.79,91.9 94.12,89.92 92.76,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,88.6 99.51,88.23 101.26,87.84 102.06,86.05 102.42,85.98 102.72,86.15 103.58,87.74 105.3,88.1 105.83,88.53 105.63,88.96 104.21,89.89 104.7,91.54 104.64,92.1 104.27,92.23 102.42,91.04 101.06,92.2 100.67,92.23 100.4,91.9 100.73,89.92 99.38,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,88.6 106.12,88.23 107.88,87.84 108.67,86.05 109.03,85.98 109.33,86.15 110.19,87.74 111.91,88.1 112.44,88.53 112.24,88.96 110.82,89.89 111.32,91.54 111.25,92.1 110.89,92.23 109.03,91.04 107.68,92.2 107.28,92.23 107.02,91.9 107.35,89.92 105.99,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,88.6 132.58,88.23 134.33,87.84 135.13,86.05 135.49,85.98 135.79,86.15 136.65,87.74 138.37,88.1 138.9,88.53 138.7,88.96 137.28,89.89 137.77,91.54 137.71,92.1 137.34,92.23 135.49,91.04 134.14,92.2 133.74,92.23 133.47,91.9 133.8,89.92 132.45,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,88.6 139.2,88.23 140.95,87.84 141.74,86.05 142.11,85.98 142.4,86.15 143.26,87.74 144.98,88.1 145.51,88.53 145.31,88.96 143.89,89.89 144.39,91.54 144.32,92.1 143.96,92.23 142.11,91.04 140.75,92.2 140.35,92.23 140.09,91.9 140.42,89.92 139.06,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,88.6 145.81,88.23 147.56,87.84 148.36,86.05 148.72,85.98 149.02,86.15 149.88,87.74 151.6,88.1 152.13,88.53 151.93,88.96 150.51,89.89 151,91.54 150.94,92.1 150.57,92.23 148.72,91.04 147.36,92.2 146.97,92.23 146.7,91.9 147.03,89.92 145.68,88.96 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,95.21 20.14,94.85 21.89,94.45 22.69,92.66 23.05,92.6 23.35,92.76 24.21,94.35 25.93,94.71 26.46,95.14 26.26,95.57 24.84,96.5 25.33,98.15 25.27,98.72 24.9,98.85 23.05,97.66 21.69,98.82 21.3,98.85 21.03,98.52 21.36,96.53 20.01,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,95.21 33.37,94.85 35.12,94.45 35.91,92.66 36.28,92.6 36.58,92.76 37.44,94.35 39.16,94.71 39.69,95.14 39.49,95.57 38.06,96.5 38.56,98.15 38.49,98.72 38.13,98.85 36.28,97.66 34.92,98.82 34.53,98.85 34.26,98.52 34.59,96.53 33.24,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,95.21 39.98,94.85 41.74,94.45 42.53,92.66 42.89,92.6 43.19,92.76 44.05,94.35 45.77,94.71 46.3,95.14 46.1,95.57 44.68,96.5 45.17,98.15 45.11,98.72 44.74,98.85 42.89,97.66 41.54,98.82 41.14,98.85 40.88,98.52 41.21,96.53 39.85,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,95.21 53.21,94.85 54.96,94.45 55.76,92.66 56.12,92.6 56.42,92.76 57.28,94.35 59,94.71 59.53,95.14 59.33,95.57 57.91,96.5 58.4,98.15 58.34,98.72 57.97,98.85 56.12,97.66 54.77,98.82 54.37,98.85 54.1,98.52 54.43,96.53 53.08,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,95.21 66.44,94.85 68.19,94.45 68.99,92.66 69.35,92.6 69.65,92.76 70.51,94.35 72.23,94.71 72.76,95.14 72.56,95.57 71.14,96.5 71.63,98.15 71.57,98.72 71.2,98.85 69.35,97.66 67.99,98.82 67.6,98.85 67.33,98.52 67.66,96.53 66.31,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,95.21 73.05,94.85 74.81,94.45 75.6,92.66 75.96,92.6 76.26,92.76 77.12,94.35 78.84,94.71 79.37,95.14 79.17,95.57 77.75,96.5 78.25,98.15 78.18,98.72 77.82,98.85 75.96,97.66 74.61,98.82 74.21,98.85 73.95,98.52 74.28,96.53 72.92,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,95.21 92.9,94.85 94.65,94.45 95.44,92.66 95.81,92.6 96.1,92.76 96.96,94.35 98.68,94.71 99.21,95.14 99.01,95.57 97.59,96.5 98.09,98.15 98.02,98.72 97.66,98.85 95.81,97.66 94.45,98.82 94.05,98.85 93.79,98.52 94.12,96.53 92.76,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,95.21 112.74,94.85 114.49,94.45 115.29,92.66 115.65,92.6 115.95,92.76 116.81,94.35 118.53,94.71 119.06,95.14 118.86,95.57 117.43,96.5 117.93,98.15 117.86,98.72 117.5,98.85 115.65,97.66 114.29,98.82 113.9,98.85 113.63,98.52 113.96,96.53 112.61,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,95.21 139.2,94.85 140.95,94.45 141.74,92.66 142.11,92.6 142.4,92.76 143.26,94.35 144.98,94.71 145.51,95.14 145.31,95.57 143.89,96.5 144.39,98.15 144.32,98.72 143.96,98.85 142.11,97.66 140.75,98.82 140.35,98.85 140.09,98.52 140.42,96.53 139.06,95.57 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,101.83 66.44,101.46 68.19,101.06 68.99,99.28 69.35,99.21 69.65,99.38 70.51,100.97 72.23,101.33 72.76,101.76 72.56,102.19 71.14,103.11 71.63,104.77 71.57,105.33 71.2,105.46 69.35,104.27 67.99,105.43 67.6,105.46 67.33,105.13 67.66,103.15 66.31,102.19 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,101.83 79.67,101.46 81.42,101.06 82.21,99.28 82.58,99.21 82.88,99.38 83.74,100.97 85.46,101.33 85.98,101.76 85.79,102.19 84.36,103.11 84.86,104.77 84.79,105.33 84.43,105.46 82.58,104.27 81.22,105.43 80.83,105.46 80.56,105.13 80.89,103.15 79.54,102.19 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,101.83 92.9,101.46 94.65,101.06 95.44,99.28 95.81,99.21 96.1,99.38 96.96,100.97 98.68,101.33 99.21,101.76 99.01,102.19 97.59,103.11 98.09,104.77 98.02,105.33 97.66,105.46 95.81,104.27 94.45,105.43 94.05,105.46 93.79,105.13 94.12,103.15 92.76,102.19 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,101.83 112.74,101.46 114.49,101.06 115.29,99.28 115.65,99.21 115.95,99.38 116.81,100.97 118.53,101.33 119.06,101.76 118.86,102.19 117.43,103.11 117.93,104.77 117.86,105.33 117.5,105.46 115.65,104.27 114.29,105.43 113.9,105.46 113.63,105.13 113.96,103.15 112.61,102.19 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,101.83 132.58,101.46 134.33,101.06 135.13,99.28 135.49,99.21 135.79,99.38 136.65,100.97 138.37,101.33 138.9,101.76 138.7,102.19 137.28,103.11 137.77,104.77 137.71,105.33 137.34,105.46 135.49,104.27 134.14,105.43 133.74,105.46 133.47,105.13 133.8,103.15 132.45,102.19 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,108.44 66.44,108.08 68.19,107.68 68.99,105.89 69.35,105.83 69.65,105.99 70.51,107.58 72.23,107.94 72.76,108.37 72.56,108.8 71.14,109.73 71.63,111.38 71.57,111.94 71.2,112.08 69.35,110.89 67.99,112.04 67.6,112.08 67.33,111.75 67.66,109.76 66.31,108.8 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,108.44 86.28,108.08 88.03,107.68 88.83,105.89 89.19,105.83 89.49,105.99 90.35,107.58 92.07,107.94 92.6,108.37 92.4,108.8 90.98,109.73 91.47,111.38 91.41,111.94 91.04,112.08 89.19,110.89 87.84,112.04 87.44,112.08 87.17,111.75 87.51,109.76 86.15,108.8 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,108.44 99.51,108.08 101.26,107.68 102.06,105.89 102.42,105.83 102.72,105.99 103.58,107.58 105.3,107.94 105.83,108.37 105.63,108.8 104.21,109.73 104.7,111.38 104.64,111.94 104.27,112.08 102.42,110.89 101.06,112.04 100.67,112.08 100.4,111.75 100.73,109.76 99.38,108.8 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,108.44 119.35,108.08 121.11,107.68 121.9,105.89 122.26,105.83 122.56,105.99 123.42,107.58 125.14,107.94 125.67,108.37 125.47,108.8 124.05,109.73 124.54,111.38 124.48,111.94 124.11,112.08 122.26,110.89 120.91,112.04 120.51,112.08 120.25,111.75 120.58,109.76 119.22,108.8 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,108.44 125.97,108.08 127.72,107.68 128.51,105.89 128.88,105.83 129.17,105.99 130.03,107.58 131.75,107.94 132.28,108.37 132.09,108.8 130.66,109.73 131.16,111.38 131.09,111.94 130.73,112.08 128.88,110.89 127.52,112.04 127.12,112.08 126.86,111.75 127.19,109.76 125.83,108.8 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,108.44 139.2,108.08 140.95,107.68 141.74,105.89 142.11,105.83 142.4,105.99 143.26,107.58 144.98,107.94 145.51,108.37 145.31,108.8 143.89,109.73 144.39,111.38 144.32,111.94 143.96,112.08 142.11,110.89 140.75,112.04 140.35,112.08 140.09,111.75 140.42,109.76 139.06,108.8 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,108.44 145.81,108.08 147.56,107.68 148.36,105.89 148.72,105.83 149.02,105.99 149.88,107.58 151.6,107.94 152.13,108.37 151.93,108.8 150.51,109.73 151,111.38 150.94,111.94 150.57,112.08 148.72,110.89 147.36,112.04 146.97,112.08 146.7,111.75 147.03,109.76 145.68,108.8 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,115.05 73.05,114.69 74.81,114.29 75.6,112.51 75.96,112.44 76.26,112.61 77.12,114.19 78.84,114.56 79.37,114.99 79.17,115.42 77.75,116.34 78.25,118 78.18,118.56 77.82,118.69 75.96,117.5 74.61,118.66 74.21,118.69 73.95,118.36 74.28,116.38 72.92,115.42 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,115.05 79.67,114.69 81.42,114.29 82.21,112.51 82.58,112.44 82.88,112.61 83.74,114.19 85.46,114.56 85.98,114.99 85.79,115.42 84.36,116.34 84.86,118 84.79,118.56 84.43,118.69 82.58,117.5 81.22,118.66 80.83,118.69 80.56,118.36 80.89,116.38 79.54,115.42 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,115.05 112.74,114.69 114.49,114.29 115.29,112.51 115.65,112.44 115.95,112.61 116.81,114.19 118.53,114.56 119.06,114.99 118.86,115.42 117.43,116.34 117.93,118 117.86,118.56 117.5,118.69 115.65,117.5 114.29,118.66 113.9,118.69 113.63,118.36 113.96,116.38 112.61,115.42 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,115.05 119.35,114.69 121.11,114.29 121.9,112.51 122.26,112.44 122.56,112.61 123.42,114.19 125.14,114.56 125.67,114.99 125.47,115.42 124.05,116.34 124.54,118 124.48,118.56 124.11,118.69 122.26,117.5 120.91,118.66 120.51,118.69 120.25,118.36 120.58,116.38 119.22,115.42 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,115.05 132.58,114.69 134.33,114.29 135.13,112.51 135.49,112.44 135.79,112.61 136.65,114.19 138.37,114.56 138.9,114.99 138.7,115.42 137.28,116.34 137.77,118 137.71,118.56 137.34,118.69 135.49,117.5 134.14,118.66 133.74,118.69 133.47,118.36 133.8,116.38 132.45,115.42 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,115.05 145.81,114.69 147.56,114.29 148.36,112.51 148.72,112.44 149.02,112.61 149.88,114.19 151.6,114.56 152.13,114.99 151.93,115.42 150.51,116.34 151,118 150.94,118.56 150.57,118.69 148.72,117.5 147.36,118.66 146.97,118.69 146.7,118.36 147.03,116.38 145.68,115.42 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,121.67 66.44,121.3 68.19,120.91 68.99,119.12 69.35,119.06 69.65,119.22 70.51,120.81 72.23,121.17 72.76,121.6 72.56,122.03 71.14,122.96 71.63,124.61 71.57,125.17 71.2,125.31 69.35,124.11 67.99,125.27 67.6,125.31 67.33,124.97 67.66,122.99 66.31,122.03 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,121.67 73.05,121.3 74.81,120.91 75.6,119.12 75.96,119.06 76.26,119.22 77.12,120.81 78.84,121.17 79.37,121.6 79.17,122.03 77.75,122.96 78.25,124.61 78.18,125.17 77.82,125.31 75.96,124.11 74.61,125.27 74.21,125.31 73.95,124.97 74.28,122.99 72.92,122.03 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,121.67 79.67,121.3 81.42,120.91 82.21,119.12 82.58,119.06 82.88,119.22 83.74,120.81 85.46,121.17 85.98,121.6 85.79,122.03 84.36,122.96 84.86,124.61 84.79,125.17 84.43,125.31 82.58,124.11 81.22,125.27 80.83,125.31 80.56,124.97 80.89,122.99 79.54,122.03 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,121.67 86.28,121.3 88.03,120.91 88.83,119.12 89.19,119.06 89.49,119.22 90.35,120.81 92.07,121.17 92.6,121.6 92.4,122.03 90.98,122.96 91.47,124.61 91.41,125.17 91.04,125.31 89.19,124.11 87.84,125.27 87.44,125.31 87.17,124.97 87.51,122.99 86.15,122.03 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,121.67 99.51,121.3 101.26,120.91 102.06,119.12 102.42,119.06 102.72,119.22 103.58,120.81 105.3,121.17 105.83,121.6 105.63,122.03 104.21,122.96 104.7,124.61 104.64,125.17 104.27,125.31 102.42,124.11 101.06,125.27 100.67,125.31 100.4,124.97 100.73,122.99 99.38,122.03 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,121.67 119.35,121.3 121.11,120.91 121.9,119.12 122.26,119.06 122.56,119.22 123.42,120.81 125.14,121.17 125.67,121.6 125.47,122.03 124.05,122.96 124.54,124.61 124.48,125.17 124.11,125.31 122.26,124.11 120.91,125.27 120.51,125.31 120.25,124.97 120.58,122.99 119.22,122.03 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,121.67 125.97,121.3 127.72,120.91 128.51,119.12 128.88,119.06 129.17,119.22 130.03,120.81 131.75,121.17 132.28,121.6 132.09,122.03 130.66,122.96 131.16,124.61 131.09,125.17 130.73,125.31 128.88,124.11 127.52,125.27 127.12,125.31 126.86,124.97 127.19,122.99 125.83,122.03 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,121.67 132.58,121.3 134.33,120.91 135.13,119.12 135.49,119.06 135.79,119.22 136.65,120.81 138.37,121.17 138.9,121.6 138.7,122.03 137.28,122.96 137.77,124.61 137.71,125.17 137.34,125.31 135.49,124.11 134.14,125.27 133.74,125.31 133.47,124.97 133.8,122.99 132.45,122.03 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,128.28 66.44,127.92 68.19,127.52 68.99,125.74 69.35,125.67 69.65,125.83 70.51,127.42 72.23,127.79 72.76,128.22 72.56,128.65 71.14,129.57 71.63,131.23 71.57,131.79 71.2,131.92 69.35,130.73 67.99,131.89 67.6,131.92 67.33,131.59 67.66,129.6 66.31,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,128.28 73.05,127.92 74.81,127.52 75.6,125.74 75.96,125.67 76.26,125.83 77.12,127.42 78.84,127.79 79.37,128.22 79.17,128.65 77.75,129.57 78.25,131.23 78.18,131.79 77.82,131.92 75.96,130.73 74.61,131.89 74.21,131.92 73.95,131.59 74.28,129.6 72.92,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,128.28 86.28,127.92 88.03,127.52 88.83,125.74 89.19,125.67 89.49,125.83 90.35,127.42 92.07,127.79 92.6,128.22 92.4,128.65 90.98,129.57 91.47,131.23 91.41,131.79 91.04,131.92 89.19,130.73 87.84,131.89 87.44,131.92 87.17,131.59 87.51,129.6 86.15,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,128.28 92.9,127.92 94.65,127.52 95.44,125.74 95.81,125.67 96.1,125.83 96.96,127.42 98.68,127.79 99.21,128.22 99.01,128.65 97.59,129.57 98.09,131.23 98.02,131.79 97.66,131.92 95.81,130.73 94.45,131.89 94.05,131.92 93.79,131.59 94.12,129.6 92.76,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,128.28 99.51,127.92 101.26,127.52 102.06,125.74 102.42,125.67 102.72,125.83 103.58,127.42 105.3,127.79 105.83,128.22 105.63,128.65 104.21,129.57 104.7,131.23 104.64,131.79 104.27,131.92 102.42,130.73 101.06,131.89 100.67,131.92 100.4,131.59 100.73,129.6 99.38,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,128.28 106.12,127.92 107.88,127.52 108.67,125.74 109.03,125.67 109.33,125.83 110.19,127.42 111.91,127.79 112.44,128.22 112.24,128.65 110.82,129.57 111.32,131.23 111.25,131.79 110.89,131.92 109.03,130.73 107.68,131.89 107.28,131.92 107.02,131.59 107.35,129.6 105.99,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,128.28 112.74,127.92 114.49,127.52 115.29,125.74 115.65,125.67 115.95,125.83 116.81,127.42 118.53,127.79 119.06,128.22 118.86,128.65 117.43,129.57 117.93,131.23 117.86,131.79 117.5,131.92 115.65,130.73 114.29,131.89 113.9,131.92 113.63,131.59 113.96,129.6 112.61,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,128.28 125.97,127.92 127.72,127.52 128.51,125.74 128.88,125.67 129.17,125.83 130.03,127.42 131.75,127.79 132.28,128.22 132.09,128.65 130.66,129.57 131.16,131.23 131.09,131.79 130.73,131.92 128.88,130.73 127.52,131.89 127.12,131.92 126.86,131.59 127.19,129.6 125.83,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,128.28 132.58,127.92 134.33,127.52 135.13,125.74 135.49,125.67 135.79,125.83 136.65,127.42 138.37,127.79 138.9,128.22 138.7,128.65 137.28,129.57 137.77,131.23 137.71,131.79 137.34,131.92 135.49,130.73 134.14,131.89 133.74,131.92 133.47,131.59 133.8,129.6 132.45,128.65 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,134.9 66.44,134.53 68.19,134.14 68.99,132.35 69.35,132.28 69.65,132.45 70.51,134.04 72.23,134.4 72.76,134.83 72.56,135.26 71.14,136.19 71.63,137.84 71.57,138.4 71.2,138.53 69.35,137.34 67.99,138.5 67.6,138.53 67.33,138.2 67.66,136.22 66.31,135.26 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,134.9 73.05,134.53 74.81,134.14 75.6,132.35 75.96,132.28 76.26,132.45 77.12,134.04 78.84,134.4 79.37,134.83 79.17,135.26 77.75,136.19 78.25,137.84 78.18,138.4 77.82,138.53 75.96,137.34 74.61,138.5 74.21,138.53 73.95,138.2 74.28,136.22 72.92,135.26 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,134.9 92.9,134.53 94.65,134.14 95.44,132.35 95.81,132.28 96.1,132.45 96.96,134.04 98.68,134.4 99.21,134.83 99.01,135.26 97.59,136.19 98.09,137.84 98.02,138.4 97.66,138.53 95.81,137.34 94.45,138.5 94.05,138.53 93.79,138.2 94.12,136.22 92.76,135.26 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,134.9 106.12,134.53 107.88,134.14 108.67,132.35 109.03,132.28 109.33,132.45 110.19,134.04 111.91,134.4 112.44,134.83 112.24,135.26 110.82,136.19 111.32,137.84 111.25,138.4 110.89,138.53 109.03,137.34 107.68,138.5 107.28,138.53 107.02,138.2 107.35,136.22 105.99,135.26 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,134.9 112.74,134.53 114.49,134.14 115.29,132.35 115.65,132.28 115.95,132.45 116.81,134.04 118.53,134.4 119.06,134.83 118.86,135.26 117.43,136.19 117.93,137.84 117.86,138.4 117.5,138.53 115.65,137.34 114.29,138.5 113.9,138.53 113.63,138.2 113.96,136.22 112.61,135.26 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,134.9 125.97,134.53 127.72,134.14 128.51,132.35 128.88,132.28 129.17,132.45 130.03,134.04 131.75,134.4 132.28,134.83 132.09,135.26 130.66,136.19 131.16,137.84 131.09,138.4 130.73,138.53 128.88,137.34 127.52,138.5 127.12,138.53 126.86,138.2 127.19,136.22 125.83,135.26 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,134.9 132.58,134.53 134.33,134.14 135.13,132.35 135.49,132.28 135.79,132.45 136.65,134.04 138.37,134.4 138.9,134.83 138.7,135.26 137.28,136.19 137.77,137.84 137.71,138.4 137.34,138.53 135.49,137.34 134.14,138.5 133.74,138.53 133.47,138.2 133.8,136.22 132.45,135.26 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,141.51 66.44,141.15 68.19,140.75 68.99,138.96 69.35,138.9 69.65,139.06 70.51,140.65 72.23,141.01 72.76,141.44 72.56,141.87 71.14,142.8 71.63,144.45 71.57,145.02 71.2,145.15 69.35,143.96 67.99,145.11 67.6,145.15 67.33,144.82 67.66,142.83 66.31,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,141.51 79.67,141.15 81.42,140.75 82.21,138.96 82.58,138.9 82.88,139.06 83.74,140.65 85.46,141.01 85.98,141.44 85.79,141.87 84.36,142.8 84.86,144.45 84.79,145.02 84.43,145.15 82.58,143.96 81.22,145.11 80.83,145.15 80.56,144.82 80.89,142.83 79.54,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,141.51 86.28,141.15 88.03,140.75 88.83,138.96 89.19,138.9 89.49,139.06 90.35,140.65 92.07,141.01 92.6,141.44 92.4,141.87 90.98,142.8 91.47,144.45 91.41,145.02 91.04,145.15 89.19,143.96 87.84,145.11 87.44,145.15 87.17,144.82 87.51,142.83 86.15,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,141.51 92.9,141.15 94.65,140.75 95.44,138.96 95.81,138.9 96.1,139.06 96.96,140.65 98.68,141.01 99.21,141.44 99.01,141.87 97.59,142.8 98.09,144.45 98.02,145.02 97.66,145.15 95.81,143.96 94.45,145.11 94.05,145.15 93.79,144.82 94.12,142.83 92.76,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,141.51 99.51,141.15 101.26,140.75 102.06,138.96 102.42,138.9 102.72,139.06 103.58,140.65 105.3,141.01 105.83,141.44 105.63,141.87 104.21,142.8 104.7,144.45 104.64,145.02 104.27,145.15 102.42,143.96 101.06,145.11 100.67,145.15 100.4,144.82 100.73,142.83 99.38,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,141.51 106.12,141.15 107.88,140.75 108.67,138.96 109.03,138.9 109.33,139.06 110.19,140.65 111.91,141.01 112.44,141.44 112.24,141.87 110.82,142.8 111.32,144.45 111.25,145.02 110.89,145.15 109.03,143.96 107.68,145.11 107.28,145.15 107.02,144.82 107.35,142.83 105.99,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,141.51 112.74,141.15 114.49,140.75 115.29,138.96 115.65,138.9 115.95,139.06 116.81,140.65 118.53,141.01 119.06,141.44 118.86,141.87 117.43,142.8 117.93,144.45 117.86,145.02 117.5,145.15 115.65,143.96 114.29,145.11 113.9,145.15 113.63,144.82 113.96,142.83 112.61,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,141.51 119.35,141.15 121.11,140.75 121.9,138.96 122.26,138.9 122.56,139.06 123.42,140.65 125.14,141.01 125.67,141.44 125.47,141.87 124.05,142.8 124.54,144.45 124.48,145.02 124.11,145.15 122.26,143.96 120.91,145.11 120.51,145.15 120.25,144.82 120.58,142.83 119.22,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,141.51 132.58,141.15 134.33,140.75 135.13,138.96 135.49,138.9 135.79,139.06 136.65,140.65 138.37,141.01 138.9,141.44 138.7,141.87 137.28,142.8 137.77,144.45 137.71,145.02 137.34,145.15 135.49,143.96 134.14,145.11 133.74,145.15 133.47,144.82 133.8,142.83 132.45,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,141.51 139.2,141.15 140.95,140.75 141.74,138.96 142.11,138.9 142.4,139.06 143.26,140.65 144.98,141.01 145.51,141.44 145.31,141.87 143.89,142.8 144.39,144.45 144.32,145.02 143.96,145.15 142.11,143.96 140.75,145.11 140.35,145.15 140.09,144.82 140.42,142.83 139.06,141.87 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,148.12 66.44,147.76 68.19,147.36 68.99,145.58 69.35,145.51 69.65,145.68 70.51,147.26 72.23,147.63 72.76,148.06 72.56,148.49 71.14,149.41 71.63,151.07 71.57,151.63 71.2,151.76 69.35,150.57 67.99,151.73 67.6,151.76 67.33,151.43 67.66,149.45 66.31,148.49 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,148.12 73.05,147.76 74.81,147.36 75.6,145.58 75.96,145.51 76.26,145.68 77.12,147.26 78.84,147.63 79.37,148.06 79.17,148.49 77.75,149.41 78.25,151.07 78.18,151.63 77.82,151.76 75.96,150.57 74.61,151.73 74.21,151.76 73.95,151.43 74.28,149.45 72.92,148.49 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,148.12 79.67,147.76 81.42,147.36 82.21,145.58 82.58,145.51 82.88,145.68 83.74,147.26 85.46,147.63 85.98,148.06 85.79,148.49 84.36,149.41 84.86,151.07 84.79,151.63 84.43,151.76 82.58,150.57 81.22,151.73 80.83,151.76 80.56,151.43 80.89,149.45 79.54,148.49 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,148.12 92.9,147.76 94.65,147.36 95.44,145.58 95.81,145.51 96.1,145.68 96.96,147.26 98.68,147.63 99.21,148.06 99.01,148.49 97.59,149.41 98.09,151.07 98.02,151.63 97.66,151.76 95.81,150.57 94.45,151.73 94.05,151.76 93.79,151.43 94.12,149.45 92.76,148.49 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,148.12 112.74,147.76 114.49,147.36 115.29,145.58 115.65,145.51 115.95,145.68 116.81,147.26 118.53,147.63 119.06,148.06 118.86,148.49 117.43,149.41 117.93,151.07 117.86,151.63 117.5,151.76 115.65,150.57 114.29,151.73 113.9,151.76 113.63,151.43 113.96,149.45 112.61,148.49 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,148.12 132.58,147.76 134.33,147.36 135.13,145.58 135.49,145.51 135.79,145.68 136.65,147.26 138.37,147.63 138.9,148.06 138.7,148.49 137.28,149.41 137.77,151.07 137.71,151.63 137.34,151.76 135.49,150.57 134.14,151.73 133.74,151.76 133.47,151.43 133.8,149.45 132.45,148.49 \"\r\n            style=\"fill:url(#gradient80618ad2d9ad494d91b68c40b4cb4fde);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 19,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <pattern\r\n            id=\"hatch83f34b8d7c854d8ca48088966a8ce8fa\"\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"8\"\r\n            height=\"8\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"8\" height=\"8\" fill=\"#C6D9F0\" />\r\n            <rect x=\"0\" y=\"0\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"1\" y=\"0\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"4\" y=\"0\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"5\" y=\"0\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"0\" y=\"1\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"1\" y=\"1\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"4\" y=\"1\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"5\" y=\"1\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"0\" y=\"2\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"1\" y=\"2\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"4\" y=\"2\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"5\" y=\"2\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"0\" y=\"3\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"1\" y=\"3\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"4\" y=\"3\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"5\" y=\"3\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"0\" y=\"4\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"1\" y=\"4\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"4\" y=\"4\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"5\" y=\"4\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"0\" y=\"5\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"1\" y=\"5\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"4\" y=\"5\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"5\" y=\"5\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"0\" y=\"6\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"1\" y=\"6\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"4\" y=\"6\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"5\" y=\"6\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"0\" y=\"7\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"1\" y=\"7\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"4\" y=\"7\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n            <rect x=\"5\" y=\"7\" width=\"1\" height=\"1\" fill=\"#FDEADA\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"19.84,16.54 19.59,17.8 18.87,18.87 17.8,19.59 16.54,19.84 15.27,19.59 14.2,18.87 13.48,17.8 13.23,16.54 13.48,15.27 14.2,14.2 15.27,13.48 16.54,13.23 17.8,13.48 18.87,14.2 19.59,15.27 19.84,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,56.22 19.59,57.49 18.87,58.56 17.8,59.28 16.54,59.53 15.27,59.28 14.2,58.56 13.48,57.49 13.23,56.22 13.48,54.95 14.2,53.88 15.27,53.17 16.54,52.91 17.8,53.17 18.87,53.88 19.59,54.95 19.84,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,16.54 26.2,17.8 25.49,18.87 24.42,19.59 23.15,19.84 21.88,19.59 20.81,18.87 20.09,17.8 19.84,16.54 20.09,15.27 20.81,14.2 21.88,13.48 23.15,13.23 24.42,13.48 25.49,14.2 26.2,15.27 26.46,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,56.22 26.2,57.49 25.49,58.56 24.42,59.28 23.15,59.53 21.88,59.28 20.81,58.56 20.09,57.49 19.84,56.22 20.09,54.95 20.81,53.88 21.88,53.17 23.15,52.91 24.42,53.17 25.49,53.88 26.2,54.95 26.46,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,16.54 32.82,17.8 32.1,18.87 31.03,19.59 29.76,19.84 28.5,19.59 27.43,18.87 26.71,17.8 26.46,16.54 26.71,15.27 27.43,14.2 28.5,13.48 29.76,13.23 31.03,13.48 32.1,14.2 32.82,15.27 33.07,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,56.22 32.82,57.49 32.1,58.56 31.03,59.28 29.76,59.53 28.5,59.28 27.43,58.56 26.71,57.49 26.46,56.22 26.71,54.95 27.43,53.88 28.5,53.17 29.76,52.91 31.03,53.17 32.1,53.88 32.82,54.95 33.07,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,16.54 39.43,17.8 38.72,18.87 37.64,19.59 36.38,19.84 35.11,19.59 34.04,18.87 33.32,17.8 33.07,16.54 33.32,15.27 34.04,14.2 35.11,13.48 36.38,13.23 37.64,13.48 38.72,14.2 39.43,15.27 39.69,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,56.22 39.43,57.49 38.72,58.56 37.64,59.28 36.38,59.53 35.11,59.28 34.04,58.56 33.32,57.49 33.07,56.22 33.32,54.95 34.04,53.88 35.11,53.17 36.38,52.91 37.64,53.17 38.72,53.88 39.43,54.95 39.69,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,16.54 46.05,17.8 45.33,18.87 44.26,19.59 42.99,19.84 41.73,19.59 40.65,18.87 39.94,17.8 39.69,16.54 39.94,15.27 40.65,14.2 41.73,13.48 42.99,13.23 44.26,13.48 45.33,14.2 46.05,15.27 46.3,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,56.22 46.05,57.49 45.33,58.56 44.26,59.28 42.99,59.53 41.73,59.28 40.65,58.56 39.94,57.49 39.69,56.22 39.94,54.95 40.65,53.88 41.73,53.17 42.99,52.91 44.26,53.17 45.33,53.88 46.05,54.95 46.3,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,16.54 52.66,17.8 51.94,18.87 50.87,19.59 49.61,19.84 48.34,19.59 47.27,18.87 46.55,17.8 46.3,16.54 46.55,15.27 47.27,14.2 48.34,13.48 49.61,13.23 50.87,13.48 51.94,14.2 52.66,15.27 52.91,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,56.22 52.66,57.49 51.94,58.56 50.87,59.28 49.61,59.53 48.34,59.28 47.27,58.56 46.55,57.49 46.3,56.22 46.55,54.95 47.27,53.88 48.34,53.17 49.61,52.91 50.87,53.17 51.94,53.88 52.66,54.95 52.91,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,16.54 59.28,17.8 58.56,18.87 57.49,19.59 56.22,19.84 54.95,19.59 53.88,18.87 53.17,17.8 52.91,16.54 53.17,15.27 53.88,14.2 54.95,13.48 56.22,13.23 57.49,13.48 58.56,14.2 59.28,15.27 59.53,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,56.22 59.28,57.49 58.56,58.56 57.49,59.28 56.22,59.53 54.95,59.28 53.88,58.56 53.17,57.49 52.91,56.22 53.17,54.95 53.88,53.88 54.95,53.17 56.22,52.91 57.49,53.17 58.56,53.88 59.28,54.95 59.53,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,23.15 19.59,24.42 18.87,25.49 17.8,26.2 16.54,26.46 15.27,26.2 14.2,25.49 13.48,24.42 13.23,23.15 13.48,21.88 14.2,20.81 15.27,20.09 16.54,19.84 17.8,20.09 18.87,20.81 19.59,21.88 19.84,23.15 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,23.15 59.28,24.42 58.56,25.49 57.49,26.2 56.22,26.46 54.95,26.2 53.88,25.49 53.17,24.42 52.91,23.15 53.17,21.88 53.88,20.81 54.95,20.09 56.22,19.84 57.49,20.09 58.56,20.81 59.28,21.88 59.53,23.15 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,29.76 19.59,31.03 18.87,32.1 17.8,32.82 16.54,33.07 15.27,32.82 14.2,32.1 13.48,31.03 13.23,29.76 13.48,28.5 14.2,27.43 15.27,26.71 16.54,26.46 17.8,26.71 18.87,27.43 19.59,28.5 19.84,29.76 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,29.76 59.28,31.03 58.56,32.1 57.49,32.82 56.22,33.07 54.95,32.82 53.88,32.1 53.17,31.03 52.91,29.76 53.17,28.5 53.88,27.43 54.95,26.71 56.22,26.46 57.49,26.71 58.56,27.43 59.28,28.5 59.53,29.76 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,36.38 19.59,37.64 18.87,38.72 17.8,39.43 16.54,39.69 15.27,39.43 14.2,38.72 13.48,37.64 13.23,36.38 13.48,35.11 14.2,34.04 15.27,33.32 16.54,33.07 17.8,33.32 18.87,34.04 19.59,35.11 19.84,36.38 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,36.38 59.28,37.64 58.56,38.72 57.49,39.43 56.22,39.69 54.95,39.43 53.88,38.72 53.17,37.64 52.91,36.38 53.17,35.11 53.88,34.04 54.95,33.32 56.22,33.07 57.49,33.32 58.56,34.04 59.28,35.11 59.53,36.38 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,42.99 19.59,44.26 18.87,45.33 17.8,46.05 16.54,46.3 15.27,46.05 14.2,45.33 13.48,44.26 13.23,42.99 13.48,41.73 14.2,40.65 15.27,39.94 16.54,39.69 17.8,39.94 18.87,40.65 19.59,41.73 19.84,42.99 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,42.99 59.28,44.26 58.56,45.33 57.49,46.05 56.22,46.3 54.95,46.05 53.88,45.33 53.17,44.26 52.91,42.99 53.17,41.73 53.88,40.65 54.95,39.94 56.22,39.69 57.49,39.94 58.56,40.65 59.28,41.73 59.53,42.99 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,49.61 19.59,50.87 18.87,51.94 17.8,52.66 16.54,52.91 15.27,52.66 14.2,51.94 13.48,50.87 13.23,49.61 13.48,48.34 14.2,47.27 15.27,46.55 16.54,46.3 17.8,46.55 18.87,47.27 19.59,48.34 19.84,49.61 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,49.61 59.28,50.87 58.56,51.94 57.49,52.66 56.22,52.91 54.95,52.66 53.88,51.94 53.17,50.87 52.91,49.61 53.17,48.34 53.88,47.27 54.95,46.55 56.22,46.3 57.49,46.55 58.56,47.27 59.28,48.34 59.53,49.61 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,109.13 19.59,110.4 18.87,111.47 17.8,112.19 16.54,112.44 15.27,112.19 14.2,111.47 13.48,110.4 13.23,109.13 13.48,107.87 14.2,106.8 15.27,106.08 16.54,105.83 17.8,106.08 18.87,106.8 19.59,107.87 19.84,109.13 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,148.82 19.59,150.08 18.87,151.16 17.8,151.87 16.54,152.13 15.27,151.87 14.2,151.16 13.48,150.08 13.23,148.82 13.48,147.55 14.2,146.48 15.27,145.76 16.54,145.51 17.8,145.76 18.87,146.48 19.59,147.55 19.84,148.82 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,109.13 26.2,110.4 25.49,111.47 24.42,112.19 23.15,112.44 21.88,112.19 20.81,111.47 20.09,110.4 19.84,109.13 20.09,107.87 20.81,106.8 21.88,106.08 23.15,105.83 24.42,106.08 25.49,106.8 26.2,107.87 26.46,109.13 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,148.82 26.2,150.08 25.49,151.16 24.42,151.87 23.15,152.13 21.88,151.87 20.81,151.16 20.09,150.08 19.84,148.82 20.09,147.55 20.81,146.48 21.88,145.76 23.15,145.51 24.42,145.76 25.49,146.48 26.2,147.55 26.46,148.82 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,109.13 32.82,110.4 32.1,111.47 31.03,112.19 29.76,112.44 28.5,112.19 27.43,111.47 26.71,110.4 26.46,109.13 26.71,107.87 27.43,106.8 28.5,106.08 29.76,105.83 31.03,106.08 32.1,106.8 32.82,107.87 33.07,109.13 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,148.82 32.82,150.08 32.1,151.16 31.03,151.87 29.76,152.13 28.5,151.87 27.43,151.16 26.71,150.08 26.46,148.82 26.71,147.55 27.43,146.48 28.5,145.76 29.76,145.51 31.03,145.76 32.1,146.48 32.82,147.55 33.07,148.82 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,109.13 39.43,110.4 38.72,111.47 37.64,112.19 36.38,112.44 35.11,112.19 34.04,111.47 33.32,110.4 33.07,109.13 33.32,107.87 34.04,106.8 35.11,106.08 36.38,105.83 37.64,106.08 38.72,106.8 39.43,107.87 39.69,109.13 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,148.82 39.43,150.08 38.72,151.16 37.64,151.87 36.38,152.13 35.11,151.87 34.04,151.16 33.32,150.08 33.07,148.82 33.32,147.55 34.04,146.48 35.11,145.76 36.38,145.51 37.64,145.76 38.72,146.48 39.43,147.55 39.69,148.82 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,109.13 46.05,110.4 45.33,111.47 44.26,112.19 42.99,112.44 41.73,112.19 40.65,111.47 39.94,110.4 39.69,109.13 39.94,107.87 40.65,106.8 41.73,106.08 42.99,105.83 44.26,106.08 45.33,106.8 46.05,107.87 46.3,109.13 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,148.82 46.05,150.08 45.33,151.16 44.26,151.87 42.99,152.13 41.73,151.87 40.65,151.16 39.94,150.08 39.69,148.82 39.94,147.55 40.65,146.48 41.73,145.76 42.99,145.51 44.26,145.76 45.33,146.48 46.05,147.55 46.3,148.82 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,109.13 52.66,110.4 51.94,111.47 50.87,112.19 49.61,112.44 48.34,112.19 47.27,111.47 46.55,110.4 46.3,109.13 46.55,107.87 47.27,106.8 48.34,106.08 49.61,105.83 50.87,106.08 51.94,106.8 52.66,107.87 52.91,109.13 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,148.82 52.66,150.08 51.94,151.16 50.87,151.87 49.61,152.13 48.34,151.87 47.27,151.16 46.55,150.08 46.3,148.82 46.55,147.55 47.27,146.48 48.34,145.76 49.61,145.51 50.87,145.76 51.94,146.48 52.66,147.55 52.91,148.82 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,109.13 59.28,110.4 58.56,111.47 57.49,112.19 56.22,112.44 54.95,112.19 53.88,111.47 53.17,110.4 52.91,109.13 53.17,107.87 53.88,106.8 54.95,106.08 56.22,105.83 57.49,106.08 58.56,106.8 59.28,107.87 59.53,109.13 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,148.82 59.28,150.08 58.56,151.16 57.49,151.87 56.22,152.13 54.95,151.87 53.88,151.16 53.17,150.08 52.91,148.82 53.17,147.55 53.88,146.48 54.95,145.76 56.22,145.51 57.49,145.76 58.56,146.48 59.28,147.55 59.53,148.82 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,115.75 19.59,117.01 18.87,118.09 17.8,118.8 16.54,119.06 15.27,118.8 14.2,118.09 13.48,117.01 13.23,115.75 13.48,114.48 14.2,113.41 15.27,112.69 16.54,112.44 17.8,112.69 18.87,113.41 19.59,114.48 19.84,115.75 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,115.75 59.28,117.01 58.56,118.09 57.49,118.8 56.22,119.06 54.95,118.8 53.88,118.09 53.17,117.01 52.91,115.75 53.17,114.48 53.88,113.41 54.95,112.69 56.22,112.44 57.49,112.69 58.56,113.41 59.28,114.48 59.53,115.75 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,122.36 19.59,123.63 18.87,124.7 17.8,125.42 16.54,125.67 15.27,125.42 14.2,124.7 13.48,123.63 13.23,122.36 13.48,121.1 14.2,120.02 15.27,119.31 16.54,119.06 17.8,119.31 18.87,120.02 19.59,121.1 19.84,122.36 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,122.36 59.28,123.63 58.56,124.7 57.49,125.42 56.22,125.67 54.95,125.42 53.88,124.7 53.17,123.63 52.91,122.36 53.17,121.1 53.88,120.02 54.95,119.31 56.22,119.06 57.49,119.31 58.56,120.02 59.28,121.1 59.53,122.36 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,128.98 19.59,130.24 18.87,131.31 17.8,132.03 16.54,132.28 15.27,132.03 14.2,131.31 13.48,130.24 13.23,128.98 13.48,127.71 14.2,126.64 15.27,125.92 16.54,125.67 17.8,125.92 18.87,126.64 19.59,127.71 19.84,128.98 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,128.98 59.28,130.24 58.56,131.31 57.49,132.03 56.22,132.28 54.95,132.03 53.88,131.31 53.17,130.24 52.91,128.98 53.17,127.71 53.88,126.64 54.95,125.92 56.22,125.67 57.49,125.92 58.56,126.64 59.28,127.71 59.53,128.98 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,135.59 19.59,136.86 18.87,137.93 17.8,138.65 16.54,138.9 15.27,138.65 14.2,137.93 13.48,136.86 13.23,135.59 13.48,134.32 14.2,133.25 15.27,132.54 16.54,132.28 17.8,132.54 18.87,133.25 19.59,134.32 19.84,135.59 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,135.59 59.28,136.86 58.56,137.93 57.49,138.65 56.22,138.9 54.95,138.65 53.88,137.93 53.17,136.86 52.91,135.59 53.17,134.32 53.88,133.25 54.95,132.54 56.22,132.28 57.49,132.54 58.56,133.25 59.28,134.32 59.53,135.59 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,142.2 19.59,143.47 18.87,144.54 17.8,145.26 16.54,145.51 15.27,145.26 14.2,144.54 13.48,143.47 13.23,142.2 13.48,140.94 14.2,139.87 15.27,139.15 16.54,138.9 17.8,139.15 18.87,139.87 19.59,140.94 19.84,142.2 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,142.2 59.28,143.47 58.56,144.54 57.49,145.26 56.22,145.51 54.95,145.26 53.88,144.54 53.17,143.47 52.91,142.2 53.17,140.94 53.88,139.87 54.95,139.15 56.22,138.9 57.49,139.15 58.56,139.87 59.28,140.94 59.53,142.2 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,16.54 112.19,17.8 111.47,18.87 110.4,19.59 109.13,19.84 107.87,19.59 106.8,18.87 106.08,17.8 105.83,16.54 106.08,15.27 106.8,14.2 107.87,13.48 109.13,13.23 110.4,13.48 111.47,14.2 112.19,15.27 112.44,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,56.22 112.19,57.49 111.47,58.56 110.4,59.28 109.13,59.53 107.87,59.28 106.8,58.56 106.08,57.49 105.83,56.22 106.08,54.95 106.8,53.88 107.87,53.17 109.13,52.91 110.4,53.17 111.47,53.88 112.19,54.95 112.44,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,16.54 118.8,17.8 118.09,18.87 117.01,19.59 115.75,19.84 114.48,19.59 113.41,18.87 112.69,17.8 112.44,16.54 112.69,15.27 113.41,14.2 114.48,13.48 115.75,13.23 117.01,13.48 118.09,14.2 118.8,15.27 119.06,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,56.22 118.8,57.49 118.09,58.56 117.01,59.28 115.75,59.53 114.48,59.28 113.41,58.56 112.69,57.49 112.44,56.22 112.69,54.95 113.41,53.88 114.48,53.17 115.75,52.91 117.01,53.17 118.09,53.88 118.8,54.95 119.06,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,16.54 125.42,17.8 124.7,18.87 123.63,19.59 122.36,19.84 121.1,19.59 120.02,18.87 119.31,17.8 119.06,16.54 119.31,15.27 120.02,14.2 121.1,13.48 122.36,13.23 123.63,13.48 124.7,14.2 125.42,15.27 125.67,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,56.22 125.42,57.49 124.7,58.56 123.63,59.28 122.36,59.53 121.1,59.28 120.02,58.56 119.31,57.49 119.06,56.22 119.31,54.95 120.02,53.88 121.1,53.17 122.36,52.91 123.63,53.17 124.7,53.88 125.42,54.95 125.67,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,16.54 132.03,17.8 131.31,18.87 130.24,19.59 128.98,19.84 127.71,19.59 126.64,18.87 125.92,17.8 125.67,16.54 125.92,15.27 126.64,14.2 127.71,13.48 128.98,13.23 130.24,13.48 131.31,14.2 132.03,15.27 132.28,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,56.22 132.03,57.49 131.31,58.56 130.24,59.28 128.98,59.53 127.71,59.28 126.64,58.56 125.92,57.49 125.67,56.22 125.92,54.95 126.64,53.88 127.71,53.17 128.98,52.91 130.24,53.17 131.31,53.88 132.03,54.95 132.28,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,16.54 138.65,17.8 137.93,18.87 136.86,19.59 135.59,19.84 134.32,19.59 133.25,18.87 132.54,17.8 132.28,16.54 132.54,15.27 133.25,14.2 134.32,13.48 135.59,13.23 136.86,13.48 137.93,14.2 138.65,15.27 138.9,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,56.22 138.65,57.49 137.93,58.56 136.86,59.28 135.59,59.53 134.32,59.28 133.25,58.56 132.54,57.49 132.28,56.22 132.54,54.95 133.25,53.88 134.32,53.17 135.59,52.91 136.86,53.17 137.93,53.88 138.65,54.95 138.9,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,16.54 145.26,17.8 144.54,18.87 143.47,19.59 142.2,19.84 140.94,19.59 139.87,18.87 139.15,17.8 138.9,16.54 139.15,15.27 139.87,14.2 140.94,13.48 142.2,13.23 143.47,13.48 144.54,14.2 145.26,15.27 145.51,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,56.22 145.26,57.49 144.54,58.56 143.47,59.28 142.2,59.53 140.94,59.28 139.87,58.56 139.15,57.49 138.9,56.22 139.15,54.95 139.87,53.88 140.94,53.17 142.2,52.91 143.47,53.17 144.54,53.88 145.26,54.95 145.51,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,16.54 151.87,17.8 151.16,18.87 150.08,19.59 148.82,19.84 147.55,19.59 146.48,18.87 145.76,17.8 145.51,16.54 145.76,15.27 146.48,14.2 147.55,13.48 148.82,13.23 150.08,13.48 151.16,14.2 151.87,15.27 152.13,16.54 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,56.22 151.87,57.49 151.16,58.56 150.08,59.28 148.82,59.53 147.55,59.28 146.48,58.56 145.76,57.49 145.51,56.22 145.76,54.95 146.48,53.88 147.55,53.17 148.82,52.91 150.08,53.17 151.16,53.88 151.87,54.95 152.13,56.22 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,23.15 112.19,24.42 111.47,25.49 110.4,26.2 109.13,26.46 107.87,26.2 106.8,25.49 106.08,24.42 105.83,23.15 106.08,21.88 106.8,20.81 107.87,20.09 109.13,19.84 110.4,20.09 111.47,20.81 112.19,21.88 112.44,23.15 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,23.15 151.87,24.42 151.16,25.49 150.08,26.2 148.82,26.46 147.55,26.2 146.48,25.49 145.76,24.42 145.51,23.15 145.76,21.88 146.48,20.81 147.55,20.09 148.82,19.84 150.08,20.09 151.16,20.81 151.87,21.88 152.13,23.15 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,29.76 112.19,31.03 111.47,32.1 110.4,32.82 109.13,33.07 107.87,32.82 106.8,32.1 106.08,31.03 105.83,29.76 106.08,28.5 106.8,27.43 107.87,26.71 109.13,26.46 110.4,26.71 111.47,27.43 112.19,28.5 112.44,29.76 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,29.76 151.87,31.03 151.16,32.1 150.08,32.82 148.82,33.07 147.55,32.82 146.48,32.1 145.76,31.03 145.51,29.76 145.76,28.5 146.48,27.43 147.55,26.71 148.82,26.46 150.08,26.71 151.16,27.43 151.87,28.5 152.13,29.76 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,36.38 112.19,37.64 111.47,38.72 110.4,39.43 109.13,39.69 107.87,39.43 106.8,38.72 106.08,37.64 105.83,36.38 106.08,35.11 106.8,34.04 107.87,33.32 109.13,33.07 110.4,33.32 111.47,34.04 112.19,35.11 112.44,36.38 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,36.38 151.87,37.64 151.16,38.72 150.08,39.43 148.82,39.69 147.55,39.43 146.48,38.72 145.76,37.64 145.51,36.38 145.76,35.11 146.48,34.04 147.55,33.32 148.82,33.07 150.08,33.32 151.16,34.04 151.87,35.11 152.13,36.38 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,42.99 112.19,44.26 111.47,45.33 110.4,46.05 109.13,46.3 107.87,46.05 106.8,45.33 106.08,44.26 105.83,42.99 106.08,41.73 106.8,40.65 107.87,39.94 109.13,39.69 110.4,39.94 111.47,40.65 112.19,41.73 112.44,42.99 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,42.99 151.87,44.26 151.16,45.33 150.08,46.05 148.82,46.3 147.55,46.05 146.48,45.33 145.76,44.26 145.51,42.99 145.76,41.73 146.48,40.65 147.55,39.94 148.82,39.69 150.08,39.94 151.16,40.65 151.87,41.73 152.13,42.99 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,49.61 112.19,50.87 111.47,51.94 110.4,52.66 109.13,52.91 107.87,52.66 106.8,51.94 106.08,50.87 105.83,49.61 106.08,48.34 106.8,47.27 107.87,46.55 109.13,46.3 110.4,46.55 111.47,47.27 112.19,48.34 112.44,49.61 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,49.61 151.87,50.87 151.16,51.94 150.08,52.66 148.82,52.91 147.55,52.66 146.48,51.94 145.76,50.87 145.51,49.61 145.76,48.34 146.48,47.27 147.55,46.55 148.82,46.3 150.08,46.55 151.16,47.27 151.87,48.34 152.13,49.61 \"\r\n            style=\"fill:url(#hatch83f34b8d7c854d8ca48088966a8ce8fa);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient0fffa2ee11214e519944c5c7756592ab\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"23.1471699955989\"\r\n            y1=\"78.5144232839259\"\r\n            x2=\"142.207158159919\"\r\n            y2=\"86.8399086862889\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#B2A1C7\" />\r\n            <stop offset=\"100%\" stop-color=\"#FFFFFF\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"26.79,29.43 27.01,28.29 27.66,27.33 28.62,26.68 29.76,26.46 30.9,26.68 31.87,27.33 32.51,28.29 32.74,29.43 32.74,43.32 32.51,44.46 31.87,45.43 30.9,46.07 29.76,46.3 28.62,46.07 27.66,45.43 27.01,44.46 26.79,43.32 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <polygon\r\n            points=\"33.4,29.43 33.63,28.29 34.27,27.33 35.24,26.68 36.38,26.46 37.52,26.68 38.48,27.33 39.13,28.29 39.35,29.43 39.35,43.32 39.13,44.46 38.48,45.43 37.52,46.07 36.38,46.3 35.24,46.07 34.27,45.43 33.63,44.46 33.4,43.32 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <polygon\r\n            points=\"40.02,29.43 40.24,28.29 40.89,27.33 41.85,26.68 42.99,26.46 44.13,26.68 45.1,27.33 45.74,28.29 45.97,29.43 45.97,43.32 45.74,44.46 45.1,45.43 44.13,46.07 42.99,46.3 41.85,46.07 40.89,45.43 40.24,44.46 40.02,43.32 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <polygon\r\n            points=\"26.79,122.03 27.01,120.89 27.66,119.93 28.62,119.28 29.76,119.06 30.9,119.28 31.87,119.93 32.51,120.89 32.74,122.03 32.74,135.92 32.51,137.06 31.87,138.03 30.9,138.67 29.76,138.9 28.62,138.67 27.66,138.03 27.01,137.06 26.79,135.92 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <polygon\r\n            points=\"33.4,122.03 33.63,120.89 34.27,119.93 35.24,119.28 36.38,119.06 37.52,119.28 38.48,119.93 39.13,120.89 39.35,122.03 39.35,135.92 39.13,137.06 38.48,138.03 37.52,138.67 36.38,138.9 35.24,138.67 34.27,138.03 33.63,137.06 33.4,135.92 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <polygon\r\n            points=\"40.02,122.03 40.24,120.89 40.89,119.93 41.85,119.28 42.99,119.06 44.13,119.28 45.1,119.93 45.74,120.89 45.97,122.03 45.97,135.92 45.74,137.06 45.1,138.03 44.13,138.67 42.99,138.9 41.85,138.67 40.89,138.03 40.24,137.06 40.02,135.92 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <polygon\r\n            points=\"119.39,29.43 119.61,28.29 120.26,27.33 121.22,26.68 122.36,26.46 123.5,26.68 124.47,27.33 125.11,28.29 125.34,29.43 125.34,43.32 125.11,44.46 124.47,45.43 123.5,46.07 122.36,46.3 121.22,46.07 120.26,45.43 119.61,44.46 119.39,43.32 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <polygon\r\n            points=\"126,29.43 126.23,28.29 126.87,27.33 127.84,26.68 128.98,26.46 130.12,26.68 131.08,27.33 131.73,28.29 131.95,29.43 131.95,43.32 131.73,44.46 131.08,45.43 130.12,46.07 128.98,46.3 127.84,46.07 126.87,45.43 126.23,44.46 126,43.32 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <polygon\r\n            points=\"132.61,29.43 132.84,28.29 133.49,27.33 134.45,26.68 135.59,26.46 136.73,26.68 137.7,27.33 138.34,28.29 138.57,29.43 138.57,43.32 138.34,44.46 137.7,45.43 136.73,46.07 135.59,46.3 134.45,46.07 133.49,45.43 132.84,44.46 132.61,43.32 \"\r\n            style=\"fill:url(#gradient0fffa2ee11214e519944c5c7756592ab);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient6a46f7652d584c37a6ba75a90d08d89b\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"10.4830545936657\"\r\n            y1=\"78.893629314992\"\r\n            x2=\"154.871269747155\"\r\n            y2=\"86.4606950258283\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#00E278\" />\r\n            <stop offset=\"50%\" stop-color=\"#FFFF00\" />\r\n            <stop offset=\"100%\" stop-color=\"#00E278\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"16.54,72.09 15.52,71.89 14.66,71.32 14.09,70.46 13.89,69.45 14.09,68.44 14.66,67.58 15.52,67 16.54,66.8 42.99,66.8 44,67 44.86,67.58 45.44,68.44 45.64,69.45 45.44,70.46 44.86,71.32 44,71.89 42.99,72.09 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"56.22,72.09 55.21,71.89 54.35,71.32 53.78,70.46 53.57,69.45 53.78,68.44 54.35,67.58 55.21,67 56.22,66.8 69.45,66.8 70.46,67 71.32,67.58 71.89,68.44 72.09,69.45 71.89,70.46 71.32,71.32 70.46,71.89 69.45,72.09 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"102.52,72.09 101.51,71.89 100.65,71.32 100.08,70.46 99.87,69.45 100.08,68.44 100.65,67.58 101.51,67 102.52,66.8 102.52,66.8 103.53,67 104.39,67.58 104.96,68.44 105.17,69.45 104.96,70.46 104.39,71.32 103.53,71.89 102.52,72.09 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,72.09 114.74,71.89 113.88,71.32 113.3,70.46 113.1,69.45 113.3,68.44 113.88,67.58 114.74,67 115.75,66.8 115.75,66.8 116.76,67 117.62,67.58 118.19,68.44 118.39,69.45 118.19,70.46 117.62,71.32 116.76,71.89 115.75,72.09 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,72.09 127.96,71.89 127.11,71.32 126.53,70.46 126.33,69.45 126.53,68.44 127.11,67.58 127.96,67 128.98,66.8 128.98,66.8 129.99,67 130.85,67.58 131.42,68.44 131.62,69.45 131.42,70.46 130.85,71.32 129.99,71.89 128.98,72.09 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"142.2,72.09 141.19,71.89 140.33,71.32 139.76,70.46 139.56,69.45 139.76,68.44 140.33,67.58 141.19,67 142.2,66.8 142.2,66.8 143.22,67 144.08,67.58 144.65,68.44 144.85,69.45 144.65,70.46 144.08,71.32 143.22,71.89 142.2,72.09 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"16.54,78.71 15.52,78.51 14.66,77.93 14.09,77.08 13.89,76.06 14.09,75.05 14.66,74.19 15.52,73.62 16.54,73.42 29.76,73.42 30.78,73.62 31.63,74.19 32.21,75.05 32.41,76.06 32.21,77.08 31.63,77.93 30.78,78.51 29.76,78.71 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"49.61,78.71 48.59,78.51 47.74,77.93 47.16,77.08 46.96,76.06 47.16,75.05 47.74,74.19 48.59,73.62 49.61,73.42 49.61,73.42 50.62,73.62 51.48,74.19 52.05,75.05 52.25,76.06 52.05,77.08 51.48,77.93 50.62,78.51 49.61,78.71 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"62.83,78.71 61.82,78.51 60.96,77.93 60.39,77.08 60.19,76.06 60.39,75.05 60.96,74.19 61.82,73.62 62.83,73.42 62.83,73.42 63.85,73.62 64.71,74.19 65.28,75.05 65.48,76.06 65.28,77.08 64.71,77.93 63.85,78.51 62.83,78.71 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,78.71 75.05,78.51 74.19,77.93 73.62,77.08 73.42,76.06 73.62,75.05 74.19,74.19 75.05,73.62 76.06,73.42 76.06,73.42 77.08,73.62 77.93,74.19 78.51,75.05 78.71,76.06 78.51,77.08 77.93,77.93 77.08,78.51 76.06,78.71 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,78.71 88.28,78.51 87.42,77.93 86.85,77.08 86.65,76.06 86.85,75.05 87.42,74.19 88.28,73.62 89.29,73.42 109.13,73.42 110.15,73.62 111,74.19 111.58,75.05 111.78,76.06 111.58,77.08 111,77.93 110.15,78.51 109.13,78.71 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,78.71 127.96,78.51 127.11,77.93 126.53,77.08 126.33,76.06 126.53,75.05 127.11,74.19 127.96,73.62 128.98,73.42 148.82,73.42 149.83,73.62 150.69,74.19 151.26,75.05 151.46,76.06 151.26,77.08 150.69,77.93 149.83,78.51 148.82,78.71 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"29.76,85.32 28.75,85.12 27.89,84.55 27.32,83.69 27.12,82.68 27.32,81.66 27.89,80.81 28.75,80.23 29.76,80.03 29.76,80.03 30.78,80.23 31.63,80.81 32.21,81.66 32.41,82.68 32.21,83.69 31.63,84.55 30.78,85.12 29.76,85.32 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"42.99,85.32 41.98,85.12 41.12,84.55 40.55,83.69 40.35,82.68 40.55,81.66 41.12,80.81 41.98,80.23 42.99,80.03 56.22,80.03 57.23,80.23 58.09,80.81 58.66,81.66 58.87,82.68 58.66,83.69 58.09,84.55 57.23,85.12 56.22,85.32 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,85.32 68.44,85.12 67.58,84.55 67,83.69 66.8,82.68 67,81.66 67.58,80.81 68.44,80.23 69.45,80.03 76.06,80.03 77.08,80.23 77.93,80.81 78.51,81.66 78.71,82.68 78.51,83.69 77.93,84.55 77.08,85.12 76.06,85.32 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,85.32 94.89,85.12 94.03,84.55 93.46,83.69 93.26,82.68 93.46,81.66 94.03,80.81 94.89,80.23 95.91,80.03 95.91,80.03 96.92,80.23 97.78,80.81 98.35,81.66 98.55,82.68 98.35,83.69 97.78,84.55 96.92,85.12 95.91,85.32 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"109.13,85.32 108.12,85.12 107.26,84.55 106.69,83.69 106.49,82.68 106.69,81.66 107.26,80.81 108.12,80.23 109.13,80.03 115.75,80.03 116.76,80.23 117.62,80.81 118.19,81.66 118.39,82.68 118.19,83.69 117.62,84.55 116.76,85.12 115.75,85.32 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,85.32 127.96,85.12 127.11,84.55 126.53,83.69 126.33,82.68 126.53,81.66 127.11,80.81 127.96,80.23 128.98,80.03 128.98,80.03 129.99,80.23 130.85,80.81 131.42,81.66 131.62,82.68 131.42,83.69 130.85,84.55 129.99,85.12 128.98,85.32 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"148.82,85.32 147.81,85.12 146.95,84.55 146.37,83.69 146.17,82.68 146.37,81.66 146.95,80.81 147.81,80.23 148.82,80.03 148.82,80.03 149.83,80.23 150.69,80.81 151.26,81.66 151.46,82.68 151.26,83.69 150.69,84.55 149.83,85.12 148.82,85.32 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"16.54,91.94 15.52,91.74 14.66,91.16 14.09,90.3 13.89,89.29 14.09,88.28 14.66,87.42 15.52,86.85 16.54,86.65 16.54,86.65 17.55,86.85 18.41,87.42 18.98,88.28 19.18,89.29 18.98,90.3 18.41,91.16 17.55,91.74 16.54,91.94 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"36.38,91.94 35.37,91.74 34.51,91.16 33.93,90.3 33.73,89.29 33.93,88.28 34.51,87.42 35.37,86.85 36.38,86.65 36.38,86.65 37.39,86.85 38.25,87.42 38.82,88.28 39.02,89.29 38.82,90.3 38.25,91.16 37.39,91.74 36.38,91.94 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,91.94 88.28,91.74 87.42,91.16 86.85,90.3 86.65,89.29 86.85,88.28 87.42,87.42 88.28,86.85 89.29,86.65 109.13,86.65 110.15,86.85 111,87.42 111.58,88.28 111.78,89.29 111.58,90.3 111,91.16 110.15,91.74 109.13,91.94 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,91.94 134.58,91.74 133.72,91.16 133.15,90.3 132.94,89.29 133.15,88.28 133.72,87.42 134.58,86.85 135.59,86.65 148.82,86.65 149.83,86.85 150.69,87.42 151.26,88.28 151.46,89.29 151.26,90.3 150.69,91.16 149.83,91.74 148.82,91.94 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"23.15,98.55 22.14,98.35 21.28,97.78 20.71,96.92 20.5,95.91 20.71,94.89 21.28,94.03 22.14,93.46 23.15,93.26 23.15,93.26 24.16,93.46 25.02,94.03 25.59,94.89 25.8,95.91 25.59,96.92 25.02,97.78 24.16,98.35 23.15,98.55 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"36.38,98.55 35.37,98.35 34.51,97.78 33.93,96.92 33.73,95.91 33.93,94.89 34.51,94.03 35.37,93.46 36.38,93.26 42.99,93.26 44,93.46 44.86,94.03 45.44,94.89 45.64,95.91 45.44,96.92 44.86,97.78 44,98.35 42.99,98.55 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"56.22,98.55 55.21,98.35 54.35,97.78 53.78,96.92 53.57,95.91 53.78,94.89 54.35,94.03 55.21,93.46 56.22,93.26 56.22,93.26 57.23,93.46 58.09,94.03 58.66,94.89 58.87,95.91 58.66,96.92 58.09,97.78 57.23,98.35 56.22,98.55 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,98.55 68.44,98.35 67.58,97.78 67,96.92 66.8,95.91 67,94.89 67.58,94.03 68.44,93.46 69.45,93.26 69.45,93.26 70.46,93.46 71.32,94.03 71.89,94.89 72.09,95.91 71.89,96.92 71.32,97.78 70.46,98.35 69.45,98.55 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,98.55 94.89,98.35 94.03,97.78 93.46,96.92 93.26,95.91 93.46,94.89 94.03,94.03 94.89,93.46 95.91,93.26 95.91,93.26 96.92,93.46 97.78,94.03 98.35,94.89 98.55,95.91 98.35,96.92 97.78,97.78 96.92,98.35 95.91,98.55 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,98.55 114.74,98.35 113.88,97.78 113.3,96.92 113.1,95.91 113.3,94.89 113.88,94.03 114.74,93.46 115.75,93.26 115.75,93.26 116.76,93.46 117.62,94.03 118.19,94.89 118.39,95.91 118.19,96.92 117.62,97.78 116.76,98.35 115.75,98.55 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"142.2,98.55 141.19,98.35 140.33,97.78 139.76,96.92 139.56,95.91 139.76,94.89 140.33,94.03 141.19,93.46 142.2,93.26 142.2,93.26 143.22,93.46 144.08,94.03 144.65,94.89 144.85,95.91 144.65,96.92 144.08,97.78 143.22,98.35 142.2,98.55 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,105.17 114.74,104.96 113.88,104.39 113.3,103.53 113.1,102.52 113.3,101.51 113.88,100.65 114.74,100.08 115.75,99.87 115.75,99.87 116.76,100.08 117.62,100.65 118.19,101.51 118.39,102.52 118.19,103.53 117.62,104.39 116.76,104.96 115.75,105.17 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,105.17 134.58,104.96 133.72,104.39 133.15,103.53 132.94,102.52 133.15,101.51 133.72,100.65 134.58,100.08 135.59,99.87 135.59,99.87 136.6,100.08 137.46,100.65 138.03,101.51 138.24,102.52 138.03,103.53 137.46,104.39 136.6,104.96 135.59,105.17 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"122.36,111.78 121.35,111.58 120.49,111 119.92,110.15 119.72,109.13 119.92,108.12 120.49,107.26 121.35,106.69 122.36,106.49 128.98,106.49 129.99,106.69 130.85,107.26 131.42,108.12 131.62,109.13 131.42,110.15 130.85,111 129.99,111.58 128.98,111.78 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"142.2,111.78 141.19,111.58 140.33,111 139.76,110.15 139.56,109.13 139.76,108.12 140.33,107.26 141.19,106.69 142.2,106.49 148.82,106.49 149.83,106.69 150.69,107.26 151.26,108.12 151.46,109.13 151.26,110.15 150.69,111 149.83,111.58 148.82,111.78 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,118.39 114.74,118.19 113.88,117.62 113.3,116.76 113.1,115.75 113.3,114.74 113.88,113.88 114.74,113.3 115.75,113.1 122.36,113.1 123.37,113.3 124.23,113.88 124.81,114.74 125.01,115.75 124.81,116.76 124.23,117.62 123.37,118.19 122.36,118.39 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,118.39 134.58,118.19 133.72,117.62 133.15,116.76 132.94,115.75 133.15,114.74 133.72,113.88 134.58,113.3 135.59,113.1 135.59,113.1 136.6,113.3 137.46,113.88 138.03,114.74 138.24,115.75 138.03,116.76 137.46,117.62 136.6,118.19 135.59,118.39 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"148.82,118.39 147.81,118.19 146.95,117.62 146.37,116.76 146.17,115.75 146.37,114.74 146.95,113.88 147.81,113.3 148.82,113.1 148.82,113.1 149.83,113.3 150.69,113.88 151.26,114.74 151.46,115.75 151.26,116.76 150.69,117.62 149.83,118.19 148.82,118.39 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"122.36,125.01 121.35,124.81 120.49,124.23 119.92,123.37 119.72,122.36 119.92,121.35 120.49,120.49 121.35,119.92 122.36,119.72 135.59,119.72 136.6,119.92 137.46,120.49 138.03,121.35 138.24,122.36 138.03,123.37 137.46,124.23 136.6,124.81 135.59,125.01 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,131.62 127.96,131.42 127.11,130.85 126.53,129.99 126.33,128.98 126.53,127.96 127.11,127.11 127.96,126.53 128.98,126.33 135.59,126.33 136.6,126.53 137.46,127.11 138.03,127.96 138.24,128.98 138.03,129.99 137.46,130.85 136.6,131.42 135.59,131.62 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,138.24 134.58,138.03 133.72,137.46 133.15,136.6 132.94,135.59 133.15,134.58 133.72,133.72 134.58,133.15 135.59,132.94 135.59,132.94 136.6,133.15 137.46,133.72 138.03,134.58 138.24,135.59 138.03,136.6 137.46,137.46 136.6,138.03 135.59,138.24 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"142.2,144.85 141.19,144.65 140.33,144.08 139.76,143.22 139.56,142.2 139.76,141.19 140.33,140.33 141.19,139.76 142.2,139.56 142.2,139.56 143.22,139.76 144.08,140.33 144.65,141.19 144.85,142.2 144.65,143.22 144.08,144.08 143.22,144.65 142.2,144.85 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,23.15 67,22.14 67.58,21.28 68.44,20.71 69.45,20.5 70.46,20.71 71.32,21.28 71.89,22.14 72.09,23.15 72.09,23.15 71.89,24.16 71.32,25.02 70.46,25.59 69.45,25.8 68.44,25.59 67.58,25.02 67,24.16 66.8,23.15 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,36.38 67,35.37 67.58,34.51 68.44,33.93 69.45,33.73 70.46,33.93 71.32,34.51 71.89,35.37 72.09,36.38 72.09,36.38 71.89,37.39 71.32,38.25 70.46,38.82 69.45,39.02 68.44,38.82 67.58,38.25 67,37.39 66.8,36.38 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,49.61 67,48.59 67.58,47.74 68.44,47.16 69.45,46.96 70.46,47.16 71.32,47.74 71.89,48.59 72.09,49.61 72.09,56.22 71.89,57.23 71.32,58.09 70.46,58.66 69.45,58.87 68.44,58.66 67.58,58.09 67,57.23 66.8,56.22 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,95.91 67,94.89 67.58,94.03 68.44,93.46 69.45,93.26 70.46,93.46 71.32,94.03 71.89,94.89 72.09,95.91 72.09,109.13 71.89,110.15 71.32,111 70.46,111.58 69.45,111.78 68.44,111.58 67.58,111 67,110.15 66.8,109.13 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,122.36 67,121.35 67.58,120.49 68.44,119.92 69.45,119.72 70.46,119.92 71.32,120.49 71.89,121.35 72.09,122.36 72.09,148.82 71.89,149.83 71.32,150.69 70.46,151.26 69.45,151.46 68.44,151.26 67.58,150.69 67,149.83 66.8,148.82 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,23.15 73.62,22.14 74.19,21.28 75.05,20.71 76.06,20.5 77.08,20.71 77.93,21.28 78.51,22.14 78.71,23.15 78.71,23.15 78.51,24.16 77.93,25.02 77.08,25.59 76.06,25.8 75.05,25.59 74.19,25.02 73.62,24.16 73.42,23.15 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,36.38 73.62,35.37 74.19,34.51 75.05,33.93 76.06,33.73 77.08,33.93 77.93,34.51 78.51,35.37 78.71,36.38 78.71,42.99 78.51,44 77.93,44.86 77.08,45.44 76.06,45.64 75.05,45.44 74.19,44.86 73.62,44 73.42,42.99 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,62.83 73.62,61.82 74.19,60.96 75.05,60.39 76.06,60.19 77.08,60.39 77.93,60.96 78.51,61.82 78.71,62.83 78.71,62.83 78.51,63.85 77.93,64.71 77.08,65.28 76.06,65.48 75.05,65.28 74.19,64.71 73.62,63.85 73.42,62.83 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,95.91 73.62,94.89 74.19,94.03 75.05,93.46 76.06,93.26 77.08,93.46 77.93,94.03 78.51,94.89 78.71,95.91 78.71,95.91 78.51,96.92 77.93,97.78 77.08,98.35 76.06,98.55 75.05,98.35 74.19,97.78 73.62,96.92 73.42,95.91 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,115.75 73.62,114.74 74.19,113.88 75.05,113.3 76.06,113.1 77.08,113.3 77.93,113.88 78.51,114.74 78.71,115.75 78.71,135.59 78.51,136.6 77.93,137.46 77.08,138.03 76.06,138.24 75.05,138.03 74.19,137.46 73.62,136.6 73.42,135.59 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,148.82 73.62,147.81 74.19,146.95 75.05,146.37 76.06,146.17 77.08,146.37 77.93,146.95 78.51,147.81 78.71,148.82 78.71,148.82 78.51,149.83 77.93,150.69 77.08,151.26 76.06,151.46 75.05,151.26 74.19,150.69 73.62,149.83 73.42,148.82 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,16.54 80.23,15.52 80.81,14.66 81.66,14.09 82.68,13.89 83.69,14.09 84.55,14.66 85.12,15.52 85.32,16.54 85.32,29.76 85.12,30.78 84.55,31.63 83.69,32.21 82.68,32.41 81.66,32.21 80.81,31.63 80.23,30.78 80.03,29.76 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,56.22 80.23,55.21 80.81,54.35 81.66,53.78 82.68,53.57 83.69,53.78 84.55,54.35 85.12,55.21 85.32,56.22 85.32,56.22 85.12,57.23 84.55,58.09 83.69,58.66 82.68,58.87 81.66,58.66 80.81,58.09 80.23,57.23 80.03,56.22 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,102.52 80.23,101.51 80.81,100.65 81.66,100.08 82.68,99.87 83.69,100.08 84.55,100.65 85.12,101.51 85.32,102.52 85.32,102.52 85.12,103.53 84.55,104.39 83.69,104.96 82.68,105.17 81.66,104.96 80.81,104.39 80.23,103.53 80.03,102.52 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,115.75 80.23,114.74 80.81,113.88 81.66,113.3 82.68,113.1 83.69,113.3 84.55,113.88 85.12,114.74 85.32,115.75 85.32,122.36 85.12,123.37 84.55,124.23 83.69,124.81 82.68,125.01 81.66,124.81 80.81,124.23 80.23,123.37 80.03,122.36 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"80.03,142.2 80.23,141.19 80.81,140.33 81.66,139.76 82.68,139.56 83.69,139.76 84.55,140.33 85.12,141.19 85.32,142.2 85.32,148.82 85.12,149.83 84.55,150.69 83.69,151.26 82.68,151.46 81.66,151.26 80.81,150.69 80.23,149.83 80.03,148.82 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,16.54 86.85,15.52 87.42,14.66 88.28,14.09 89.29,13.89 90.3,14.09 91.16,14.66 91.74,15.52 91.94,16.54 91.94,16.54 91.74,17.55 91.16,18.41 90.3,18.98 89.29,19.18 88.28,18.98 87.42,18.41 86.85,17.55 86.65,16.54 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,29.76 86.85,28.75 87.42,27.89 88.28,27.32 89.29,27.12 90.3,27.32 91.16,27.89 91.74,28.75 91.94,29.76 91.94,29.76 91.74,30.78 91.16,31.63 90.3,32.21 89.29,32.41 88.28,32.21 87.42,31.63 86.85,30.78 86.65,29.76 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,49.61 86.85,48.59 87.42,47.74 88.28,47.16 89.29,46.96 90.3,47.16 91.16,47.74 91.74,48.59 91.94,49.61 91.94,49.61 91.74,50.62 91.16,51.48 90.3,52.05 89.29,52.25 88.28,52.05 87.42,51.48 86.85,50.62 86.65,49.61 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,69.45 86.85,68.44 87.42,67.58 88.28,67 89.29,66.8 90.3,67 91.16,67.58 91.74,68.44 91.94,69.45 91.94,69.45 91.74,70.46 91.16,71.32 90.3,71.89 89.29,72.09 88.28,71.89 87.42,71.32 86.85,70.46 86.65,69.45 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,89.29 86.85,88.28 87.42,87.42 88.28,86.85 89.29,86.65 90.3,86.85 91.16,87.42 91.74,88.28 91.94,89.29 91.94,89.29 91.74,90.3 91.16,91.16 90.3,91.74 89.29,91.94 88.28,91.74 87.42,91.16 86.85,90.3 86.65,89.29 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,109.13 86.85,108.12 87.42,107.26 88.28,106.69 89.29,106.49 90.3,106.69 91.16,107.26 91.74,108.12 91.94,109.13 91.94,109.13 91.74,110.15 91.16,111 90.3,111.58 89.29,111.78 88.28,111.58 87.42,111 86.85,110.15 86.65,109.13 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,122.36 86.85,121.35 87.42,120.49 88.28,119.92 89.29,119.72 90.3,119.92 91.16,120.49 91.74,121.35 91.94,122.36 91.94,128.98 91.74,129.99 91.16,130.85 90.3,131.42 89.29,131.62 88.28,131.42 87.42,130.85 86.85,129.99 86.65,128.98 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,142.2 86.85,141.19 87.42,140.33 88.28,139.76 89.29,139.56 90.3,139.76 91.16,140.33 91.74,141.19 91.94,142.2 91.94,142.2 91.74,143.22 91.16,144.08 90.3,144.65 89.29,144.85 88.28,144.65 87.42,144.08 86.85,143.22 86.65,142.2 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,16.54 93.46,15.52 94.03,14.66 94.89,14.09 95.91,13.89 96.92,14.09 97.78,14.66 98.35,15.52 98.55,16.54 98.55,42.99 98.35,44 97.78,44.86 96.92,45.44 95.91,45.64 94.89,45.44 94.03,44.86 93.46,44 93.26,42.99 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,56.22 93.46,55.21 94.03,54.35 94.89,53.78 95.91,53.57 96.92,53.78 97.78,54.35 98.35,55.21 98.55,56.22 98.55,56.22 98.35,57.23 97.78,58.09 96.92,58.66 95.91,58.87 94.89,58.66 94.03,58.09 93.46,57.23 93.26,56.22 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,95.91 93.46,94.89 94.03,94.03 94.89,93.46 95.91,93.26 96.92,93.46 97.78,94.03 98.35,94.89 98.55,95.91 98.55,102.52 98.35,103.53 97.78,104.39 96.92,104.96 95.91,105.17 94.89,104.96 94.03,104.39 93.46,103.53 93.26,102.52 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,128.98 93.46,127.96 94.03,127.11 94.89,126.53 95.91,126.33 96.92,126.53 97.78,127.11 98.35,127.96 98.55,128.98 98.55,148.82 98.35,149.83 97.78,150.69 96.92,151.26 95.91,151.46 94.89,151.26 94.03,150.69 93.46,149.83 93.26,148.82 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,109.13 100.08,108.12 100.65,107.26 101.51,106.69 102.52,106.49 103.53,106.69 104.39,107.26 104.96,108.12 105.17,109.13 105.17,109.13 104.96,110.15 104.39,111 103.53,111.58 102.52,111.78 101.51,111.58 100.65,111 100.08,110.15 99.87,109.13 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,122.36 100.08,121.35 100.65,120.49 101.51,119.92 102.52,119.72 103.53,119.92 104.39,120.49 104.96,121.35 105.17,122.36 105.17,128.98 104.96,129.99 104.39,130.85 103.53,131.42 102.52,131.62 101.51,131.42 100.65,130.85 100.08,129.99 99.87,128.98 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,142.2 100.08,141.19 100.65,140.33 101.51,139.76 102.52,139.56 103.53,139.76 104.39,140.33 104.96,141.19 105.17,142.2 105.17,142.2 104.96,143.22 104.39,144.08 103.53,144.65 102.52,144.85 101.51,144.65 100.65,144.08 100.08,143.22 99.87,142.2 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"106.49,128.98 106.69,127.96 107.26,127.11 108.12,126.53 109.13,126.33 110.15,126.53 111,127.11 111.58,127.96 111.78,128.98 111.78,142.2 111.58,143.22 111,144.08 110.15,144.65 109.13,144.85 108.12,144.65 107.26,144.08 106.69,143.22 106.49,142.2 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,115.75 113.3,114.74 113.88,113.88 114.74,113.3 115.75,113.1 116.76,113.3 117.62,113.88 118.19,114.74 118.39,115.75 118.39,115.75 118.19,116.76 117.62,117.62 116.76,118.19 115.75,118.39 114.74,118.19 113.88,117.62 113.3,116.76 113.1,115.75 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,128.98 113.3,127.96 113.88,127.11 114.74,126.53 115.75,126.33 116.76,126.53 117.62,127.11 118.19,127.96 118.39,128.98 118.39,148.82 118.19,149.83 117.62,150.69 116.76,151.26 115.75,151.46 114.74,151.26 113.88,150.69 113.3,149.83 113.1,148.82 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"119.72,122.36 119.92,121.35 120.49,120.49 121.35,119.92 122.36,119.72 123.37,119.92 124.23,120.49 124.81,121.35 125.01,122.36 125.01,122.36 124.81,123.37 124.23,124.23 123.37,124.81 122.36,125.01 121.35,124.81 120.49,124.23 119.92,123.37 119.72,122.36 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"119.72,142.2 119.92,141.19 120.49,140.33 121.35,139.76 122.36,139.56 123.37,139.76 124.23,140.33 124.81,141.19 125.01,142.2 125.01,142.2 124.81,143.22 124.23,144.08 123.37,144.65 122.36,144.85 121.35,144.65 120.49,144.08 119.92,143.22 119.72,142.2 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,128.98 126.53,127.96 127.11,127.11 127.96,126.53 128.98,126.33 129.99,126.53 130.85,127.11 131.42,127.96 131.62,128.98 131.62,135.59 131.42,136.6 130.85,137.46 129.99,138.03 128.98,138.24 127.96,138.03 127.11,137.46 126.53,136.6 126.33,135.59 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,135.59 133.15,134.58 133.72,133.72 134.58,133.15 135.59,132.94 136.6,133.15 137.46,133.72 138.03,134.58 138.24,135.59 138.24,148.82 138.03,149.83 137.46,150.69 136.6,151.26 135.59,151.46 134.58,151.26 133.72,150.69 133.15,149.83 132.94,148.82 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,142.2 139.76,141.19 140.33,140.33 141.19,139.76 142.2,139.56 143.22,139.76 144.08,140.33 144.65,141.19 144.85,142.2 144.85,142.2 144.65,143.22 144.08,144.08 143.22,144.65 142.2,144.85 141.19,144.65 140.33,144.08 139.76,143.22 139.56,142.2 \"\r\n            style=\"fill:url(#gradient6a46f7652d584c37a6ba75a90d08d89b);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 20,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient3449309bbfd94eed961adfc4a828ceb6\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"7.72605761144101\"\r\n            y1=\"76.1197884622769\"\r\n            x2=\"157.628262914682\"\r\n            y2=\"89.2345320638461\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#FF93FB\" />\r\n            <stop offset=\"100%\" stop-color=\"#FF9393\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,29.76 13.55,26.54 14.49,23.44 16.02,20.58 18.07,18.07 20.58,16.02 23.44,14.49 26.54,13.55 29.76,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,29.76 19.84,29.76 19.84,52.91 52.91,52.91 52.91,19.84 29.76,19.84 27.2,20.18 24.8,21.17 22.75,22.75 21.17,24.8 20.18,27.2 19.84,29.76 \"\r\n            style=\"fill:url(#gradient3449309bbfd94eed961adfc4a828ceb6);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,122.36 13.23,105.83 59.53,105.83 59.53,152.13 29.76,152.13 26.54,151.81 23.44,150.87 20.58,149.34 18.07,147.28 16.02,144.78 14.49,141.92 13.55,138.82 13.23,135.59 13.23,122.36 19.84,122.36 19.84,135.59 20.18,138.16 21.17,140.55 22.75,142.61 24.8,144.18 27.2,145.17 29.76,145.51 52.91,145.51 52.91,112.44 19.84,112.44 19.84,122.36 \"\r\n            style=\"fill:url(#gradient3449309bbfd94eed961adfc4a828ceb6);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,29.76 105.83,13.23 135.59,13.23 138.82,13.55 141.92,14.49 144.78,16.02 147.28,18.07 149.34,20.58 150.87,23.44 151.81,26.54 152.13,29.76 152.13,59.53 105.83,59.53 105.83,29.76 112.44,29.76 112.44,52.91 145.51,52.91 145.51,29.76 145.17,27.2 144.18,24.8 142.61,22.75 140.55,21.17 138.16,20.18 135.59,19.84 112.44,19.84 112.44,29.76 \"\r\n            style=\"fill:url(#gradient3449309bbfd94eed961adfc4a828ceb6);\"\r\n          />\r\n          <pattern\r\n            id=\"glass707f0bfb55ce441694040af327da98a2\"\r\n            x=\"26.45669\"\r\n            y=\"26.45669\"\r\n            width=\"112.4409\"\r\n            height=\"112.4409\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"112.4409\" height=\"112.4409\" style=\"fill:rgb(147,255,255);fill-opacity:1;\" />\r\n            <rect x=\"0\" y=\"0\" width=\"112.4409\" height=\"56.22047\" style=\"fill:rgb(159,255,255);fill-opacity:1;\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"46.3,36.38 46.11,38.31 45.54,40.17 44.63,41.89 43.39,43.39 41.89,44.63 40.17,45.54 38.31,46.11 36.38,46.3 34.44,46.11 32.58,45.54 30.87,44.63 29.36,43.39 28.13,41.89 27.21,40.17 26.65,38.31 26.46,36.38 26.65,34.44 27.21,32.58 28.13,30.87 29.36,29.36 30.87,28.13 32.58,27.21 34.44,26.65 36.38,26.46 38.31,26.65 40.17,27.21 41.89,28.13 43.39,29.36 44.63,30.87 45.54,32.58 46.11,34.44 46.3,36.38 \"\r\n            style=\"fill:url(#glass707f0bfb55ce441694040af327da98a2);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,128.98 46.11,130.91 45.54,132.77 44.63,134.49 43.39,135.99 41.89,137.23 40.17,138.14 38.31,138.71 36.38,138.9 34.44,138.71 32.58,138.14 30.87,137.23 29.36,135.99 28.13,134.49 27.21,132.77 26.65,130.91 26.46,128.98 26.65,127.04 27.21,125.18 28.13,123.46 29.36,121.96 30.87,120.73 32.58,119.81 34.44,119.25 36.38,119.06 38.31,119.25 40.17,119.81 41.89,120.73 43.39,121.96 44.63,123.46 45.54,125.18 46.11,127.04 46.3,128.98 \"\r\n            style=\"fill:url(#glass707f0bfb55ce441694040af327da98a2);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,36.38 138.71,38.31 138.14,40.17 137.23,41.89 135.99,43.39 134.49,44.63 132.77,45.54 130.91,46.11 128.98,46.3 127.04,46.11 125.18,45.54 123.46,44.63 121.96,43.39 120.73,41.89 119.81,40.17 119.25,38.31 119.06,36.38 119.25,34.44 119.81,32.58 120.73,30.87 121.96,29.36 123.46,28.13 125.18,27.21 127.04,26.65 128.98,26.46 130.91,26.65 132.77,27.21 134.49,28.13 135.99,29.36 137.23,30.87 138.14,32.58 138.71,34.44 138.9,36.38 \"\r\n            style=\"fill:url(#glass707f0bfb55ce441694040af327da98a2);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient230bd81be3cd4d5c8b2e8d6590a4404d\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"13.889762878418\"\r\n            y1=\"82.6771621704102\"\r\n            x2=\"151.464561462402\"\r\n            y2=\"82.6771621704102\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#FF9393\" />\r\n            <stop offset=\"50%\" stop-color=\"#DBEEF3\" />\r\n            <stop offset=\"100%\" stop-color=\"#FF9393\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"82.68,19.18 81.66,18.98 80.81,18.41 80.23,17.55 80.03,16.54 80.23,15.52 80.81,14.66 81.66,14.09 82.68,13.89 95.91,13.89 96.92,14.09 97.78,14.66 98.35,15.52 98.55,16.54 98.35,17.55 97.78,18.41 96.92,18.98 95.91,19.18 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,25.8 68.44,25.59 67.58,25.02 67,24.16 66.8,23.15 67,22.14 67.58,21.28 68.44,20.71 69.45,20.5 82.68,20.5 83.69,20.71 84.55,21.28 85.12,22.14 85.32,23.15 85.12,24.16 84.55,25.02 83.69,25.59 82.68,25.8 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,25.8 94.89,25.59 94.03,25.02 93.46,24.16 93.26,23.15 93.46,22.14 94.03,21.28 94.89,20.71 95.91,20.5 95.91,20.5 96.92,20.71 97.78,21.28 98.35,22.14 98.55,23.15 98.35,24.16 97.78,25.02 96.92,25.59 95.91,25.8 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,32.41 81.66,32.21 80.81,31.63 80.23,30.78 80.03,29.76 80.23,28.75 80.81,27.89 81.66,27.32 82.68,27.12 95.91,27.12 96.92,27.32 97.78,27.89 98.35,28.75 98.55,29.76 98.35,30.78 97.78,31.63 96.92,32.21 95.91,32.41 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,39.02 68.44,38.82 67.58,38.25 67,37.39 66.8,36.38 67,35.37 67.58,34.51 68.44,33.93 69.45,33.73 76.06,33.73 77.08,33.93 77.93,34.51 78.51,35.37 78.71,36.38 78.51,37.39 77.93,38.25 77.08,38.82 76.06,39.02 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,39.02 94.89,38.82 94.03,38.25 93.46,37.39 93.26,36.38 93.46,35.37 94.03,34.51 94.89,33.93 95.91,33.73 95.91,33.73 96.92,33.93 97.78,34.51 98.35,35.37 98.55,36.38 98.35,37.39 97.78,38.25 96.92,38.82 95.91,39.02 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,45.64 75.05,45.44 74.19,44.86 73.62,44 73.42,42.99 73.62,41.98 74.19,41.12 75.05,40.55 76.06,40.35 76.06,40.35 77.08,40.55 77.93,41.12 78.51,41.98 78.71,42.99 78.51,44 77.93,44.86 77.08,45.44 76.06,45.64 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,45.64 94.89,45.44 94.03,44.86 93.46,44 93.26,42.99 93.46,41.98 94.03,41.12 94.89,40.55 95.91,40.35 95.91,40.35 96.92,40.55 97.78,41.12 98.35,41.98 98.55,42.99 98.35,44 97.78,44.86 96.92,45.44 95.91,45.64 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,52.25 68.44,52.05 67.58,51.48 67,50.62 66.8,49.61 67,48.59 67.58,47.74 68.44,47.16 69.45,46.96 69.45,46.96 70.46,47.16 71.32,47.74 71.89,48.59 72.09,49.61 71.89,50.62 71.32,51.48 70.46,52.05 69.45,52.25 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,52.25 88.28,52.05 87.42,51.48 86.85,50.62 86.65,49.61 86.85,48.59 87.42,47.74 88.28,47.16 89.29,46.96 89.29,46.96 90.3,47.16 91.16,47.74 91.74,48.59 91.94,49.61 91.74,50.62 91.16,51.48 90.3,52.05 89.29,52.25 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,58.87 68.44,58.66 67.58,58.09 67,57.23 66.8,56.22 67,55.21 67.58,54.35 68.44,53.78 69.45,53.57 69.45,53.57 70.46,53.78 71.32,54.35 71.89,55.21 72.09,56.22 71.89,57.23 71.32,58.09 70.46,58.66 69.45,58.87 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,58.87 81.66,58.66 80.81,58.09 80.23,57.23 80.03,56.22 80.23,55.21 80.81,54.35 81.66,53.78 82.68,53.57 82.68,53.57 83.69,53.78 84.55,54.35 85.12,55.21 85.32,56.22 85.12,57.23 84.55,58.09 83.69,58.66 82.68,58.87 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,58.87 94.89,58.66 94.03,58.09 93.46,57.23 93.26,56.22 93.46,55.21 94.03,54.35 94.89,53.78 95.91,53.57 95.91,53.57 96.92,53.78 97.78,54.35 98.35,55.21 98.55,56.22 98.35,57.23 97.78,58.09 96.92,58.66 95.91,58.87 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,65.48 75.05,65.28 74.19,64.71 73.62,63.85 73.42,62.83 73.62,61.82 74.19,60.96 75.05,60.39 76.06,60.19 76.06,60.19 77.08,60.39 77.93,60.96 78.51,61.82 78.71,62.83 78.51,63.85 77.93,64.71 77.08,65.28 76.06,65.48 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,72.09 68.44,71.89 67.58,71.32 67,70.46 66.8,69.45 67,68.44 67.58,67.58 68.44,67 69.45,66.8 69.45,66.8 70.46,67 71.32,67.58 71.89,68.44 72.09,69.45 71.89,70.46 71.32,71.32 70.46,71.89 69.45,72.09 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,72.09 88.28,71.89 87.42,71.32 86.85,70.46 86.65,69.45 86.85,68.44 87.42,67.58 88.28,67 89.29,66.8 89.29,66.8 90.3,67 91.16,67.58 91.74,68.44 91.94,69.45 91.74,70.46 91.16,71.32 90.3,71.89 89.29,72.09 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,78.71 75.05,78.51 74.19,77.93 73.62,77.08 73.42,76.06 73.62,75.05 74.19,74.19 75.05,73.62 76.06,73.42 76.06,73.42 77.08,73.62 77.93,74.19 78.51,75.05 78.71,76.06 78.51,77.08 77.93,77.93 77.08,78.51 76.06,78.71 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,78.71 88.28,78.51 87.42,77.93 86.85,77.08 86.65,76.06 86.85,75.05 87.42,74.19 88.28,73.62 89.29,73.42 89.29,73.42 90.3,73.62 91.16,74.19 91.74,75.05 91.94,76.06 91.74,77.08 91.16,77.93 90.3,78.51 89.29,78.71 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,91.94 88.28,91.74 87.42,91.16 86.85,90.3 86.65,89.29 86.85,88.28 87.42,87.42 88.28,86.85 89.29,86.65 89.29,86.65 90.3,86.85 91.16,87.42 91.74,88.28 91.94,89.29 91.74,90.3 91.16,91.16 90.3,91.74 89.29,91.94 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,98.55 68.44,98.35 67.58,97.78 67,96.92 66.8,95.91 67,94.89 67.58,94.03 68.44,93.46 69.45,93.26 76.06,93.26 77.08,93.46 77.93,94.03 78.51,94.89 78.71,95.91 78.51,96.92 77.93,97.78 77.08,98.35 76.06,98.55 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,98.55 94.89,98.35 94.03,97.78 93.46,96.92 93.26,95.91 93.46,94.89 94.03,94.03 94.89,93.46 95.91,93.26 95.91,93.26 96.92,93.46 97.78,94.03 98.35,94.89 98.55,95.91 98.35,96.92 97.78,97.78 96.92,98.35 95.91,98.55 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,105.17 68.44,104.96 67.58,104.39 67,103.53 66.8,102.52 67,101.51 67.58,100.65 68.44,100.08 69.45,99.87 69.45,99.87 70.46,100.08 71.32,100.65 71.89,101.51 72.09,102.52 71.89,103.53 71.32,104.39 70.46,104.96 69.45,105.17 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,105.17 81.66,104.96 80.81,104.39 80.23,103.53 80.03,102.52 80.23,101.51 80.81,100.65 81.66,100.08 82.68,99.87 82.68,99.87 83.69,100.08 84.55,100.65 85.12,101.51 85.32,102.52 85.12,103.53 84.55,104.39 83.69,104.96 82.68,105.17 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,105.17 94.89,104.96 94.03,104.39 93.46,103.53 93.26,102.52 93.46,101.51 94.03,100.65 94.89,100.08 95.91,99.87 95.91,99.87 96.92,100.08 97.78,100.65 98.35,101.51 98.55,102.52 98.35,103.53 97.78,104.39 96.92,104.96 95.91,105.17 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,111.78 68.44,111.58 67.58,111 67,110.15 66.8,109.13 67,108.12 67.58,107.26 68.44,106.69 69.45,106.49 69.45,106.49 70.46,106.69 71.32,107.26 71.89,108.12 72.09,109.13 71.89,110.15 71.32,111 70.46,111.58 69.45,111.78 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,111.78 88.28,111.58 87.42,111 86.85,110.15 86.65,109.13 86.85,108.12 87.42,107.26 88.28,106.69 89.29,106.49 89.29,106.49 90.3,106.69 91.16,107.26 91.74,108.12 91.94,109.13 91.74,110.15 91.16,111 90.3,111.58 89.29,111.78 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"102.52,111.78 101.51,111.58 100.65,111 100.08,110.15 99.87,109.13 100.08,108.12 100.65,107.26 101.51,106.69 102.52,106.49 102.52,106.49 103.53,106.69 104.39,107.26 104.96,108.12 105.17,109.13 104.96,110.15 104.39,111 103.53,111.58 102.52,111.78 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"76.06,118.39 75.05,118.19 74.19,117.62 73.62,116.76 73.42,115.75 73.62,114.74 74.19,113.88 75.05,113.3 76.06,113.1 82.68,113.1 83.69,113.3 84.55,113.88 85.12,114.74 85.32,115.75 85.12,116.76 84.55,117.62 83.69,118.19 82.68,118.39 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,118.39 114.74,118.19 113.88,117.62 113.3,116.76 113.1,115.75 113.3,114.74 113.88,113.88 114.74,113.3 115.75,113.1 115.75,113.1 116.76,113.3 117.62,113.88 118.19,114.74 118.39,115.75 118.19,116.76 117.62,117.62 116.76,118.19 115.75,118.39 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,125.01 68.44,124.81 67.58,124.23 67,123.37 66.8,122.36 67,121.35 67.58,120.49 68.44,119.92 69.45,119.72 89.29,119.72 90.3,119.92 91.16,120.49 91.74,121.35 91.94,122.36 91.74,123.37 91.16,124.23 90.3,124.81 89.29,125.01 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"102.52,125.01 101.51,124.81 100.65,124.23 100.08,123.37 99.87,122.36 100.08,121.35 100.65,120.49 101.51,119.92 102.52,119.72 102.52,119.72 103.53,119.92 104.39,120.49 104.96,121.35 105.17,122.36 104.96,123.37 104.39,124.23 103.53,124.81 102.52,125.01 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"122.36,125.01 121.35,124.81 120.49,124.23 119.92,123.37 119.72,122.36 119.92,121.35 120.49,120.49 121.35,119.92 122.36,119.72 122.36,119.72 123.37,119.92 124.23,120.49 124.81,121.35 125.01,122.36 124.81,123.37 124.23,124.23 123.37,124.81 122.36,125.01 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,131.62 68.44,131.42 67.58,130.85 67,129.99 66.8,128.98 67,127.96 67.58,127.11 68.44,126.53 69.45,126.33 76.06,126.33 77.08,126.53 77.93,127.11 78.51,127.96 78.71,128.98 78.51,129.99 77.93,130.85 77.08,131.42 76.06,131.62 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"89.29,131.62 88.28,131.42 87.42,130.85 86.85,129.99 86.65,128.98 86.85,127.96 87.42,127.11 88.28,126.53 89.29,126.33 115.75,126.33 116.76,126.53 117.62,127.11 118.19,127.96 118.39,128.98 118.19,129.99 117.62,130.85 116.76,131.42 115.75,131.62 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,131.62 127.96,131.42 127.11,130.85 126.53,129.99 126.33,128.98 126.53,127.96 127.11,127.11 127.96,126.53 128.98,126.33 128.98,126.33 129.99,126.53 130.85,127.11 131.42,127.96 131.62,128.98 131.42,129.99 130.85,130.85 129.99,131.42 128.98,131.62 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,138.24 68.44,138.03 67.58,137.46 67,136.6 66.8,135.59 67,134.58 67.58,133.72 68.44,133.15 69.45,132.94 76.06,132.94 77.08,133.15 77.93,133.72 78.51,134.58 78.71,135.59 78.51,136.6 77.93,137.46 77.08,138.03 76.06,138.24 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,138.24 94.89,138.03 94.03,137.46 93.46,136.6 93.26,135.59 93.46,134.58 94.03,133.72 94.89,133.15 95.91,132.94 95.91,132.94 96.92,133.15 97.78,133.72 98.35,134.58 98.55,135.59 98.35,136.6 97.78,137.46 96.92,138.03 95.91,138.24 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"109.13,138.24 108.12,138.03 107.26,137.46 106.69,136.6 106.49,135.59 106.69,134.58 107.26,133.72 108.12,133.15 109.13,132.94 115.75,132.94 116.76,133.15 117.62,133.72 118.19,134.58 118.39,135.59 118.19,136.6 117.62,137.46 116.76,138.03 115.75,138.24 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"128.98,138.24 127.96,138.03 127.11,137.46 126.53,136.6 126.33,135.59 126.53,134.58 127.11,133.72 127.96,133.15 128.98,132.94 135.59,132.94 136.6,133.15 137.46,133.72 138.03,134.58 138.24,135.59 138.03,136.6 137.46,137.46 136.6,138.03 135.59,138.24 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,144.85 68.44,144.65 67.58,144.08 67,143.22 66.8,142.2 67,141.19 67.58,140.33 68.44,139.76 69.45,139.56 69.45,139.56 70.46,139.76 71.32,140.33 71.89,141.19 72.09,142.2 71.89,143.22 71.32,144.08 70.46,144.65 69.45,144.85 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"82.68,144.85 81.66,144.65 80.81,144.08 80.23,143.22 80.03,142.2 80.23,141.19 80.81,140.33 81.66,139.76 82.68,139.56 122.36,139.56 123.37,139.76 124.23,140.33 124.81,141.19 125.01,142.2 124.81,143.22 124.23,144.08 123.37,144.65 122.36,144.85 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,144.85 134.58,144.65 133.72,144.08 133.15,143.22 132.94,142.2 133.15,141.19 133.72,140.33 134.58,139.76 135.59,139.56 142.2,139.56 143.22,139.76 144.08,140.33 144.65,141.19 144.85,142.2 144.65,143.22 144.08,144.08 143.22,144.65 142.2,144.85 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"69.45,151.46 68.44,151.26 67.58,150.69 67,149.83 66.8,148.82 67,147.81 67.58,146.95 68.44,146.37 69.45,146.17 82.68,146.17 83.69,146.37 84.55,146.95 85.12,147.81 85.32,148.82 85.12,149.83 84.55,150.69 83.69,151.26 82.68,151.46 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"95.91,151.46 94.89,151.26 94.03,150.69 93.46,149.83 93.26,148.82 93.46,147.81 94.03,146.95 94.89,146.37 95.91,146.17 95.91,146.17 96.92,146.37 97.78,146.95 98.35,147.81 98.55,148.82 98.35,149.83 97.78,150.69 96.92,151.26 95.91,151.46 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"115.75,151.46 114.74,151.26 113.88,150.69 113.3,149.83 113.1,148.82 113.3,147.81 113.88,146.95 114.74,146.37 115.75,146.17 115.75,146.17 116.76,146.37 117.62,146.95 118.19,147.81 118.39,148.82 118.19,149.83 117.62,150.69 116.76,151.26 115.75,151.46 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"135.59,151.46 134.58,151.26 133.72,150.69 133.15,149.83 132.94,148.82 133.15,147.81 133.72,146.95 134.58,146.37 135.59,146.17 135.59,146.17 136.6,146.37 137.46,146.95 138.03,147.81 138.24,148.82 138.03,149.83 137.46,150.69 136.6,151.26 135.59,151.46 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"13.89,69.45 14.09,68.44 14.66,67.58 15.52,67 16.54,66.8 17.55,67 18.41,67.58 18.98,68.44 19.18,69.45 19.18,76.06 18.98,77.08 18.41,77.93 17.55,78.51 16.54,78.71 15.52,78.51 14.66,77.93 14.09,77.08 13.89,76.06 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"13.89,89.29 14.09,88.28 14.66,87.42 15.52,86.85 16.54,86.65 17.55,86.85 18.41,87.42 18.98,88.28 19.18,89.29 19.18,89.29 18.98,90.3 18.41,91.16 17.55,91.74 16.54,91.94 15.52,91.74 14.66,91.16 14.09,90.3 13.89,89.29 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"20.5,69.45 20.71,68.44 21.28,67.58 22.14,67 23.15,66.8 24.16,67 25.02,67.58 25.59,68.44 25.8,69.45 25.8,76.06 25.59,77.08 25.02,77.93 24.16,78.51 23.15,78.71 22.14,78.51 21.28,77.93 20.71,77.08 20.5,76.06 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"20.5,95.91 20.71,94.89 21.28,94.03 22.14,93.46 23.15,93.26 24.16,93.46 25.02,94.03 25.59,94.89 25.8,95.91 25.8,95.91 25.59,96.92 25.02,97.78 24.16,98.35 23.15,98.55 22.14,98.35 21.28,97.78 20.71,96.92 20.5,95.91 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"27.12,69.45 27.32,68.44 27.89,67.58 28.75,67 29.76,66.8 30.78,67 31.63,67.58 32.21,68.44 32.41,69.45 32.41,82.68 32.21,83.69 31.63,84.55 30.78,85.12 29.76,85.32 28.75,85.12 27.89,84.55 27.32,83.69 27.12,82.68 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"33.73,69.45 33.93,68.44 34.51,67.58 35.37,67 36.38,66.8 37.39,67 38.25,67.58 38.82,68.44 39.02,69.45 39.02,69.45 38.82,70.46 38.25,71.32 37.39,71.89 36.38,72.09 35.37,71.89 34.51,71.32 33.93,70.46 33.73,69.45 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"33.73,89.29 33.93,88.28 34.51,87.42 35.37,86.85 36.38,86.65 37.39,86.85 38.25,87.42 38.82,88.28 39.02,89.29 39.02,95.91 38.82,96.92 38.25,97.78 37.39,98.35 36.38,98.55 35.37,98.35 34.51,97.78 33.93,96.92 33.73,95.91 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,69.45 40.55,68.44 41.12,67.58 41.98,67 42.99,66.8 44,67 44.86,67.58 45.44,68.44 45.64,69.45 45.64,69.45 45.44,70.46 44.86,71.32 44,71.89 42.99,72.09 41.98,71.89 41.12,71.32 40.55,70.46 40.35,69.45 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,82.68 40.55,81.66 41.12,80.81 41.98,80.23 42.99,80.03 44,80.23 44.86,80.81 45.44,81.66 45.64,82.68 45.64,82.68 45.44,83.69 44.86,84.55 44,85.12 42.99,85.32 41.98,85.12 41.12,84.55 40.55,83.69 40.35,82.68 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"40.35,95.91 40.55,94.89 41.12,94.03 41.98,93.46 42.99,93.26 44,93.46 44.86,94.03 45.44,94.89 45.64,95.91 45.64,95.91 45.44,96.92 44.86,97.78 44,98.35 42.99,98.55 41.98,98.35 41.12,97.78 40.55,96.92 40.35,95.91 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"46.96,76.06 47.16,75.05 47.74,74.19 48.59,73.62 49.61,73.42 50.62,73.62 51.48,74.19 52.05,75.05 52.25,76.06 52.25,82.68 52.05,83.69 51.48,84.55 50.62,85.12 49.61,85.32 48.59,85.12 47.74,84.55 47.16,83.69 46.96,82.68 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,69.45 53.78,68.44 54.35,67.58 55.21,67 56.22,66.8 57.23,67 58.09,67.58 58.66,68.44 58.87,69.45 58.87,69.45 58.66,70.46 58.09,71.32 57.23,71.89 56.22,72.09 55.21,71.89 54.35,71.32 53.78,70.46 53.57,69.45 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,82.68 53.78,81.66 54.35,80.81 55.21,80.23 56.22,80.03 57.23,80.23 58.09,80.81 58.66,81.66 58.87,82.68 58.87,82.68 58.66,83.69 58.09,84.55 57.23,85.12 56.22,85.32 55.21,85.12 54.35,84.55 53.78,83.69 53.57,82.68 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"53.57,95.91 53.78,94.89 54.35,94.03 55.21,93.46 56.22,93.26 57.23,93.46 58.09,94.03 58.66,94.89 58.87,95.91 58.87,95.91 58.66,96.92 58.09,97.78 57.23,98.35 56.22,98.55 55.21,98.35 54.35,97.78 53.78,96.92 53.57,95.91 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"60.19,69.45 60.39,68.44 60.96,67.58 61.82,67 62.83,66.8 63.85,67 64.71,67.58 65.28,68.44 65.48,69.45 65.48,76.06 65.28,77.08 64.71,77.93 63.85,78.51 62.83,78.71 61.82,78.51 60.96,77.93 60.39,77.08 60.19,76.06 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,69.45 67,68.44 67.58,67.58 68.44,67 69.45,66.8 70.46,67 71.32,67.58 71.89,68.44 72.09,69.45 72.09,69.45 71.89,70.46 71.32,71.32 70.46,71.89 69.45,72.09 68.44,71.89 67.58,71.32 67,70.46 66.8,69.45 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"66.8,82.68 67,81.66 67.58,80.81 68.44,80.23 69.45,80.03 70.46,80.23 71.32,80.81 71.89,81.66 72.09,82.68 72.09,82.68 71.89,83.69 71.32,84.55 70.46,85.12 69.45,85.32 68.44,85.12 67.58,84.55 67,83.69 66.8,82.68 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"73.42,76.06 73.62,75.05 74.19,74.19 75.05,73.62 76.06,73.42 77.08,73.62 77.93,74.19 78.51,75.05 78.71,76.06 78.71,82.68 78.51,83.69 77.93,84.55 77.08,85.12 76.06,85.32 75.05,85.12 74.19,84.55 73.62,83.69 73.42,82.68 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"86.65,76.06 86.85,75.05 87.42,74.19 88.28,73.62 89.29,73.42 90.3,73.62 91.16,74.19 91.74,75.05 91.94,76.06 91.94,76.06 91.74,77.08 91.16,77.93 90.3,78.51 89.29,78.71 88.28,78.51 87.42,77.93 86.85,77.08 86.65,76.06 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"93.26,76.06 93.46,75.05 94.03,74.19 94.89,73.62 95.91,73.42 96.92,73.62 97.78,74.19 98.35,75.05 98.55,76.06 98.55,89.29 98.35,90.3 97.78,91.16 96.92,91.74 95.91,91.94 94.89,91.74 94.03,91.16 93.46,90.3 93.26,89.29 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,69.45 100.08,68.44 100.65,67.58 101.51,67 102.52,66.8 103.53,67 104.39,67.58 104.96,68.44 105.17,69.45 105.17,76.06 104.96,77.08 104.39,77.93 103.53,78.51 102.52,78.71 101.51,78.51 100.65,77.93 100.08,77.08 99.87,76.06 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"99.87,89.29 100.08,88.28 100.65,87.42 101.51,86.85 102.52,86.65 103.53,86.85 104.39,87.42 104.96,88.28 105.17,89.29 105.17,89.29 104.96,90.3 104.39,91.16 103.53,91.74 102.52,91.94 101.51,91.74 100.65,91.16 100.08,90.3 99.87,89.29 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"106.49,76.06 106.69,75.05 107.26,74.19 108.12,73.62 109.13,73.42 110.15,73.62 111,74.19 111.58,75.05 111.78,76.06 111.78,89.29 111.58,90.3 111,91.16 110.15,91.74 109.13,91.94 108.12,91.74 107.26,91.16 106.69,90.3 106.49,89.29 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,69.45 113.3,68.44 113.88,67.58 114.74,67 115.75,66.8 116.76,67 117.62,67.58 118.19,68.44 118.39,69.45 118.39,69.45 118.19,70.46 117.62,71.32 116.76,71.89 115.75,72.09 114.74,71.89 113.88,71.32 113.3,70.46 113.1,69.45 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,82.68 113.3,81.66 113.88,80.81 114.74,80.23 115.75,80.03 116.76,80.23 117.62,80.81 118.19,81.66 118.39,82.68 118.39,82.68 118.19,83.69 117.62,84.55 116.76,85.12 115.75,85.32 114.74,85.12 113.88,84.55 113.3,83.69 113.1,82.68 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"113.1,95.91 113.3,94.89 113.88,94.03 114.74,93.46 115.75,93.26 116.76,93.46 117.62,94.03 118.19,94.89 118.39,95.91 118.39,102.52 118.19,103.53 117.62,104.39 116.76,104.96 115.75,105.17 114.74,104.96 113.88,104.39 113.3,103.53 113.1,102.52 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"119.72,109.13 119.92,108.12 120.49,107.26 121.35,106.69 122.36,106.49 123.37,106.69 124.23,107.26 124.81,108.12 125.01,109.13 125.01,115.75 124.81,116.76 124.23,117.62 123.37,118.19 122.36,118.39 121.35,118.19 120.49,117.62 119.92,116.76 119.72,115.75 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,69.45 126.53,68.44 127.11,67.58 127.96,67 128.98,66.8 129.99,67 130.85,67.58 131.42,68.44 131.62,69.45 131.62,82.68 131.42,83.69 130.85,84.55 129.99,85.12 128.98,85.32 127.96,85.12 127.11,84.55 126.53,83.69 126.33,82.68 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,109.13 126.53,108.12 127.11,107.26 127.96,106.69 128.98,106.49 129.99,106.69 130.85,107.26 131.42,108.12 131.62,109.13 131.62,109.13 131.42,110.15 130.85,111 129.99,111.58 128.98,111.78 127.96,111.58 127.11,111 126.53,110.15 126.33,109.13 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"126.33,122.36 126.53,121.35 127.11,120.49 127.96,119.92 128.98,119.72 129.99,119.92 130.85,120.49 131.42,121.35 131.62,122.36 131.62,122.36 131.42,123.37 130.85,124.23 129.99,124.81 128.98,125.01 127.96,124.81 127.11,124.23 126.53,123.37 126.33,122.36 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,76.06 133.15,75.05 133.72,74.19 134.58,73.62 135.59,73.42 136.6,73.62 137.46,74.19 138.03,75.05 138.24,76.06 138.24,76.06 138.03,77.08 137.46,77.93 136.6,78.51 135.59,78.71 134.58,78.51 133.72,77.93 133.15,77.08 132.94,76.06 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,89.29 133.15,88.28 133.72,87.42 134.58,86.85 135.59,86.65 136.6,86.85 137.46,87.42 138.03,88.28 138.24,89.29 138.24,89.29 138.03,90.3 137.46,91.16 136.6,91.74 135.59,91.94 134.58,91.74 133.72,91.16 133.15,90.3 132.94,89.29 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,102.52 133.15,101.51 133.72,100.65 134.58,100.08 135.59,99.87 136.6,100.08 137.46,100.65 138.03,101.51 138.24,102.52 138.24,102.52 138.03,103.53 137.46,104.39 136.6,104.96 135.59,105.17 134.58,104.96 133.72,104.39 133.15,103.53 132.94,102.52 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"132.94,115.75 133.15,114.74 133.72,113.88 134.58,113.3 135.59,113.1 136.6,113.3 137.46,113.88 138.03,114.74 138.24,115.75 138.24,128.98 138.03,129.99 137.46,130.85 136.6,131.42 135.59,131.62 134.58,131.42 133.72,130.85 133.15,129.99 132.94,128.98 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,69.45 139.76,68.44 140.33,67.58 141.19,67 142.2,66.8 143.22,67 144.08,67.58 144.65,68.44 144.85,69.45 144.85,76.06 144.65,77.08 144.08,77.93 143.22,78.51 142.2,78.71 141.19,78.51 140.33,77.93 139.76,77.08 139.56,76.06 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,89.29 139.76,88.28 140.33,87.42 141.19,86.85 142.2,86.65 143.22,86.85 144.08,87.42 144.65,88.28 144.85,89.29 144.85,95.91 144.65,96.92 144.08,97.78 143.22,98.35 142.2,98.55 141.19,98.35 140.33,97.78 139.76,96.92 139.56,95.91 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"139.56,109.13 139.76,108.12 140.33,107.26 141.19,106.69 142.2,106.49 143.22,106.69 144.08,107.26 144.65,108.12 144.85,109.13 144.85,109.13 144.65,110.15 144.08,111 143.22,111.58 142.2,111.78 141.19,111.58 140.33,111 139.76,110.15 139.56,109.13 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"146.17,76.06 146.37,75.05 146.95,74.19 147.81,73.62 148.82,73.42 149.83,73.62 150.69,74.19 151.26,75.05 151.46,76.06 151.46,89.29 151.26,90.3 150.69,91.16 149.83,91.74 148.82,91.94 147.81,91.74 146.95,91.16 146.37,90.3 146.17,89.29 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n          <polygon\r\n            points=\"146.17,109.13 146.37,108.12 146.95,107.26 147.81,106.69 148.82,106.49 149.83,106.69 150.69,107.26 151.26,108.12 151.46,109.13 151.46,115.75 151.26,116.76 150.69,117.62 149.83,118.19 148.82,118.39 147.81,118.19 146.95,117.62 146.37,116.76 146.17,115.75 \"\r\n            style=\"fill:url(#gradient230bd81be3cd4d5c8b2e8d6590a4404d);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 21,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <pattern\r\n            id=\"glass201707dc0d7345a1a213d10146189fee\"\r\n            x=\"13.22835\"\r\n            y=\"13.22835\"\r\n            width=\"138.8976\"\r\n            height=\"138.8976\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"138.8976\" style=\"fill:rgb(219,229,241);fill-opacity:1;\" />\r\n            <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"69.44881\" style=\"fill:rgb(231,241,253);fill-opacity:1;\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"59.53,36.38 59.08,40.89 57.77,45.24 55.63,49.24 52.75,52.75 49.24,55.63 45.24,57.77 40.89,59.08 36.38,59.53 31.86,59.08 27.52,57.77 23.52,55.63 20.01,52.75 17.13,49.24 14.99,45.24 13.67,40.89 13.23,36.38 13.67,31.86 14.99,27.52 17.13,23.52 20.01,20.01 23.52,17.13 27.52,14.99 31.86,13.67 36.38,13.23 40.89,13.67 45.24,14.99 49.24,17.13 52.75,20.01 55.63,23.52 57.77,27.52 59.08,31.86 59.53,36.38 52.91,36.38 52.6,33.15 51.65,30.05 50.13,27.19 48.07,24.69 45.56,22.63 42.71,21.1 39.6,20.16 36.38,19.84 33.15,20.16 30.05,21.1 27.19,22.63 24.69,24.69 22.63,27.19 21.1,30.05 20.16,33.15 19.84,36.38 20.16,39.6 21.1,42.71 22.63,45.56 24.69,48.07 27.19,50.13 30.05,51.65 33.15,52.6 36.38,52.91 39.6,52.6 42.71,51.65 45.56,50.13 48.07,48.07 50.13,45.56 51.65,42.71 52.6,39.6 52.91,36.38 \"\r\n            style=\"fill:url(#glass201707dc0d7345a1a213d10146189fee);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,128.98 59.08,133.49 57.77,137.84 55.63,141.84 52.75,145.35 49.24,148.22 45.24,150.36 40.89,151.68 36.38,152.13 31.86,151.68 27.52,150.36 23.52,148.22 20.01,145.35 17.13,141.84 14.99,137.84 13.67,133.49 13.23,128.98 13.67,124.46 14.99,120.12 17.13,116.12 20.01,112.61 23.52,109.73 27.52,107.59 31.86,106.27 36.38,105.83 40.89,106.27 45.24,107.59 49.24,109.73 52.75,112.61 55.63,116.12 57.77,120.12 59.08,124.46 59.53,128.98 52.91,128.98 52.6,125.75 51.65,122.65 50.13,119.79 48.07,117.28 45.56,115.23 42.71,113.7 39.6,112.76 36.38,112.44 33.15,112.76 30.05,113.7 27.19,115.23 24.69,117.28 22.63,119.79 21.1,122.65 20.16,125.75 19.84,128.98 20.16,132.2 21.1,135.3 22.63,138.16 24.69,140.67 27.19,142.73 30.05,144.25 33.15,145.19 36.38,145.51 39.6,145.19 42.71,144.25 45.56,142.73 48.07,140.67 50.13,138.16 51.65,135.3 52.6,132.2 52.91,128.98 \"\r\n            style=\"fill:url(#glass201707dc0d7345a1a213d10146189fee);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,36.38 151.68,40.89 150.36,45.24 148.22,49.24 145.35,52.75 141.84,55.63 137.84,57.77 133.49,59.08 128.98,59.53 124.46,59.08 120.12,57.77 116.12,55.63 112.61,52.75 109.73,49.24 107.59,45.24 106.27,40.89 105.83,36.38 106.27,31.86 107.59,27.52 109.73,23.52 112.61,20.01 116.12,17.13 120.12,14.99 124.46,13.67 128.98,13.23 133.49,13.67 137.84,14.99 141.84,17.13 145.35,20.01 148.22,23.52 150.36,27.52 151.68,31.86 152.13,36.38 145.51,36.38 145.19,33.15 144.25,30.05 142.73,27.19 140.67,24.69 138.16,22.63 135.3,21.1 132.2,20.16 128.98,19.84 125.75,20.16 122.65,21.1 119.79,22.63 117.28,24.69 115.23,27.19 113.7,30.05 112.76,33.15 112.44,36.38 112.76,39.6 113.7,42.71 115.23,45.56 117.28,48.07 119.79,50.13 122.65,51.65 125.75,52.6 128.98,52.91 132.2,52.6 135.3,51.65 138.16,50.13 140.67,48.07 142.73,45.56 144.25,42.71 145.19,39.6 145.51,36.38 \"\r\n            style=\"fill:url(#glass201707dc0d7345a1a213d10146189fee);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientf338e33a7b584819b1c744d73e747428\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"22.0024585616932\"\r\n            y1=\"77.3688099608975\"\r\n            x2=\"143.351858149733\"\r\n            y2=\"87.9855067505283\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#D7E3BC\" />\r\n            <stop offset=\"50%\" stop-color=\"#FF93FB\" />\r\n            <stop offset=\"100%\" stop-color=\"#D7E3BC\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"46.3,36.38 46.11,38.31 45.54,40.17 44.63,41.89 43.39,43.39 41.89,44.63 40.17,45.54 38.31,46.11 36.38,46.3 34.44,46.11 32.58,45.54 30.87,44.63 29.36,43.39 28.13,41.89 27.21,40.17 26.65,38.31 26.46,36.38 26.65,34.44 27.21,32.58 28.13,30.87 29.36,29.36 30.87,28.13 32.58,27.21 34.44,26.65 36.38,26.46 38.31,26.65 40.17,27.21 41.89,28.13 43.39,29.36 44.63,30.87 45.54,32.58 46.11,34.44 46.3,36.38 \"\r\n            style=\"fill:url(#gradientf338e33a7b584819b1c744d73e747428);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,128.98 46.11,130.91 45.54,132.77 44.63,134.49 43.39,135.99 41.89,137.23 40.17,138.14 38.31,138.71 36.38,138.9 34.44,138.71 32.58,138.14 30.87,137.23 29.36,135.99 28.13,134.49 27.21,132.77 26.65,130.91 26.46,128.98 26.65,127.04 27.21,125.18 28.13,123.46 29.36,121.96 30.87,120.73 32.58,119.81 34.44,119.25 36.38,119.06 38.31,119.25 40.17,119.81 41.89,120.73 43.39,121.96 44.63,123.46 45.54,125.18 46.11,127.04 46.3,128.98 \"\r\n            style=\"fill:url(#gradientf338e33a7b584819b1c744d73e747428);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,36.38 138.71,38.31 138.14,40.17 137.23,41.89 135.99,43.39 134.49,44.63 132.77,45.54 130.91,46.11 128.98,46.3 127.04,46.11 125.18,45.54 123.46,44.63 121.96,43.39 120.73,41.89 119.81,40.17 119.25,38.31 119.06,36.38 119.25,34.44 119.81,32.58 120.73,30.87 121.96,29.36 123.46,28.13 125.18,27.21 127.04,26.65 128.98,26.46 130.91,26.65 132.77,27.21 134.49,28.13 135.99,29.36 137.23,30.87 138.14,32.58 138.71,34.44 138.9,36.38 \"\r\n            style=\"fill:url(#gradientf338e33a7b584819b1c744d73e747428);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientf6ada64ee4ea4c3ab409c80131769b18\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"9.78888088478347\"\r\n            y1=\"78.8572474050841\"\r\n            x2=\"155.56543964134\"\r\n            y2=\"86.497073121039\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#FFFFFF\" />\r\n            <stop offset=\"100%\" stop-color=\"#A5A5A5\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"85.98,16.54 85.73,17.8 85.02,18.87 83.94,19.59 82.68,19.84 81.41,19.59 80.34,18.87 79.62,17.8 79.37,16.54 79.62,15.27 80.34,14.2 81.41,13.48 82.68,13.23 83.94,13.48 85.02,14.2 85.73,15.27 85.98,16.54 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,16.54 92.35,17.8 91.63,18.87 90.56,19.59 89.29,19.84 88.03,19.59 86.95,18.87 86.24,17.8 85.98,16.54 86.24,15.27 86.95,14.2 88.03,13.48 89.29,13.23 90.56,13.48 91.63,14.2 92.35,15.27 92.6,16.54 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,16.54 98.96,17.8 98.24,18.87 97.17,19.59 95.91,19.84 94.64,19.59 93.57,18.87 92.85,17.8 92.6,16.54 92.85,15.27 93.57,14.2 94.64,13.48 95.91,13.23 97.17,13.48 98.24,14.2 98.96,15.27 99.21,16.54 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,23.15 72.5,24.42 71.79,25.49 70.71,26.2 69.45,26.46 68.18,26.2 67.11,25.49 66.39,24.42 66.14,23.15 66.39,21.88 67.11,20.81 68.18,20.09 69.45,19.84 70.71,20.09 71.79,20.81 72.5,21.88 72.76,23.15 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,23.15 79.12,24.42 78.4,25.49 77.33,26.2 76.06,26.46 74.8,26.2 73.72,25.49 73.01,24.42 72.76,23.15 73.01,21.88 73.72,20.81 74.8,20.09 76.06,19.84 77.33,20.09 78.4,20.81 79.12,21.88 79.37,23.15 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,23.15 85.73,24.42 85.02,25.49 83.94,26.2 82.68,26.46 81.41,26.2 80.34,25.49 79.62,24.42 79.37,23.15 79.62,21.88 80.34,20.81 81.41,20.09 82.68,19.84 83.94,20.09 85.02,20.81 85.73,21.88 85.98,23.15 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,23.15 98.96,24.42 98.24,25.49 97.17,26.2 95.91,26.46 94.64,26.2 93.57,25.49 92.85,24.42 92.6,23.15 92.85,21.88 93.57,20.81 94.64,20.09 95.91,19.84 97.17,20.09 98.24,20.81 98.96,21.88 99.21,23.15 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,29.76 85.73,31.03 85.02,32.1 83.94,32.82 82.68,33.07 81.41,32.82 80.34,32.1 79.62,31.03 79.37,29.76 79.62,28.5 80.34,27.43 81.41,26.71 82.68,26.46 83.94,26.71 85.02,27.43 85.73,28.5 85.98,29.76 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,29.76 92.35,31.03 91.63,32.1 90.56,32.82 89.29,33.07 88.03,32.82 86.95,32.1 86.24,31.03 85.98,29.76 86.24,28.5 86.95,27.43 88.03,26.71 89.29,26.46 90.56,26.71 91.63,27.43 92.35,28.5 92.6,29.76 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,29.76 98.96,31.03 98.24,32.1 97.17,32.82 95.91,33.07 94.64,32.82 93.57,32.1 92.85,31.03 92.6,29.76 92.85,28.5 93.57,27.43 94.64,26.71 95.91,26.46 97.17,26.71 98.24,27.43 98.96,28.5 99.21,29.76 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,36.38 72.5,37.64 71.79,38.72 70.71,39.43 69.45,39.69 68.18,39.43 67.11,38.72 66.39,37.64 66.14,36.38 66.39,35.11 67.11,34.04 68.18,33.32 69.45,33.07 70.71,33.32 71.79,34.04 72.5,35.11 72.76,36.38 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,36.38 79.12,37.64 78.4,38.72 77.33,39.43 76.06,39.69 74.8,39.43 73.72,38.72 73.01,37.64 72.76,36.38 73.01,35.11 73.72,34.04 74.8,33.32 76.06,33.07 77.33,33.32 78.4,34.04 79.12,35.11 79.37,36.38 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,36.38 98.96,37.64 98.24,38.72 97.17,39.43 95.91,39.69 94.64,39.43 93.57,38.72 92.85,37.64 92.6,36.38 92.85,35.11 93.57,34.04 94.64,33.32 95.91,33.07 97.17,33.32 98.24,34.04 98.96,35.11 99.21,36.38 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,42.99 79.12,44.26 78.4,45.33 77.33,46.05 76.06,46.3 74.8,46.05 73.72,45.33 73.01,44.26 72.76,42.99 73.01,41.73 73.72,40.65 74.8,39.94 76.06,39.69 77.33,39.94 78.4,40.65 79.12,41.73 79.37,42.99 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,42.99 98.96,44.26 98.24,45.33 97.17,46.05 95.91,46.3 94.64,46.05 93.57,45.33 92.85,44.26 92.6,42.99 92.85,41.73 93.57,40.65 94.64,39.94 95.91,39.69 97.17,39.94 98.24,40.65 98.96,41.73 99.21,42.99 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,49.61 72.5,50.87 71.79,51.94 70.71,52.66 69.45,52.91 68.18,52.66 67.11,51.94 66.39,50.87 66.14,49.61 66.39,48.34 67.11,47.27 68.18,46.55 69.45,46.3 70.71,46.55 71.79,47.27 72.5,48.34 72.76,49.61 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,49.61 92.35,50.87 91.63,51.94 90.56,52.66 89.29,52.91 88.03,52.66 86.95,51.94 86.24,50.87 85.98,49.61 86.24,48.34 86.95,47.27 88.03,46.55 89.29,46.3 90.56,46.55 91.63,47.27 92.35,48.34 92.6,49.61 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,56.22 72.5,57.49 71.79,58.56 70.71,59.28 69.45,59.53 68.18,59.28 67.11,58.56 66.39,57.49 66.14,56.22 66.39,54.95 67.11,53.88 68.18,53.17 69.45,52.91 70.71,53.17 71.79,53.88 72.5,54.95 72.76,56.22 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,56.22 85.73,57.49 85.02,58.56 83.94,59.28 82.68,59.53 81.41,59.28 80.34,58.56 79.62,57.49 79.37,56.22 79.62,54.95 80.34,53.88 81.41,53.17 82.68,52.91 83.94,53.17 85.02,53.88 85.73,54.95 85.98,56.22 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,56.22 98.96,57.49 98.24,58.56 97.17,59.28 95.91,59.53 94.64,59.28 93.57,58.56 92.85,57.49 92.6,56.22 92.85,54.95 93.57,53.88 94.64,53.17 95.91,52.91 97.17,53.17 98.24,53.88 98.96,54.95 99.21,56.22 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,62.83 79.12,64.1 78.4,65.17 77.33,65.89 76.06,66.14 74.8,65.89 73.72,65.17 73.01,64.1 72.76,62.83 73.01,61.57 73.72,60.5 74.8,59.78 76.06,59.53 77.33,59.78 78.4,60.5 79.12,61.57 79.37,62.83 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,69.45 19.59,70.71 18.87,71.79 17.8,72.5 16.54,72.76 15.27,72.5 14.2,71.79 13.48,70.71 13.23,69.45 13.48,68.18 14.2,67.11 15.27,66.39 16.54,66.14 17.8,66.39 18.87,67.11 19.59,68.18 19.84,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,69.45 26.2,70.71 25.49,71.79 24.42,72.5 23.15,72.76 21.88,72.5 20.81,71.79 20.09,70.71 19.84,69.45 20.09,68.18 20.81,67.11 21.88,66.39 23.15,66.14 24.42,66.39 25.49,67.11 26.2,68.18 26.46,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,69.45 32.82,70.71 32.1,71.79 31.03,72.5 29.76,72.76 28.5,72.5 27.43,71.79 26.71,70.71 26.46,69.45 26.71,68.18 27.43,67.11 28.5,66.39 29.76,66.14 31.03,66.39 32.1,67.11 32.82,68.18 33.07,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,69.45 39.43,70.71 38.72,71.79 37.64,72.5 36.38,72.76 35.11,72.5 34.04,71.79 33.32,70.71 33.07,69.45 33.32,68.18 34.04,67.11 35.11,66.39 36.38,66.14 37.64,66.39 38.72,67.11 39.43,68.18 39.69,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,69.45 46.05,70.71 45.33,71.79 44.26,72.5 42.99,72.76 41.73,72.5 40.65,71.79 39.94,70.71 39.69,69.45 39.94,68.18 40.65,67.11 41.73,66.39 42.99,66.14 44.26,66.39 45.33,67.11 46.05,68.18 46.3,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,69.45 59.28,70.71 58.56,71.79 57.49,72.5 56.22,72.76 54.95,72.5 53.88,71.79 53.17,70.71 52.91,69.45 53.17,68.18 53.88,67.11 54.95,66.39 56.22,66.14 57.49,66.39 58.56,67.11 59.28,68.18 59.53,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,69.45 65.89,70.71 65.17,71.79 64.1,72.5 62.83,72.76 61.57,72.5 60.5,71.79 59.78,70.71 59.53,69.45 59.78,68.18 60.5,67.11 61.57,66.39 62.83,66.14 64.1,66.39 65.17,67.11 65.89,68.18 66.14,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,69.45 72.5,70.71 71.79,71.79 70.71,72.5 69.45,72.76 68.18,72.5 67.11,71.79 66.39,70.71 66.14,69.45 66.39,68.18 67.11,67.11 68.18,66.39 69.45,66.14 70.71,66.39 71.79,67.11 72.5,68.18 72.76,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,69.45 92.35,70.71 91.63,71.79 90.56,72.5 89.29,72.76 88.03,72.5 86.95,71.79 86.24,70.71 85.98,69.45 86.24,68.18 86.95,67.11 88.03,66.39 89.29,66.14 90.56,66.39 91.63,67.11 92.35,68.18 92.6,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,69.45 105.58,70.71 104.86,71.79 103.79,72.5 102.52,72.76 101.25,72.5 100.18,71.79 99.46,70.71 99.21,69.45 99.46,68.18 100.18,67.11 101.25,66.39 102.52,66.14 103.79,66.39 104.86,67.11 105.58,68.18 105.83,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,69.45 118.8,70.71 118.09,71.79 117.01,72.5 115.75,72.76 114.48,72.5 113.41,71.79 112.69,70.71 112.44,69.45 112.69,68.18 113.41,67.11 114.48,66.39 115.75,66.14 117.01,66.39 118.09,67.11 118.8,68.18 119.06,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,69.45 132.03,70.71 131.31,71.79 130.24,72.5 128.98,72.76 127.71,72.5 126.64,71.79 125.92,70.71 125.67,69.45 125.92,68.18 126.64,67.11 127.71,66.39 128.98,66.14 130.24,66.39 131.31,67.11 132.03,68.18 132.28,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,69.45 145.26,70.71 144.54,71.79 143.47,72.5 142.2,72.76 140.94,72.5 139.87,71.79 139.15,70.71 138.9,69.45 139.15,68.18 139.87,67.11 140.94,66.39 142.2,66.14 143.47,66.39 144.54,67.11 145.26,68.18 145.51,69.45 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,76.06 19.59,77.33 18.87,78.4 17.8,79.12 16.54,79.37 15.27,79.12 14.2,78.4 13.48,77.33 13.23,76.06 13.48,74.8 14.2,73.72 15.27,73.01 16.54,72.76 17.8,73.01 18.87,73.72 19.59,74.8 19.84,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,76.06 26.2,77.33 25.49,78.4 24.42,79.12 23.15,79.37 21.88,79.12 20.81,78.4 20.09,77.33 19.84,76.06 20.09,74.8 20.81,73.72 21.88,73.01 23.15,72.76 24.42,73.01 25.49,73.72 26.2,74.8 26.46,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,76.06 32.82,77.33 32.1,78.4 31.03,79.12 29.76,79.37 28.5,79.12 27.43,78.4 26.71,77.33 26.46,76.06 26.71,74.8 27.43,73.72 28.5,73.01 29.76,72.76 31.03,73.01 32.1,73.72 32.82,74.8 33.07,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,76.06 52.66,77.33 51.94,78.4 50.87,79.12 49.61,79.37 48.34,79.12 47.27,78.4 46.55,77.33 46.3,76.06 46.55,74.8 47.27,73.72 48.34,73.01 49.61,72.76 50.87,73.01 51.94,73.72 52.66,74.8 52.91,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,76.06 65.89,77.33 65.17,78.4 64.1,79.12 62.83,79.37 61.57,79.12 60.5,78.4 59.78,77.33 59.53,76.06 59.78,74.8 60.5,73.72 61.57,73.01 62.83,72.76 64.1,73.01 65.17,73.72 65.89,74.8 66.14,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,76.06 79.12,77.33 78.4,78.4 77.33,79.12 76.06,79.37 74.8,79.12 73.72,78.4 73.01,77.33 72.76,76.06 73.01,74.8 73.72,73.72 74.8,73.01 76.06,72.76 77.33,73.01 78.4,73.72 79.12,74.8 79.37,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,76.06 92.35,77.33 91.63,78.4 90.56,79.12 89.29,79.37 88.03,79.12 86.95,78.4 86.24,77.33 85.98,76.06 86.24,74.8 86.95,73.72 88.03,73.01 89.29,72.76 90.56,73.01 91.63,73.72 92.35,74.8 92.6,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,76.06 98.96,77.33 98.24,78.4 97.17,79.12 95.91,79.37 94.64,79.12 93.57,78.4 92.85,77.33 92.6,76.06 92.85,74.8 93.57,73.72 94.64,73.01 95.91,72.76 97.17,73.01 98.24,73.72 98.96,74.8 99.21,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,76.06 105.58,77.33 104.86,78.4 103.79,79.12 102.52,79.37 101.25,79.12 100.18,78.4 99.46,77.33 99.21,76.06 99.46,74.8 100.18,73.72 101.25,73.01 102.52,72.76 103.79,73.01 104.86,73.72 105.58,74.8 105.83,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,76.06 112.19,77.33 111.47,78.4 110.4,79.12 109.13,79.37 107.87,79.12 106.8,78.4 106.08,77.33 105.83,76.06 106.08,74.8 106.8,73.72 107.87,73.01 109.13,72.76 110.4,73.01 111.47,73.72 112.19,74.8 112.44,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,76.06 132.03,77.33 131.31,78.4 130.24,79.12 128.98,79.37 127.71,79.12 126.64,78.4 125.92,77.33 125.67,76.06 125.92,74.8 126.64,73.72 127.71,73.01 128.98,72.76 130.24,73.01 131.31,73.72 132.03,74.8 132.28,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,76.06 138.65,77.33 137.93,78.4 136.86,79.12 135.59,79.37 134.32,79.12 133.25,78.4 132.54,77.33 132.28,76.06 132.54,74.8 133.25,73.72 134.32,73.01 135.59,72.76 136.86,73.01 137.93,73.72 138.65,74.8 138.9,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,76.06 145.26,77.33 144.54,78.4 143.47,79.12 142.2,79.37 140.94,79.12 139.87,78.4 139.15,77.33 138.9,76.06 139.15,74.8 139.87,73.72 140.94,73.01 142.2,72.76 143.47,73.01 144.54,73.72 145.26,74.8 145.51,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,76.06 151.87,77.33 151.16,78.4 150.08,79.12 148.82,79.37 147.55,79.12 146.48,78.4 145.76,77.33 145.51,76.06 145.76,74.8 146.48,73.72 147.55,73.01 148.82,72.76 150.08,73.01 151.16,73.72 151.87,74.8 152.13,76.06 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,82.68 32.82,83.94 32.1,85.02 31.03,85.73 29.76,85.98 28.5,85.73 27.43,85.02 26.71,83.94 26.46,82.68 26.71,81.41 27.43,80.34 28.5,79.62 29.76,79.37 31.03,79.62 32.1,80.34 32.82,81.41 33.07,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,82.68 46.05,83.94 45.33,85.02 44.26,85.73 42.99,85.98 41.73,85.73 40.65,85.02 39.94,83.94 39.69,82.68 39.94,81.41 40.65,80.34 41.73,79.62 42.99,79.37 44.26,79.62 45.33,80.34 46.05,81.41 46.3,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,82.68 52.66,83.94 51.94,85.02 50.87,85.73 49.61,85.98 48.34,85.73 47.27,85.02 46.55,83.94 46.3,82.68 46.55,81.41 47.27,80.34 48.34,79.62 49.61,79.37 50.87,79.62 51.94,80.34 52.66,81.41 52.91,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,82.68 59.28,83.94 58.56,85.02 57.49,85.73 56.22,85.98 54.95,85.73 53.88,85.02 53.17,83.94 52.91,82.68 53.17,81.41 53.88,80.34 54.95,79.62 56.22,79.37 57.49,79.62 58.56,80.34 59.28,81.41 59.53,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,82.68 72.5,83.94 71.79,85.02 70.71,85.73 69.45,85.98 68.18,85.73 67.11,85.02 66.39,83.94 66.14,82.68 66.39,81.41 67.11,80.34 68.18,79.62 69.45,79.37 70.71,79.62 71.79,80.34 72.5,81.41 72.76,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,82.68 79.12,83.94 78.4,85.02 77.33,85.73 76.06,85.98 74.8,85.73 73.72,85.02 73.01,83.94 72.76,82.68 73.01,81.41 73.72,80.34 74.8,79.62 76.06,79.37 77.33,79.62 78.4,80.34 79.12,81.41 79.37,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,82.68 98.96,83.94 98.24,85.02 97.17,85.73 95.91,85.98 94.64,85.73 93.57,85.02 92.85,83.94 92.6,82.68 92.85,81.41 93.57,80.34 94.64,79.62 95.91,79.37 97.17,79.62 98.24,80.34 98.96,81.41 99.21,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,82.68 112.19,83.94 111.47,85.02 110.4,85.73 109.13,85.98 107.87,85.73 106.8,85.02 106.08,83.94 105.83,82.68 106.08,81.41 106.8,80.34 107.87,79.62 109.13,79.37 110.4,79.62 111.47,80.34 112.19,81.41 112.44,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,82.68 118.8,83.94 118.09,85.02 117.01,85.73 115.75,85.98 114.48,85.73 113.41,85.02 112.69,83.94 112.44,82.68 112.69,81.41 113.41,80.34 114.48,79.62 115.75,79.37 117.01,79.62 118.09,80.34 118.8,81.41 119.06,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,82.68 132.03,83.94 131.31,85.02 130.24,85.73 128.98,85.98 127.71,85.73 126.64,85.02 125.92,83.94 125.67,82.68 125.92,81.41 126.64,80.34 127.71,79.62 128.98,79.37 130.24,79.62 131.31,80.34 132.03,81.41 132.28,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,82.68 151.87,83.94 151.16,85.02 150.08,85.73 148.82,85.98 147.55,85.73 146.48,85.02 145.76,83.94 145.51,82.68 145.76,81.41 146.48,80.34 147.55,79.62 148.82,79.37 150.08,79.62 151.16,80.34 151.87,81.41 152.13,82.68 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,89.29 19.59,90.56 18.87,91.63 17.8,92.35 16.54,92.6 15.27,92.35 14.2,91.63 13.48,90.56 13.23,89.29 13.48,88.03 14.2,86.95 15.27,86.24 16.54,85.98 17.8,86.24 18.87,86.95 19.59,88.03 19.84,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,89.29 39.43,90.56 38.72,91.63 37.64,92.35 36.38,92.6 35.11,92.35 34.04,91.63 33.32,90.56 33.07,89.29 33.32,88.03 34.04,86.95 35.11,86.24 36.38,85.98 37.64,86.24 38.72,86.95 39.43,88.03 39.69,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,89.29 92.35,90.56 91.63,91.63 90.56,92.35 89.29,92.6 88.03,92.35 86.95,91.63 86.24,90.56 85.98,89.29 86.24,88.03 86.95,86.95 88.03,86.24 89.29,85.98 90.56,86.24 91.63,86.95 92.35,88.03 92.6,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,89.29 98.96,90.56 98.24,91.63 97.17,92.35 95.91,92.6 94.64,92.35 93.57,91.63 92.85,90.56 92.6,89.29 92.85,88.03 93.57,86.95 94.64,86.24 95.91,85.98 97.17,86.24 98.24,86.95 98.96,88.03 99.21,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,89.29 105.58,90.56 104.86,91.63 103.79,92.35 102.52,92.6 101.25,92.35 100.18,91.63 99.46,90.56 99.21,89.29 99.46,88.03 100.18,86.95 101.25,86.24 102.52,85.98 103.79,86.24 104.86,86.95 105.58,88.03 105.83,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,89.29 112.19,90.56 111.47,91.63 110.4,92.35 109.13,92.6 107.87,92.35 106.8,91.63 106.08,90.56 105.83,89.29 106.08,88.03 106.8,86.95 107.87,86.24 109.13,85.98 110.4,86.24 111.47,86.95 112.19,88.03 112.44,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,89.29 138.65,90.56 137.93,91.63 136.86,92.35 135.59,92.6 134.32,92.35 133.25,91.63 132.54,90.56 132.28,89.29 132.54,88.03 133.25,86.95 134.32,86.24 135.59,85.98 136.86,86.24 137.93,86.95 138.65,88.03 138.9,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,89.29 145.26,90.56 144.54,91.63 143.47,92.35 142.2,92.6 140.94,92.35 139.87,91.63 139.15,90.56 138.9,89.29 139.15,88.03 139.87,86.95 140.94,86.24 142.2,85.98 143.47,86.24 144.54,86.95 145.26,88.03 145.51,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,89.29 151.87,90.56 151.16,91.63 150.08,92.35 148.82,92.6 147.55,92.35 146.48,91.63 145.76,90.56 145.51,89.29 145.76,88.03 146.48,86.95 147.55,86.24 148.82,85.98 150.08,86.24 151.16,86.95 151.87,88.03 152.13,89.29 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,95.91 26.2,97.17 25.49,98.24 24.42,98.96 23.15,99.21 21.88,98.96 20.81,98.24 20.09,97.17 19.84,95.91 20.09,94.64 20.81,93.57 21.88,92.85 23.15,92.6 24.42,92.85 25.49,93.57 26.2,94.64 26.46,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,95.91 39.43,97.17 38.72,98.24 37.64,98.96 36.38,99.21 35.11,98.96 34.04,98.24 33.32,97.17 33.07,95.91 33.32,94.64 34.04,93.57 35.11,92.85 36.38,92.6 37.64,92.85 38.72,93.57 39.43,94.64 39.69,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,95.91 46.05,97.17 45.33,98.24 44.26,98.96 42.99,99.21 41.73,98.96 40.65,98.24 39.94,97.17 39.69,95.91 39.94,94.64 40.65,93.57 41.73,92.85 42.99,92.6 44.26,92.85 45.33,93.57 46.05,94.64 46.3,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,95.91 59.28,97.17 58.56,98.24 57.49,98.96 56.22,99.21 54.95,98.96 53.88,98.24 53.17,97.17 52.91,95.91 53.17,94.64 53.88,93.57 54.95,92.85 56.22,92.6 57.49,92.85 58.56,93.57 59.28,94.64 59.53,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,95.91 72.5,97.17 71.79,98.24 70.71,98.96 69.45,99.21 68.18,98.96 67.11,98.24 66.39,97.17 66.14,95.91 66.39,94.64 67.11,93.57 68.18,92.85 69.45,92.6 70.71,92.85 71.79,93.57 72.5,94.64 72.76,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,95.91 79.12,97.17 78.4,98.24 77.33,98.96 76.06,99.21 74.8,98.96 73.72,98.24 73.01,97.17 72.76,95.91 73.01,94.64 73.72,93.57 74.8,92.85 76.06,92.6 77.33,92.85 78.4,93.57 79.12,94.64 79.37,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,95.91 98.96,97.17 98.24,98.24 97.17,98.96 95.91,99.21 94.64,98.96 93.57,98.24 92.85,97.17 92.6,95.91 92.85,94.64 93.57,93.57 94.64,92.85 95.91,92.6 97.17,92.85 98.24,93.57 98.96,94.64 99.21,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,95.91 118.8,97.17 118.09,98.24 117.01,98.96 115.75,99.21 114.48,98.96 113.41,98.24 112.69,97.17 112.44,95.91 112.69,94.64 113.41,93.57 114.48,92.85 115.75,92.6 117.01,92.85 118.09,93.57 118.8,94.64 119.06,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,95.91 145.26,97.17 144.54,98.24 143.47,98.96 142.2,99.21 140.94,98.96 139.87,98.24 139.15,97.17 138.9,95.91 139.15,94.64 139.87,93.57 140.94,92.85 142.2,92.6 143.47,92.85 144.54,93.57 145.26,94.64 145.51,95.91 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,102.52 72.5,103.79 71.79,104.86 70.71,105.58 69.45,105.83 68.18,105.58 67.11,104.86 66.39,103.79 66.14,102.52 66.39,101.25 67.11,100.18 68.18,99.46 69.45,99.21 70.71,99.46 71.79,100.18 72.5,101.25 72.76,102.52 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,102.52 85.73,103.79 85.02,104.86 83.94,105.58 82.68,105.83 81.41,105.58 80.34,104.86 79.62,103.79 79.37,102.52 79.62,101.25 80.34,100.18 81.41,99.46 82.68,99.21 83.94,99.46 85.02,100.18 85.73,101.25 85.98,102.52 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,102.52 98.96,103.79 98.24,104.86 97.17,105.58 95.91,105.83 94.64,105.58 93.57,104.86 92.85,103.79 92.6,102.52 92.85,101.25 93.57,100.18 94.64,99.46 95.91,99.21 97.17,99.46 98.24,100.18 98.96,101.25 99.21,102.52 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,102.52 118.8,103.79 118.09,104.86 117.01,105.58 115.75,105.83 114.48,105.58 113.41,104.86 112.69,103.79 112.44,102.52 112.69,101.25 113.41,100.18 114.48,99.46 115.75,99.21 117.01,99.46 118.09,100.18 118.8,101.25 119.06,102.52 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,102.52 138.65,103.79 137.93,104.86 136.86,105.58 135.59,105.83 134.32,105.58 133.25,104.86 132.54,103.79 132.28,102.52 132.54,101.25 133.25,100.18 134.32,99.46 135.59,99.21 136.86,99.46 137.93,100.18 138.65,101.25 138.9,102.52 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,109.13 72.5,110.4 71.79,111.47 70.71,112.19 69.45,112.44 68.18,112.19 67.11,111.47 66.39,110.4 66.14,109.13 66.39,107.87 67.11,106.8 68.18,106.08 69.45,105.83 70.71,106.08 71.79,106.8 72.5,107.87 72.76,109.13 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,109.13 92.35,110.4 91.63,111.47 90.56,112.19 89.29,112.44 88.03,112.19 86.95,111.47 86.24,110.4 85.98,109.13 86.24,107.87 86.95,106.8 88.03,106.08 89.29,105.83 90.56,106.08 91.63,106.8 92.35,107.87 92.6,109.13 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,109.13 105.58,110.4 104.86,111.47 103.79,112.19 102.52,112.44 101.25,112.19 100.18,111.47 99.46,110.4 99.21,109.13 99.46,107.87 100.18,106.8 101.25,106.08 102.52,105.83 103.79,106.08 104.86,106.8 105.58,107.87 105.83,109.13 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,109.13 125.42,110.4 124.7,111.47 123.63,112.19 122.36,112.44 121.1,112.19 120.02,111.47 119.31,110.4 119.06,109.13 119.31,107.87 120.02,106.8 121.1,106.08 122.36,105.83 123.63,106.08 124.7,106.8 125.42,107.87 125.67,109.13 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,109.13 132.03,110.4 131.31,111.47 130.24,112.19 128.98,112.44 127.71,112.19 126.64,111.47 125.92,110.4 125.67,109.13 125.92,107.87 126.64,106.8 127.71,106.08 128.98,105.83 130.24,106.08 131.31,106.8 132.03,107.87 132.28,109.13 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,109.13 145.26,110.4 144.54,111.47 143.47,112.19 142.2,112.44 140.94,112.19 139.87,111.47 139.15,110.4 138.9,109.13 139.15,107.87 139.87,106.8 140.94,106.08 142.2,105.83 143.47,106.08 144.54,106.8 145.26,107.87 145.51,109.13 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,109.13 151.87,110.4 151.16,111.47 150.08,112.19 148.82,112.44 147.55,112.19 146.48,111.47 145.76,110.4 145.51,109.13 145.76,107.87 146.48,106.8 147.55,106.08 148.82,105.83 150.08,106.08 151.16,106.8 151.87,107.87 152.13,109.13 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,115.75 79.12,117.01 78.4,118.09 77.33,118.8 76.06,119.06 74.8,118.8 73.72,118.09 73.01,117.01 72.76,115.75 73.01,114.48 73.72,113.41 74.8,112.69 76.06,112.44 77.33,112.69 78.4,113.41 79.12,114.48 79.37,115.75 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,115.75 85.73,117.01 85.02,118.09 83.94,118.8 82.68,119.06 81.41,118.8 80.34,118.09 79.62,117.01 79.37,115.75 79.62,114.48 80.34,113.41 81.41,112.69 82.68,112.44 83.94,112.69 85.02,113.41 85.73,114.48 85.98,115.75 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,115.75 118.8,117.01 118.09,118.09 117.01,118.8 115.75,119.06 114.48,118.8 113.41,118.09 112.69,117.01 112.44,115.75 112.69,114.48 113.41,113.41 114.48,112.69 115.75,112.44 117.01,112.69 118.09,113.41 118.8,114.48 119.06,115.75 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,115.75 125.42,117.01 124.7,118.09 123.63,118.8 122.36,119.06 121.1,118.8 120.02,118.09 119.31,117.01 119.06,115.75 119.31,114.48 120.02,113.41 121.1,112.69 122.36,112.44 123.63,112.69 124.7,113.41 125.42,114.48 125.67,115.75 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,115.75 138.65,117.01 137.93,118.09 136.86,118.8 135.59,119.06 134.32,118.8 133.25,118.09 132.54,117.01 132.28,115.75 132.54,114.48 133.25,113.41 134.32,112.69 135.59,112.44 136.86,112.69 137.93,113.41 138.65,114.48 138.9,115.75 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,115.75 151.87,117.01 151.16,118.09 150.08,118.8 148.82,119.06 147.55,118.8 146.48,118.09 145.76,117.01 145.51,115.75 145.76,114.48 146.48,113.41 147.55,112.69 148.82,112.44 150.08,112.69 151.16,113.41 151.87,114.48 152.13,115.75 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,122.36 72.5,123.63 71.79,124.7 70.71,125.42 69.45,125.67 68.18,125.42 67.11,124.7 66.39,123.63 66.14,122.36 66.39,121.1 67.11,120.02 68.18,119.31 69.45,119.06 70.71,119.31 71.79,120.02 72.5,121.1 72.76,122.36 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,122.36 79.12,123.63 78.4,124.7 77.33,125.42 76.06,125.67 74.8,125.42 73.72,124.7 73.01,123.63 72.76,122.36 73.01,121.1 73.72,120.02 74.8,119.31 76.06,119.06 77.33,119.31 78.4,120.02 79.12,121.1 79.37,122.36 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,122.36 85.73,123.63 85.02,124.7 83.94,125.42 82.68,125.67 81.41,125.42 80.34,124.7 79.62,123.63 79.37,122.36 79.62,121.1 80.34,120.02 81.41,119.31 82.68,119.06 83.94,119.31 85.02,120.02 85.73,121.1 85.98,122.36 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,122.36 92.35,123.63 91.63,124.7 90.56,125.42 89.29,125.67 88.03,125.42 86.95,124.7 86.24,123.63 85.98,122.36 86.24,121.1 86.95,120.02 88.03,119.31 89.29,119.06 90.56,119.31 91.63,120.02 92.35,121.1 92.6,122.36 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,122.36 105.58,123.63 104.86,124.7 103.79,125.42 102.52,125.67 101.25,125.42 100.18,124.7 99.46,123.63 99.21,122.36 99.46,121.1 100.18,120.02 101.25,119.31 102.52,119.06 103.79,119.31 104.86,120.02 105.58,121.1 105.83,122.36 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,122.36 125.42,123.63 124.7,124.7 123.63,125.42 122.36,125.67 121.1,125.42 120.02,124.7 119.31,123.63 119.06,122.36 119.31,121.1 120.02,120.02 121.1,119.31 122.36,119.06 123.63,119.31 124.7,120.02 125.42,121.1 125.67,122.36 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,122.36 132.03,123.63 131.31,124.7 130.24,125.42 128.98,125.67 127.71,125.42 126.64,124.7 125.92,123.63 125.67,122.36 125.92,121.1 126.64,120.02 127.71,119.31 128.98,119.06 130.24,119.31 131.31,120.02 132.03,121.1 132.28,122.36 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,122.36 138.65,123.63 137.93,124.7 136.86,125.42 135.59,125.67 134.32,125.42 133.25,124.7 132.54,123.63 132.28,122.36 132.54,121.1 133.25,120.02 134.32,119.31 135.59,119.06 136.86,119.31 137.93,120.02 138.65,121.1 138.9,122.36 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,128.98 72.5,130.24 71.79,131.31 70.71,132.03 69.45,132.28 68.18,132.03 67.11,131.31 66.39,130.24 66.14,128.98 66.39,127.71 67.11,126.64 68.18,125.92 69.45,125.67 70.71,125.92 71.79,126.64 72.5,127.71 72.76,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,128.98 79.12,130.24 78.4,131.31 77.33,132.03 76.06,132.28 74.8,132.03 73.72,131.31 73.01,130.24 72.76,128.98 73.01,127.71 73.72,126.64 74.8,125.92 76.06,125.67 77.33,125.92 78.4,126.64 79.12,127.71 79.37,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,128.98 92.35,130.24 91.63,131.31 90.56,132.03 89.29,132.28 88.03,132.03 86.95,131.31 86.24,130.24 85.98,128.98 86.24,127.71 86.95,126.64 88.03,125.92 89.29,125.67 90.56,125.92 91.63,126.64 92.35,127.71 92.6,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,128.98 98.96,130.24 98.24,131.31 97.17,132.03 95.91,132.28 94.64,132.03 93.57,131.31 92.85,130.24 92.6,128.98 92.85,127.71 93.57,126.64 94.64,125.92 95.91,125.67 97.17,125.92 98.24,126.64 98.96,127.71 99.21,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,128.98 105.58,130.24 104.86,131.31 103.79,132.03 102.52,132.28 101.25,132.03 100.18,131.31 99.46,130.24 99.21,128.98 99.46,127.71 100.18,126.64 101.25,125.92 102.52,125.67 103.79,125.92 104.86,126.64 105.58,127.71 105.83,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,128.98 112.19,130.24 111.47,131.31 110.4,132.03 109.13,132.28 107.87,132.03 106.8,131.31 106.08,130.24 105.83,128.98 106.08,127.71 106.8,126.64 107.87,125.92 109.13,125.67 110.4,125.92 111.47,126.64 112.19,127.71 112.44,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,128.98 118.8,130.24 118.09,131.31 117.01,132.03 115.75,132.28 114.48,132.03 113.41,131.31 112.69,130.24 112.44,128.98 112.69,127.71 113.41,126.64 114.48,125.92 115.75,125.67 117.01,125.92 118.09,126.64 118.8,127.71 119.06,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,128.98 132.03,130.24 131.31,131.31 130.24,132.03 128.98,132.28 127.71,132.03 126.64,131.31 125.92,130.24 125.67,128.98 125.92,127.71 126.64,126.64 127.71,125.92 128.98,125.67 130.24,125.92 131.31,126.64 132.03,127.71 132.28,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,128.98 138.65,130.24 137.93,131.31 136.86,132.03 135.59,132.28 134.32,132.03 133.25,131.31 132.54,130.24 132.28,128.98 132.54,127.71 133.25,126.64 134.32,125.92 135.59,125.67 136.86,125.92 137.93,126.64 138.65,127.71 138.9,128.98 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,135.59 72.5,136.86 71.79,137.93 70.71,138.65 69.45,138.9 68.18,138.65 67.11,137.93 66.39,136.86 66.14,135.59 66.39,134.32 67.11,133.25 68.18,132.54 69.45,132.28 70.71,132.54 71.79,133.25 72.5,134.32 72.76,135.59 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,135.59 79.12,136.86 78.4,137.93 77.33,138.65 76.06,138.9 74.8,138.65 73.72,137.93 73.01,136.86 72.76,135.59 73.01,134.32 73.72,133.25 74.8,132.54 76.06,132.28 77.33,132.54 78.4,133.25 79.12,134.32 79.37,135.59 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,135.59 98.96,136.86 98.24,137.93 97.17,138.65 95.91,138.9 94.64,138.65 93.57,137.93 92.85,136.86 92.6,135.59 92.85,134.32 93.57,133.25 94.64,132.54 95.91,132.28 97.17,132.54 98.24,133.25 98.96,134.32 99.21,135.59 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,135.59 112.19,136.86 111.47,137.93 110.4,138.65 109.13,138.9 107.87,138.65 106.8,137.93 106.08,136.86 105.83,135.59 106.08,134.32 106.8,133.25 107.87,132.54 109.13,132.28 110.4,132.54 111.47,133.25 112.19,134.32 112.44,135.59 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,135.59 118.8,136.86 118.09,137.93 117.01,138.65 115.75,138.9 114.48,138.65 113.41,137.93 112.69,136.86 112.44,135.59 112.69,134.32 113.41,133.25 114.48,132.54 115.75,132.28 117.01,132.54 118.09,133.25 118.8,134.32 119.06,135.59 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,135.59 132.03,136.86 131.31,137.93 130.24,138.65 128.98,138.9 127.71,138.65 126.64,137.93 125.92,136.86 125.67,135.59 125.92,134.32 126.64,133.25 127.71,132.54 128.98,132.28 130.24,132.54 131.31,133.25 132.03,134.32 132.28,135.59 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,135.59 138.65,136.86 137.93,137.93 136.86,138.65 135.59,138.9 134.32,138.65 133.25,137.93 132.54,136.86 132.28,135.59 132.54,134.32 133.25,133.25 134.32,132.54 135.59,132.28 136.86,132.54 137.93,133.25 138.65,134.32 138.9,135.59 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,142.2 72.5,143.47 71.79,144.54 70.71,145.26 69.45,145.51 68.18,145.26 67.11,144.54 66.39,143.47 66.14,142.2 66.39,140.94 67.11,139.87 68.18,139.15 69.45,138.9 70.71,139.15 71.79,139.87 72.5,140.94 72.76,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,142.2 85.73,143.47 85.02,144.54 83.94,145.26 82.68,145.51 81.41,145.26 80.34,144.54 79.62,143.47 79.37,142.2 79.62,140.94 80.34,139.87 81.41,139.15 82.68,138.9 83.94,139.15 85.02,139.87 85.73,140.94 85.98,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,142.2 92.35,143.47 91.63,144.54 90.56,145.26 89.29,145.51 88.03,145.26 86.95,144.54 86.24,143.47 85.98,142.2 86.24,140.94 86.95,139.87 88.03,139.15 89.29,138.9 90.56,139.15 91.63,139.87 92.35,140.94 92.6,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,142.2 98.96,143.47 98.24,144.54 97.17,145.26 95.91,145.51 94.64,145.26 93.57,144.54 92.85,143.47 92.6,142.2 92.85,140.94 93.57,139.87 94.64,139.15 95.91,138.9 97.17,139.15 98.24,139.87 98.96,140.94 99.21,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,142.2 105.58,143.47 104.86,144.54 103.79,145.26 102.52,145.51 101.25,145.26 100.18,144.54 99.46,143.47 99.21,142.2 99.46,140.94 100.18,139.87 101.25,139.15 102.52,138.9 103.79,139.15 104.86,139.87 105.58,140.94 105.83,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,142.2 112.19,143.47 111.47,144.54 110.4,145.26 109.13,145.51 107.87,145.26 106.8,144.54 106.08,143.47 105.83,142.2 106.08,140.94 106.8,139.87 107.87,139.15 109.13,138.9 110.4,139.15 111.47,139.87 112.19,140.94 112.44,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,142.2 118.8,143.47 118.09,144.54 117.01,145.26 115.75,145.51 114.48,145.26 113.41,144.54 112.69,143.47 112.44,142.2 112.69,140.94 113.41,139.87 114.48,139.15 115.75,138.9 117.01,139.15 118.09,139.87 118.8,140.94 119.06,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,142.2 125.42,143.47 124.7,144.54 123.63,145.26 122.36,145.51 121.1,145.26 120.02,144.54 119.31,143.47 119.06,142.2 119.31,140.94 120.02,139.87 121.1,139.15 122.36,138.9 123.63,139.15 124.7,139.87 125.42,140.94 125.67,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,142.2 138.65,143.47 137.93,144.54 136.86,145.26 135.59,145.51 134.32,145.26 133.25,144.54 132.54,143.47 132.28,142.2 132.54,140.94 133.25,139.87 134.32,139.15 135.59,138.9 136.86,139.15 137.93,139.87 138.65,140.94 138.9,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,142.2 145.26,143.47 144.54,144.54 143.47,145.26 142.2,145.51 140.94,145.26 139.87,144.54 139.15,143.47 138.9,142.2 139.15,140.94 139.87,139.87 140.94,139.15 142.2,138.9 143.47,139.15 144.54,139.87 145.26,140.94 145.51,142.2 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,148.82 72.5,150.08 71.79,151.16 70.71,151.87 69.45,152.13 68.18,151.87 67.11,151.16 66.39,150.08 66.14,148.82 66.39,147.55 67.11,146.48 68.18,145.76 69.45,145.51 70.71,145.76 71.79,146.48 72.5,147.55 72.76,148.82 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,148.82 79.12,150.08 78.4,151.16 77.33,151.87 76.06,152.13 74.8,151.87 73.72,151.16 73.01,150.08 72.76,148.82 73.01,147.55 73.72,146.48 74.8,145.76 76.06,145.51 77.33,145.76 78.4,146.48 79.12,147.55 79.37,148.82 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,148.82 85.73,150.08 85.02,151.16 83.94,151.87 82.68,152.13 81.41,151.87 80.34,151.16 79.62,150.08 79.37,148.82 79.62,147.55 80.34,146.48 81.41,145.76 82.68,145.51 83.94,145.76 85.02,146.48 85.73,147.55 85.98,148.82 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,148.82 98.96,150.08 98.24,151.16 97.17,151.87 95.91,152.13 94.64,151.87 93.57,151.16 92.85,150.08 92.6,148.82 92.85,147.55 93.57,146.48 94.64,145.76 95.91,145.51 97.17,145.76 98.24,146.48 98.96,147.55 99.21,148.82 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,148.82 118.8,150.08 118.09,151.16 117.01,151.87 115.75,152.13 114.48,151.87 113.41,151.16 112.69,150.08 112.44,148.82 112.69,147.55 113.41,146.48 114.48,145.76 115.75,145.51 117.01,145.76 118.09,146.48 118.8,147.55 119.06,148.82 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,148.82 138.65,150.08 137.93,151.16 136.86,151.87 135.59,152.13 134.32,151.87 133.25,151.16 132.54,150.08 132.28,148.82 132.54,147.55 133.25,146.48 134.32,145.76 135.59,145.51 136.86,145.76 137.93,146.48 138.65,147.55 138.9,148.82 \"\r\n            style=\"fill:url(#gradientf6ada64ee4ea4c3ab409c80131769b18);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 22,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientff154b24163e4fb69b5bbd4023a55584\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"7.72605761144101\"\r\n            y1=\"76.1197884622769\"\r\n            x2=\"157.628262914682\"\r\n            y2=\"89.2345320638461\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#C993FF\" />\r\n            <stop offset=\"50%\" stop-color=\"#DBE5F1\" />\r\n            <stop offset=\"100%\" stop-color=\"#C993FF\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"13.23,29.76 13.55,26.54 14.49,23.44 16.02,20.58 18.07,18.07 20.58,16.02 23.44,14.49 26.54,13.55 29.76,13.23 42.99,13.23 46.22,13.55 49.32,14.49 52.18,16.02 54.68,18.07 56.74,20.58 58.27,23.44 59.21,26.54 59.53,29.76 59.53,42.99 59.21,46.22 58.27,49.32 56.74,52.18 54.68,54.68 52.18,56.74 49.32,58.27 46.22,59.21 42.99,59.53 29.76,59.53 26.54,59.21 23.44,58.27 20.58,56.74 18.07,54.68 16.02,52.18 14.49,49.32 13.55,46.22 13.23,42.99 13.23,29.76 19.84,29.76 19.84,42.99 20.18,45.56 21.17,47.95 22.75,50.01 24.8,51.58 27.2,52.58 29.76,52.91 42.99,52.91 45.56,52.58 47.95,51.58 50.01,50.01 51.58,47.95 52.58,45.56 52.91,42.99 52.91,29.76 52.58,27.2 51.58,24.8 50.01,22.75 47.95,21.17 45.56,20.18 42.99,19.84 29.76,19.84 27.2,20.18 24.8,21.17 22.75,22.75 21.17,24.8 20.18,27.2 19.84,29.76 \"\r\n            style=\"fill:url(#gradientff154b24163e4fb69b5bbd4023a55584);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,122.36 13.55,119.14 14.49,116.03 16.02,113.18 18.07,110.67 20.58,108.61 23.44,107.09 26.54,106.14 29.76,105.83 42.99,105.83 46.22,106.14 49.32,107.09 52.18,108.61 54.68,110.67 56.74,113.18 58.27,116.03 59.21,119.14 59.53,122.36 59.53,135.59 59.21,138.82 58.27,141.92 56.74,144.78 54.68,147.28 52.18,149.34 49.32,150.87 46.22,151.81 42.99,152.13 29.76,152.13 26.54,151.81 23.44,150.87 20.58,149.34 18.07,147.28 16.02,144.78 14.49,141.92 13.55,138.82 13.23,135.59 13.23,122.36 19.84,122.36 19.84,135.59 20.18,138.16 21.17,140.55 22.75,142.61 24.8,144.18 27.2,145.17 29.76,145.51 42.99,145.51 45.56,145.17 47.95,144.18 50.01,142.61 51.58,140.55 52.58,138.16 52.91,135.59 52.91,122.36 52.58,119.79 51.58,117.4 50.01,115.35 47.95,113.77 45.56,112.78 42.99,112.44 29.76,112.44 27.2,112.78 24.8,113.77 22.75,115.35 21.17,117.4 20.18,119.79 19.84,122.36 \"\r\n            style=\"fill:url(#gradientff154b24163e4fb69b5bbd4023a55584);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,29.76 106.14,26.54 107.09,23.44 108.61,20.58 110.67,18.07 113.18,16.02 116.03,14.49 119.14,13.55 122.36,13.23 135.59,13.23 138.82,13.55 141.92,14.49 144.78,16.02 147.28,18.07 149.34,20.58 150.87,23.44 151.81,26.54 152.13,29.76 152.13,42.99 151.81,46.22 150.87,49.32 149.34,52.18 147.28,54.68 144.78,56.74 141.92,58.27 138.82,59.21 135.59,59.53 122.36,59.53 119.14,59.21 116.03,58.27 113.18,56.74 110.67,54.68 108.61,52.18 107.09,49.32 106.14,46.22 105.83,42.99 105.83,29.76 112.44,29.76 112.44,42.99 112.78,45.56 113.77,47.95 115.35,50.01 117.4,51.58 119.79,52.58 122.36,52.91 135.59,52.91 138.16,52.58 140.55,51.58 142.61,50.01 144.18,47.95 145.17,45.56 145.51,42.99 145.51,29.76 145.17,27.2 144.18,24.8 142.61,22.75 140.55,21.17 138.16,20.18 135.59,19.84 122.36,19.84 119.79,20.18 117.4,21.17 115.35,22.75 113.77,24.8 112.78,27.2 112.44,29.76 \"\r\n            style=\"fill:url(#gradientff154b24163e4fb69b5bbd4023a55584);\"\r\n          />\r\n          <pattern\r\n            id=\"hatch2db9197d1dd34ec6a96c1df3c769c1f3\"\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"8\"\r\n            height=\"8\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"8\" height=\"8\" fill=\"#F2DCDB\" />\r\n            <rect x=\"4\" y=\"0\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"5\" y=\"0\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"6\" y=\"0\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"7\" y=\"0\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"4\" y=\"1\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"5\" y=\"1\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"6\" y=\"1\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"7\" y=\"1\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"4\" y=\"2\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"5\" y=\"2\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"6\" y=\"2\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"7\" y=\"2\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"4\" y=\"3\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"5\" y=\"3\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"6\" y=\"3\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"7\" y=\"3\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"0\" y=\"4\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"1\" y=\"4\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"2\" y=\"4\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"3\" y=\"4\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"0\" y=\"5\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"1\" y=\"5\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"2\" y=\"5\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"3\" y=\"5\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"0\" y=\"6\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"1\" y=\"6\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"2\" y=\"6\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"3\" y=\"6\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"0\" y=\"7\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"1\" y=\"7\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"2\" y=\"7\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n            <rect x=\"3\" y=\"7\" width=\"1\" height=\"1\" fill=\"#CCC1D9\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"26.46,31.09 26.61,29.89 27.08,28.77 27.81,27.81 28.77,27.08 29.89,26.61 31.09,26.46 41.67,26.46 42.87,26.61 43.98,27.08 44.94,27.81 45.68,28.77 46.14,29.89 46.3,31.09 46.3,41.67 46.14,42.87 45.68,43.98 44.94,44.94 43.98,45.68 42.87,46.14 41.67,46.3 31.09,46.3 29.89,46.14 28.77,45.68 27.81,44.94 27.08,43.98 26.61,42.87 26.46,41.67 \"\r\n            style=\"fill:url(#hatch2db9197d1dd34ec6a96c1df3c769c1f3);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,123.69 26.61,122.49 27.08,121.37 27.81,120.41 28.77,119.68 29.89,119.21 31.09,119.06 41.67,119.06 42.87,119.21 43.98,119.68 44.94,120.41 45.68,121.37 46.14,122.49 46.3,123.69 46.3,134.27 46.14,135.47 45.68,136.58 44.94,137.54 43.98,138.28 42.87,138.74 41.67,138.9 31.09,138.9 29.89,138.74 28.77,138.28 27.81,137.54 27.08,136.58 26.61,135.47 26.46,134.27 \"\r\n            style=\"fill:url(#hatch2db9197d1dd34ec6a96c1df3c769c1f3);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,31.09 119.21,29.89 119.68,28.77 120.41,27.81 121.37,27.08 122.49,26.61 123.69,26.46 134.27,26.46 135.47,26.61 136.58,27.08 137.54,27.81 138.28,28.77 138.74,29.89 138.9,31.09 138.9,41.67 138.74,42.87 138.28,43.98 137.54,44.94 136.58,45.68 135.47,46.14 134.27,46.3 123.69,46.3 122.49,46.14 121.37,45.68 120.41,44.94 119.68,43.98 119.21,42.87 119.06,41.67 \"\r\n            style=\"fill:url(#hatch2db9197d1dd34ec6a96c1df3c769c1f3);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradiente627b093eb384267aa5f678537adf961\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"5.85921475478483\"\r\n            y1=\"73.2451025543645\"\r\n            x2=\"159.495105771338\"\r\n            y2=\"92.1092179717585\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#E5B9B7\" />\r\n            <stop offset=\"90%\" stop-color=\"#8DB3E2\" />\r\n            <stop offset=\"100%\" stop-color=\"#E5B9B7\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"79.37,15.54 79.55,14.66 80.05,13.91 80.8,13.4 81.69,13.23 86.05,13.23 86.05,19.91 79.37,19.91 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,16.54 85.92,13.23 92.66,13.23 92.66,19.84 85.92,19.84 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,13.23 96.9,13.23 97.78,13.4 98.53,13.91 99.04,14.66 99.21,15.54 99.21,19.91 92.53,19.91 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,22.16 66.32,21.27 66.82,20.52 67.57,20.02 68.46,19.84 72.82,19.84 72.82,26.46 68.46,26.46 67.57,26.28 66.82,25.78 66.32,25.03 66.14,24.14 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,23.15 72.69,19.84 79.44,19.84 79.44,26.46 72.69,26.46 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,23.15 79.3,19.78 85.98,19.78 85.98,26.52 79.3,26.52 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,23.15 92.6,19.78 99.21,19.78 99.21,26.52 92.6,26.52 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,26.39 86.05,26.39 86.05,33.07 81.69,33.07 80.8,32.89 80.05,32.39 79.55,31.64 79.37,30.76 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,29.76 85.92,26.46 92.66,26.46 92.66,33.07 85.92,33.07 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,29.76 92.53,26.39 99.21,26.39 99.21,33.14 92.53,33.14 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,35.39 66.32,34.5 66.82,33.75 67.57,33.25 68.46,33.07 72.82,33.07 72.82,39.69 68.46,39.69 67.57,39.51 66.82,39.01 66.32,38.26 66.14,37.37 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,33.07 77.06,33.07 77.94,33.25 78.69,33.75 79.19,34.5 79.37,35.39 79.37,39.75 72.69,39.75 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,36.38 92.6,33 99.21,33 99.21,39.75 92.6,39.75 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,39.62 79.37,39.62 79.37,43.98 79.19,44.87 78.69,45.62 77.94,46.12 77.06,46.3 75.07,46.3 74.18,46.12 73.43,45.62 72.93,44.87 72.76,43.98 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,39.62 99.21,39.62 99.21,43.98 99.04,44.87 98.53,45.62 97.78,46.12 96.9,46.3 94.91,46.3 94.03,46.12 93.28,45.62 92.77,44.87 92.6,43.98 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,48.61 66.32,47.73 66.82,46.98 67.57,46.48 68.46,46.3 70.44,46.3 71.33,46.48 72.08,46.98 72.58,47.73 72.76,48.61 72.76,52.98 66.14,52.98 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,48.61 86.16,47.73 86.66,46.98 87.41,46.48 88.3,46.3 90.28,46.3 91.17,46.48 91.92,46.98 92.42,47.73 92.6,48.61 92.6,50.6 92.42,51.48 91.92,52.24 91.17,52.74 90.28,52.91 88.3,52.91 87.41,52.74 86.66,52.24 86.16,51.48 85.98,50.6 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,52.85 72.76,52.85 72.76,57.21 72.58,58.1 72.08,58.85 71.33,59.35 70.44,59.53 68.46,59.53 67.57,59.35 66.82,58.85 66.32,58.1 66.14,57.21 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,55.23 79.55,54.34 80.05,53.59 80.8,53.09 81.69,52.91 83.67,52.91 84.56,53.09 85.31,53.59 85.81,54.34 85.98,55.23 85.98,57.21 85.81,58.1 85.31,58.85 84.56,59.35 83.67,59.53 81.69,59.53 80.8,59.35 80.05,58.85 79.55,58.1 79.37,57.21 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,55.23 92.77,54.34 93.28,53.59 94.03,53.09 94.91,52.91 96.9,52.91 97.78,53.09 98.53,53.59 99.04,54.34 99.21,55.23 99.21,57.21 99.04,58.1 98.53,58.85 97.78,59.35 96.9,59.53 94.91,59.53 94.03,59.35 93.28,58.85 92.77,58.1 92.6,57.21 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,61.84 72.93,60.96 73.43,60.21 74.18,59.7 75.07,59.53 77.06,59.53 77.94,59.7 78.69,60.21 79.19,60.96 79.37,61.84 79.37,63.83 79.19,64.71 78.69,65.46 77.94,65.97 77.06,66.14 75.07,66.14 74.18,65.97 73.43,65.46 72.93,64.71 72.76,63.83 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,68.46 13.4,67.57 13.91,66.82 14.66,66.32 15.54,66.14 19.91,66.14 19.91,72.82 13.23,72.82 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,69.45 19.78,66.14 26.52,66.14 26.52,72.82 19.78,72.82 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,69.45 26.39,66.14 33.14,66.14 33.14,72.82 26.39,72.82 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"33,69.45 33,66.14 39.75,66.14 39.75,72.76 33,72.76 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,66.14 43.98,66.14 44.87,66.32 45.62,66.82 46.12,67.57 46.3,68.46 46.3,70.44 46.12,71.33 45.62,72.08 44.87,72.58 43.98,72.76 39.62,72.76 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,68.46 53.09,67.57 53.59,66.82 54.34,66.32 55.23,66.14 59.59,66.14 59.59,72.76 55.23,72.76 54.34,72.58 53.59,72.08 53.09,71.33 52.91,70.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"59.46,69.45 59.46,66.14 66.21,66.14 66.21,72.82 59.46,72.82 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.08,66.14 70.44,66.14 71.33,66.32 72.08,66.82 72.58,67.57 72.76,68.46 72.76,70.44 72.58,71.33 72.08,72.08 71.33,72.58 70.44,72.76 66.08,72.76 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,68.46 86.16,67.57 86.66,66.82 87.41,66.32 88.3,66.14 90.28,66.14 91.17,66.32 91.92,66.82 92.42,67.57 92.6,68.46 92.6,72.82 85.98,72.82 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,68.46 99.39,67.57 99.89,66.82 100.64,66.32 101.53,66.14 103.51,66.14 104.4,66.32 105.15,66.82 105.65,67.57 105.83,68.46 105.83,72.82 99.21,72.82 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,68.46 112.62,67.57 113.12,66.82 113.87,66.32 114.76,66.14 116.74,66.14 117.63,66.32 118.38,66.82 118.88,67.57 119.06,68.46 119.06,70.44 118.88,71.33 118.38,72.08 117.63,72.58 116.74,72.76 114.76,72.76 113.87,72.58 113.12,72.08 112.62,71.33 112.44,70.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,68.46 125.85,67.57 126.35,66.82 127.1,66.32 127.98,66.14 129.97,66.14 130.85,66.32 131.61,66.82 132.11,67.57 132.28,68.46 132.28,72.82 125.67,72.82 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,68.46 139.07,67.57 139.58,66.82 140.33,66.32 141.21,66.14 143.2,66.14 144.08,66.32 144.83,66.82 145.34,67.57 145.51,68.46 145.51,72.82 138.9,72.82 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,72.69 19.91,72.69 19.91,79.37 15.54,79.37 14.66,79.19 13.91,78.69 13.4,77.94 13.23,77.06 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"19.78,76.06 19.78,72.69 26.52,72.69 26.52,79.37 19.78,79.37 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"26.39,76.06 26.39,72.69 33.07,72.69 33.07,79.44 26.39,79.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,75.07 46.48,74.18 46.98,73.43 47.73,72.93 48.61,72.76 50.6,72.76 51.48,72.93 52.24,73.43 52.74,74.18 52.91,75.07 52.91,79.44 46.3,79.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,72.69 66.14,72.69 66.14,77.06 65.97,77.94 65.46,78.69 64.71,79.19 63.83,79.37 61.84,79.37 60.96,79.19 60.21,78.69 59.7,77.94 59.53,77.06 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,75.07 72.93,74.18 73.43,73.43 74.18,72.93 75.07,72.76 77.06,72.76 77.94,72.93 78.69,73.43 79.19,74.18 79.37,75.07 79.37,79.44 72.76,79.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,72.69 92.66,72.69 92.66,79.37 88.3,79.37 87.41,79.19 86.66,78.69 86.16,77.94 85.98,77.06 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,76.06 92.53,72.76 99.28,72.76 99.28,79.44 92.53,79.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,76.06 99.15,72.69 105.89,72.69 105.89,79.37 99.15,79.37 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,72.76 110.13,72.76 111.01,72.93 111.76,73.43 112.26,74.18 112.44,75.07 112.44,79.44 105.76,79.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,76.06 125.67,72.69 132.35,72.69 132.35,79.44 125.67,79.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,76.06 132.22,72.76 138.96,72.76 138.96,79.37 132.22,79.37 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,76.06 138.83,72.69 145.58,72.69 145.58,79.37 138.83,79.37 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,72.76 149.81,72.76 150.7,72.93 151.45,73.43 151.95,74.18 152.13,75.07 152.13,79.44 145.45,79.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,79.3 33.07,79.3 33.07,83.67 32.89,84.56 32.39,85.31 31.64,85.81 30.76,85.98 28.77,85.98 27.89,85.81 27.13,85.31 26.63,84.56 26.46,83.67 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,81.69 39.86,80.8 40.36,80.05 41.11,79.55 42,79.37 46.37,79.37 46.37,85.98 42,85.98 41.11,85.81 40.36,85.31 39.86,84.56 39.69,83.67 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"46.23,82.68 46.23,79.3 52.98,79.3 52.98,85.98 46.23,85.98 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"52.85,79.37 57.21,79.37 58.1,79.55 58.85,80.05 59.35,80.8 59.53,81.69 59.53,83.67 59.35,84.56 58.85,85.31 58.1,85.81 57.21,85.98 52.85,85.98 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,81.69 66.32,80.8 66.82,80.05 67.57,79.55 68.46,79.37 72.82,79.37 72.82,85.98 68.46,85.98 67.57,85.81 66.82,85.31 66.32,84.56 66.14,83.67 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,79.3 79.37,79.3 79.37,83.67 79.19,84.56 78.69,85.31 77.94,85.81 77.06,85.98 72.69,85.98 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,82.68 92.6,79.3 99.21,79.3 99.21,86.05 92.6,86.05 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,82.68 105.83,79.3 112.51,79.3 112.51,86.05 105.83,86.05 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,79.37 116.74,79.37 117.63,79.55 118.38,80.05 118.88,80.8 119.06,81.69 119.06,83.67 118.88,84.56 118.38,85.31 117.63,85.81 116.74,85.98 112.37,85.98 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,79.3 132.28,79.3 132.28,83.67 132.11,84.56 131.61,85.31 130.85,85.81 129.97,85.98 127.98,85.98 127.1,85.81 126.35,85.31 125.85,84.56 125.67,83.67 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,82.68 145.51,79.3 152.13,79.3 152.13,86.05 145.51,86.05 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,88.3 13.4,87.41 13.91,86.66 14.66,86.16 15.54,85.98 17.53,85.98 18.41,86.16 19.16,86.66 19.67,87.41 19.84,88.3 19.84,90.28 19.67,91.17 19.16,91.92 18.41,92.42 17.53,92.6 15.54,92.6 14.66,92.42 13.91,91.92 13.4,91.17 13.23,90.28 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,88.3 33.25,87.41 33.75,86.66 34.5,86.16 35.39,85.98 37.37,85.98 38.26,86.16 39.01,86.66 39.51,87.41 39.69,88.3 39.69,92.66 33.07,92.66 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,88.3 86.16,87.41 86.66,86.66 87.41,86.16 88.3,85.98 92.66,85.98 92.66,92.6 88.3,92.6 87.41,92.42 86.66,91.92 86.16,91.17 85.98,90.28 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,89.29 92.53,85.92 99.28,85.92 99.28,92.66 92.53,92.66 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,89.29 99.15,85.98 105.89,85.98 105.89,92.6 99.15,92.6 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,85.92 112.44,85.92 112.44,90.28 112.26,91.17 111.76,91.92 111.01,92.42 110.13,92.6 105.76,92.6 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,88.3 132.46,87.41 132.96,86.66 133.71,86.16 134.6,85.98 138.96,85.98 138.96,92.6 134.6,92.6 133.71,92.42 132.96,91.92 132.46,91.17 132.28,90.28 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,89.29 138.83,85.98 145.58,85.98 145.58,92.66 138.83,92.66 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,85.92 152.13,85.92 152.13,90.28 151.95,91.17 151.45,91.92 150.7,92.42 149.81,92.6 145.45,92.6 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,94.91 20.02,94.03 20.52,93.28 21.27,92.77 22.16,92.6 24.14,92.6 25.03,92.77 25.78,93.28 26.28,94.03 26.46,94.91 26.46,96.9 26.28,97.78 25.78,98.53 25.03,99.04 24.14,99.21 22.16,99.21 21.27,99.04 20.52,98.53 20.02,97.78 19.84,96.9 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,92.53 39.75,92.53 39.75,99.21 35.39,99.21 34.5,99.04 33.75,98.53 33.25,97.78 33.07,96.9 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"39.62,92.6 43.98,92.6 44.87,92.77 45.62,93.28 46.12,94.03 46.3,94.91 46.3,96.9 46.12,97.78 45.62,98.53 44.87,99.04 43.98,99.21 39.62,99.21 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,94.91 53.09,94.03 53.59,93.28 54.34,92.77 55.23,92.6 57.21,92.6 58.1,92.77 58.85,93.28 59.35,94.03 59.53,94.91 59.53,96.9 59.35,97.78 58.85,98.53 58.1,99.04 57.21,99.21 55.23,99.21 54.34,99.04 53.59,98.53 53.09,97.78 52.91,96.9 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,94.91 66.32,94.03 66.82,93.28 67.57,92.77 68.46,92.6 72.82,92.6 72.82,99.28 66.14,99.28 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,92.6 77.06,92.6 77.94,92.77 78.69,93.28 79.19,94.03 79.37,94.91 79.37,96.9 79.19,97.78 78.69,98.53 77.94,99.04 77.06,99.21 72.69,99.21 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,95.91 92.6,92.53 99.21,92.53 99.21,99.28 92.6,99.28 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,94.91 112.62,94.03 113.12,93.28 113.87,92.77 114.76,92.6 116.74,92.6 117.63,92.77 118.38,93.28 118.88,94.03 119.06,94.91 119.06,99.28 112.44,99.28 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,92.53 145.51,92.53 145.51,96.9 145.34,97.78 144.83,98.53 144.08,99.04 143.2,99.21 141.21,99.21 140.33,99.04 139.58,98.53 139.07,97.78 138.9,96.9 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,102.52 66.14,99.15 72.76,99.15 72.76,105.89 66.14,105.89 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,101.53 79.55,100.64 80.05,99.89 80.8,99.39 81.69,99.21 83.67,99.21 84.56,99.39 85.31,99.89 85.81,100.64 85.98,101.53 85.98,103.51 85.81,104.4 85.31,105.15 84.56,105.65 83.67,105.83 81.69,105.83 80.8,105.65 80.05,105.15 79.55,104.4 79.37,103.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,99.15 99.21,99.15 99.21,103.51 99.04,104.4 98.53,105.15 97.78,105.65 96.9,105.83 94.91,105.83 94.03,105.65 93.28,105.15 92.77,104.4 92.6,103.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,99.15 119.06,99.15 119.06,103.51 118.88,104.4 118.38,105.15 117.63,105.65 116.74,105.83 114.76,105.83 113.87,105.65 113.12,105.15 112.62,104.4 112.44,103.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,101.53 132.46,100.64 132.96,99.89 133.71,99.39 134.6,99.21 136.58,99.21 137.47,99.39 138.22,99.89 138.72,100.64 138.9,101.53 138.9,103.51 138.72,104.4 138.22,105.15 137.47,105.65 136.58,105.83 134.6,105.83 133.71,105.65 132.96,105.15 132.46,104.4 132.28,103.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,105.76 72.76,105.76 72.76,110.13 72.58,111.01 72.08,111.76 71.33,112.26 70.44,112.44 68.46,112.44 67.57,112.26 66.82,111.76 66.32,111.01 66.14,110.13 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,108.14 86.16,107.26 86.66,106.5 87.41,106 88.3,105.83 90.28,105.83 91.17,106 91.92,106.5 92.42,107.26 92.6,108.14 92.6,110.13 92.42,111.01 91.92,111.76 91.17,112.26 90.28,112.44 88.3,112.44 87.41,112.26 86.66,111.76 86.16,111.01 85.98,110.13 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,108.14 99.39,107.26 99.89,106.5 100.64,106 101.53,105.83 103.51,105.83 104.4,106 105.15,106.5 105.65,107.26 105.83,108.14 105.83,110.13 105.65,111.01 105.15,111.76 104.4,112.26 103.51,112.44 101.53,112.44 100.64,112.26 99.89,111.76 99.39,111.01 99.21,110.13 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,108.14 119.23,107.26 119.73,106.5 120.48,106 121.37,105.83 125.74,105.83 125.74,112.51 119.06,112.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,105.83 129.97,105.83 130.85,106 131.61,106.5 132.11,107.26 132.28,108.14 132.28,110.13 132.11,111.01 131.61,111.76 130.85,112.26 129.97,112.44 125.6,112.44 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,108.14 139.07,107.26 139.58,106.5 140.33,106 141.21,105.83 145.58,105.83 145.58,112.44 141.21,112.44 140.33,112.26 139.58,111.76 139.07,111.01 138.9,110.13 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"145.45,105.83 149.81,105.83 150.7,106 151.45,106.5 151.95,107.26 152.13,108.14 152.13,112.51 145.45,112.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,114.76 72.93,113.87 73.43,113.12 74.18,112.62 75.07,112.44 79.44,112.44 79.44,119.12 72.76,119.12 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,112.44 83.67,112.44 84.56,112.62 85.31,113.12 85.81,113.87 85.98,114.76 85.98,119.12 79.3,119.12 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,114.76 112.62,113.87 113.12,113.12 113.87,112.62 114.76,112.44 119.12,112.44 119.12,119.06 114.76,119.06 113.87,118.88 113.12,118.38 112.62,117.63 112.44,116.74 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,115.75 118.99,112.37 125.67,112.37 125.67,119.12 118.99,119.12 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,114.76 132.46,113.87 132.96,113.12 133.71,112.62 134.6,112.44 136.58,112.44 137.47,112.62 138.22,113.12 138.72,113.87 138.9,114.76 138.9,119.12 132.28,119.12 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,112.37 152.13,112.37 152.13,116.74 151.95,117.63 151.45,118.38 150.7,118.88 149.81,119.06 147.83,119.06 146.94,118.88 146.19,118.38 145.69,117.63 145.51,116.74 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,121.37 66.32,120.48 66.82,119.73 67.57,119.23 68.46,119.06 72.82,119.06 72.82,125.74 66.14,125.74 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,122.36 72.69,118.99 79.44,118.99 79.44,125.74 72.69,125.74 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,122.36 79.3,118.99 86.05,118.99 86.05,125.67 79.3,125.67 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,119.06 90.28,119.06 91.17,119.23 91.92,119.73 92.42,120.48 92.6,121.37 92.6,125.74 85.92,125.74 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,121.37 99.39,120.48 99.89,119.73 100.64,119.23 101.53,119.06 103.51,119.06 104.4,119.23 105.15,119.73 105.65,120.48 105.83,121.37 105.83,125.74 99.21,125.74 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,118.99 125.74,118.99 125.74,125.67 121.37,125.67 120.48,125.49 119.73,124.99 119.23,124.24 119.06,123.35 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"125.6,122.36 125.6,119.06 132.35,119.06 132.35,125.74 125.6,125.74 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,122.36 132.22,118.99 138.9,118.99 138.9,125.74 132.22,125.74 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,128.98 66.14,125.6 72.82,125.6 72.82,132.35 66.14,132.35 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,128.98 72.69,125.6 79.37,125.6 79.37,132.35 72.69,132.35 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,125.6 92.66,125.6 92.66,132.28 88.3,132.28 87.41,132.11 86.66,131.61 86.16,130.85 85.98,129.97 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,128.98 92.53,125.67 99.28,125.67 99.28,132.35 92.53,132.35 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,128.98 99.15,125.6 105.89,125.6 105.89,132.28 99.15,132.28 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,128.98 105.76,125.67 112.51,125.67 112.51,132.35 105.76,132.35 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,125.67 116.74,125.67 117.63,125.85 118.38,126.35 118.88,127.1 119.06,127.98 119.06,132.35 112.37,132.35 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,128.98 125.67,125.6 132.35,125.6 132.35,132.35 125.67,132.35 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,128.98 132.22,125.6 138.9,125.6 138.9,132.35 132.22,132.35 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,135.59 66.14,132.22 72.82,132.22 72.82,138.96 66.14,138.96 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,132.22 79.37,132.22 79.37,136.58 79.19,137.47 78.69,138.22 77.94,138.72 77.06,138.9 72.69,138.9 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,135.59 92.6,132.22 99.21,132.22 99.21,138.96 92.6,138.96 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,135.59 105.83,132.22 112.51,132.22 112.51,138.96 105.83,138.96 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,135.59 112.37,132.22 119.06,132.22 119.06,138.96 112.37,138.96 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,132.22 132.35,132.22 132.35,138.9 127.98,138.9 127.1,138.72 126.35,138.22 125.85,137.47 125.67,136.58 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.22,135.59 132.22,132.22 138.9,132.22 138.9,138.96 132.22,138.96 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,142.2 66.14,138.83 72.76,138.83 72.76,145.58 66.14,145.58 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,141.21 79.55,140.33 80.05,139.58 80.8,139.07 81.69,138.9 86.05,138.9 86.05,145.58 79.37,145.58 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"85.92,142.2 85.92,138.9 92.66,138.9 92.66,145.51 85.92,145.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.53,142.2 92.53,138.83 99.28,138.83 99.28,145.58 92.53,145.58 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"99.15,142.2 99.15,138.9 105.89,138.9 105.89,145.51 99.15,145.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"105.76,142.2 105.76,138.83 112.51,138.83 112.51,145.51 105.76,145.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.37,142.2 112.37,138.83 119.12,138.83 119.12,145.58 112.37,145.58 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"118.99,138.9 123.35,138.9 124.24,139.07 124.99,139.58 125.49,140.33 125.67,141.21 125.67,143.2 125.49,144.08 124.99,144.83 124.24,145.34 123.35,145.51 118.99,145.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,142.2 132.28,138.83 138.96,138.83 138.96,145.58 132.28,145.58 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"138.83,138.9 143.2,138.9 144.08,139.07 144.83,139.58 145.34,140.33 145.51,141.21 145.51,143.2 145.34,144.08 144.83,144.83 144.08,145.34 143.2,145.51 138.83,145.51 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,145.45 72.82,145.45 72.82,152.13 68.46,152.13 67.57,151.95 66.82,151.45 66.32,150.7 66.14,149.81 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"72.69,148.82 72.69,145.51 79.44,145.51 79.44,152.13 72.69,152.13 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"79.3,145.45 85.98,145.45 85.98,149.81 85.81,150.7 85.31,151.45 84.56,151.95 83.67,152.13 79.3,152.13 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,145.45 99.21,145.45 99.21,149.81 99.04,150.7 98.53,151.45 97.78,151.95 96.9,152.13 94.91,152.13 94.03,151.95 93.28,151.45 92.77,150.7 92.6,149.81 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,145.45 119.06,145.45 119.06,149.81 118.88,150.7 118.38,151.45 117.63,151.95 116.74,152.13 114.76,152.13 113.87,151.95 113.12,151.45 112.62,150.7 112.44,149.81 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,145.45 138.9,145.45 138.9,149.81 138.72,150.7 138.22,151.45 137.47,151.95 136.58,152.13 134.6,152.13 133.71,151.95 132.96,151.45 132.46,150.7 132.28,149.81 \"\r\n            style=\"fill:url(#gradiente627b093eb384267aa5f678537adf961);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 23,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <pattern\r\n            id=\"glassae3eb042472a405d96f6461eac120955\"\r\n            x=\"13.22835\"\r\n            y=\"13.22835\"\r\n            width=\"138.8976\"\r\n            height=\"138.8976\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"138.8976\" style=\"fill:rgb(219,238,243);fill-opacity:1;\" />\r\n            <rect x=\"0\" y=\"0\" width=\"138.8976\" height=\"69.44881\" style=\"fill:rgb(231,250,255);fill-opacity:1;\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"13.23,29.76 13.55,26.54 14.49,23.44 16.02,20.58 18.07,18.07 20.58,16.02 23.44,14.49 26.54,13.55 29.76,13.23 59.53,13.23 59.53,59.53 13.23,59.53 13.23,29.76 19.84,29.76 19.84,52.91 52.91,52.91 52.91,19.84 29.76,19.84 27.2,20.18 24.8,21.17 22.75,22.75 21.17,24.8 20.18,27.2 19.84,29.76 \"\r\n            style=\"fill:url(#glassae3eb042472a405d96f6461eac120955);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,122.36 13.23,105.83 59.53,105.83 59.53,152.13 29.76,152.13 26.54,151.81 23.44,150.87 20.58,149.34 18.07,147.28 16.02,144.78 14.49,141.92 13.55,138.82 13.23,135.59 13.23,122.36 19.84,122.36 19.84,135.59 20.18,138.16 21.17,140.55 22.75,142.61 24.8,144.18 27.2,145.17 29.76,145.51 52.91,145.51 52.91,112.44 19.84,112.44 19.84,122.36 \"\r\n            style=\"fill:url(#glassae3eb042472a405d96f6461eac120955);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,29.76 105.83,13.23 135.59,13.23 138.82,13.55 141.92,14.49 144.78,16.02 147.28,18.07 149.34,20.58 150.87,23.44 151.81,26.54 152.13,29.76 152.13,59.53 105.83,59.53 105.83,29.76 112.44,29.76 112.44,52.91 145.51,52.91 145.51,29.76 145.17,27.2 144.18,24.8 142.61,22.75 140.55,21.17 138.16,20.18 135.59,19.84 112.44,19.84 112.44,29.76 \"\r\n            style=\"fill:url(#glassae3eb042472a405d96f6461eac120955);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradienta7475673351c4aa69ee49c9489bed02a\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"22.0024585616932\"\r\n            y1=\"77.3688099608975\"\r\n            x2=\"143.351858149733\"\r\n            y2=\"87.9855067505283\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#93FFFF\" />\r\n            <stop offset=\"50%\" stop-color=\"#7030A0\" />\r\n            <stop offset=\"100%\" stop-color=\"#93FFFF\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"26.46,31.09 26.61,29.89 27.08,28.77 27.81,27.81 28.77,27.08 29.89,26.61 31.09,26.46 46.3,26.46 46.3,46.3 26.46,46.3 \"\r\n            style=\"fill:url(#gradienta7475673351c4aa69ee49c9489bed02a);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,119.06 46.3,119.06 46.3,138.9 31.09,138.9 29.89,138.74 28.77,138.28 27.81,137.54 27.08,136.58 26.61,135.47 26.46,134.27 \"\r\n            style=\"fill:url(#gradienta7475673351c4aa69ee49c9489bed02a);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,26.46 134.27,26.46 135.47,26.61 136.58,27.08 137.54,27.81 138.28,28.77 138.74,29.89 138.9,31.09 138.9,46.3 119.06,46.3 \"\r\n            style=\"fill:url(#gradienta7475673351c4aa69ee49c9489bed02a);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradient70fbdf3aa00f40a38c535d7a4bcd9a20\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"9.78888088478347\"\r\n            y1=\"78.8572474050841\"\r\n            x2=\"155.56543964134\"\r\n            y2=\"86.497073121039\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#B2A1C7\" />\r\n            <stop offset=\"100%\" stop-color=\"#FFFFFF\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"79.37,16.54 82.68,13.23 85.98,16.54 82.68,19.84 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,16.54 89.29,13.23 92.6,16.54 89.29,19.84 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,16.54 95.91,13.23 99.21,16.54 95.91,19.84 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,23.15 69.45,19.84 72.76,23.15 69.45,26.46 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,23.15 76.06,19.84 79.37,23.15 76.06,26.46 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,23.15 82.68,19.84 85.98,23.15 82.68,26.46 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,23.15 95.91,19.84 99.21,23.15 95.91,26.46 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,29.76 82.68,26.46 85.98,29.76 82.68,33.07 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,29.76 89.29,26.46 92.6,29.76 89.29,33.07 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,29.76 95.91,26.46 99.21,29.76 95.91,33.07 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,36.38 69.45,33.07 72.76,36.38 69.45,39.69 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,36.38 76.06,33.07 79.37,36.38 76.06,39.69 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,36.38 95.91,33.07 99.21,36.38 95.91,39.69 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,42.99 76.06,39.69 79.37,42.99 76.06,46.3 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,42.99 95.91,39.69 99.21,42.99 95.91,46.3 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,49.61 69.45,46.3 72.76,49.61 69.45,52.91 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,49.61 89.29,46.3 92.6,49.61 89.29,52.91 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,56.22 69.45,52.91 72.76,56.22 69.45,59.53 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,56.22 82.68,52.91 85.98,56.22 82.68,59.53 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,56.22 95.91,52.91 99.21,56.22 95.91,59.53 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,62.83 76.06,59.53 79.37,62.83 76.06,66.14 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,69.45 16.54,66.14 19.84,69.45 16.54,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,69.45 23.15,66.14 26.46,69.45 23.15,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,69.45 29.76,66.14 33.07,69.45 29.76,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,69.45 36.38,66.14 39.69,69.45 36.38,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,69.45 42.99,66.14 46.3,69.45 42.99,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,69.45 56.22,66.14 59.53,69.45 56.22,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,69.45 62.83,66.14 66.14,69.45 62.83,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,69.45 69.45,66.14 72.76,69.45 69.45,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,69.45 89.29,66.14 92.6,69.45 89.29,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,69.45 102.52,66.14 105.83,69.45 102.52,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,69.45 115.75,66.14 119.06,69.45 115.75,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,69.45 128.98,66.14 132.28,69.45 128.98,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,69.45 142.2,66.14 145.51,69.45 142.2,72.76 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,76.06 16.54,72.76 19.84,76.06 16.54,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,76.06 23.15,72.76 26.46,76.06 23.15,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,76.06 29.76,72.76 33.07,76.06 29.76,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,76.06 49.61,72.76 52.91,76.06 49.61,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,76.06 62.83,72.76 66.14,76.06 62.83,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,76.06 76.06,72.76 79.37,76.06 76.06,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,76.06 89.29,72.76 92.6,76.06 89.29,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,76.06 95.91,72.76 99.21,76.06 95.91,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,76.06 102.52,72.76 105.83,76.06 102.52,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,76.06 109.13,72.76 112.44,76.06 109.13,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,76.06 128.98,72.76 132.28,76.06 128.98,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,76.06 135.59,72.76 138.9,76.06 135.59,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,76.06 142.2,72.76 145.51,76.06 142.2,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,76.06 148.82,72.76 152.13,76.06 148.82,79.37 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"26.46,82.68 29.76,79.37 33.07,82.68 29.76,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,82.68 42.99,79.37 46.3,82.68 42.99,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"46.3,82.68 49.61,79.37 52.91,82.68 49.61,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,82.68 56.22,79.37 59.53,82.68 56.22,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,82.68 69.45,79.37 72.76,82.68 69.45,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,82.68 76.06,79.37 79.37,82.68 76.06,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,82.68 95.91,79.37 99.21,82.68 95.91,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,82.68 109.13,79.37 112.44,82.68 109.13,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,82.68 115.75,79.37 119.06,82.68 115.75,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,82.68 128.98,79.37 132.28,82.68 128.98,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,82.68 148.82,79.37 152.13,82.68 148.82,85.98 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"13.23,89.29 16.54,85.98 19.84,89.29 16.54,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,89.29 36.38,85.98 39.69,89.29 36.38,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,89.29 89.29,85.98 92.6,89.29 89.29,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,89.29 95.91,85.98 99.21,89.29 95.91,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,89.29 102.52,85.98 105.83,89.29 102.52,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,89.29 109.13,85.98 112.44,89.29 109.13,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,89.29 135.59,85.98 138.9,89.29 135.59,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,89.29 142.2,85.98 145.51,89.29 142.2,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,89.29 148.82,85.98 152.13,89.29 148.82,92.6 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"19.84,95.91 23.15,92.6 26.46,95.91 23.15,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"33.07,95.91 36.38,92.6 39.69,95.91 36.38,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"39.69,95.91 42.99,92.6 46.3,95.91 42.99,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"52.91,95.91 56.22,92.6 59.53,95.91 56.22,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,95.91 69.45,92.6 72.76,95.91 69.45,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,95.91 76.06,92.6 79.37,95.91 76.06,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,95.91 95.91,92.6 99.21,95.91 95.91,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,95.91 115.75,92.6 119.06,95.91 115.75,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,95.91 142.2,92.6 145.51,95.91 142.2,99.21 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,102.52 69.45,99.21 72.76,102.52 69.45,105.83 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,102.52 82.68,99.21 85.98,102.52 82.68,105.83 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,102.52 95.91,99.21 99.21,102.52 95.91,105.83 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,102.52 115.75,99.21 119.06,102.52 115.75,105.83 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,102.52 135.59,99.21 138.9,102.52 135.59,105.83 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,109.13 69.45,105.83 72.76,109.13 69.45,112.44 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,109.13 89.29,105.83 92.6,109.13 89.29,112.44 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,109.13 102.52,105.83 105.83,109.13 102.52,112.44 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,109.13 122.36,105.83 125.67,109.13 122.36,112.44 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,109.13 128.98,105.83 132.28,109.13 128.98,112.44 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,109.13 142.2,105.83 145.51,109.13 142.2,112.44 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,109.13 148.82,105.83 152.13,109.13 148.82,112.44 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,115.75 76.06,112.44 79.37,115.75 76.06,119.06 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,115.75 82.68,112.44 85.98,115.75 82.68,119.06 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,115.75 115.75,112.44 119.06,115.75 115.75,119.06 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,115.75 122.36,112.44 125.67,115.75 122.36,119.06 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,115.75 135.59,112.44 138.9,115.75 135.59,119.06 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"145.51,115.75 148.82,112.44 152.13,115.75 148.82,119.06 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,122.36 69.45,119.06 72.76,122.36 69.45,125.67 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,122.36 76.06,119.06 79.37,122.36 76.06,125.67 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,122.36 82.68,119.06 85.98,122.36 82.68,125.67 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,122.36 89.29,119.06 92.6,122.36 89.29,125.67 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,122.36 102.52,119.06 105.83,122.36 102.52,125.67 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,122.36 122.36,119.06 125.67,122.36 122.36,125.67 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,122.36 128.98,119.06 132.28,122.36 128.98,125.67 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,122.36 135.59,119.06 138.9,122.36 135.59,125.67 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,128.98 69.45,125.67 72.76,128.98 69.45,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,128.98 76.06,125.67 79.37,128.98 76.06,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,128.98 89.29,125.67 92.6,128.98 89.29,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,128.98 95.91,125.67 99.21,128.98 95.91,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,128.98 102.52,125.67 105.83,128.98 102.52,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,128.98 109.13,125.67 112.44,128.98 109.13,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,128.98 115.75,125.67 119.06,128.98 115.75,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,128.98 128.98,125.67 132.28,128.98 128.98,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,128.98 135.59,125.67 138.9,128.98 135.59,132.28 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,135.59 69.45,132.28 72.76,135.59 69.45,138.9 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,135.59 76.06,132.28 79.37,135.59 76.06,138.9 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,135.59 95.91,132.28 99.21,135.59 95.91,138.9 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,135.59 109.13,132.28 112.44,135.59 109.13,138.9 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,135.59 115.75,132.28 119.06,135.59 115.75,138.9 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"125.67,135.59 128.98,132.28 132.28,135.59 128.98,138.9 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,135.59 135.59,132.28 138.9,135.59 135.59,138.9 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,142.2 69.45,138.9 72.76,142.2 69.45,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,142.2 82.68,138.9 85.98,142.2 82.68,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"85.98,142.2 89.29,138.9 92.6,142.2 89.29,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,142.2 95.91,138.9 99.21,142.2 95.91,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"99.21,142.2 102.52,138.9 105.83,142.2 102.52,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"105.83,142.2 109.13,138.9 112.44,142.2 109.13,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,142.2 115.75,138.9 119.06,142.2 115.75,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"119.06,142.2 122.36,138.9 125.67,142.2 122.36,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,142.2 135.59,138.9 138.9,142.2 135.59,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"138.9,142.2 142.2,138.9 145.51,142.2 142.2,145.51 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"66.14,148.82 69.45,145.51 72.76,148.82 69.45,152.13 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"72.76,148.82 76.06,145.51 79.37,148.82 76.06,152.13 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"79.37,148.82 82.68,145.51 85.98,148.82 82.68,152.13 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"92.6,148.82 95.91,145.51 99.21,148.82 95.91,152.13 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"112.44,148.82 115.75,145.51 119.06,148.82 115.75,152.13 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n          <polygon\r\n            points=\"132.28,148.82 135.59,145.51 138.9,148.82 135.59,152.13 \"\r\n            style=\"fill:url(#gradient70fbdf3aa00f40a38c535d7a4bcd9a20);\"\r\n          />\r\n      `,\r\n    },\r\n    {\r\n      value: 24,\r\n      innerHtml: `\r\n      <rect\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"165.3543\"\r\n            height=\"165.3543\"\r\n            fill=\"red\"\r\n            style=\"fill:rgba(37,86,99,1);\"\r\n            shape-rendering=\"crispEdges\"\r\n          />\r\n          <pattern\r\n            id=\"hatchad53d08ec2bb4d06b2513bb3a3c22ff9\"\r\n            x=\"0\"\r\n            y=\"0\"\r\n            width=\"8\"\r\n            height=\"8\"\r\n            patternUnits=\"userSpaceOnUse\"\r\n          >\r\n            <rect x=\"0\" y=\"0\" width=\"8\" height=\"8\" fill=\"#B2A1C7\" />\r\n            <rect x=\"3\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B8CCE4\" />\r\n            <rect x=\"7\" y=\"0\" width=\"1\" height=\"1\" fill=\"#B8CCE4\" />\r\n            <rect x=\"2\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B8CCE4\" />\r\n            <rect x=\"6\" y=\"1\" width=\"1\" height=\"1\" fill=\"#B8CCE4\" />\r\n            <rect x=\"1\" y=\"2\" width=\"1\" height=\"1\" fill=\"#B8CCE4\" />\r\n            <rect x=\"5\" y=\"2\" width=\"1\" height=\"1\" fill=\"#B8CCE4\" />\r\n            <rect x=\"0\" y=\"3\" width=\"1\" height=\"1\" fill=\"#B8CCE4\" />\r\n            <rect x=\"4\" y=\"3\" width=\"1\" height=\"1\" fill=\"#B8CCE4\" />\r\n          </pattern>\r\n          <polygon\r\n            points=\"59.53,36.38 59.08,40.89 57.77,45.24 55.63,49.24 52.75,52.75 49.24,55.63 45.24,57.77 40.89,59.08 36.38,59.53 31.86,59.08 27.52,57.77 23.52,55.63 20.01,52.75 17.13,49.24 14.99,45.24 13.67,40.89 13.23,36.38 13.67,31.86 14.99,27.52 17.13,23.52 20.01,20.01 23.52,17.13 27.52,14.99 31.86,13.67 36.38,13.23 40.89,13.67 45.24,14.99 49.24,17.13 52.75,20.01 55.63,23.52 57.77,27.52 59.08,31.86 59.53,36.38 52.91,36.38 52.6,33.15 51.65,30.05 50.13,27.19 48.07,24.69 45.56,22.63 42.71,21.1 39.6,20.16 36.38,19.84 33.15,20.16 30.05,21.1 27.19,22.63 24.69,24.69 22.63,27.19 21.1,30.05 20.16,33.15 19.84,36.38 20.16,39.6 21.1,42.71 22.63,45.56 24.69,48.07 27.19,50.13 30.05,51.65 33.15,52.6 36.38,52.91 39.6,52.6 42.71,51.65 45.56,50.13 48.07,48.07 50.13,45.56 51.65,42.71 52.6,39.6 52.91,36.38 \"\r\n            style=\"fill:url(#hatchad53d08ec2bb4d06b2513bb3a3c22ff9);\"\r\n          />\r\n          <polygon\r\n            points=\"59.53,128.98 59.08,133.49 57.77,137.84 55.63,141.84 52.75,145.35 49.24,148.22 45.24,150.36 40.89,151.68 36.38,152.13 31.86,151.68 27.52,150.36 23.52,148.22 20.01,145.35 17.13,141.84 14.99,137.84 13.67,133.49 13.23,128.98 13.67,124.46 14.99,120.12 17.13,116.12 20.01,112.61 23.52,109.73 27.52,107.59 31.86,106.27 36.38,105.83 40.89,106.27 45.24,107.59 49.24,109.73 52.75,112.61 55.63,116.12 57.77,120.12 59.08,124.46 59.53,128.98 52.91,128.98 52.6,125.75 51.65,122.65 50.13,119.79 48.07,117.28 45.56,115.23 42.71,113.7 39.6,112.76 36.38,112.44 33.15,112.76 30.05,113.7 27.19,115.23 24.69,117.28 22.63,119.79 21.1,122.65 20.16,125.75 19.84,128.98 20.16,132.2 21.1,135.3 22.63,138.16 24.69,140.67 27.19,142.73 30.05,144.25 33.15,145.19 36.38,145.51 39.6,145.19 42.71,144.25 45.56,142.73 48.07,140.67 50.13,138.16 51.65,135.3 52.6,132.2 52.91,128.98 \"\r\n            style=\"fill:url(#hatchad53d08ec2bb4d06b2513bb3a3c22ff9);\"\r\n          />\r\n          <polygon\r\n            points=\"152.13,36.38 151.68,40.89 150.36,45.24 148.22,49.24 145.35,52.75 141.84,55.63 137.84,57.77 133.49,59.08 128.98,59.53 124.46,59.08 120.12,57.77 116.12,55.63 112.61,52.75 109.73,49.24 107.59,45.24 106.27,40.89 105.83,36.38 106.27,31.86 107.59,27.52 109.73,23.52 112.61,20.01 116.12,17.13 120.12,14.99 124.46,13.67 128.98,13.23 133.49,13.67 137.84,14.99 141.84,17.13 145.35,20.01 148.22,23.52 150.36,27.52 151.68,31.86 152.13,36.38 145.51,36.38 145.19,33.15 144.25,30.05 142.73,27.19 140.67,24.69 138.16,22.63 135.3,21.1 132.2,20.16 128.98,19.84 125.75,20.16 122.65,21.1 119.79,22.63 117.28,24.69 115.23,27.19 113.7,30.05 112.76,33.15 112.44,36.38 112.76,39.6 113.7,42.71 115.23,45.56 117.28,48.07 119.79,50.13 122.65,51.65 125.75,52.6 128.98,52.91 132.2,52.6 135.3,51.65 138.16,50.13 140.67,48.07 142.73,45.56 144.25,42.71 145.19,39.6 145.51,36.38 \"\r\n            style=\"fill:url(#hatchad53d08ec2bb4d06b2513bb3a3c22ff9);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientfaf3a21afc704938bc9ffddae142b7dd\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"24.8031482696533\"\r\n            y1=\"82.0984210968018\"\r\n            x2=\"140.551179885864\"\r\n            y2=\"82.0984210968018\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#00B0F0\" />\r\n            <stop offset=\"100%\" stop-color=\"#E5E0EC\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"24.8,33.95 25.15,33.14 26.54,32.33 31.98,31.29 34.41,25.96 35.1,25.15 36.03,24.8 36.73,25.03 37.54,25.84 40.08,30.94 45.29,31.75 47.14,32.56 47.95,33.72 47.72,34.76 46.8,35.8 42.28,38.46 44.02,43.67 44.13,45.17 43.79,46.22 42.98,46.68 42.05,46.56 36.03,42.51 31.86,46.33 30.82,46.8 29.9,46.68 29.2,45.99 28.97,44.94 30.13,38.58 25.73,35.57 25.03,34.87 \"\r\n            style=\"fill:url(#gradientfaf3a21afc704938bc9ffddae142b7dd);\"\r\n          />\r\n          <polygon\r\n            points=\"24.8,126.55 25.15,125.74 26.54,124.93 31.98,123.88 34.41,118.56 35.1,117.75 36.03,117.4 36.73,117.63 37.54,118.44 40.08,123.54 45.29,124.35 47.14,125.16 47.95,126.31 47.72,127.36 46.8,128.4 42.28,131.06 44.02,136.27 44.13,137.77 43.79,138.81 42.98,139.28 42.05,139.16 36.03,135.11 31.86,138.93 30.82,139.39 29.9,139.28 29.2,138.58 28.97,137.54 30.13,131.18 25.73,128.17 25.03,127.47 \"\r\n            style=\"fill:url(#gradientfaf3a21afc704938bc9ffddae142b7dd);\"\r\n          />\r\n          <polygon\r\n            points=\"117.4,33.95 117.75,33.14 119.14,32.33 124.58,31.29 127.01,25.96 127.7,25.15 128.63,24.8 129.32,25.03 130.13,25.84 132.68,30.94 137.89,31.75 139.74,32.56 140.55,33.72 140.32,34.76 139.39,35.8 134.88,38.46 136.62,43.67 136.73,45.17 136.38,46.22 135.57,46.68 134.65,46.56 128.63,42.51 124.46,46.33 123.42,46.8 122.49,46.68 121.8,45.99 121.57,44.94 122.73,38.58 118.33,35.57 117.63,34.87 \"\r\n            style=\"fill:url(#gradientfaf3a21afc704938bc9ffddae142b7dd);\"\r\n          />\r\n          <linearGradient\r\n            id=\"gradientffcbed388ab34855992a9fd38824ed9b\"\r\n            gradientUnits=\"userSpaceOnUse\"\r\n            x1=\"9.8216375862194\"\r\n            y1=\"78.893629314992\"\r\n            x2=\"154.209852739708\"\r\n            y2=\"86.4606950258283\"\r\n          >\r\n            <stop offset=\"0%\" stop-color=\"#FF2864\" />\r\n            <stop offset=\"50%\" stop-color=\"#92D750\" />\r\n            <stop offset=\"100%\" stop-color=\"#FF2864\" />\r\n          </linearGradient>\r\n          <polygon\r\n            points=\"82.02,19.18 81,18.98 80.14,18.41 79.57,17.55 79.37,16.54 79.57,15.52 80.14,14.66 81,14.09 82.02,13.89 95.24,13.89 96.26,14.09 97.11,14.66 97.69,15.52 97.89,16.54 97.69,17.55 97.11,18.41 96.26,18.98 95.24,19.18 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,25.8 67.77,25.59 66.92,25.02 66.34,24.16 66.14,23.15 66.34,22.14 66.92,21.28 67.77,20.71 68.79,20.5 82.02,20.5 83.03,20.71 83.89,21.28 84.46,22.14 84.66,23.15 84.46,24.16 83.89,25.02 83.03,25.59 82.02,25.8 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,25.8 94.23,25.59 93.37,25.02 92.8,24.16 92.6,23.15 92.8,22.14 93.37,21.28 94.23,20.71 95.24,20.5 95.24,20.5 96.26,20.71 97.11,21.28 97.69,22.14 97.89,23.15 97.69,24.16 97.11,25.02 96.26,25.59 95.24,25.8 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"82.02,32.41 81,32.21 80.14,31.63 79.57,30.78 79.37,29.76 79.57,28.75 80.14,27.89 81,27.32 82.02,27.12 95.24,27.12 96.26,27.32 97.11,27.89 97.69,28.75 97.89,29.76 97.69,30.78 97.11,31.63 96.26,32.21 95.24,32.41 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,39.02 67.77,38.82 66.92,38.25 66.34,37.39 66.14,36.38 66.34,35.37 66.92,34.51 67.77,33.93 68.79,33.73 75.4,33.73 76.41,33.93 77.27,34.51 77.85,35.37 78.05,36.38 77.85,37.39 77.27,38.25 76.41,38.82 75.4,39.02 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,39.02 94.23,38.82 93.37,38.25 92.8,37.39 92.6,36.38 92.8,35.37 93.37,34.51 94.23,33.93 95.24,33.73 95.24,33.73 96.26,33.93 97.11,34.51 97.69,35.37 97.89,36.38 97.69,37.39 97.11,38.25 96.26,38.82 95.24,39.02 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"75.4,45.64 74.39,45.44 73.53,44.86 72.96,44 72.76,42.99 72.96,41.98 73.53,41.12 74.39,40.55 75.4,40.35 75.4,40.35 76.41,40.55 77.27,41.12 77.85,41.98 78.05,42.99 77.85,44 77.27,44.86 76.41,45.44 75.4,45.64 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,45.64 94.23,45.44 93.37,44.86 92.8,44 92.6,42.99 92.8,41.98 93.37,41.12 94.23,40.55 95.24,40.35 95.24,40.35 96.26,40.55 97.11,41.12 97.69,41.98 97.89,42.99 97.69,44 97.11,44.86 96.26,45.44 95.24,45.64 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,52.25 67.77,52.05 66.92,51.48 66.34,50.62 66.14,49.61 66.34,48.59 66.92,47.74 67.77,47.16 68.79,46.96 68.79,46.96 69.8,47.16 70.66,47.74 71.23,48.59 71.43,49.61 71.23,50.62 70.66,51.48 69.8,52.05 68.79,52.25 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"88.63,52.25 87.62,52.05 86.76,51.48 86.19,50.62 85.98,49.61 86.19,48.59 86.76,47.74 87.62,47.16 88.63,46.96 88.63,46.96 89.64,47.16 90.5,47.74 91.07,48.59 91.28,49.61 91.07,50.62 90.5,51.48 89.64,52.05 88.63,52.25 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,58.87 67.77,58.66 66.92,58.09 66.34,57.23 66.14,56.22 66.34,55.21 66.92,54.35 67.77,53.78 68.79,53.57 68.79,53.57 69.8,53.78 70.66,54.35 71.23,55.21 71.43,56.22 71.23,57.23 70.66,58.09 69.8,58.66 68.79,58.87 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"82.02,58.87 81,58.66 80.14,58.09 79.57,57.23 79.37,56.22 79.57,55.21 80.14,54.35 81,53.78 82.02,53.57 82.02,53.57 83.03,53.78 83.89,54.35 84.46,55.21 84.66,56.22 84.46,57.23 83.89,58.09 83.03,58.66 82.02,58.87 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,58.87 94.23,58.66 93.37,58.09 92.8,57.23 92.6,56.22 92.8,55.21 93.37,54.35 94.23,53.78 95.24,53.57 95.24,53.57 96.26,53.78 97.11,54.35 97.69,55.21 97.89,56.22 97.69,57.23 97.11,58.09 96.26,58.66 95.24,58.87 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"75.4,65.48 74.39,65.28 73.53,64.71 72.96,63.85 72.76,62.83 72.96,61.82 73.53,60.96 74.39,60.39 75.4,60.19 75.4,60.19 76.41,60.39 77.27,60.96 77.85,61.82 78.05,62.83 77.85,63.85 77.27,64.71 76.41,65.28 75.4,65.48 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"15.87,72.09 14.86,71.89 14,71.32 13.43,70.46 13.23,69.45 13.43,68.44 14,67.58 14.86,67 15.87,66.8 42.33,66.8 43.34,67 44.2,67.58 44.77,68.44 44.98,69.45 44.77,70.46 44.2,71.32 43.34,71.89 42.33,72.09 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"55.56,72.09 54.55,71.89 53.69,71.32 53.11,70.46 52.91,69.45 53.11,68.44 53.69,67.58 54.55,67 55.56,66.8 68.79,66.8 69.8,67 70.66,67.58 71.23,68.44 71.43,69.45 71.23,70.46 70.66,71.32 69.8,71.89 68.79,72.09 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"88.63,72.09 87.62,71.89 86.76,71.32 86.19,70.46 85.98,69.45 86.19,68.44 86.76,67.58 87.62,67 88.63,66.8 88.63,66.8 89.64,67 90.5,67.58 91.07,68.44 91.28,69.45 91.07,70.46 90.5,71.32 89.64,71.89 88.63,72.09 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"101.86,72.09 100.85,71.89 99.99,71.32 99.41,70.46 99.21,69.45 99.41,68.44 99.99,67.58 100.85,67 101.86,66.8 101.86,66.8 102.87,67 103.73,67.58 104.3,68.44 104.5,69.45 104.3,70.46 103.73,71.32 102.87,71.89 101.86,72.09 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.09,72.09 114.07,71.89 113.22,71.32 112.64,70.46 112.44,69.45 112.64,68.44 113.22,67.58 114.07,67 115.09,66.8 115.09,66.8 116.1,67 116.96,67.58 117.53,68.44 117.73,69.45 117.53,70.46 116.96,71.32 116.1,71.89 115.09,72.09 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.31,72.09 127.3,71.89 126.44,71.32 125.87,70.46 125.67,69.45 125.87,68.44 126.44,67.58 127.3,67 128.31,66.8 128.31,66.8 129.33,67 130.19,67.58 130.76,68.44 130.96,69.45 130.76,70.46 130.19,71.32 129.33,71.89 128.31,72.09 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"141.54,72.09 140.53,71.89 139.67,71.32 139.1,70.46 138.9,69.45 139.1,68.44 139.67,67.58 140.53,67 141.54,66.8 141.54,66.8 142.56,67 143.41,67.58 143.99,68.44 144.19,69.45 143.99,70.46 143.41,71.32 142.56,71.89 141.54,72.09 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"15.87,78.71 14.86,78.51 14,77.93 13.43,77.08 13.23,76.06 13.43,75.05 14,74.19 14.86,73.62 15.87,73.42 29.1,73.42 30.11,73.62 30.97,74.19 31.55,75.05 31.75,76.06 31.55,77.08 30.97,77.93 30.11,78.51 29.1,78.71 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"48.94,78.71 47.93,78.51 47.07,77.93 46.5,77.08 46.3,76.06 46.5,75.05 47.07,74.19 47.93,73.62 48.94,73.42 48.94,73.42 49.96,73.62 50.82,74.19 51.39,75.05 51.59,76.06 51.39,77.08 50.82,77.93 49.96,78.51 48.94,78.71 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"62.17,78.71 61.16,78.51 60.3,77.93 59.73,77.08 59.53,76.06 59.73,75.05 60.3,74.19 61.16,73.62 62.17,73.42 62.17,73.42 63.19,73.62 64.04,74.19 64.62,75.05 64.82,76.06 64.62,77.08 64.04,77.93 63.19,78.51 62.17,78.71 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"75.4,78.71 74.39,78.51 73.53,77.93 72.96,77.08 72.76,76.06 72.96,75.05 73.53,74.19 74.39,73.62 75.4,73.42 75.4,73.42 76.41,73.62 77.27,74.19 77.85,75.05 78.05,76.06 77.85,77.08 77.27,77.93 76.41,78.51 75.4,78.71 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"88.63,78.71 87.62,78.51 86.76,77.93 86.19,77.08 85.98,76.06 86.19,75.05 86.76,74.19 87.62,73.62 88.63,73.42 108.47,73.42 109.48,73.62 110.34,74.19 110.92,75.05 111.12,76.06 110.92,77.08 110.34,77.93 109.48,78.51 108.47,78.71 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.31,78.71 127.3,78.51 126.44,77.93 125.87,77.08 125.67,76.06 125.87,75.05 126.44,74.19 127.3,73.62 128.31,73.42 148.16,73.42 149.17,73.62 150.03,74.19 150.6,75.05 150.8,76.06 150.6,77.08 150.03,77.93 149.17,78.51 148.16,78.71 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"29.1,85.32 28.09,85.12 27.23,84.55 26.66,83.69 26.46,82.68 26.66,81.66 27.23,80.81 28.09,80.23 29.1,80.03 29.1,80.03 30.11,80.23 30.97,80.81 31.55,81.66 31.75,82.68 31.55,83.69 30.97,84.55 30.11,85.12 29.1,85.32 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"42.33,85.32 41.32,85.12 40.46,84.55 39.89,83.69 39.69,82.68 39.89,81.66 40.46,80.81 41.32,80.23 42.33,80.03 55.56,80.03 56.57,80.23 57.43,80.81 58,81.66 58.2,82.68 58,83.69 57.43,84.55 56.57,85.12 55.56,85.32 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,85.32 67.77,85.12 66.92,84.55 66.34,83.69 66.14,82.68 66.34,81.66 66.92,80.81 67.77,80.23 68.79,80.03 75.4,80.03 76.41,80.23 77.27,80.81 77.85,81.66 78.05,82.68 77.85,83.69 77.27,84.55 76.41,85.12 75.4,85.32 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,85.32 94.23,85.12 93.37,84.55 92.8,83.69 92.6,82.68 92.8,81.66 93.37,80.81 94.23,80.23 95.24,80.03 95.24,80.03 96.26,80.23 97.11,80.81 97.69,81.66 97.89,82.68 97.69,83.69 97.11,84.55 96.26,85.12 95.24,85.32 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"108.47,85.32 107.46,85.12 106.6,84.55 106.03,83.69 105.83,82.68 106.03,81.66 106.6,80.81 107.46,80.23 108.47,80.03 115.09,80.03 116.1,80.23 116.96,80.81 117.53,81.66 117.73,82.68 117.53,83.69 116.96,84.55 116.1,85.12 115.09,85.32 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.31,85.32 127.3,85.12 126.44,84.55 125.87,83.69 125.67,82.68 125.87,81.66 126.44,80.81 127.3,80.23 128.31,80.03 128.31,80.03 129.33,80.23 130.19,80.81 130.76,81.66 130.96,82.68 130.76,83.69 130.19,84.55 129.33,85.12 128.31,85.32 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"148.16,85.32 147.15,85.12 146.29,84.55 145.71,83.69 145.51,82.68 145.71,81.66 146.29,80.81 147.15,80.23 148.16,80.03 148.16,80.03 149.17,80.23 150.03,80.81 150.6,81.66 150.8,82.68 150.6,83.69 150.03,84.55 149.17,85.12 148.16,85.32 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"15.87,91.94 14.86,91.74 14,91.16 13.43,90.3 13.23,89.29 13.43,88.28 14,87.42 14.86,86.85 15.87,86.65 15.87,86.65 16.89,86.85 17.74,87.42 18.32,88.28 18.52,89.29 18.32,90.3 17.74,91.16 16.89,91.74 15.87,91.94 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"35.72,91.94 34.7,91.74 33.85,91.16 33.27,90.3 33.07,89.29 33.27,88.28 33.85,87.42 34.7,86.85 35.72,86.65 35.72,86.65 36.73,86.85 37.59,87.42 38.16,88.28 38.36,89.29 38.16,90.3 37.59,91.16 36.73,91.74 35.72,91.94 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"88.63,91.94 87.62,91.74 86.76,91.16 86.19,90.3 85.98,89.29 86.19,88.28 86.76,87.42 87.62,86.85 88.63,86.65 108.47,86.65 109.48,86.85 110.34,87.42 110.92,88.28 111.12,89.29 110.92,90.3 110.34,91.16 109.48,91.74 108.47,91.94 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"134.93,91.94 133.92,91.74 133.06,91.16 132.48,90.3 132.28,89.29 132.48,88.28 133.06,87.42 133.92,86.85 134.93,86.65 148.16,86.65 149.17,86.85 150.03,87.42 150.6,88.28 150.8,89.29 150.6,90.3 150.03,91.16 149.17,91.74 148.16,91.94 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"22.49,98.55 21.48,98.35 20.62,97.78 20.04,96.92 19.84,95.91 20.04,94.89 20.62,94.03 21.48,93.46 22.49,93.26 22.49,93.26 23.5,93.46 24.36,94.03 24.93,94.89 25.13,95.91 24.93,96.92 24.36,97.78 23.5,98.35 22.49,98.55 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"35.72,98.55 34.7,98.35 33.85,97.78 33.27,96.92 33.07,95.91 33.27,94.89 33.85,94.03 34.7,93.46 35.72,93.26 42.33,93.26 43.34,93.46 44.2,94.03 44.77,94.89 44.98,95.91 44.77,96.92 44.2,97.78 43.34,98.35 42.33,98.55 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"55.56,98.55 54.55,98.35 53.69,97.78 53.11,96.92 52.91,95.91 53.11,94.89 53.69,94.03 54.55,93.46 55.56,93.26 55.56,93.26 56.57,93.46 57.43,94.03 58,94.89 58.2,95.91 58,96.92 57.43,97.78 56.57,98.35 55.56,98.55 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,98.55 67.77,98.35 66.92,97.78 66.34,96.92 66.14,95.91 66.34,94.89 66.92,94.03 67.77,93.46 68.79,93.26 75.4,93.26 76.41,93.46 77.27,94.03 77.85,94.89 78.05,95.91 77.85,96.92 77.27,97.78 76.41,98.35 75.4,98.55 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,98.55 94.23,98.35 93.37,97.78 92.8,96.92 92.6,95.91 92.8,94.89 93.37,94.03 94.23,93.46 95.24,93.26 95.24,93.26 96.26,93.46 97.11,94.03 97.69,94.89 97.89,95.91 97.69,96.92 97.11,97.78 96.26,98.35 95.24,98.55 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.09,98.55 114.07,98.35 113.22,97.78 112.64,96.92 112.44,95.91 112.64,94.89 113.22,94.03 114.07,93.46 115.09,93.26 115.09,93.26 116.1,93.46 116.96,94.03 117.53,94.89 117.73,95.91 117.53,96.92 116.96,97.78 116.1,98.35 115.09,98.55 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"141.54,98.55 140.53,98.35 139.67,97.78 139.1,96.92 138.9,95.91 139.1,94.89 139.67,94.03 140.53,93.46 141.54,93.26 141.54,93.26 142.56,93.46 143.41,94.03 143.99,94.89 144.19,95.91 143.99,96.92 143.41,97.78 142.56,98.35 141.54,98.55 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,105.17 67.77,104.96 66.92,104.39 66.34,103.53 66.14,102.52 66.34,101.51 66.92,100.65 67.77,100.08 68.79,99.87 68.79,99.87 69.8,100.08 70.66,100.65 71.23,101.51 71.43,102.52 71.23,103.53 70.66,104.39 69.8,104.96 68.79,105.17 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"82.02,105.17 81,104.96 80.14,104.39 79.57,103.53 79.37,102.52 79.57,101.51 80.14,100.65 81,100.08 82.02,99.87 82.02,99.87 83.03,100.08 83.89,100.65 84.46,101.51 84.66,102.52 84.46,103.53 83.89,104.39 83.03,104.96 82.02,105.17 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,105.17 94.23,104.96 93.37,104.39 92.8,103.53 92.6,102.52 92.8,101.51 93.37,100.65 94.23,100.08 95.24,99.87 95.24,99.87 96.26,100.08 97.11,100.65 97.69,101.51 97.89,102.52 97.69,103.53 97.11,104.39 96.26,104.96 95.24,105.17 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.09,105.17 114.07,104.96 113.22,104.39 112.64,103.53 112.44,102.52 112.64,101.51 113.22,100.65 114.07,100.08 115.09,99.87 115.09,99.87 116.1,100.08 116.96,100.65 117.53,101.51 117.73,102.52 117.53,103.53 116.96,104.39 116.1,104.96 115.09,105.17 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"134.93,105.17 133.92,104.96 133.06,104.39 132.48,103.53 132.28,102.52 132.48,101.51 133.06,100.65 133.92,100.08 134.93,99.87 134.93,99.87 135.94,100.08 136.8,100.65 137.37,101.51 137.57,102.52 137.37,103.53 136.8,104.39 135.94,104.96 134.93,105.17 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,111.78 67.77,111.58 66.92,111 66.34,110.15 66.14,109.13 66.34,108.12 66.92,107.26 67.77,106.69 68.79,106.49 68.79,106.49 69.8,106.69 70.66,107.26 71.23,108.12 71.43,109.13 71.23,110.15 70.66,111 69.8,111.58 68.79,111.78 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"88.63,111.78 87.62,111.58 86.76,111 86.19,110.15 85.98,109.13 86.19,108.12 86.76,107.26 87.62,106.69 88.63,106.49 88.63,106.49 89.64,106.69 90.5,107.26 91.07,108.12 91.28,109.13 91.07,110.15 90.5,111 89.64,111.58 88.63,111.78 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"101.86,111.78 100.85,111.58 99.99,111 99.41,110.15 99.21,109.13 99.41,108.12 99.99,107.26 100.85,106.69 101.86,106.49 101.86,106.49 102.87,106.69 103.73,107.26 104.3,108.12 104.5,109.13 104.3,110.15 103.73,111 102.87,111.58 101.86,111.78 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"121.7,111.78 120.69,111.58 119.83,111 119.26,110.15 119.06,109.13 119.26,108.12 119.83,107.26 120.69,106.69 121.7,106.49 128.31,106.49 129.33,106.69 130.19,107.26 130.76,108.12 130.96,109.13 130.76,110.15 130.19,111 129.33,111.58 128.31,111.78 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"141.54,111.78 140.53,111.58 139.67,111 139.1,110.15 138.9,109.13 139.1,108.12 139.67,107.26 140.53,106.69 141.54,106.49 148.16,106.49 149.17,106.69 150.03,107.26 150.6,108.12 150.8,109.13 150.6,110.15 150.03,111 149.17,111.58 148.16,111.78 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"75.4,118.39 74.39,118.19 73.53,117.62 72.96,116.76 72.76,115.75 72.96,114.74 73.53,113.88 74.39,113.3 75.4,113.1 82.02,113.1 83.03,113.3 83.89,113.88 84.46,114.74 84.66,115.75 84.46,116.76 83.89,117.62 83.03,118.19 82.02,118.39 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.09,118.39 114.07,118.19 113.22,117.62 112.64,116.76 112.44,115.75 112.64,114.74 113.22,113.88 114.07,113.3 115.09,113.1 121.7,113.1 122.71,113.3 123.57,113.88 124.15,114.74 124.35,115.75 124.15,116.76 123.57,117.62 122.71,118.19 121.7,118.39 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"134.93,118.39 133.92,118.19 133.06,117.62 132.48,116.76 132.28,115.75 132.48,114.74 133.06,113.88 133.92,113.3 134.93,113.1 134.93,113.1 135.94,113.3 136.8,113.88 137.37,114.74 137.57,115.75 137.37,116.76 136.8,117.62 135.94,118.19 134.93,118.39 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"148.16,118.39 147.15,118.19 146.29,117.62 145.71,116.76 145.51,115.75 145.71,114.74 146.29,113.88 147.15,113.3 148.16,113.1 148.16,113.1 149.17,113.3 150.03,113.88 150.6,114.74 150.8,115.75 150.6,116.76 150.03,117.62 149.17,118.19 148.16,118.39 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,125.01 67.77,124.81 66.92,124.23 66.34,123.37 66.14,122.36 66.34,121.35 66.92,120.49 67.77,119.92 68.79,119.72 88.63,119.72 89.64,119.92 90.5,120.49 91.07,121.35 91.28,122.36 91.07,123.37 90.5,124.23 89.64,124.81 88.63,125.01 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"101.86,125.01 100.85,124.81 99.99,124.23 99.41,123.37 99.21,122.36 99.41,121.35 99.99,120.49 100.85,119.92 101.86,119.72 101.86,119.72 102.87,119.92 103.73,120.49 104.3,121.35 104.5,122.36 104.3,123.37 103.73,124.23 102.87,124.81 101.86,125.01 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"121.7,125.01 120.69,124.81 119.83,124.23 119.26,123.37 119.06,122.36 119.26,121.35 119.83,120.49 120.69,119.92 121.7,119.72 134.93,119.72 135.94,119.92 136.8,120.49 137.37,121.35 137.57,122.36 137.37,123.37 136.8,124.23 135.94,124.81 134.93,125.01 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,131.62 67.77,131.42 66.92,130.85 66.34,129.99 66.14,128.98 66.34,127.96 66.92,127.11 67.77,126.53 68.79,126.33 75.4,126.33 76.41,126.53 77.27,127.11 77.85,127.96 78.05,128.98 77.85,129.99 77.27,130.85 76.41,131.42 75.4,131.62 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"88.63,131.62 87.62,131.42 86.76,130.85 86.19,129.99 85.98,128.98 86.19,127.96 86.76,127.11 87.62,126.53 88.63,126.33 115.09,126.33 116.1,126.53 116.96,127.11 117.53,127.96 117.73,128.98 117.53,129.99 116.96,130.85 116.1,131.42 115.09,131.62 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.31,131.62 127.3,131.42 126.44,130.85 125.87,129.99 125.67,128.98 125.87,127.96 126.44,127.11 127.3,126.53 128.31,126.33 134.93,126.33 135.94,126.53 136.8,127.11 137.37,127.96 137.57,128.98 137.37,129.99 136.8,130.85 135.94,131.42 134.93,131.62 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,138.24 67.77,138.03 66.92,137.46 66.34,136.6 66.14,135.59 66.34,134.58 66.92,133.72 67.77,133.15 68.79,132.94 75.4,132.94 76.41,133.15 77.27,133.72 77.85,134.58 78.05,135.59 77.85,136.6 77.27,137.46 76.41,138.03 75.4,138.24 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,138.24 94.23,138.03 93.37,137.46 92.8,136.6 92.6,135.59 92.8,134.58 93.37,133.72 94.23,133.15 95.24,132.94 95.24,132.94 96.26,133.15 97.11,133.72 97.69,134.58 97.89,135.59 97.69,136.6 97.11,137.46 96.26,138.03 95.24,138.24 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"108.47,138.24 107.46,138.03 106.6,137.46 106.03,136.6 105.83,135.59 106.03,134.58 106.6,133.72 107.46,133.15 108.47,132.94 115.09,132.94 116.1,133.15 116.96,133.72 117.53,134.58 117.73,135.59 117.53,136.6 116.96,137.46 116.1,138.03 115.09,138.24 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"128.31,138.24 127.3,138.03 126.44,137.46 125.87,136.6 125.67,135.59 125.87,134.58 126.44,133.72 127.3,133.15 128.31,132.94 134.93,132.94 135.94,133.15 136.8,133.72 137.37,134.58 137.57,135.59 137.37,136.6 136.8,137.46 135.94,138.03 134.93,138.24 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,144.85 67.77,144.65 66.92,144.08 66.34,143.22 66.14,142.2 66.34,141.19 66.92,140.33 67.77,139.76 68.79,139.56 68.79,139.56 69.8,139.76 70.66,140.33 71.23,141.19 71.43,142.2 71.23,143.22 70.66,144.08 69.8,144.65 68.79,144.85 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"82.02,144.85 81,144.65 80.14,144.08 79.57,143.22 79.37,142.2 79.57,141.19 80.14,140.33 81,139.76 82.02,139.56 121.7,139.56 122.71,139.76 123.57,140.33 124.15,141.19 124.35,142.2 124.15,143.22 123.57,144.08 122.71,144.65 121.7,144.85 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"134.93,144.85 133.92,144.65 133.06,144.08 132.48,143.22 132.28,142.2 132.48,141.19 133.06,140.33 133.92,139.76 134.93,139.56 141.54,139.56 142.56,139.76 143.41,140.33 143.99,141.19 144.19,142.2 143.99,143.22 143.41,144.08 142.56,144.65 141.54,144.85 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"68.79,151.46 67.77,151.26 66.92,150.69 66.34,149.83 66.14,148.82 66.34,147.81 66.92,146.95 67.77,146.37 68.79,146.17 82.02,146.17 83.03,146.37 83.89,146.95 84.46,147.81 84.66,148.82 84.46,149.83 83.89,150.69 83.03,151.26 82.02,151.46 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"95.24,151.46 94.23,151.26 93.37,150.69 92.8,149.83 92.6,148.82 92.8,147.81 93.37,146.95 94.23,146.37 95.24,146.17 95.24,146.17 96.26,146.37 97.11,146.95 97.69,147.81 97.89,148.82 97.69,149.83 97.11,150.69 96.26,151.26 95.24,151.46 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"115.09,151.46 114.07,151.26 113.22,150.69 112.64,149.83 112.44,148.82 112.64,147.81 113.22,146.95 114.07,146.37 115.09,146.17 115.09,146.17 116.1,146.37 116.96,146.95 117.53,147.81 117.73,148.82 117.53,149.83 116.96,150.69 116.1,151.26 115.09,151.46 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n          <polygon\r\n            points=\"134.93,151.46 133.92,151.26 133.06,150.69 132.48,149.83 132.28,148.82 132.48,147.81 133.06,146.95 133.92,146.37 134.93,146.17 134.93,146.17 135.94,146.37 136.8,146.95 137.37,147.81 137.57,148.82 137.37,149.83 136.8,150.69 135.94,151.26 134.93,151.46 \"\r\n            style=\"fill:url(#gradientffcbed388ab34855992a9fd38824ed9b);\"\r\n          />\r\n      `,\r\n    },\r\n  ];\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport StiRectangleGeometryLayout from \"../computed/StiRectangleGeometryLayout\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiBarcodeElement } from \"../elements/StiBarcodeElement\";\r\nimport { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport { StiImageElement } from \"../elements/StiImageElement\";\r\nimport { StiPanelElement } from \"../elements/StiPanelElement\";\r\nimport { StiSignatureElement } from \"../elements/StiSignatureElement\";\r\nimport { StiLabelAlignment } from \"../system/enums\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiMouseService } from \"./mouse.service\";\r\nimport { StiBarcodeService } from \"./sti-barcode.service\";\r\n\r\n@Injectable()\r\nexport class StiComponentResizerService {\r\n  public isResizing = false;\r\n  public startFromRight = false;\r\n  public startFromLeft = false;\r\n  public startFromBottom = false;\r\n  public startFromBottomLeft = false;\r\n  public startFromBottomRight = false;\r\n\r\n  private startMouseX: number;\r\n  private startMouseY: number;\r\n  private startHeight: number;\r\n  private startWidth: number;\r\n  private startElementX: number;\r\n  private startCanvasWidth: number;\r\n  private startCanvasHeight: number;\r\n  public element: StiFormElement;\r\n  private currentPage: StiFormPageElement;\r\n  private currentPanel: StiPanelElement;\r\n  private maxWidth = 0;\r\n  private minWidth = 0;\r\n  private columnWidth = 64.326;\r\n  private gridVerticalStep;\r\n  private freeAreaHeight: number;\r\n  private elementsToUpdate: StiFormElement[];\r\n  public StartResizeSubj = new Subject<any>();\r\n  public EndResizeSubj = new Subject<any>();\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public mouseService: StiMouseService,\r\n    public render: StiRectangleGeometryLayout,\r\n    public barcodeService: StiBarcodeService\r\n  ) {\r\n    mouseService.getDocumentMouseUp().subscribe((event) => {\r\n      document.body.style.cursor = \"\";\r\n      if (this.isResizing) {\r\n        this.EndResizeSubj.next({ event: \"End Resize\" });\r\n      }\r\n      this.currentPage = null;\r\n      this.currentPanel = null;\r\n      this.isResizing = false;\r\n      this.model.canDrag = true;\r\n      this.startFromRight = false;\r\n      this.startFromLeft = false;\r\n      this.startFromBottom = false;\r\n      this.startFromBottomLeft = false;\r\n      this.startFromBottomRight = false;\r\n      this.model.cursor = \"default\";\r\n    });\r\n\r\n    mouseService.getDocumentMouseMove().subscribe((event) => {\r\n      this.resizeFromBottomRight(event);\r\n      this.resizeFromBottomLeft(event);\r\n      this.resizeFromLeft(event);\r\n      this.resizeFromRight(event);\r\n      this.resizeFromBottom(event);\r\n    });\r\n\r\n    model.formEvents.subscribe((e) => {\r\n      if (e.name == \"UpdateAllSizes\") {\r\n        this.elementsToUpdate = [];\r\n        this.model.elementToUpdate = null;\r\n        this.model.form.pages.forEach((p) => p.allElements.forEach((e) => this.elementsToUpdate.push(e)));\r\n        this.updateElements();\r\n      }\r\n    });\r\n  }\r\n\r\n  private updateElements() {\r\n    if (this.elementsToUpdate.length > 0) {\r\n      if (this.model.elementToUpdate == null) {\r\n        this.model.elementToUpdate = this.elementsToUpdate.splice(0, 1)[0];\r\n      }\r\n      setTimeout(() => {\r\n        this.updateElements();\r\n      }, 0);\r\n    } else {\r\n    }\r\n  }\r\n\r\n  public initResize(element: StiFormElement, e: MouseEvent, startPosition: string) {\r\n    e.stopPropagation();\r\n    document.body.style.cursor = \"nwse-resize\";\r\n    this.freeAreaHeight = 0;\r\n    this.startMouseX = e.clientX;\r\n    this.startMouseY = e.clientY;\r\n    this.startElementX = element.x;\r\n    this.startHeight = element.height;\r\n    this.model.lastFormState = this.model.form.saveToJsonObject().serialize();\r\n    this.gridVerticalStep = this.model.form.settings.gridVerticalStep;\r\n    element.width = this.startWidth = element.width;\r\n    if (element instanceof StiSignatureElement || element instanceof StiImageElement) {\r\n      this.startCanvasHeight = element.canvasHeight;\r\n    }\r\n    if (element instanceof StiBarcodeElement) {\r\n      this.startCanvasHeight = element.Height;\r\n    }\r\n    this.element = element;\r\n    this.maxWidth = 0;\r\n    this.StartResizeSubj.next({ event: \"Start Resize\" });\r\n    this.currentPage = this.model.getElementPage(element);\r\n    this.currentPanel = this.model.getElementPanel(element);\r\n    this.currentPage\r\n      ? (this.maxWidth = this.currentPage?.contentAreaWidth)\r\n      : (this.maxWidth = this.currentPanel.contentAreaWidth);\r\n    this.minWidth = element.geometry.minWidth;\r\n    let otherElements = Array.from(this.currentPage?.elements ?? this.currentPanel?.elements);\r\n    otherElements.splice(otherElements.indexOf(this.element), 1);\r\n    this.freeAreaHeight = this.render.getFreeToBottomResizeArea(this.element, otherElements);\r\n    this.currentPage\r\n      ? (this.columnWidth = Number(\r\n          (this.currentPage?.contentAreaWidth / this.model.form.settings.gridColumns).toFixed(2)\r\n        ))\r\n      : (this.columnWidth = Number(\r\n          (this.currentPanel?.contentAreaWidth / this.model.form.settings.gridColumns).toFixed(2)\r\n        ));\r\n    if (startPosition == \"fromRight\") {\r\n      this.startFromRight = true;\r\n      this.model.cursor = \"ew-resize\";\r\n      element.width = Math.round((element.x + element.width) / this.columnWidth) * this.columnWidth - element.x;\r\n      this.startWidth = element.width;\r\n    } else if (startPosition == \"fromLeft\") {\r\n      this.startFromLeft = true;\r\n      this.model.cursor = \"ew-resize\";\r\n      let startX = element.x;\r\n      element.x = Math.round(element.x / this.columnWidth) * this.columnWidth;\r\n      this.startElementX = element.x;\r\n      element.width = startX > element.x ? element.width + (startX - element.x) : element.width - (element.x - startX);\r\n      this.startWidth = element.width;\r\n    } else if (startPosition == \"fromBottom\") {\r\n      this.startFromBottom = true;\r\n      this.model.cursor = \"ns-resize\";\r\n      element.height =\r\n        Math.round((element.height + element.y) / this.model.form.settings.gridVerticalStep) *\r\n          this.model.form.settings.gridVerticalStep -\r\n        element.y;\r\n      this.startHeight = element.height;\r\n    } else if (startPosition == \"fromBottomLeft\") {\r\n      this.startFromBottomLeft = true;\r\n      this.model.cursor = \"nesw-resize\";\r\n      let startX = element.x;\r\n      element.x = Math.round(element.x / this.columnWidth) * this.columnWidth;\r\n      this.startElementX = element.x;\r\n      element.width = startX > element.x ? element.width + (startX - element.x) : element.width - (element.x - startX);\r\n      this.startWidth = element.width;\r\n      element.height =\r\n        Math.round((element.height + element.y) / this.model.form.settings.gridVerticalStep) *\r\n          this.model.form.settings.gridVerticalStep -\r\n        element.y;\r\n      this.startHeight = element.height;\r\n    } else if (startPosition == \"fromBottomRight\") {\r\n      this.startFromBottomRight = true;\r\n      this.model.cursor = \"nwse-resize\";\r\n      element.width = Math.round((element.x + element.width) / this.columnWidth) * this.columnWidth - element.x;\r\n      this.startWidth = element.width;\r\n      element.height =\r\n        Math.round((element.height + element.y) / this.model.form.settings.gridVerticalStep) *\r\n          this.model.form.settings.gridVerticalStep -\r\n        element.y;\r\n      this.startHeight = element.height;\r\n    }\r\n    this.isResizing = true;\r\n  }\r\n\r\n  public resizeFromBottomRight(event: MouseEvent) {\r\n    if (this.isResizing && this.startFromBottomRight) {\r\n      let delta = this.startMouseX - event.clientX;\r\n      let deltaTop = this.startMouseY - event.clientY;\r\n      if (Math.abs(delta) >= (this.columnWidth * this.model.zoom) / 2) {\r\n        let step = Math.round(Math.abs(delta) / (this.columnWidth * this.model.zoom));\r\n        if (delta < 0) {\r\n          this.element.width = this.startWidth + this.columnWidth * step;\r\n        } else {\r\n          this.element.width = this.startWidth - this.columnWidth * step;\r\n        }\r\n      } else {\r\n        this.element.width = this.startWidth;\r\n      }\r\n      if (this.element.width + this.element.x > this.maxWidth) {\r\n        this.element.width = this.maxWidth - this.element.x;\r\n      } else if (this.element.width <= this.minWidth) {\r\n        this.element.width = this.minWidth;\r\n      }\r\n      let step = Math.round(Math.abs(deltaTop) / (this.gridVerticalStep * this.model.zoom));\r\n      if (deltaTop < 0) {\r\n        this.element.height = this.startHeight + this.gridVerticalStep * step;\r\n      } else {\r\n        this.element.height = this.startHeight - this.gridVerticalStep * step;\r\n      }\r\n\r\n      if (this.element instanceof StiSignatureElement || this.element instanceof StiImageElement) {\r\n        if (deltaTop < 0) {\r\n          this.element.canvasHeight = this.startCanvasHeight + this.gridVerticalStep * step;\r\n        } else {\r\n          this.element.canvasHeight = this.startCanvasHeight - this.gridVerticalStep * step;\r\n        }\r\n        if (this.element.canvasHeight <= 34) {\r\n          this.element.canvasHeight = 34;\r\n        }\r\n      }\r\n      if (this.element instanceof StiBarcodeElement) {\r\n        if (deltaTop < 0) {\r\n          this.element.Height = this.startCanvasHeight + this.gridVerticalStep * step;\r\n        } else {\r\n          this.element.Height = this.startCanvasHeight - this.gridVerticalStep * step;\r\n        }\r\n        if (this.element.Height <= 55) {\r\n          this.element.Height = 55;\r\n        }\r\n        this.element.Width =\r\n          this.element.width -\r\n          (this.element.label.alignment != StiLabelAlignment.Top ? this.element.label.width : 0) -\r\n          this.element.padding.right -\r\n          this.element.padding.left;\r\n      }\r\n\r\n      if (this.element.height <= this.element.geometry.minHeight) {\r\n        this.element.height = this.element.geometry.minHeight;\r\n      }\r\n      if (this.element.height >= this.startHeight + this.freeAreaHeight) {\r\n        this.element.height = this.startHeight + this.freeAreaHeight;\r\n      }\r\n\r\n      //\r\n      let otherElements = Array.from(this.currentPage?.elements ?? this.currentPanel?.elements);\r\n      otherElements.splice(otherElements.indexOf(this.element), 1);\r\n      this.render.changeElementGeometry(this.element, otherElements);\r\n    }\r\n  }\r\n  public resizeFromBottomLeft(event: MouseEvent) {\r\n    if (this.isResizing && this.startFromBottomLeft) {\r\n      let delta = this.startMouseX - event.clientX;\r\n      let deltaTop = this.startMouseY - event.clientY;\r\n      if (Math.abs(delta) >= (this.columnWidth * this.model.zoom) / 2) {\r\n        let step = Math.round(Math.abs(delta) / (this.columnWidth * this.model.zoom));\r\n        if (delta < 0) {\r\n          this.element.x = this.startElementX + this.columnWidth * step;\r\n          this.element.width = this.startWidth - this.columnWidth * step;\r\n        } else {\r\n          this.element.x = this.startElementX - this.columnWidth * step;\r\n          this.element.width = this.startWidth + this.columnWidth * step;\r\n        }\r\n      } else {\r\n        this.element.x = this.startElementX;\r\n        this.element.width = this.startWidth;\r\n      }\r\n      if (this.element.x < 0) {\r\n        this.element.x = 0;\r\n        this.element.width = this.startWidth + this.startElementX;\r\n      } else if (this.element.x + this.element.geometry.minWidth > this.startElementX + this.startWidth) {\r\n        this.element.x = this.startWidth - this.element.geometry.minWidth + this.startElementX;\r\n        this.element.width = this.element.geometry.minWidth;\r\n      }\r\n      let step = Math.round(Math.abs(deltaTop) / (this.gridVerticalStep * this.model.zoom));\r\n      if (deltaTop < 0) {\r\n        this.element.height = this.startHeight + this.gridVerticalStep * step;\r\n      } else {\r\n        this.element.height = this.startHeight - this.gridVerticalStep * step;\r\n      }\r\n\r\n      if (this.element instanceof StiSignatureElement || this.element instanceof StiImageElement) {\r\n        if (deltaTop < 0) {\r\n          this.element.canvasHeight = this.startCanvasHeight + this.gridVerticalStep * step;\r\n        } else {\r\n          this.element.canvasHeight = this.startCanvasHeight - this.gridVerticalStep * step;\r\n        }\r\n        if (this.element.canvasHeight <= 34) {\r\n          this.element.canvasHeight = 34;\r\n        }\r\n      }\r\n      if (this.element instanceof StiBarcodeElement) {\r\n        if (deltaTop < 0) {\r\n          this.element.Height = this.startCanvasHeight + this.gridVerticalStep * step;\r\n        } else {\r\n          this.element.Height = this.startCanvasHeight - this.gridVerticalStep * step;\r\n        }\r\n        if (this.element.Height <= 55) {\r\n          this.element.Height = 55;\r\n        }\r\n        this.element.Width =\r\n          this.element.width -\r\n          (this.element.label.alignment != StiLabelAlignment.Top ? this.element.label.width : 0) -\r\n          this.element.padding.right -\r\n          this.element.padding.left;\r\n      }\r\n\r\n      if (this.element.height <= this.element.geometry.minHeight) {\r\n        this.element.height = this.element.geometry.minHeight;\r\n      }\r\n      if (this.element.height >= this.startHeight + this.freeAreaHeight) {\r\n        this.element.height = this.startHeight + this.freeAreaHeight;\r\n      }\r\n\r\n      //\r\n      let otherElements = Array.from(this.currentPage?.elements ?? this.currentPanel?.elements);\r\n      otherElements.splice(otherElements.indexOf(this.element), 1);\r\n      this.render.changeElementGeometry(this.element, otherElements);\r\n    }\r\n  }\r\n  public resizeFromRight(event: MouseEvent) {\r\n    if (this.isResizing && this.startFromRight) {\r\n      let delta = this.startMouseX - event.clientX;\r\n      if (Math.abs(delta) >= (this.columnWidth * this.model.zoom) / 2) {\r\n        let step = Math.round(Math.abs(delta) / (this.columnWidth * this.model.zoom));\r\n        if (delta < 0) {\r\n          this.element.width = this.startWidth + this.columnWidth * step;\r\n        } else {\r\n          this.element.width = this.startWidth - this.columnWidth * step;\r\n        }\r\n      } else {\r\n        this.element.width = this.startWidth;\r\n      }\r\n      if (this.element.width + this.element.x > this.maxWidth) {\r\n        this.element.width = this.maxWidth - this.element.x;\r\n      } else if (this.element.width <= this.minWidth) {\r\n        this.element.width = this.minWidth;\r\n      }\r\n      //\r\n      let otherElements = Array.from(this.currentPage?.elements ?? this.currentPanel?.elements);\r\n      otherElements.splice(otherElements.indexOf(this.element), 1);\r\n      this.render.changeElementGeometry(this.element, otherElements);\r\n    }\r\n  }\r\n  public resizeFromLeft(event: MouseEvent) {\r\n    if (this.isResizing && this.startFromLeft) {\r\n      let delta = this.startMouseX - event.clientX;\r\n      if (Math.abs(delta) >= (this.columnWidth * this.model.zoom) / 2) {\r\n        let step = Math.round(Math.abs(delta) / (this.columnWidth * this.model.zoom));\r\n        if (delta < 0) {\r\n          this.element.x = this.startElementX + this.columnWidth * step;\r\n          this.element.width = this.startWidth - this.columnWidth * step;\r\n        } else {\r\n          this.element.x = this.startElementX - this.columnWidth * step;\r\n          this.element.width = this.startWidth + this.columnWidth * step;\r\n        }\r\n      } else {\r\n        this.element.x = this.startElementX;\r\n        this.element.width = this.startWidth;\r\n      }\r\n      if (this.element.x < 0) {\r\n        this.element.x = 0;\r\n        this.element.width = this.startWidth + this.startElementX;\r\n      } else if (this.element.x + this.element.geometry.minWidth > this.startElementX + this.startWidth) {\r\n        this.element.x = this.startWidth - this.element.geometry.minWidth + this.startElementX;\r\n        this.element.width = this.element.geometry.minWidth;\r\n      }\r\n\r\n      //\r\n      let otherElements = Array.from(this.currentPage?.elements ?? this.currentPanel?.elements);\r\n      otherElements.splice(otherElements.indexOf(this.element), 1);\r\n      this.render.changeElementGeometry(this.element, otherElements);\r\n    }\r\n  }\r\n  public resizeFromBottom(event: MouseEvent) {\r\n    if (this.isResizing && this.startFromBottom) {\r\n      let deltaTop = this.startMouseY - event.clientY;\r\n      let step = Math.round(Math.abs(deltaTop) / (this.gridVerticalStep * this.model.zoom));\r\n      if (deltaTop < 0) {\r\n        this.element.height = this.startHeight + this.gridVerticalStep * step;\r\n      } else {\r\n        this.element.height = this.startHeight - this.gridVerticalStep * step;\r\n      }\r\n\r\n      if (this.element instanceof StiSignatureElement || this.element instanceof StiImageElement) {\r\n        if (deltaTop < 0) {\r\n          this.element.canvasHeight = this.startCanvasHeight + this.gridVerticalStep * step;\r\n        } else {\r\n          this.element.canvasHeight = this.startCanvasHeight - this.gridVerticalStep * step;\r\n        }\r\n        if (this.element.canvasHeight <= 34) {\r\n          this.element.canvasHeight = 34;\r\n        }\r\n      }\r\n      if (this.element instanceof StiBarcodeElement) {\r\n        if (deltaTop < 0) {\r\n          this.element.Height = this.startCanvasHeight + this.gridVerticalStep * step;\r\n        } else {\r\n          this.element.Height = this.startCanvasHeight - this.gridVerticalStep * step;\r\n        }\r\n        if (this.element.Height <= 55) {\r\n          this.element.Height = 55;\r\n        }\r\n        this.element.Width = this.element.width - this.element.padding.right - this.element.padding.left;\r\n      }\r\n\r\n      if (this.element.height <= this.element.geometry.minHeight) {\r\n        this.element.height = this.element.geometry.minHeight;\r\n      }\r\n      if (this.element.height >= this.startHeight + this.freeAreaHeight) {\r\n        this.element.height = this.startHeight + this.freeAreaHeight;\r\n      }\r\n\r\n      //\r\n      let otherElements = Array.from(this.currentPage?.elements ?? this.currentPanel?.elements);\r\n      otherElements.splice(otherElements.indexOf(this.element), 1);\r\n      this.render.changeElementGeometry(this.element, otherElements);\r\n    }\r\n  }\r\n}\r\n","import { StiFormElement } from \"./base/StiFormElement\";\r\n\r\nexport class StiDragPreviewElement extends StiFormElement {\r\n  public type: string = \"Drag_Preview\";\r\n  public id: string;\r\n  public hasGeometry: boolean = true;\r\n  constructor() {\r\n    super();\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport StiRectangleGeometryLayout from \"../computed/StiRectangleGeometryLayout\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiAddressElement } from \"../elements/StiAddressElement\";\r\nimport { StiButtonElement } from \"../elements/StiButtonElement\";\r\nimport { StiDragPreviewElement } from \"../elements/StiDragPreviewElement\";\r\nimport { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport { StiLabelElement } from \"../elements/StiLabelElement\";\r\nimport StiLineElement from \"../elements/StiLineElement\";\r\nimport { StiPanelElement } from \"../elements/StiPanelElement\";\r\nimport { StiSignatureElement } from \"../elements/StiSignatureElement\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport Guid from \"../system/Guid\";\r\n\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiMouseService } from \"./mouse.service\";\r\nimport { StiHelperService } from \"./sti-helper.service\";\r\nimport { StiNameService } from \"./sti-name.service\";\r\n\r\n@Injectable()\r\nexport class StiDraggableService {\r\n  public static MOUSE_DELTA = 5;\r\n\r\n  public top: number;\r\n  public left: number;\r\n  public newElement = true;\r\n  public dragPreview = new StiDragPreviewElement();\r\n  public draggingElementWidthInColumns: number;\r\n  public draggingElementWidth: number;\r\n  public currentUsableElement;\r\n\r\n  private startX: number;\r\n  private startY: number;\r\n\r\n  constructor(\r\n    public mouseService: StiMouseService,\r\n    public model: StiModelService,\r\n    public nameService: StiNameService,\r\n    public helper: StiHelperService,\r\n    public render: StiRectangleGeometryLayout\r\n  ) {\r\n    mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.drag(event);\r\n    });\r\n\r\n    mouseService.getDocumentMouseUp().subscribe((event: MouseEvent) => {\r\n      this.endDrag(event);\r\n    });\r\n  }\r\n\r\n  public drag(event: MouseEvent) {\r\n    if (this.model.draggingElement) {\r\n      let bottomPage = this.model.getPageFromPoint(event.clientX, event.clientY);\r\n      if (this.model.lastUsedPage != bottomPage && bottomPage != null && bottomPage != undefined) {\r\n        this.model.lastUsedPage = bottomPage;\r\n      }\r\n      this.model.cursor = bottomPage ? \"move\" : \"not-allowed\";\r\n      this.left = event.clientX - this.startX;\r\n      this.top = event.clientY - this.startY;\r\n      if (this.newElement) {\r\n        if (bottomPage) {\r\n          if (\r\n            this.model.draggingElement instanceof StiTableElement ||\r\n            this.model.draggingElement instanceof StiLineElement ||\r\n            this.model.draggingElement instanceof StiPanelElement\r\n          ) {\r\n            this.model.draggingElement.width = this.model.lastUsedPage.contentAreaWidth;\r\n          } else if (this.model.draggingElement instanceof StiButtonElement) {\r\n            this.model.draggingElement.width =\r\n              this.model.lastUsedPage.contentAreaWidth / this.model.form.settings.gridColumns > 1\r\n                ? Math.round(this.model.form.settings.gridColumns * 0.2)\r\n                : 1;\r\n          } else {\r\n            this.model.draggingElement.width =\r\n              this.model.lastUsedPage.contentAreaWidth / this.model.form.settings.gridColumns > 1\r\n                ? Math.round(this.model.form.settings.gridColumns * 0.4)\r\n                : 1;\r\n          }\r\n        } else {\r\n          //this.model.draggingElement.width = 0; ???\r\n        }\r\n      }\r\n      this.moveDragPreview(event);\r\n    }\r\n  }\r\n\r\n  public endDrag(event: MouseEvent) {\r\n    if (this.model.draggingElement) {\r\n      let page = this.model.getElementPage(this.dragPreview);\r\n      let panel = this.model.getElementPanel(this.dragPreview);\r\n      let elements = page ? page?.elements : panel?.elements;\r\n      this.model.draggingElement.x = this.dragPreview.x;\r\n      this.model.draggingElement.y = this.dragPreview.y;\r\n      this.model.draggingElement.width = this.dragPreview.width;\r\n      if (elements) {\r\n        if (this.model.draggingElement instanceof StiLabelElement) {\r\n          elements.splice(elements.indexOf(this.dragPreview), 1);\r\n          elements.splice(0, 0, this.model.draggingElement);\r\n        } else {\r\n          elements.splice(elements.indexOf(this.dragPreview), 1, this.model.draggingElement);\r\n        }\r\n        if (this.newElement) {\r\n          this.model.draggingElement.guid = Guid.newGuid().toString();\r\n          this.model.draggingElement.name = this.nameService.getElementName(this.model.draggingElement);\r\n          this.model.draggingElement.hasGeometry = true;\r\n        }\r\n\r\n        this.model.draggingElement.position = \"absolute\";\r\n        this.model.draggingElement.needToSelectComponent = true;\r\n        this.model.draggingElement.isAdded = true;\r\n        if (this.model.draggingElement instanceof StiTableElement) {\r\n          this.model.currentTablePropertyHeader.next(\"Table\");\r\n        }\r\n      } else {\r\n        if (!this.model.overToolbar(event.clientX, event.clientY) && !this.newElement) {\r\n          this.model.lastUsedPage.elements.push(this.currentUsableElement);\r\n          this.render.insertElement(this.currentUsableElement);\r\n        } else {\r\n          this.render.removeElement(this.model.draggingElement, this.model.lastUsedPage.elements);\r\n          this.model.selectedComponent = null;\r\n        }\r\n      }\r\n      this.render.checkOutputs(this.model.getElementPage(this.model.draggingElement));\r\n      this.model.cursor = \"default\";\r\n      this.model.draggingElement = null;\r\n      this.model.pageWithGrid = null;\r\n      this.newElement = false;\r\n    }\r\n  }\r\n  public addingByDoubleClick(element: StiFormElement) {\r\n    element.hasGeometry = false;\r\n    element.position = \"absolute\";\r\n    element.guid = Guid.newGuid().toString();\r\n    let columnWidth = this.model.lastUsedPage.getColumnWidth(this.model.form.settings.gridColumns);\r\n\r\n    if (element instanceof StiTableElement || element instanceof StiLineElement || element instanceof StiPanelElement) {\r\n      element.width = this.model.lastUsedPage.contentAreaWidth;\r\n    } else if (element instanceof StiButtonElement) {\r\n      element.width = Number(\r\n        (\r\n          columnWidth *\r\n          (this.model.form.settings.gridColumns > 1 ? Math.round(this.model.form.settings.gridColumns * 0.2) : 1)\r\n        ).toFixed(2)\r\n      );\r\n    } else {\r\n      element.width = Number(\r\n        (\r\n          columnWidth *\r\n          (this.model.form.settings.gridColumns > 1 ? Math.round(this.model.form.settings.gridColumns * 0.4) : 1)\r\n        ).toFixed(2)\r\n      );\r\n    }\r\n    element.name = this.nameService.getElementName(element);\r\n    element.needToSelectComponent = true;\r\n    element.isAdded = true;\r\n    let lastPage = this.model.form.pages[this.model.form.pages.length - 1];\r\n    element.x = 0;\r\n    element.y = lastPage.contentAreaHeight - element.height;\r\n    if (element instanceof StiLabelElement) {\r\n      lastPage.elements.splice(0, 0, element);\r\n    } else if (element instanceof StiSignatureElement) {\r\n      lastPage.elements.splice(lastPage.elements.length, 0, element);\r\n    } else {\r\n      lastPage.elements.splice(lastPage.elements.length - 1, 0, element);\r\n    }\r\n    this.render.insertElement(element);\r\n    this.model.lastUsedPage = lastPage;\r\n    this.newElement = false;\r\n\r\n    if (element instanceof StiTableElement) {\r\n      this.model.currentTablePropertyHeader.next(\"Table\");\r\n    }\r\n    this.render.checkOutputs(this.model.getElementPage(element));\r\n  }\r\n  public startDrag(event: MouseEvent, element: StiFormElement, newElement = true, isClone?, layerX?, layerY?, page?) {\r\n    this.showDragPreview(element);\r\n    this.currentUsableElement = this.helper.clone(element);\r\n    element.isAdded = false;\r\n    element.position = \"relative\";\r\n    element.geometry.x = 0;\r\n    element.geometry.y = 0;\r\n    this.model.draggingElement = element;\r\n    this.newElement = newElement;\r\n\r\n    if (newElement) {\r\n      let formRect = this.model?.rootFormElement?.getBoundingClientRect();\r\n      this.startX = (formRect ? formRect.x + 15 : 15) * this.model.zoom;\r\n      this.startY = (formRect ? formRect.y + 5 : 5) * this.model.zoom;\r\n      let cf = 0.4;\r\n\r\n      if (\r\n        element instanceof StiTableElement ||\r\n        element instanceof StiLineElement ||\r\n        element instanceof StiPanelElement\r\n      ) {\r\n        cf = 1;\r\n      }\r\n      if (element instanceof StiButtonElement) {\r\n        cf = 0.2;\r\n      }\r\n      if (element instanceof StiAddressElement) {\r\n        cf = 0.6;\r\n      }\r\n\r\n      this.draggingElementWidthInColumns = Math.max(Math.round(this.model.form.settings.gridColumns * cf), 1);\r\n      this.model.draggingElement.width =\r\n        this.model.lastUsedPage.getColumnWidth(this.model.form.settings.gridColumns) *\r\n        this.draggingElementWidthInColumns;\r\n    } else {\r\n      this.draggingElementWidth = element.width;\r\n      if (!isClone) {\r\n        this.startX = layerX;\r\n        this.startY = layerY;\r\n      } else {\r\n        this.startX = this.model.draggingElement.width / 2;\r\n        this.startY = this.model.draggingElement.height / 2;\r\n      }\r\n    }\r\n    this.drag(event);\r\n  }\r\n\r\n  private showDragPreview(element: StiFormElement) {\r\n    let page = this.model.getElementPage(element);\r\n    page?.elements.splice(page.elements.indexOf(element), 1);\r\n    let panel = this.model.getElementPanel(element);\r\n    panel?.elements.splice(panel.elements.indexOf(element), 1);\r\n    this.dragPreview.geometry = element.geometry.clone();\r\n    setTimeout(() => {\r\n      this.dragPreview.height = element.height;\r\n    });\r\n    panel ? panel.elements?.push(this.dragPreview) : (page ?? this.model.lastUsedPage).elements?.push(this.dragPreview);\r\n  }\r\n\r\n  private moveDragPreview(event: MouseEvent) {\r\n    let excludeId = this.model.draggingElement instanceof StiPanelElement ? this.model.draggingElement.guid : null;\r\n    let mouseOnPanel = this.model.getPanelFromPoint(event.clientX, event.clientY, excludeId);\r\n    let mouseOnPage: StiFormPageElement = mouseOnPanel\r\n      ? null\r\n      : this.model.getPageFromPoint(event.clientX, event.clientY);\r\n\r\n    this.model.pageWithGrid = mouseOnPage;\r\n    let dragPreviewPage = this.model.getElementPage(this.dragPreview);\r\n    let dragPreviewPanel = this.model.getElementPanel(this.dragPreview);\r\n    let dragPreviewContainer = dragPreviewPage ?? dragPreviewPanel;\r\n\r\n    if (!mouseOnPage && !mouseOnPanel && (dragPreviewPage || dragPreviewPanel)) {\r\n      dragPreviewContainer.elements.splice(dragPreviewContainer.elements.indexOf(this.dragPreview), 1);\r\n      this.render.removeElement(this.dragPreview, dragPreviewContainer.elements);\r\n    } else if ((mouseOnPage || mouseOnPanel) && !dragPreviewPage && !dragPreviewPanel) {\r\n      (mouseOnPage ?? mouseOnPanel).elements.push(this.dragPreview);\r\n    } else if (\r\n      (mouseOnPanel && dragPreviewPage) ||\r\n      (mouseOnPage && dragPreviewPanel) ||\r\n      (mouseOnPage && dragPreviewPage && mouseOnPage != dragPreviewPage) ||\r\n      (mouseOnPanel && dragPreviewPanel && mouseOnPanel != dragPreviewPanel)\r\n    ) {\r\n      dragPreviewContainer.elements.splice(dragPreviewContainer.elements.indexOf(this.dragPreview), 1);\r\n      this.render.removeElement(this.dragPreview, dragPreviewContainer.elements);\r\n      (mouseOnPage ?? mouseOnPanel).elements.push(this.dragPreview);\r\n    }\r\n\r\n    this.dragPreview.geometry.minWidth = this.model.draggingElement.geometry.minWidth;\r\n    let container = mouseOnPage ?? mouseOnPanel;\r\n\r\n    if (container) {\r\n      let columnWidth = container?.getColumnWidth(this.model.form.settings.gridColumns) ?? 1;\r\n      var mousePos = mouseOnPage\r\n        ? this.model.getMouseOverPagePosition(event)\r\n        : this.model.getMouseOverPanelPosition(event, excludeId);\r\n\r\n      if (mousePos != null) {\r\n        let cols = this.draggingElementWidthInColumns;\r\n        if (this.newElement && mouseOnPanel && this.model.draggingElement instanceof StiPanelElement) {\r\n          cols = Math.max(1, Math.ceil(cols * 0.3));\r\n        } else if (!this.newElement) {\r\n          cols = Math.min(Math.round(this.draggingElementWidth / columnWidth), this.model.form.settings.gridColumns);\r\n        }\r\n\r\n        let otherElements = Array.from(container.elements);\r\n        otherElements.splice(otherElements.indexOf(this.dragPreview), 1);\r\n        this.render.removeElement(this.dragPreview, otherElements);\r\n        this.model.draggingElement.width = columnWidth * cols;\r\n        this.dragPreview.width = this.model.draggingElement.width;\r\n\r\n        if (mousePos.x - this.startX <= columnWidth * this.model.zoom) {\r\n          this.dragPreview.x = 0;\r\n        } else if (\r\n          mousePos.x - this.startX >=\r\n          (container.contentAreaWidth - this.dragPreview.geometry.minWidth) * this.model.zoom\r\n        ) {\r\n          this.dragPreview.x = container.contentAreaWidth - this.dragPreview.geometry.minWidth;\r\n        } else if (Math.abs(mousePos.x - this.startX) >= columnWidth * this.model.zoom) {\r\n          let step = Math.floor(Math.abs(mousePos.x - this.startX) / (columnWidth * this.model.zoom));\r\n          this.dragPreview.x = step * columnWidth;\r\n        }\r\n\r\n        if ((mousePos.y - this.startY) / this.model.zoom <= 0) {\r\n          this.dragPreview.y = 0;\r\n        } else {\r\n          this.dragPreview.y = (mousePos.y - this.startY) / this.model.zoom;\r\n        }\r\n\r\n        this.render.insertElement(this.dragPreview, container.contentAreaWidth);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class StiToolbarResizerService {\r\n  public isMaximizeMode: boolean = false;\r\n  public isMinimizeMode: boolean = true;\r\n\r\n  constructor() {}\r\n}\r\n","import { animate, state, style, transition, trigger } from \"@angular/animations\";\r\nimport { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiComponentResizerService } from \"../services/sti-component-resizer.service\";\r\nimport type { StiComponent } from \"./sti-component\";\r\n\r\n@Component({\r\n    selector: \"sti-component-resizer\",\r\n    template: `\r\n    <div\r\n      class=\"bottom-right resizer\"\r\n      style=\"position: absolute;cursor: nwse-resize;background: rgb(105, 105, 105);transition: opacity 0.2s ease; z-index: 100\"\r\n      draggable=\"false\"\r\n      [style.opacity]=\"visible ? 1 : 0\"\r\n      [style.left.px]=\"left - rightOffset\"\r\n      [style.top.px]=\"top - rightOffset\"\r\n      [style.width.px]=\"size\"\r\n      [style.height.px]=\"size\"\r\n      (mousedown)=\"componentResizerService.initResize(component.element, $event, 'fromBottomRight')\"\r\n      (dragstart)=\"$event.preventDefault()\"\r\n      [@visibility]=\"visible ? 'visible' : 'hidden'\"\r\n    ></div>\r\n    <div\r\n      class=\"right resizer\"\r\n      style=\"position: absolute;cursor: ew-resize;background: rgb(105, 105, 105);transition: opacity 0.2s ease; z-index: 100\"\r\n      draggable=\"false\"\r\n      [style.opacity]=\"visible ? 1 : 0\"\r\n      [style.left.px]=\"left - rightOffset\"\r\n      [style.top.px]=\"top - height / 2 - rightOffset\"\r\n      [style.width.px]=\"size\"\r\n      [style.height.px]=\"size\"\r\n      (mousedown)=\"componentResizerService.initResize(component.element, $event, 'fromRight')\"\r\n      (dragstart)=\"$event.preventDefault()\"\r\n      [@visibility]=\"visible ? 'visible' : 'hidden'\"\r\n    ></div>\r\n    <div\r\n      class=\"bottom resizer\"\r\n      style=\"position: absolute;cursor: ns-resize;background: rgb(105, 105, 105);transition: opacity 0.2s ease; z-index: 100\"\r\n      draggable=\"false\"\r\n      [style.opacity]=\"visible ? 1 : 0\"\r\n      [style.left.px]=\"left - width / 2 - rightOffset\"\r\n      [style.top.px]=\"top - rightOffset\"\r\n      [style.width.px]=\"size\"\r\n      [style.height.px]=\"size\"\r\n      (mousedown)=\"componentResizerService.initResize(component.element, $event, 'fromBottom')\"\r\n      (dragstart)=\"$event.preventDefault()\"\r\n      [@visibility]=\"visible ? 'visible' : 'hidden'\"\r\n    ></div>\r\n    <div\r\n      class=\"bottom-left resizer\"\r\n      style=\"position: absolute;cursor: nesw-resize;background: rgb(105, 105, 105);transition: opacity 0.2s ease; z-index: 100\"\r\n      draggable=\"false\"\r\n      [style.opacity]=\"visible ? 1 : 0\"\r\n      [style.left.px]=\"left - width - leftOffset\"\r\n      [style.top.px]=\"top - rightOffset\"\r\n      [style.width.px]=\"size\"\r\n      [style.height.px]=\"size\"\r\n      (mousedown)=\"componentResizerService.initResize(component.element, $event, 'fromBottomLeft')\"\r\n      (dragstart)=\"$event.preventDefault()\"\r\n      [@visibility]=\"visible ? 'visible' : 'hidden'\"\r\n    ></div>\r\n    <div\r\n      class=\"left resizer\"\r\n      style=\"position: absolute;cursor: ew-resize;background: rgb(105, 105, 105);transition: opacity 0.2s ease; z-index: 100\"\r\n      draggable=\"false\"\r\n      [style.opacity]=\"visible ? 1 : 0\"\r\n      [style.left.px]=\"left - width - leftOffset\"\r\n      [style.top.px]=\"top - height / 2 - rightOffset\"\r\n      [style.width.px]=\"size\"\r\n      [style.height.px]=\"size\"\r\n      (mousedown)=\"componentResizerService.initResize(component.element, $event, 'fromLeft')\"\r\n      (dragstart)=\"$event.preventDefault()\"\r\n      [@visibility]=\"visible ? 'visible' : 'hidden'\"\r\n    ></div>\r\n  `,\r\n    animations: [\r\n        trigger(\"visibility\", [\r\n            // ...\r\n            state(\"visible\", style({\r\n                visibility: \"\",\r\n            })),\r\n            state(\"hidden\", style({\r\n                visibility: \"hidden\",\r\n            })),\r\n            transition(\"visible => hidden\", [animate(\"0s 0.2s\")]),\r\n            transition(\"hidden => visible\", [animate(\"0s\")]),\r\n        ]),\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiComponentResizerComponent implements OnInit {\r\n  @Input() left: number;\r\n  @Input() top: number;\r\n  @Input() size = 5;\r\n  @Input() component: StiComponent;\r\n  public leftOffset = 2;\r\n  public rightOffset = 3;\r\n  constructor(public model: StiModelService, public componentResizerService: StiComponentResizerService) { }\r\n\r\n  get visible(): boolean {\r\n    return (\r\n      this.model.selectedComponent == this.component &&\r\n      !this.model.previewMode &&\r\n      this.component.element.position == \"absolute\"\r\n    );\r\n  }\r\n\r\n  get width(): number {\r\n    return this.component.element.width;\r\n  }\r\n\r\n  get height(): number {\r\n    return this.component.element.height;\r\n  }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\n\r\n@Component({\r\n    selector: \"sti-corner-radius-component\",\r\n    template: `\r\n    <div class=\"corner-container\">\r\n      <div class=\"corner top-left\"></div>\r\n      <div class=\"corner top-right\"></div>\r\n      <div class=\"corner bottom-left\"></div>\r\n      <div class=\"corner bottom-right\"></div>\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      .corner-container {\r\n        height: 100%;\r\n        width: 100%;\r\n        position: absolute;\r\n      }\r\n      .corner {\r\n        position: absolute;\r\n        height: 5px;\r\n        width: 5px;\r\n        border: 1px solid transparent;\r\n      }\r\n      .top-left {\r\n        border-top-color: rgb(105, 105, 105);\r\n        border-left-color: rgb(105, 105, 105);\r\n        top: 0;\r\n        left: 0;\r\n      }\r\n      .top-right {\r\n        border-top-color: rgb(105, 105, 105);\r\n        border-right-color: rgb(105, 105, 105);\r\n        top: 0;\r\n        right: 0;\r\n      }\r\n      .bottom-left {\r\n        border-bottom-color: rgb(105, 105, 105);\r\n        border-left-color: rgb(105, 105, 105);\r\n        bottom: 0;\r\n        left: 0;\r\n      }\r\n      .bottom-right {\r\n        border-bottom-color: rgb(105, 105, 105);\r\n        border-right-color: rgb(105, 105, 105);\r\n        bottom: 0;\r\n        right: 0;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiCornerRadiusComponent implements OnInit {\r\n  constructor(public model: StiModelService) { }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Observable, Subject, Subscription } from \"rxjs\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiAddressElement } from \"../elements/StiAddressElement\";\r\nimport { StiButtonElement } from \"../elements/StiButtonElement\";\r\nimport { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport { StiImageElement } from \"../elements/StiImageElement\";\r\nimport { StiLabelElement } from \"../elements/StiLabelElement\";\r\nimport { StiPanelElement } from \"../elements/StiPanelElement\";\r\nimport { StiSignatureElement } from \"../elements/StiSignatureElement\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport { StiTextElement } from \"../elements/StiTextElement\";\r\nimport { StiBorderArea } from \"../properties/StiBorderArea\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiMouseService } from \"../services/mouse.service\";\r\nimport { StiComponentResizerService } from \"../services/sti-component-resizer.service\";\r\nimport { StiDraggableService } from \"../services/sti-draggable.service\";\r\nimport { StiHelperService } from \"../services/sti-helper.service\";\r\nimport { StiNameService } from \"../services/sti-name.service\";\r\nimport { SignatureService } from \"../services/sti-signature.service\";\r\nimport { StiLabelAlignment } from \"../system/enums\";\r\n\r\n@Component({\r\n    selector: \"sti-component\",\r\n    template: `\r\n    <div\r\n      draggable=\"false\"\r\n      [id]=\"element?.guid\"\r\n      [class]=\"className\"\r\n      [style.left.px]=\"computedX\"\r\n      [style.top.px]=\"computedY\"\r\n      [style.width]=\"width\"\r\n      [style.height]=\"height\"\r\n      [style.position]=\"position\"\r\n      [style.overflow]=\"overflow\"\r\n      [style.display]=\"'flex'\"\r\n      [style.flex-direction]=\"direction\"\r\n      [style.align-items]=\"align\"\r\n      [style.cursor]=\"cursor\"\r\n      [style.transition]=\"\r\n        element?.position == 'absolute' && resizer.element != element\r\n          ? 'top 0.1s ease 0s,left 0.1s ease 0s,border-color 0.1s ease 0s'\r\n          : ''\r\n      \"\r\n      [style.padding-left.px]=\"element?.padding.left\"\r\n      [style.padding-right.px]=\"element?.padding.right\"\r\n      [style.padding-top.px]=\"element?.padding.top\"\r\n      [style.padding-bottom.px]=\"element?.padding.bottom\"\r\n      [style.visibility]=\"!element?.visible && this.model.previewMode ? 'hidden' : 'visible'\"\r\n      (mousedown)=\"onMouseDown($event)\"\r\n      (mouseenter)=\"this.hover = true; this.model.cursor = 'move'\"\r\n      (mouseleave)=\"this.hover = false; this.model.cursor = 'default'\"\r\n      (dragstart)=\"$event.preventDefault()\"\r\n      >\r\n      <ng-content></ng-content>\r\n      @if (model.showCornerRadius && !model.previewMode && element != model.draggingElement) {\r\n        <sti-corner-radius-component\r\n          [style.position]=\"'absolute'\"\r\n          [style.pointer-events]=\"'none'\"\r\n          [style.width]=\"width\"\r\n          [style.height]=\"height\"\r\n          [style.left.px]=\"0\"\r\n          [style.top.px]=\"0\"\r\n        ></sti-corner-radius-component>\r\n      }\r\n      @if (withoutBorder()) {\r\n        <div\r\n          style=\"position: absolute; border: 1px solid rgb(126, 180, 234); pointer-events: none\"\r\n          [style.width]=\"width\"\r\n          [style.transition]=\"'opacity 0.2s ease, border-color 0.2s ease'\"\r\n          [style.height]=\"height\"\r\n          [style.left.px]=\"0\"\r\n          [style.top.px]=\"0\"\r\n        [style.border-color]=\"\r\n          model.selectedComponent == this && !model.previewMode && element?.position == 'absolute'\r\n            ? 'rgb(146, 146, 146, 0.35)'\r\n            : 'rgba(213, 213, 213, 0.35)'\r\n        \"\r\n        [style.opacity]=\"\r\n          (model.selectedComponent == this && !model.previewMode && element?.position == 'absolute') ||\r\n          (hover && !model.previewMode && element?.position == 'absolute')\r\n            ? 1\r\n            : 0\r\n        \"\r\n        ></div>\r\n      }\r\n      @if (haveAreaContainer()) {\r\n        <div\r\n          style=\"position: absolute; border: 1px solid rgb(126, 180, 234); pointer-events: none\"\r\n          [style.width.px]=\"borderInnerWidth\"\r\n          [style.height.px]=\"borderInnerHeight\"\r\n          [style.left.px]=\"borderArea?.left - borderArea?.border?.pen.width / 2\"\r\n          [style.top.px]=\"borderArea?.top - borderArea?.border?.pen.width / 2\"\r\n          [style.border-top]=\"borderArea?.border.drawTop ? borderArea?.border.pen.toHtmlBorder() : 'transparent'\"\r\n          [style.border-left]=\"borderArea?.border.drawLeft ? borderArea?.border.pen.toHtmlBorder() : 'transparent'\"\r\n          [style.border-right]=\"borderArea?.border.drawRight ? borderArea?.border.pen.toHtmlBorder() : 'transparent'\"\r\n          [style.border-bottom]=\"borderArea?.border.drawBottom ? borderArea?.border.pen.toHtmlBorder() : 'transparent'\"\r\n        ></div>\r\n      }\r\n      @if (!element?.visible) {\r\n        <i class=\"pi pi-eye-slash\" style=\"opacity: 0.3;\"></i>\r\n      }\r\n    </div>\r\n    <sti-component-resizer\r\n      [component]=\"this\"\r\n      [left]=\"computedX + element.width\"\r\n      [top]=\"computedY + element.height\"\r\n    ></sti-component-resizer>\r\n    <style>\r\n      .sti-component {\r\n      width: 100%;\r\n      font-size: 1px;\r\n      -webkit-touch-callout: none;\r\n      -webkit-user-select: none;\r\n      -webkit-touch-callout: none;\r\n      -webkit-user-select: none;\r\n      position: relative;\r\n      padding: 10px;\r\n      z-index: 11;\r\n    }\r\n    \r\n    .sti-component i {\r\n    position: absolute;\r\n    right: 5px;\r\n    top: 5px;\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiComponent implements OnInit, OnDestroy {\r\n  mouseUpSubscription: Subscription;\r\n  mouseMoveSubscription: Subscription;\r\n  needToSelectedSubscription: Subscription;\r\n  @Input() element: StiFormElement;\r\n  @Input() class: string;\r\n  @Input() isClone: boolean = false;\r\n  @Input() borderArea?: StiBorderArea;\r\n  private subject = new Subject<any>();\r\n  private elementPage: StiFormPageElement;\r\n  public hover = false;\r\n  public canDrag = false;\r\n  public mouseDownX: number;\r\n  public mouseDownY: number;\r\n  public layerX: number;\r\n  public layerY: number;\r\n\r\n  constructor(\r\n    public model?: StiModelService,\r\n    public draggableService?: StiDraggableService,\r\n    public mouseService?: StiMouseService,\r\n    public helper?: StiHelperService,\r\n    public nameService?: StiNameService,\r\n    public resizer?: StiComponentResizerService,\r\n    public signatureService?: SignatureService\r\n  ) { }\r\n  ngOnDestroy(): void {\r\n    this.mouseUpSubscription?.unsubscribe();\r\n    this.mouseMoveSubscription?.unsubscribe();\r\n    this.needToSelectedSubscription?.unsubscribe();\r\n  }\r\n  public get borderInnerWidth(): Number {\r\n    return (\r\n      Number(this.borderArea?.width) +\r\n      Number(this.borderArea?.border?.pen.width) +\r\n      (this.element.label.alignment == StiLabelAlignment.Top ? this.element.padding.left : 0) +\r\n      this.element.padding.right\r\n    );\r\n  }\r\n  public get borderInnerHeight(): Number {\r\n    return (\r\n      Number(this.borderArea?.height) +\r\n      Number(this.borderArea?.border?.pen.width) +\r\n      (this.element.label.alignment != StiLabelAlignment.Top\r\n        ? this.element.padding.bottom + this.element.padding.top\r\n        : 0)\r\n    );\r\n  }\r\n  haveAreaContainer() {\r\n    return this.borderArea && (this.element instanceof StiPanelElement || this.element instanceof StiImageElement)\r\n      ? this.element instanceof StiPanelElement && !this.element.isAdded\r\n        ? false\r\n        : true\r\n      : false;\r\n  }\r\n  get overflow() {\r\n    return this.element instanceof StiTableElement ||\r\n      this.element instanceof StiLabelElement ||\r\n      this.element instanceof StiTextElement ||\r\n      this.element instanceof StiImageElement ||\r\n      this.element instanceof StiPanelElement\r\n      ? \"\"\r\n      : \"hidden\";\r\n  }\r\n  get className(): string {\r\n    return \"sti-component \" + this.class;\r\n  }\r\n  get direction() {\r\n    return this.element?.label?.alignment == StiLabelAlignment.Top || this.element instanceof StiButtonElement\r\n      ? \"column\"\r\n      : \"row\";\r\n  }\r\n\r\n  get computedX(): number {\r\n    if (this.isClone) {\r\n      return 0;\r\n    } else {\r\n      return (\r\n        this.element.x +\r\n        (this.model.getElementPage(this.element) ? this.model.getElementPage(this.element).padding.left : 0)\r\n      );\r\n    }\r\n  }\r\n  get cursor() {\r\n    return !this.model.previewMode ? this.model.cursor : \"default\";\r\n  }\r\n\r\n  get computedY(): number {\r\n    if (this.isClone) {\r\n      return 0;\r\n    } else {\r\n      return Number(\r\n        (\r\n          this.element.y +\r\n          (this.model.getElementPage(this.element) ? this.model.getElementPage(this.element).padding.top : 0)\r\n        ).toFixed(3)\r\n      );\r\n    }\r\n  }\r\n  get width(): string {\r\n    if (this.isClone) {\r\n      return \"auto\";\r\n    } else {\r\n      return Number(this.element.width) + \"px\";\r\n    }\r\n  }\r\n  get height(): string {\r\n    //\r\n    if (this.isClone || (this.model.draggingElement == this.element && this.draggableService.newElement)) {\r\n      return \"auto\";\r\n    } else {\r\n      return Number(this.element.height) + \"px\";\r\n    }\r\n  }\r\n  get position() {\r\n    if (this.isClone) {\r\n      return \"relative\";\r\n    } else {\r\n      return this.element?.position;\r\n    }\r\n  }\r\n  get align() {\r\n    return this.element instanceof StiButtonElement ? \"center\" : \"normal\";\r\n  }\r\n  public getMessage(): Observable<any> {\r\n    return this.subject.asObservable();\r\n  }\r\n  withoutBorder(): boolean {\r\n    if (\r\n      this.model.selectedComponent?.element[\"border\"] &&\r\n      !(this.model.selectedComponent?.element instanceof StiTableElement) &&\r\n      (this.model.selectedComponent?.element[\"border\"][\"drawLeft\"] ||\r\n        this.model.selectedComponent?.element[\"border\"][\"drawTop\"] ||\r\n        this.model.selectedComponent?.element[\"border\"][\"drawRight\"] ||\r\n        this.model.selectedComponent?.element[\"border\"][\"drawBottom\"]) &&\r\n      this.model.selectedComponent?.element[\"border\"][\"pen\"][\"color\"][\"a\"] > 0\r\n    ) {\r\n      return false;\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n  onMouseMove(event: MouseEvent) {\r\n    if (this.model.draggingElement) {\r\n      return;\r\n    }\r\n    if (\r\n      event.ctrlKey &&\r\n      this.canDrag &&\r\n      this.model.canDrag &&\r\n      Math.max(Math.abs(this.mouseDownX - event.clientX), Math.abs(this.mouseDownY - event.clientY)) >\r\n      StiDraggableService.MOUSE_DELTA\r\n    ) {\r\n      let copy = this.helper.clone(this.element);\r\n      copy.name = this.nameService.getElementName(copy);\r\n      this.draggableService.startDrag(event, copy, false, true);\r\n      this.canDrag = false;\r\n    } else if (\r\n      this.canDrag &&\r\n      this.model.canDrag &&\r\n      Math.max(Math.abs(this.mouseDownX - event.clientX), Math.abs(this.mouseDownY - event.clientY)) >\r\n      StiDraggableService.MOUSE_DELTA\r\n    ) {\r\n      this.draggableService.startDrag(event, this.element, false, false, this.layerX, this.layerY, this.elementPage);\r\n      this.canDrag = false;\r\n    }\r\n  }\r\n\r\n  onMouseDown(event: MouseEvent) {\r\n    this.signatureService.drawingMode = false;\r\n    event.stopPropagation();\r\n    if (!this.model.previewMode && event.button == 0) {\r\n      let form = document.querySelector(\"stimulsoft-forms\");\r\n      form?.classList.add(\"unselectable\");\r\n      if (!event[\"fromEditableContent\"]) {\r\n        this.mouseDownX = event.clientX;\r\n        this.mouseDownY = event.clientY;\r\n        this.canDrag = true;\r\n      } else {\r\n      }\r\n      this.model.lastFormState = this.model.form.saveToJsonObject().serialize();\r\n      if (this.model.selectedComponent != this) {\r\n        this.model.previousSelectedComponent = this.model.selectedComponent;\r\n        this.model.selectedComponent = this;\r\n      }\r\n      this.elementPage = this.model.getElementPage(this.element);\r\n      let pos = this.model.getMouseOverPagePosition(event);\r\n      let geometry = this.element.getOverPageGeometry(this.model.form);\r\n      this.layerY = pos?.y - geometry.y * this.model.zoom;\r\n      this.layerX = pos?.x - geometry.x * this.model.zoom;\r\n    } else if (!this.model.previewMode && event.button != 0) {\r\n      if (this.model.selectedComponent != this) {\r\n        this.model.previousSelectedComponent = this.model.selectedComponent;\r\n        this.model.selectedComponent = this;\r\n      }\r\n    }\r\n  }\r\n  ngOnInit() {\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe(() => {\r\n      this.canDrag = false;\r\n    });\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.onMouseMove(event);\r\n    });\r\n    this.needToSelectedSubscription = this.model.needToSelectedComponent.subscribe((element) => {\r\n      if (!this.isClone && element == this.element) {\r\n        this.model.selectedComponent = this;\r\n      }\r\n    });\r\n    setTimeout(() => {\r\n      if (!this.isClone) {\r\n        if (this.element.needToSelectComponent) {\r\n          this.model.selectedComponent = this;\r\n          this.element.needToSelectComponent = false;\r\n        }\r\n      }\r\n    }, 0);\r\n  }\r\n}\r\n","import {\r\n  AfterContentInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\n\r\nimport { StiEditableContent } from \"../system/interfaces\";\r\nimport { StiEditableContentService } from \"../services/sti-editable-content.service\";\r\nimport { StiHorizontalAlignment, StiLabelAlignment } from \"../system/enums\";\r\nimport { Enum } from \"../system/Enum\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport { StiColumnItem } from \"../elements/table/StiColumnItem\";\r\nimport { StiRowLabel } from \"../elements/table/StiRowLabel\";\r\nimport { StiTotalsFieldItem } from \"../elements/table/StiTotalsFieldItem\";\r\nimport { StiMouseService } from \"../services/mouse.service\";\r\nimport { StiLabelItem } from \"../elements/text/StiLabelItem\";\r\nimport { Subscription } from \"rxjs\";\r\n////\r\n@Component({\r\n    selector: \"sti-editable-content-component\",\r\n    template: ` <div\r\n      style=\"-webkit-user-select: {{ model.getBrowserType() == 'safari' ? 'text' : '' }}\"\r\n      [style.width]=\"width\"\r\n      [style.overflow]=\"'hidden'\"\r\n      >\r\n      <div\r\n        class=\"editable-content\"\r\n        [style.display]=\"alignment ? 'flex' : ''\"\r\n        [style.justify-content]=\"align\"\r\n        [style.width]=\"showPlaceholder ? '10px' : width\"\r\n        [style.minWidth.px]=\"showPlaceholder ? 10 : 0\"\r\n        [style.outline]=\"placeholderOutline\"\r\n        [style.outline-offset]=\"'-1px'\"\r\n        [style.cursor]=\"cursor\"\r\n        (click)=\"click()\"\r\n        >\r\n        @if (!focused && displayContent != null ? displayContent : getValue() || !hideEmpty) {\r\n          <label\r\n            #elementRef\r\n            [style]=\"editableContent?.htmlStyle() ? editableContent?.htmlStyle() : ''\"\r\n            [style.padding-right.px]=\"disablePadding || required ? 0.1 : showNonActivePlaceholder ? 0 : 5\"\r\n            spellcheck=\"false\"\r\n            [style.cursor]=\"parentCursor ? parentCursor : !model.previewMode ? 'text' : 'default'\"\r\n            [attr.contenteditable]=\"isEditable ? 'plaintext-only' : false\"\r\n            [textContent]=\"!focused && displayContent != null ? displayContent : editableContent?.eValue\"\r\n            [style.word-wrap]=\"hasWordWrap() ? 'break-word' : ''\"\r\n            [style.white-space]=\"hasWordWrap() ? '' : 'nowrap'\"\r\n            [style.width]=\"showPlaceholder ? '100%' : ''\"\r\n            [style.text-align]=\"isTableHeader ? align : ''\"\r\n            (input)=\"setContent($event.target.textContent)\"\r\n            (keypress)=\"disableEnter($event)\"\r\n            (focus)=\"focus()\"\r\n            (mousedown)=\"disableDrag($event)\"\r\n            (blur)=\"blur()\"\r\n            >\r\n          </label>\r\n        }\r\n        @if (required) {\r\n          <span\r\n            class=\"required\"\r\n            [style]=\"editableContent?.htmlStyle() ? editableContent?.htmlStyle() : ''\"\r\n            [style.color]=\"'red'\"\r\n            [style.font-style]=\"'normal'\"\r\n            [style.font-weight]=\"'normal'\"\r\n            >*</span\r\n            >\r\n          }\r\n          @if (showNonActivePlaceholder) {\r\n            <div\r\n              [style]=\"editableContent?.htmlStyle() ? editableContent?.htmlStyle() : ''\"\r\n              class=\"empty-content\"\r\n              >\r\n              .\r\n            </div>\r\n          }\r\n        </div>\r\n      </div>`,\r\n    styles: [\r\n        `\r\n      .empty-content {\r\n        position: relative;\r\n        left: 0;\r\n        top: 0;\r\n        opacity: 0;\r\n        max-height: 1px;\r\n      }\r\n      label {\r\n        margin: 0px;\r\n        outline: none;\r\n        max-width: 100%;\r\n        overflow: hidden;\r\n        scroll-behavior: smooth;\r\n      }\r\n\r\n      .required {\r\n        color: red;\r\n        position: relative;\r\n        margin: 0px 2px;\r\n      }\r\n      label:hover {\r\n        cursor: text;\r\n      }\r\n      .editable-content {\r\n        overflow: hidden;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiEditableContentComponent implements OnInit, AfterContentInit, OnDestroy {\r\n  @ViewChild(\"elementRef\") elementRef: ElementRef;\r\n\r\n  @Input() editableContent: StiEditableContent;\r\n  @Input() displayContent: string;\r\n  @Input() required = false;\r\n  @Input() eParent: any;\r\n  @Input() hideEmpty = true;\r\n  @Input() active = true;\r\n  @Input() alignment?: StiHorizontalAlignment;\r\n  @Input() isTableTotalHeader? = false;\r\n  @Input() disablePadding? = false;\r\n  @Input() fromButton? = false;\r\n  @Input() parentCursor?: string;\r\n  @Input() isTableHeader?: boolean = false;\r\n  mouseUpSubscription: Subscription;\r\n  public isInitialize: boolean = false;\r\n  public focused = false;\r\n  public get cursor() {\r\n    if (this.model.previewMode) {\r\n      return \"default\";\r\n    } else {\r\n      return this.showPlaceholder ? \"text\" : \"\";\r\n    }\r\n  }\r\n  public get showPlaceholder(): boolean {\r\n    return (\r\n      !this.hideEmpty &&\r\n      !(!this.focused && this.displayContent != null ? this.displayContent : this.getValue()) &&\r\n      this.active &&\r\n      !this.model.previewMode /* &&\r\n      this.editableContentService.editableContent != this.editableContent */\r\n    );\r\n  }\r\n  hasWordWrap() {\r\n    return this.editableContent[\"useWordWrap\"] ? true : false;\r\n  }\r\n\r\n  public getValue(): String {\r\n    return (this.editableContent as any)?.sValue ?? this.editableContent.eValue;\r\n  }\r\n\r\n  public get showNonActivePlaceholder(): boolean {\r\n    return (\r\n      !this.hideEmpty &&\r\n      !(!this.focused && this.displayContent != null ? this.displayContent : this.getValue()) &&\r\n      ((!this.active && !this.model.previewMode) ||\r\n        (!this.active && this.model.previewMode) ||\r\n        (this.active && this.model.previewMode)) /* &&\r\n      this.editableContentService.editableContent != this.editableContent */\r\n    );\r\n  }\r\n  public get placeholderOutline(): string {\r\n    if (this.showPlaceholder) {\r\n      return !this.fromButton ? \"1px dashed rgba(213, 213, 213, 0.8)\" : \"1px dashed rgba(255, 255, 255, 1)\";\r\n    } else {\r\n      return \"\";\r\n    }\r\n  }\r\n  public click() {\r\n    if (this.showPlaceholder) {\r\n      this.elementRef.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  public get isEditable(): boolean {\r\n    return (\r\n      !this.model.previewMode &&\r\n      (this.editableContentService.editableContent == this.editableContent || this.showPlaceholder)\r\n    );\r\n  }\r\n\r\n  public get width(): string {\r\n    if (this.editableContent instanceof StiLabelItem && this.editableContent.alignment != StiLabelAlignment.Top) {\r\n      return this.editableContent.width + \"px\";\r\n    } else {\r\n      return \"100%\";\r\n    }\r\n  }\r\n  public get align(): string {\r\n    if (this.alignment) {\r\n      return Enum.getName(StiHorizontalAlignment, this.alignment);\r\n    } else {\r\n      return \"\";\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public editableContentService: StiEditableContentService,\r\n    public mouseService: StiMouseService,\r\n    private cdr: ChangeDetectorRef\r\n  ) { }\r\n  ngOnDestroy(): void {\r\n    this.mouseUpSubscription?.unsubscribe();\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    setTimeout(() => {\r\n      if (this.editableContent && this.eParent) {\r\n        this.editableContent.eParent = this.eParent;\r\n      }\r\n    }, 0);\r\n  }\r\n  needToUpdate(event) {\r\n    let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n    let needToUpdate = true;\r\n    elements.forEach((element) => {\r\n      if (element.className == \"Properties\") {\r\n        needToUpdate = false;\r\n      }\r\n    });\r\n    if (\r\n      needToUpdate &&\r\n      typeof this.editableContentService.editableContent != typeof this.editableContent &&\r\n      this.isInitialize &&\r\n      !this.editableContentService.activeControl\r\n    ) {\r\n      this.closeAll(this.model.selectedComponent?.element);\r\n      this.isInitialize = false;\r\n      needToUpdate = true;\r\n      this.model.needToRefresh.next(true);\r\n    }\r\n  }\r\n  focus() {\r\n    this.editableContentService.editableContent = this.editableContent;\r\n    this.editableContentService.editableElementRef = this.elementRef;\r\n    if (this.model.selectedComponent?.element instanceof StiTableElement) {\r\n      // this.closeAll(this.model.selectedComponent.element);\r\n\r\n      // this.model.currentTablePropertyHeader.next(\"Table\");\r\n      if (this.editableContent instanceof StiColumnItem) {\r\n        if (!this.model.selectedComponent?.element.showColumnsEditor) {\r\n          this.model.selectedComponent.element.showColumnsEditor = true;\r\n          this.model.needToRefresh.next(true);\r\n        }\r\n        // this.model.currentTablePropertyHeader.next(\"Columns\");\r\n        setTimeout(() => {\r\n          if (this.model.selectedComponent?.element instanceof StiTableElement) {\r\n            let index = this.model.selectedComponent.element.columns.findIndex(\r\n              (column) => column == this.editableContent\r\n            );\r\n            if (\r\n              this.model.currentContentEditableItemIndex != index ||\r\n              this.model.previousSelectedComponent != this.model.selectedComponent\r\n            )\r\n              this.model.currentContentEditableItem.next(index);\r\n            this.model.currentContentEditableItemIndex = index;\r\n          }\r\n        }, 0);\r\n      } else if (this.editableContent instanceof StiRowLabel) {\r\n        this.model.selectedComponent.element.showRowsEditor = true;\r\n        this.model.needToRefresh.next(true);\r\n        // this.model.currentTablePropertyHeader.next(\"Rows\");\r\n        /*  setTimeout(() => {\r\n          if (this.model.selectedComponent.element instanceof StiTableElement) {\r\n            this.model.currentContentEditableItem.next(\r\n              this.model.selectedComponent.element.rowLabelsContentEditable.findIndex(\r\n                (column) => column == this.editableContent\r\n              )\r\n            );\r\n          }\r\n        }, 0); */\r\n      } else if (this.editableContent instanceof StiTotalsFieldItem) {\r\n        if (!this.model.selectedComponent.element.showTotalsEditor) {\r\n          this.model.selectedComponent.element.showTotalsEditor = true;\r\n          this.model.needToRefresh.next(true);\r\n        }\r\n        // this.model.currentTablePropertyHeader.next(\"Totals\");\r\n        setTimeout(() => {\r\n          if (this.model.selectedComponent.element instanceof StiTableElement) {\r\n            let index = this.model.selectedComponent.element.totalsFields.findIndex(\r\n              (column) => column == this.editableContent\r\n            );\r\n            this.model.currentContentEditableItem.next(index);\r\n          }\r\n        }, 0);\r\n      } else if (this.isTableTotalHeader) {\r\n        this.model.selectedComponent.element.showTotalsEditor = true;\r\n        this.model.needToRefresh.next(true);\r\n      } else {\r\n        this.model.selectedComponent.element.showHeaderEditor = true;\r\n        this.model.needToRefresh.next(true);\r\n      }\r\n    }\r\n    this.isInitialize = true;\r\n    this.focused = true;\r\n  }\r\n\r\n  blur() {\r\n    let sValue = (this.editableContent as any).sValue;\r\n    if (sValue != null) {\r\n      this.editableContent.eValue = sValue;\r\n      (this.editableContent as any).sValue = null;\r\n    }\r\n\r\n    if (!this.editableContentService.activeControl) {\r\n      setTimeout(() => {\r\n        if (this.editableContentService.editableContent == this.editableContent) {\r\n\r\n\r\n          this.editableContentService.editableContent = null;\r\n          this.editableContentService.editableElementRef = null;\r\n          if (\r\n            this.model.getBrowserType() == \"safari\" ||\r\n            (this.model.getBrowserType() == \"firefox\" && !this.showPlaceholder)\r\n          ) {\r\n            this.cdr.reattach();\r\n            this.cdr.detectChanges();\r\n          }\r\n          this.model.formEvents.next({ name: \"ValueChanged\" });\r\n        }\r\n        this.focused = false;\r\n      }, 0);\r\n    }\r\n  }\r\n\r\n  setContent(innerText) {\r\n    if ((this.model.getBrowserType() == \"safari\" || this.model.getBrowserType() == \"firefox\") && this.showPlaceholder) {\r\n      this.editableContentService.startEdit();\r\n    }\r\n    if (\r\n      this.model.getBrowserType() == \"safari\" ||\r\n      (this.model.getBrowserType() == \"firefox\" && !this.showPlaceholder)\r\n    ) {\r\n      this.cdr.detach();\r\n    }\r\n    (this.editableContent as any).sValue = innerText;\r\n    if (innerText == \"\") {\r\n      this.editableContent.eValue = \"\";\r\n    }\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  getCharCode(event) {\r\n    return null === event.which ? event.keyCode : !(0 === event.which || 0 === event.charCode) ? event.which : -1;\r\n  }\r\n  disableEnter(event) {\r\n    if (13 === this.getCharCode(event)) {\r\n      event.preventDefault();\r\n      this.blur();\r\n    }\r\n  }\r\n  disableDrag(event) {\r\n    event.fromEditableContent = true;\r\n    this.focus();\r\n  }\r\n  closeAll(element) {\r\n    if (element instanceof StiTableElement) {\r\n      element.showTotalsEditor = false;\r\n      element.showRowsEditor = false;\r\n      element.showColumnsEditor = false;\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe((event: MouseEvent) => {\r\n      this.needToUpdate(event);\r\n    });\r\n  }\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiEditableContentService } from \"../services/sti-editable-content.service\";\r\nimport { StiHelperService } from \"../services/sti-helper.service\";\r\nimport { StiLineWeight } from \"../system/enums\";\r\n\r\n@Component({\r\n    selector: \"sti-input-text-component\",\r\n    template: `\r\n    <input\r\n      #input\r\n      type=\"text\"\r\n      [style]=\"element?.htmlStyle()\"\r\n      [style.color]=\"element?.textColor.toHtmlColor()\"\r\n      [style.background-color]=\"element?.backgroundColor.toHtmlColor()\"\r\n      [style.border-color]=\"needToFill ? 'red' : element?.borderColor.toHtmlColor()\"\r\n      [style.border-width]=\"borderWidth()\"\r\n      autocomplete=\"disabled\"\r\n      spellcheck=\"false\"\r\n      [placeholder]=\"placeholder\"\r\n      [style.align-self]=\"'center'\"\r\n      [attr.maxlength]=\"element['useRange'] ? element['maximum'] : '255'\"\r\n      tooltipPosition=\"bottom\"\r\n      showDelay=\"500\"\r\n      [required]=\"element?.required\"\r\n      [readonly]=\"element?.readOnly\"\r\n      [tabIndex]=\"tabIndex\"\r\n      [(ngModel)]=\"value\"\r\n      (mousedown)=\"disableDrag($event)\"\r\n      (mouseup)=\"this.model.canDrag = true\"\r\n      (focus)=\"inFocus($event)\"\r\n      (input)=\"checkMask($event)\"\r\n      (blur)=\"lostFocus()\"\r\n    />\r\n  `,\r\n    styles: [\r\n        `\r\n      input {\r\n        height: fit-content;\r\n        padding: 3px 4px;\r\n        width: 100%;\r\n        border: 1px solid rgb(198, 198, 198);\r\n      }\r\n\r\n      input:hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n      }\r\n      input:focus {\r\n        outline: none;\r\n        border: 1px solid rgb(163, 189, 227);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiInputTextComponent implements OnInit {\r\n\r\n  @ViewChild(\"input\") input: ElementRef;\r\n\r\n  @Input() element: any;\r\n  @Input() property: string;\r\n  @Input() tabIndex: number;\r\n\r\n  MASK_PATTERN = { A: \"[a-zA-Z]\", X: \"[ -ÿ]\", O: \"[0-9a-zA-Z]\", 9: \"[0-9]\" };\r\n\r\n  public get needToFill() {\r\n    return this.element.required && !this.value && this.model.hasEmptyReuiredFields;\r\n  }\r\n  public get value() {\r\n    return this.helper.getProperty(this.element, this.property);\r\n  }\r\n  public set value(val: string) {\r\n    this.helper.setProperty(this.element, this.property, val);\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n\r\n  public get placeholder() {\r\n    return this.element.mask == null || this.element.mask.length == 0 ? \"\" : this.element.mask.replace(/(A)|(X)|(O)|(9)/g, \"_\");\r\n  }\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public editableService: StiEditableContentService\r\n  ) { }\r\n\r\n  disableDrag(event) {\r\n    let t: StiLineWeight = null;\r\n    this.model.canDrag = false;\r\n  }\r\n  public borderWidth(): string {\r\n    return `${this.element.borderWeight}px`;\r\n  }\r\n  inFocus(e) {\r\n    setTimeout(() => {\r\n      let editableContent = new StiInputTextItem(\r\n        this.element.text,\r\n        this.element.font,\r\n        this.element.textColor,\r\n        this.element.backgroundColor,\r\n        this.element.contentAlignment\r\n      );\r\n      editableContent.element = this.element;\r\n\r\n      this.editableService.editableContent = editableContent;\r\n      this.editableService.usedElement = this.element;\r\n    }, 0);\r\n    this.checkMask(e);\r\n  }\r\n  lostFocus() {\r\n    if (this.model.selectedComponent?.element != this.element) {\r\n      this.editableService.editableContent = null;\r\n    }\r\n  }\r\n\r\n  checkMask(e) {\r\n    if (this.element.mask != null && this.element.mask.length > 0) {\r\n      let msk = this.element.mask.split(\"\");\r\n      let i = this.input.nativeElement as any;\r\n      if (e.type == \"focus\" && i.value !== \"\") return;\r\n      const mskd = [];\r\n      let s = i.selectionStart - 1;\r\n      msk.forEach((el, n) => {\r\n        if (this.MASK_PATTERN[el]) {\r\n          const t = new RegExp(this.MASK_PATTERN[el], \"i\").test(i.value.charAt(n));\r\n          mskd.push(t ? i.value.charAt(n) : \"_\");\r\n          if (t && s === n && i.value.charAt(n) !== \"_\") {\r\n            s++;\r\n          }\r\n        } else {\r\n          mskd.push(el);\r\n          if (s === n) s++;\r\n        }\r\n      });\r\n      i.value = mskd.join(\"\");\r\n      i.selectionStart = i.selectionEnd = s < 0 ? 0 : s;\r\n      setTimeout(function () {\r\n        i.selectionStart = i.selectionEnd = s < 0 ? 0 : s;\r\n      }, 0);\r\n    }\r\n  }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class StiTooltipService {\r\n  public text: string = \"\";\r\n  public position: string = \"bottom\";\r\n  public left: number = 0;\r\n  public top: number = 0;\r\n  public delay: number = 0;\r\n  public elementRect: DOMRect = new DOMRect();\r\n  public showTooltip: boolean = false;\r\n  constructor() {}\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy } from \"@angular/core\";\r\nimport { StiTooltipService } from \"./sti-tooltip.service\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\n@Directive({\r\n    selector: \"[stiTooltip]\",\r\n    standalone: false\r\n})\r\nexport class StiTooltipDirective implements AfterViewInit, OnDestroy {\r\n  @Input() tooltipPosition: \"right\" | \"left\" | \"top\" | \"bottom\" | string | undefined;\r\n\r\n  @Input(\"stiTooltip\") text: string | undefined;\r\n\r\n  @Input() showDelay: number | undefined;\r\n  public active: boolean = false;\r\n  public showTimeout;\r\n  public hideTimeout;\r\n  constructor(public tooltipService: StiTooltipService, private el: ElementRef, public model: StiModelService) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    const onMouseEnter = (event) => {\r\n      this.active = true;\r\n      this.tooltipService.text = this.text;\r\n      this.tooltipService.position = this.tooltipPosition ? this.tooltipPosition : \"bottom\";\r\n      this.tooltipService.delay = this.showDelay ? this.showDelay : 0;\r\n      this.tooltipService.elementRect = this.model.getPositionRelativeToForm(this.el.nativeElement);\r\n      if (this.text) {\r\n        this.activate();\r\n      }\r\n    };\r\n\r\n    const onClick = (event) => {\r\n      this.deactivate();\r\n    };\r\n\r\n    const onMouseLeave = (event) => {\r\n      this.deactivate();\r\n    };\r\n\r\n    this.el.nativeElement.addEventListener(\"mouseenter\", onMouseEnter);\r\n    this.el.nativeElement.addEventListener(\"click\", onClick);\r\n    this.el.nativeElement.addEventListener(\"mouseleave\", onMouseLeave);\r\n  }\r\n  activate() {\r\n    this.active = true;\r\n    this.clearHideTimeout();\r\n    if (this.showDelay) {\r\n      this.showTimeout = setTimeout(() => {\r\n        this.show();\r\n      }, this.showDelay);\r\n    } else {\r\n      this.show();\r\n    }\r\n  }\r\n  deactivate() {\r\n    this.active = false;\r\n    this.clearShowTimeout();\r\n    this.hide();\r\n  }\r\n  show() {\r\n    this.tooltipService.showTooltip = true;\r\n  }\r\n  hide() {\r\n    this.tooltipService.showTooltip = false;\r\n  }\r\n  clearShowTimeout() {\r\n    if (this.showTimeout) {\r\n      clearTimeout(this.showTimeout);\r\n      this.showTimeout = null;\r\n    }\r\n  }\r\n\r\n  clearHideTimeout() {\r\n    if (this.hideTimeout) {\r\n      clearTimeout(this.hideTimeout);\r\n      this.hideTimeout = null;\r\n    }\r\n  }\r\n  ngOnDestroy(): void {}\r\n}\r\n","import { Component, DoCheck, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiTextBoxElement } from \"../../elements/StiTextBoxElement\";\r\nimport { StiLineWeight } from \"../../system/enums\";\r\n\r\n@Component({\r\n    selector: \"sti-textbox-component\",\r\n    template: `\r\n    <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-text-box\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element?.label\"\r\n          [required]=\"element.required\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n          [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            @if (!element?.isPassword && element?.isMultiline) {\r\n              <textarea\r\n                #textArea\r\n                name=\"\"\r\n                id=\"\"\r\n                cols=\"30\"\r\n                [rows]=\"element?.linesCount\"\r\n                [ngModel]=\"text\"\r\n                (input)=\"onInput($event.target.value)\"\r\n                [style.color]=\"element?.textColor.toHtmlColor()\"\r\n                [style.background-color]=\"element?.backgroundColor.toHtmlColor()\"\r\n                [style.border-color]=\"needToFill ? 'red' : element?.borderColor.toHtmlColor()\"\r\n                [style.border-width]=\"borderWidth()\"\r\n                [style]=\"element?.htmlStyle()\"\r\n                [stiTooltip]=\"element?.tooltip\"\r\n                [tabIndex]=\"element['tabIndex']\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                [required]=\"element?.required\"\r\n                [readonly]=\"element?.readOnly\"\r\n                (mousedown)=\"disableDrag($event)\"\r\n                (mouseup)=\"this.model.canDrag = true\"\r\n              ></textarea>\r\n            }\r\n            @if (element?.isPassword) {\r\n              <input\r\n                type=\"password\"\r\n                [style]=\"element?.htmlStyle()\"\r\n                [style.color]=\"element?.textColor.toHtmlColor()\"\r\n                [style.background-color]=\"element?.backgroundColor.toHtmlColor()\"\r\n                spellcheck=\"false\"\r\n                [style.border-color]=\"needToFill ? 'red' : element?.borderColor.toHtmlColor()\"\r\n                [style.border-width]=\"borderWidth()\"\r\n                maxlength=\"{{ element?.maxLength }}\"\r\n                [stiTooltip]=\"element?.tooltip\"\r\n                [tabIndex]=\"element['tabIndex']\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                [required]=\"element?.required\"\r\n                [readonly]=\"element?.readOnly\"\r\n                [(ngModel)]=\"password\"\r\n                (mousedown)=\"disableDrag($event)\"\r\n                (mouseup)=\"this.model.canDrag = true\"\r\n                />\r\n            }\r\n            @if (!element?.isPassword && !element?.isMultiline) {\r\n              <sti-input-text-component\r\n                [element]=\"element\"\r\n                [tabIndex]=\"element['tabIndex']\"\r\n                [property]=\"'text'\"\r\n                [stiTooltip]=\"element?.tooltip\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n              ></sti-input-text-component>\r\n            }\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>\r\n    `,\r\n    styles: [\r\n        `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      textarea {\r\n        resize: none;\r\n        width: 100%;\r\n        height: auto;\r\n        overflow-y: auto;\r\n        padding: 3px 4px;\r\n      }\r\n      textarea:hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n      }\r\n      textarea:focus {\r\n        outline: none;\r\n      }\r\n      input {\r\n        height: fit-content;\r\n        padding: 3px 4px;\r\n        width: 100%;\r\n        border: 1px solid rgb(198, 198, 198);\r\n      }\r\n\r\n      .sti-text-box input:hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n      }\r\n      .sti-text-box input:focus {\r\n        outline: none;\r\n        border: 1px solid rgb(163, 189, 227);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTextBoxComponent implements OnInit, DoCheck {\r\n  @Input() element: StiTextBoxElement;\r\n  @ViewChild(\"textArea\") textArea: ElementRef;\r\n\r\n  @Input() isClone: boolean = false;\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  public get needToFill() {\r\n    return (\r\n      this.element.required &&\r\n      (this.element.isPassword ? !this.element.password : !this.element.value) &&\r\n      this.model.hasEmptyReuiredFields\r\n    );\r\n  }\r\n  disableDrag(event) {\r\n    let t: StiLineWeight = null;\r\n    this.model.canDrag = false;\r\n  }\r\n  constructor(public model: StiModelService) {}\r\n\r\n  ngDoCheck(): void {\r\n    if (this.textArea) {\r\n      this.element.element = this.textArea;\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {}\r\n  public borderWidth(): string {\r\n    return `${this.element.borderWeight}px`;\r\n  }\r\n\r\n  get text(): string {\r\n    return this.element.text;\r\n  }\r\n\r\n  set text(value: string) {\r\n    this.element.text = value;\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n\r\n  get password(): string {\r\n    return this.element.password;\r\n  }\r\n\r\n  set password(value: string) {\r\n    this.element.password = value;\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n\r\n  onInput(value: string) {\r\n    this.element.text = value;\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    //this.model.selectedComponent.element.options.options = value.split(\"\\n\"); TODO\r\n  }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { StiNumberBoxElement } from \"../elements/StiNumberBoxElement\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport { StiNumberBoxColumnItem } from \"../elements/table/columns/StiNumberBoxColumnItem\";\r\nimport { StiColumnItem } from \"../elements/table/StiColumnItem\";\r\nimport { StiInputTextItem } from \"../helper/StiInputTextItem\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiMouseService } from \"../services/mouse.service\";\r\nimport { StiEditableContentService } from \"../services/sti-editable-content.service\";\r\nimport { StiHelperService } from \"../services/sti-helper.service\";\r\nimport Color from \"../system/Color\";\r\nimport { StiDisplayCurrencyAs, StiNumberType, StiUnitAlignment, StiNumberRangeFormat } from \"../system/enums\";\r\nimport { StiNumberElement } from \"../system/interfaces\";\r\n\r\n@Component({\r\n    selector: \"sti-number-component\",\r\n    template: `\r\n    <div class=\"number-component\" [style.align-self]=\"'start'\" [style.flexDirection]=\"isPrefix ? 'row' : 'row-reverse'\">\r\n      @if ((element.unitLabel && !isCurrency && (isPrefix || isSuffix)) || (isCurrency && (isPrefix || isSuffix))) {\r\n        <div\r\n          class=\"unit\"\r\n          >\r\n          <span [style]=\"element?.htmlStyle()\" [style.color]=\"element.unitForeground?.toHtmlColor()\">{{\r\n            isCurrency ? getCurrency(element.currency) : element.unitLabel\r\n          }}</span>\r\n        </div>\r\n      }\r\n    \r\n      <div\r\n        class=\"number-box\"\r\n        [stiTooltip]=\"element['tooltip']\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        [style.border-width]=\"borderWidth()\"\r\n        [style.border-color]=\"needToFill ? 'red' : elementBorderColor.toHtmlColor()\"\r\n        [style.background-color]=\"element['backgroundColor'].toHtmlColor()\"\r\n        (mouseover)=\"mouseOver = true\"\r\n        (mouseleave)=\"mouseOver = false\"\r\n        >\r\n        <input\r\n          type=\"text\"\r\n          (focus)=\"onFocus($event)\"\r\n          (blur)=\"onLostFocus($event)\"\r\n          [value]=\"value\"\r\n          [required]=\"element['required']\"\r\n          [style.border-width]=\"borderWidth()\"\r\n          [readonly]=\"readonly\"\r\n          [tabIndex]=\"tabIndex\"\r\n          [style]=\"elementHtmlStyle\"\r\n          [style.color]=\"elementTextColor.toHtmlColor()\"\r\n          [style.background-color]=\"cellBackgroundColor.toHtmlColor()\"\r\n          [style.pointer-events]=\"disabled ? 'none' : ''\"\r\n          (mousedown)=\"disableDrag($event)\"\r\n          (mouseup)=\"this.model.canDrag = true\"\r\n          />\r\n          @if (((focused || mouseOver) && !disabled) || isNumberBox) {\r\n            <div\r\n              class=\"buttons\"\r\n              [style.width.px]=\"isNumberBox ? 28 : 20\"\r\n              >\r\n              <div class=\"button-up\" (mousedown)=\"setIncDec(1)\" (mouseup)=\"clear()\">\r\n                <i class=\"pi pi-angle-up\"></i>\r\n              </div>\r\n              <div class=\"button-down\" (mousedown)=\"setIncDec(-1)\" (mouseup)=\"clear()\">\r\n                <i class=\"pi pi-angle-down\"></i>\r\n              </div>\r\n            </div>\r\n          }\r\n        </div>\r\n      </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .number-component {\r\n        display: flex;\r\n        width: 100%;\r\n      }\r\n      .unit {\r\n        align-self: center;\r\n        padding-left: 1px;\r\n        padding-right: 1px;\r\n      }\r\n      .number-box {\r\n        width: 100%;\r\n        height: auto;\r\n        border: 1px solid rgb(171, 170, 169);\r\n        background-color: white;\r\n        position: relative;\r\n        display: flex;\r\n      }\r\n      .number-box:hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n      }\r\n\r\n      input {\r\n        outline: none;\r\n        border: 0px;\r\n        width: 100%;\r\n        height: auto;\r\n        padding: 3px 5px;\r\n      }\r\n\r\n      .buttons {\r\n        width: 20px;\r\n        height: 100%;\r\n        align-self: flex-end;\r\n        display: flex;\r\n        flex-direction: column;\r\n        color: rgb(186, 185, 184);\r\n      }\r\n      .button-up {\r\n        width: 100%;\r\n        height: 50%;\r\n        display: flex;\r\n        justify-content: center;\r\n      }\r\n      .button-up i {\r\n        margin-top: 0.4px;\r\n      }\r\n      .button-up:hover {\r\n        cursor: default;\r\n        background-color: rgb(213, 225, 242);\r\n      }\r\n      .button-up:active {\r\n        background-color: rgb(163, 189, 227);\r\n      }\r\n      .button-down {\r\n        width: 100%;\r\n        height: 50%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .button-down i {\r\n        margin-bottom: 2px;\r\n      }\r\n      .button-down:hover {\r\n        cursor: default;\r\n        background-color: rgb(213, 225, 242);\r\n      }\r\n      .button-down:active {\r\n        background-color: rgb(163, 189, 227);\r\n      }\r\n      i {\r\n        margin: 0;\r\n        height: 8px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiNumberComponent implements OnInit, OnDestroy {\r\n  @Input() element: StiNumberElement;\r\n  @Input() index: number;\r\n  @Input() table: StiTableElement;\r\n\r\n  mouseUpSubscription: Subscription;\r\n\r\n  public get isNumberBox() {\r\n    return this.element instanceof StiNumberBoxElement;\r\n  }\r\n  public get needToFill() {\r\n    return this.element[\"required\"] && !this.element[\"value\"] && this.model.hasEmptyReuiredFields;\r\n  }\r\n  public buttonDown = 0;\r\n  public mouseOver = false;\r\n  public focused = false;\r\n  public get disabled() {\r\n    return (this.element.type == \"Number_BoxElement\" && (this.element as StiNumberBoxElement).readOnly) ||\r\n      (this.element.type != \"Number_BoxElement\" && (this.element as StiNumberBoxColumnItem).eParent?.readOnly)\r\n      ? true\r\n      : false;\r\n  }\r\n  private incTimeout: any;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public editableService: StiEditableContentService,\r\n    public mouseService: StiMouseService\r\n  ) { }\r\n\r\n  public get tabIndex() {\r\n    try {\r\n      let columns = this.table?.columns;\r\n      return columns\r\n        ? this.table[\"tabIndex\"] + columns.indexOf(this.element as any as StiColumnItem) + columns.length * this.index\r\n        : this.element[\"tabIndex\"];\r\n    } catch { }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.mouseUpSubscription?.unsubscribe();\r\n  }\r\n  clear() {\r\n    setTimeout(() => {\r\n      this.buttonDown = 0;\r\n    }, 0);\r\n  }\r\n  ngOnInit() {\r\n    this.mouseUpSubscription = this.mouseService.getCaptureMouseUp().subscribe(() => {\r\n      this.buttonDown = 0;\r\n    });\r\n  }\r\n  onFocus(event) {\r\n    this.focused = true;\r\n    setTimeout(() => {\r\n      let editableContent;\r\n      if (this.element.type == \"Number_BoxElement\") {\r\n        let nbe = this.element as StiNumberBoxElement;\r\n        editableContent = new StiInputTextItem(\r\n          this.elementValue?.toString(),\r\n          nbe.font,\r\n          nbe.textColor,\r\n          nbe.backgroundColor,\r\n          nbe.contentAlignment\r\n        );\r\n      } else {\r\n        let nbce = this.element as StiNumberBoxColumnItem;\r\n        editableContent = new StiInputTextItem(\r\n          this.elementValue?.toString(),\r\n          this.table.font,\r\n          nbce.cellForeColor,\r\n          nbce.cellBackColor,\r\n          nbce.cellAlignment\r\n        );\r\n      }\r\n      editableContent.element = this.element;\r\n      this.editableService.editableContent = editableContent;\r\n      this.editableService.usedElement = this.element;\r\n    }, 0);\r\n    event.currentTarget.value = this.elementValue?.toString();\r\n  }\r\n\r\n  public get elementBorderColor(): Color {\r\n    return this.element.type == \"Number_BoxElement\"\r\n      ? (this.element as StiNumberBoxElement).borderColor\r\n      : (this.element as StiNumberBoxColumnItem).cellBorderColor;\r\n  }\r\n  public get readonly() {\r\n    return this.element.type == \"Number_BoxElement\"\r\n      ? (this.element as StiNumberBoxElement).readOnly\r\n      : (this.element as StiNumberBoxColumnItem).eParent?.readOnly;\r\n  }\r\n  public get cellBackgroundColor(): Color {\r\n    return this.element.type == \"Number_BoxElement\"\r\n      ? (this.element as StiNumberBoxElement).backgroundColor\r\n      : (this.element as StiNumberBoxColumnItem).cellBackColor;\r\n  }\r\n\r\n  public get elementTextColor(): Color {\r\n    return this.element.type == \"Number_BoxElement\"\r\n      ? (this.element as StiNumberBoxElement).textColor\r\n      : (this.element as StiNumberBoxColumnItem).cellForeColor;\r\n  }\r\n\r\n  public get elementHtmlStyle(): string {\r\n    return this.element.type == \"Number_BoxElement\"\r\n      ? (this.element as StiNumberBoxElement).htmlStyle()\r\n      : this.table.font.htmlStyle();\r\n  }\r\n\r\n  public get elementValue(): number {\r\n    return this.element.type == \"Number_BoxElement\"\r\n      ? (this.element as StiNumberBoxElement).value\r\n      : (this.element as StiNumberBoxColumnItem).cells[this.index].value;\r\n  }\r\n\r\n  public set elementValue(value: number) {\r\n    if (this.element.type == \"Number_BoxElement\") {\r\n      (this.element as StiNumberBoxElement).value = value;\r\n      if ((this.element as StiNumberBoxElement).useRange) {\r\n        this.model.checkNumberRange(this.element as StiNumberBoxElement);\r\n      }\r\n    } else {\r\n      (this.element as StiNumberBoxColumnItem).cells[this.index].value = value;\r\n    }\r\n  }\r\n\r\n  onLostFocus(event) {\r\n    if (this.model.selectedComponent?.element != (this.element as any)) {\r\n      this.editableService.editableContent = null;\r\n    }\r\n    this.editableService.usedElement = this.element;\r\n    let value = 0;\r\n    try {\r\n      value = parseFloat(event.currentTarget.value);\r\n    } catch { }\r\n\r\n    this.focused = false;\r\n    this.elementValue = !isNaN(value) ? value : 0;\r\n    event.currentTarget.value = this.value;\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n\r\n  setIncDec(value: number) {\r\n    if (!this.readonly) {\r\n      if (this.incTimeout) {\r\n        clearTimeout(this.incTimeout);\r\n        this.incTimeout = null;\r\n      }\r\n      setTimeout(() => {\r\n        this.elementValue += value;\r\n        this.buttonDown = value;\r\n        this.incDecTimer();\r\n        this.model.formEvents.next({ name: \"ValueChanged\" });\r\n      }, 0);\r\n    }\r\n  }\r\n\r\n  public incDecTimer(first = true) {\r\n    let this_ = this;\r\n    this.incTimeout = setTimeout(\r\n      () => {\r\n        if (this_.buttonDown != 0) {\r\n          this_.elementValue += this_.buttonDown;\r\n          this_.incDecTimer(false);\r\n          this.model.formEvents.next({ name: \"ValueChanged\" });\r\n        }\r\n      },\r\n      first ? 400 : 50\r\n    );\r\n  }\r\n\r\n  public get isCurrency() {\r\n    return this.element?.numberType == StiNumberType.Currency ? true : false;\r\n  }\r\n\r\n  getCurrency(currency) {\r\n    if (this.isCurrency) {\r\n      let value = this.helper.currencyInfo.find((item) => item.code == currency);\r\n      if (this.element.currencyLabelFormat == StiDisplayCurrencyAs.Symbol) {\r\n        return value.symbol;\r\n      } else {\r\n        return value.code;\r\n      }\r\n    }\r\n  }\r\n\r\n  public get value(): string {\r\n    let unit =\r\n      this.element.numberType == StiNumberType.Decimal\r\n        ? this.element.unitLabel\r\n        : this.getCurrency(this.element.currency);\r\n    return this.focused\r\n      ? this.elementValue?.toString()\r\n      : this.model.formatNumber(\r\n        this.elementValue,\r\n        this.element.thousandSeparator,\r\n        this.element.decimalDigits,\r\n        this.element.unitAlignment,\r\n        unit\r\n      );\r\n  }\r\n\r\n  public get isPrefix(): boolean {\r\n    return this.element.unitAlignment == StiUnitAlignment.Prefix;\r\n  }\r\n\r\n  public get isSuffix(): boolean {\r\n    return this.element.unitAlignment == StiUnitAlignment.Suffix;\r\n  }\r\n\r\n  public borderWidth(): string {\r\n    return `${this.element[\"borderWeight\"]}px`;\r\n  }\r\n\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiNumberBoxElement } from \"../../elements/StiNumberBoxElement\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\n\r\n@Component({\r\n    selector: \"sti-numberbox-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"StiNumberBox\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [required]=\"element.required\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.label\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [required]=\"element.required\"\r\n                  [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            <sti-number-component [element]=\"element\"> </sti-number-component>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiNumberBoxComponent implements OnInit {\r\n  @Input() element: StiNumberBoxElement;\r\n  @Input() isClone: boolean = false;\r\n\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public editableService: StiEditableContentService,\r\n    public mouseService: StiMouseService\r\n  ) {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiComboBoxElement } from \"../../elements/StiComboBoxElement\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\nimport { StiTextItem } from \"../../elements/text/StiTextItem\";\r\n\r\n@Component({\r\n    selector: \"sti-combobox-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-combo-box\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [required]=\"element.required\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            <select\r\n              class=\"selection\"\r\n              name=\"\"\r\n              id=\"\"\r\n              [(ngModel)]=\"selectedOption\"\r\n              [style.align-self]=\"align\"\r\n              [style]=\"element?.htmlStyle()\"\r\n              [style.color]=\"element?.textColor.toHtmlColor()\"\r\n              [style.background-color]=\"element?.backgroundColor.toHtmlColor()\"\r\n              [style.border-color]=\"needToFill ? 'red' : element?.borderColor.toHtmlColor()\"\r\n              [style.border-width]=\"borderWidth()\"\r\n              [disabled]=\"element?.readOnly ? true : false\"\r\n              [required]=\"element?.required\"\r\n              [stiTooltip]=\"element?.tooltip\"\r\n              [tabIndex]=\"element['tabIndex']\"\r\n              tooltipPosition=\"bottom\"\r\n              showDelay=\"500\"\r\n              (mousedown)=\"disableDrag($event)\"\r\n              (mouseup)=\"this.model.canDrag = true\"\r\n              (focus)=\"inFocus()\"\r\n              (blur)=\"lostFocus()\"\r\n              >\r\n              @for (option of element?.options; track option) {\r\n                <option\r\n                  [style.background-color]=\"element?.backgroundColor.toHtmlColor()\"\r\n                  >\r\n                  {{ option }}\r\n                </option>\r\n              }\r\n            </select>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .selection {\r\n        width: 100%;\r\n        border: 1px solid rgb(198, 198, 198);\r\n        background-color: white;\r\n        height: fit-content;\r\n        padding: 3px 4px;\r\n\r\n        appearance: none;\r\n        background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDc1MywgMjAyMS8wMi8xNS0xMTo1MjoxMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphNzFiNTVkYi0wMGZlLTVjNDctYmVkZS1jYTVhNjk0NjdkNjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0UxNDE5MzBBNDBDMTFFQkE5MDBCNzU3NjhFQUY2QTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0UxNDE5MkZBNDBDMTFFQkE5MDBCNzU3NjhFQUY2QTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjMgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YTcxYjU1ZGItMDBmZS01YzQ3LWJlZGUtY2E1YTY5NDY3ZDY4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmE3MWI1NWRiLTAwZmUtNWM0Ny1iZWRlLWNhNWE2OTQ2N2Q2OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg8NmFEAAABPSURBVHjaYmxsbGSgBDAxUAiGqQH1eNTXE2NAAw5D6qFyBA1oxGIITDNGnLPgcAEDmm0NSAYTNACbIVg14zMAmwsYSDUAr8bRpIwAAAEGAFUJDal4N9jVAAAAAElFTkSuQmCC\");\r\n        background-repeat: no-repeat;\r\n        background-position: right 5px top 50%;\r\n        background-size: 14px auto;\r\n      }\r\n\r\n      .selection:hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n        background-color: rgb(226, 239, 252) !important;\r\n      }\r\n      .selection:focus {\r\n        outline: none;\r\n        border-color: rgb(163, 189, 227) !important;\r\n      }\r\n      .sti-combo-box option:hover {\r\n        box-shadow: 0 0 10px 100px orange inset;\r\n      }\r\n      select:focus > option:checked {\r\n        background-color: rgb(246, 246, 246) !important;\r\n      }\r\n      select option:hover {\r\n        box-shadow: 0 0 10px 100px orange inset;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiComboBoxComponent implements OnInit {\r\n  @Input() element: StiComboBoxElement;\r\n  @Input() isClone: boolean = false;\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n  public get needToFill() {\r\n    return this.element.required && !this.element.value && this.model.hasEmptyReuiredFields;\r\n  }\r\n  constructor(public model: StiModelService, public editableService: StiEditableContentService) { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  public get selectedOption(): string {\r\n    return this.element.selectedOption;\r\n  }\r\n\r\n  public set selectedOption(value: string) {\r\n    this.element.selectedOption = value;\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  public borderWidth(): string {\r\n    return `${this.element.borderWeight}px`;\r\n  }\r\n  inFocus() {\r\n    setTimeout(() => {\r\n      this.editableService.editableContent = new StiTextItem(\r\n        this.element.selectedOption,\r\n        this.element.font,\r\n        this.element.textColor,\r\n        this.element.backgroundColor\r\n      );\r\n      this.editableService.usedElement = this.element;\r\n    }, 0);\r\n  }\r\n  lostFocus() {\r\n    if (this.model.selectedComponent?.element != this.element) {\r\n      this.editableService.editableContent = null;\r\n    }\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiListBoxElement } from \"../../elements/StiListBoxElement\";\r\nimport { StiHtmlStyle } from \"../../system/interfaces\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\nimport { StiTextItem } from \"../../elements/text/StiTextItem\";\r\n\r\n@Component({\r\n    selector: \"sti-listbox-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-list-box\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [required]=\"element.required\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            <ul\r\n              [style.margin-top.px]=\"element?.getTopMargin()\"\r\n              [style.align-self]=\"'center'\"\r\n              class=\"{{ element?.readOnly ? 'disabled' : '' }}\"\r\n              [style.border-color]=\"needToFill ? 'red' : element?.borderColor.toHtmlColor()\"\r\n              [style.background-color]=\"element?.backgroundColor.toHtmlColor()\"\r\n              [style.color]=\"element?.textColor.toHtmlColor()\"\r\n              [style]=\"htmlStyleElement?.htmlStyle()\"\r\n              [style.border-width]=\"borderWidth()\"\r\n              [stiTooltip]=\"element?.tooltip\"\r\n              [tabIndex]=\"element['tabIndex']\"\r\n              tooltipPosition=\"bottom\"\r\n              showDelay=\"500\"\r\n              (mousedown)=\"disableDrag($event)\"\r\n              (mouseup)=\"this.model.canDrag = true\"\r\n              >\r\n              @for (option of element.options; track option) {\r\n                <li\r\n                  [disabled]=\"element?.readOnly ? true : false\"\r\n                  (mousedown)=\"selectValue(option)\"\r\n                  class=\"{{ element.selectedOptions.indexOf(option) >= 0 ? 'active' : '' }}\"\r\n                  >\r\n                  {{ option }}\r\n                </li>\r\n              }\r\n            </ul>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .sti-list-box ul {\r\n        width: 100%;\r\n        list-style: none;\r\n        padding: 2px;\r\n        margin-top: 10px;\r\n        margin-bottom: 0;\r\n        border: 1px solid;\r\n      }\r\n      .sti-list-box li {\r\n        padding: 1px 4px;\r\n        border: 1px solid transparent;\r\n      }\r\n      .sti-list-box li:hover {\r\n        background-color: rgb(229, 243, 251);\r\n        border-color: rgb(112, 192, 231);\r\n      }\r\n\r\n      .sti-list-box li:active {\r\n        background-color: rgb(203, 232, 246);\r\n        border-color: rgb(38, 160, 218);\r\n      }\r\n      .active {\r\n        background-color: rgb(246, 246, 246);\r\n        border-color: rgb(218, 218, 218) !important;\r\n      }\r\n      .active:hover {\r\n        background-color: rgb(229, 243, 251);\r\n        border-color: rgb(112, 192, 231);\r\n      }\r\n      .active:focus {\r\n        background-color: rgb(203, 232, 246);\r\n        border-color: rgb(38, 160, 218);\r\n      }\r\n      .disabled {\r\n        pointer-events: none;\r\n        opacity: 0.5;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiListBoxComponent implements OnInit {\r\n  @Input() element: StiListBoxElement;\r\n  @Input() isClone: boolean = false;\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  public get needToFill() {\r\n    return this.element.required && this.element.value.length == 0 && this.model.hasEmptyReuiredFields;\r\n  }\r\n  constructor(public model: StiModelService, public editableService: StiEditableContentService) {}\r\n  disableDrag(event) {\r\n    setTimeout(() => {\r\n      this.editableService.editableContent = new StiTextItem(\r\n        \"\",\r\n        this.element.font,\r\n        this.element.textColor,\r\n        this.element.backgroundColor\r\n      );\r\n      this.editableService.usedElement = this.element;\r\n    }, 0);\r\n    this.model.canDrag = false;\r\n  }\r\n  ngOnInit(): void {}\r\n\r\n  public borderWidth(): string {\r\n    return `${this.element.borderWeight}px`;\r\n  }\r\n  public selectValue(option) {\r\n    if (this.element.allowMultiselection) {\r\n      if (this.element.selectedOptions.indexOf(option) >= 0) {\r\n        this.element?.selectedOptions.splice(this.element.selectedOptions.indexOf(option), 1);\r\n      } else {\r\n        this.element.selectedOptions.push(option);\r\n      }\r\n    } else {\r\n      this.element.selectedOptions = [];\r\n      this.element.selectedOptions.push(option);\r\n    }\r\n\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  public get htmlStyleElement(): StiHtmlStyle {\r\n    return this.element as unknown as StiHtmlStyle;\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiSingleSelectionElement } from \"../../elements/StiSingleSelectionElement\";\r\n\r\n@Component({\r\n    selector: \"sti-svg-radiobutton-component\",\r\n    template: `\r\n    @if (!useCustomOption) {\r\n      <div\r\n        class=\"custom-radio\"\r\n        (mousedown)=\"disableDrag($event)\"\r\n        (mouseup)=\"this.model.canDrag = true\"\r\n        >\r\n        <input\r\n          type=\"radio\"\r\n          name=\"radio +{{ element.name }}\"\r\n          id=\"{{ id }}\"\r\n          value=\"\"\r\n          [tabIndex]=\"tabIndex\"\r\n          [disabled]=\"element?.readOnly ? true : false\"\r\n          [required]=\"element?.required\"\r\n          [stiTooltip]=\"element?.tooltip\"\r\n          (click)=\"changeState()\"\r\n          />\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n            <circle\r\n              class=\"box\"\r\n              cx=\"6\"\r\n              cy=\"6\"\r\n              r=\"5.5\"\r\n              [attr.fill]=\"backColor\"\r\n              [attr.stroke]=\"needToFill ? 'red' : borderColor\"\r\n              />\r\n              @if (state) {\r\n                <circle class=\"check\" cx=\"6\" cy=\"6\" r=\"2.5\" [attr.fill]=\"checkColor\" />\r\n              }\r\n            </svg>\r\n            <sti-editable-content-component\r\n              [style.display]=\"'flex'\"\r\n              [style.margin-left]=\"'5px'\"\r\n              [style.overflow]=\"'hidden'\"\r\n              [style.maxWidth]=\"'calc(100% - 17px)'\"\r\n              [eParent]=\"element\"\r\n              [editableContent]=\"text\"\r\n              [hideEmpty]=\"false\"\r\n              [active]=\"selected\"\r\n            ></sti-editable-content-component>\r\n          </div>\r\n        }\r\n        @if (useCustomOption) {\r\n          <div\r\n            class=\"custom-radio other\"\r\n            [style.width]=\"'100%'\"\r\n            [style.align-items]=\"'center'\"\r\n            (mousedown)=\"disableDrag($event)\"\r\n            (mouseup)=\"this.model.canDrag = true\"\r\n            >\r\n            <input\r\n              type=\"radio\"\r\n              name=\"radio +{{ element.name }}\"\r\n              id=\"{{ id }}\"\r\n              value=\"\"\r\n              [disabled]=\"element?.readOnly ? true : false\"\r\n              [required]=\"element?.required\"\r\n              [stiTooltip]=\"element?.tooltip\"\r\n              (mousedown)=\"changeState()\"\r\n              />\r\n              <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n                <circle class=\"box\" cx=\"6\" cy=\"6\" r=\"5.5\" [attr.fill]=\"backColor\" [attr.stroke]=\"borderColor\" />\r\n                @if (state) {\r\n                  <circle class=\"check\" cx=\"6\" cy=\"6\" r=\"2.5\" [attr.fill]=\"checkColor\" />\r\n                }\r\n              </svg>\r\n              <div class=\"other-option-container\" [style.maxWidth]=\"'calc(100% - 17px)'\" [style]=\"textStyle\">\r\n                @if (element?.prefix?.length > 0) {\r\n                  <span>\r\n                    {{ element?.prefix }}\r\n                  </span>\r\n                }\r\n                <input\r\n                  type=\"text\"\r\n                  [style.background-color]=\"backColor\"\r\n                  [style.border-color]=\"borderColor\"\r\n                  [style.maxWidth]=\"'100%'\"\r\n                  [ngModel]=\"text\"\r\n                  [tabIndex]=\"-1\"\r\n                  (input)=\"getContent($event.target.value)\"\r\n                  [style]=\"textStyle\"\r\n                  (focus)=\"checkOption()\"\r\n                  (blur)=\"isCurrentOption = false\"\r\n                  />\r\n                  @if (element?.suffix?.length > 0) {\r\n                    <span [style.margin-left.px]=\"3\">\r\n                      {{ element?.suffix }}\r\n                    </span>\r\n                  }\r\n                </div>\r\n                <!-- <span\r\n                for=\"{{ id }}\"\r\n                [attr.contenteditable]=\"true\"\r\n                [style.flex]=\"1\"\r\n                class=\"custom-option\"\r\n                [textContent]=\"text\"\r\n                [style.background-color]=\"backColor\"\r\n                [style.border-color]=\"borderColor\"\r\n                [style.-webkit-user-select]=\"isSafari ? 'text' : ''\"\r\n                (input)=\"!isMozila && !isSafari ? getContent($event.target.textContent) : ''\"\r\n                (blur)=\"isMozila || isSafari ? getContent($event.target.textContent) : ''\"\r\n                (keyup.enter)=\"isMozila || isSafari ? getContent($event.target.textContent) : ''\"\r\n                (keypress)=\"disableEnter($event)\"\r\n                [style]=\"textStyle\"\r\n                >{{ text }}</span\r\n                > -->\r\n              </div>\r\n            }\r\n    `,\r\n    styles: [\r\n        `\r\n      .other-option-container {\r\n        display: flex;\r\n      }\r\n      .other-option-container span {\r\n        align-self: center;\r\n      }\r\n      input[type=\"radio\"]:hover + svg .box {\r\n        stroke: rgb(163, 189, 227) !important;\r\n        fill: rgb(243, 249, 255) !important;\r\n      }\r\n      input[type=\"radio\"]:active + svg .box {\r\n        stroke: rgb(60, 119, 221) !important;\r\n        fill: rgb(217, 236, 255) !important;\r\n      }\r\n      input[type=\"radio\"]:disabled + svg .box {\r\n        stroke: rgb(188, 188, 188) !important;\r\n        fill: rgb(230, 230, 230) !important;\r\n      }\r\n      input[type=\"text\"] {\r\n        margin-left: 5px;\r\n        width: 100%;\r\n        outline: none;\r\n        border: 1px solid lightgray;\r\n        padding: 3px 5px;\r\n      }\r\n      label {\r\n        margin-left: 5px;\r\n      }\r\n      span {\r\n        margin-left: 5px;\r\n      }\r\n\r\n      .box:hover: {\r\n        stroke: rgb(163, 189, 227) !important;\r\n      }\r\n      .custom-radio {\r\n        width: 100%;\r\n        position: relative;\r\n        align-items: center;\r\n        display: flex;\r\n      }\r\n      .custom-radio input[type=\"radio\"] {\r\n        position: absolute;\r\n        width: 14px;\r\n        z-index: 10;\r\n        opacity: 0;\r\n        margin: 0;\r\n      }\r\n      .other input[type=\"radio\"] {\r\n        position: absolute;\r\n        width: 14px;\r\n        z-index: 10;\r\n        opacity: 0;\r\n        margin: 0;\r\n      }\r\n      .custom-option {\r\n        border: 1px solid lightgray;\r\n        padding: 3px 5px;\r\n        z-index: 11;\r\n        white-space: nowrap;\r\n        outline: none;\r\n        overflow: hidden;\r\n        scroll-behavior: smooth;\r\n      }\r\n      .custom-option:hover {\r\n        border-color: rgb(163, 189, 227);\r\n        cursor: text;\r\n      }\r\n      .custom-option:focus {\r\n        border-color: rgb(163, 189, 227);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiSvgRadiobuttonComponent implements OnInit {\r\n  @Input() element: StiSingleSelectionElement;\r\n  @Input() id: string;\r\n  @Input() text: string;\r\n  @Input() state: boolean;\r\n  @Input() useCustomOption: boolean = false;\r\n  @Output() buttonClick = new EventEmitter();\r\n  @Input() tabIndex: number;\r\n  public isCurrentOption: boolean = false;\r\n  constructor(public model: StiModelService) {}\r\n\r\n  public get selected(): boolean {\r\n    return this.model.selectedComponent?.element == this.element;\r\n  }\r\n  get isMozila(): boolean {\r\n    return this.model.getBrowserType() == \"firefox\" ? true : false;\r\n  }\r\n  get isSafari(): boolean {\r\n    return this.model.getBrowserType() == \"safari\" ? true : false;\r\n  }\r\n  get backColor() {\r\n    return this.element.backgroundColor.toHtmlColor();\r\n  }\r\n  get checkColor() {\r\n    return this.element.checkColor.toHtmlColor();\r\n  }\r\n  get borderColor() {\r\n    return this.element.borderColor.toHtmlColor();\r\n  }\r\n  get textStyle() {\r\n    return this.element?.htmlStyle();\r\n  }\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n  changeState() {\r\n    this.buttonClick.emit();\r\n  }\r\n  public get needToFill() {\r\n    return this.element.required && !this.element.value && this.model.hasEmptyReuiredFields;\r\n  }\r\n  getContent(innerText) {\r\n    if (this.isCurrentOption) {\r\n      this.element.selectedOption = innerText;\r\n    }\r\n    this.element[\"customOptionText\"] = innerText;\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  getCharCode(event) {\r\n    return null === event.which ? event.keyCode : !(0 === event.which || 0 === event.charCode) ? event.which : -1;\r\n  }\r\n  checkOption() {\r\n    if (this.element.selectedOption == this.element.customOptionText) {\r\n      this.isCurrentOption = true;\r\n    }\r\n  }\r\n  disableEnter(event) {\r\n    if (13 === this.getCharCode(event)) event.preventDefault();\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiSingleSelectionElement } from \"../../elements/StiSingleSelectionElement\";\r\n\r\n@Component({\r\n  selector: \"sti-singleselection-component\",\r\n  template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-single-selection\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element?.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [required]=\"element.required\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            <div class=\"table-container\" [style.maxWidth.px]=\"element.maxWidth + 0.1\">\r\n              <table>\r\n                @for (row of rows; track $index; let i = $index) {\r\n                  <tr>\r\n                    @for (column of getColumns(i); track $index; let idx = $index) {\r\n                      <td\r\n                  [colSpan]=\"\r\n                    element?.useCustomOption && i * element.columns + idx == element.options.length\r\n                      ? element.columns - idx + 1\r\n                      : 0\r\n                  \"\r\n                  [style.width]=\"\r\n                    element?.useCustomOption && i * element.columns + idx == element.options.length ? '100%' : ''\r\n                  \"\r\n                        [style.padding-top.px]=\"(element?.useCustomOption && i == rows.length - 1) || i == 0 ? 0 : 3\"\r\n                  [style.padding-bottom.px]=\"\r\n                    (element?.useCustomOption && i == rows.length - 1) || i == rows.length - 1 ? 0 : 3\r\n                  \"\r\n                        >\r\n                        @if (element?.options[i * element.columns + idx] != null) {\r\n                          <sti-svg-radiobutton-component\r\n                            [element]=\"element\"\r\n                            [id]=\"element?.options[i * element.columns + idx] + i + element?.name\"\r\n                            [text]=\"element.optionsContentEditable[i * element.columns + idx]\"\r\n                            [tabIndex]=\"i == 0 && idx == 0 ? element['tabIndex'] : null\"\r\n                    [state]=\"\r\n                      element?.options[i * element.columns + idx] == element?.selectedOption && element?.selectedOption\r\n                    \"\r\n                            (buttonClick)=\"changeState(element?.options[i * element.columns + idx])\"\r\n                          ></sti-svg-radiobutton-component>\r\n                        }\r\n                        @if (element?.useCustomOption && i * element.columns + idx == element.options.length) {\r\n                          <sti-svg-radiobutton-component\r\n                            [element]=\"element\"\r\n                            [useCustomOption]=\"element?.useCustomOption\"\r\n                            [tabIndex]=\"i == 0 && idx == 0 ? element['tabIndex'] : null\"\r\n                            [id]=\"'SingleSelectionCustomOption'\"\r\n                            [text]=\"element?.customOptionText\"\r\n                            [state]=\"element?.customOptionText == element?.selectedOption\"\r\n                            (buttonClick)=\"changeState(element?.customOptionText)\"\r\n                            [style.width]=\"'100%'\"\r\n                          ></sti-svg-radiobutton-component>\r\n                        }\r\n                      </td>\r\n                    }\r\n                    @if (i != rows.length - 1 || (i == 0 && !element.useCustomOption)) {\r\n                      <td [style.width]=\"'100%'\"></td>\r\n                    }\r\n                  </tr>\r\n                }\r\n              </table>\r\n            </div>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>`,\r\n  styles: [\r\n    `\r\n      .table-container {\r\n        overflow: hidden;\r\n      }\r\n      table {\r\n        width: 100%;\r\n        border-spacing: 0;\r\n        overflow: hidden;\r\n      }\r\n      ul {\r\n        width: 100%;\r\n        margin: 0;\r\n        padding: 0;\r\n        list-style: none;\r\n        column-width: auto;\r\n        column-gap: 10px;\r\n      }\r\n      li {\r\n        margin-top: 5px;\r\n      }\r\n\r\n      .custom-radio {\r\n        position: absolute;\r\n        opacity: 0;\r\n        z-index: -1;\r\n        left: 0;\r\n      }\r\n      tr {\r\n        width: 100%;\r\n        max-width: inherit;\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        max-width: inherit;\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiSingleSelectionComponent implements OnInit {\r\n  @Input() element: StiSingleSelectionElement;\r\n  @Input() isClone: boolean = false;\r\n  constructor(public model: StiModelService) { }\r\n  public get columns() {\r\n    return (this.element.useCustomOption ? this.element.options.length + 1 : this.element.options.length) >\r\n      this.element.columns\r\n      ? new Array(Number(this.element.columns)).fill(3)\r\n      : new Array(this.element.useCustomOption ? this.element.options.length + 1 : this.element.options.length).fill(1);\r\n  }\r\n  public get rows() {\r\n    return this.element.useCustomOption\r\n      ? new Array(Math.ceil((this.element.options.length + 1) / Number(this.element.columns))).fill(2)\r\n      : new Array(Math.ceil(this.element.options.length / Number(this.element.columns))).fill(2);\r\n  }\r\n  public getColumns(rowIndex: number) {\r\n    if (\r\n      (this.element.useCustomOption ? this.element.options.length + 1 : this.element.options.length) -\r\n      Number(this.element.columns) * rowIndex >=\r\n      Number(this.element.columns)\r\n    ) {\r\n      return new Array(Number(this.element.columns)).fill(3);\r\n    } else {\r\n      let count =\r\n        (this.element.useCustomOption ? this.element.options.length + 1 : this.element.options.length) -\r\n        Number(this.element.columns) * rowIndex;\r\n      return new Array(Number(count)).fill(3);\r\n    }\r\n  }\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n  changeState(option) {\r\n    this.element.selectedOption = option;\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiCheckBoxElement } from \"../../elements/StiCheckBoxElement\";\r\nimport { StiMultipleSelectionElement } from \"../../elements/StiMultipleSelectionElement\";\r\nimport { StiBackgroundElement, StiBorderElement, StiEditableContent } from \"../../system/interfaces\";\r\nimport { StiDateTimeBoxElement } from \"../../elements/StiDateTimeBoxElement\";\r\n\r\n@Component({\r\n    selector: \"sti-svg-checkbox-component\",\r\n    template: `\r\n    @if (!useCustomOption) {\r\n      <div\r\n        class=\"custom-checkbox\"\r\n        (mousedown)=\"disableDrag($event)\"\r\n        (mouseup)=\"model.canDrag = true\"\r\n        >\r\n        <input\r\n          type=\"checkbox\"\r\n          name=\"\"\r\n          id=\"{{ id }}\"\r\n          [disabled]=\"element?.readOnly ? true : false\"\r\n          [required]=\"required\"\r\n          [stiTooltip]=\"tooltip\"\r\n          [tabIndex]=\"tabIndex\"\r\n          tooltipPosition=\"bottom\"\r\n          showDelay=\"500\"\r\n          (click)=\"changeState()\"\r\n          />\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 18 16\" fill=\"none\">\r\n            <rect\r\n              class=\"box\"\r\n              x=\"0.5\"\r\n              y=\"15.5\"\r\n              width=\"16\"\r\n              height=\"16\"\r\n              transform=\"rotate(-90 0.5 15.5)\"\r\n              [attr.fill]=\"backColor\"\r\n              [attr.stroke]=\"needToFill ? 'red' : borderColor\"\r\n              />\r\n              @if (state) {\r\n                <path\r\n                  class=\"check\"\r\n                  d=\"M5 7.23529L8.15 12L14 3\"\r\n                  attr.stroke=\"{{ checkColor }}\"\r\n                  fill=\"transparent\"\r\n                  stroke-width=\"2\"\r\n                  stroke-linecap=\"round\"\r\n                  stroke-linejoin=\"round\"\r\n                  />\r\n              }\r\n            </svg>\r\n            <sti-editable-content-component\r\n              [style.display]=\"'flex'\"\r\n              [style.margin-left]=\"'5px'\"\r\n              [style.overflow]=\"'hidden'\"\r\n              [style.maxWidth]=\"'calc(100% - 19px)'\"\r\n              [eParent]=\"element\"\r\n              [editableContent]=\"text\"\r\n              [hideEmpty]=\"disablePlaceHolder\"\r\n              [active]=\"selected\"\r\n            ></sti-editable-content-component>\r\n          </div>\r\n        }\r\n        @if (useCustomOption) {\r\n          <div\r\n            class=\"custom-checkbox other\"\r\n            [style.width]=\"'100%'\"\r\n            [style.align-items]=\"'center'\"\r\n            (mousedown)=\"disableDrag($event)\"\r\n            (mouseup)=\"model.canDrag = true\"\r\n            >\r\n            <input\r\n              type=\"checkbox\"\r\n              name=\"\"\r\n              id=\"{{ id }}\"\r\n              [disabled]=\"element?.readOnly ? true : false\"\r\n              [required]=\"required\"\r\n              [stiTooltip]=\"tooltip\"\r\n              tooltipPosition=\"bottom\"\r\n              [tabIndex]=\"tabIndex\"\r\n              showDelay=\"500\"\r\n              (mousedown)=\"changeState()\"\r\n              />\r\n              <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 18 16\" fill=\"none\">\r\n                <rect\r\n                  class=\"box\"\r\n                  x=\"0.5\"\r\n                  y=\"15.5\"\r\n                  width=\"16\"\r\n                  height=\"16\"\r\n                  transform=\"rotate(-90 0.5 15.5)\"\r\n                  [attr.fill]=\"backColor\"\r\n                  [attr.stroke]=\"borderColor\"\r\n                  />\r\n                  @if (state) {\r\n                    <path\r\n                      class=\"check\"\r\n                      d=\"M5 7.23529L8.15 12L14 3\"\r\n                      attr.stroke=\"{{ checkColor }}\"\r\n                      fill=\"transparent\"\r\n                      stroke-width=\"2\"\r\n                      stroke-linecap=\"round\"\r\n                      stroke-linejoin=\"round\"\r\n                      />\r\n                  }\r\n                </svg>\r\n                <div class=\"other-option-container\" [style.maxWidth]=\"'calc(100% - 19px)'\" [style]=\"textStyle\">\r\n                  @if (element?.prefix?.length > 0) {\r\n                    <span>\r\n                      {{ element?.prefix }}\r\n                    </span>\r\n                  }\r\n                  <input\r\n                    type=\"text\"\r\n                    [style.background-color]=\"backColor\"\r\n                    [style.border-color]=\"borderColor\"\r\n                    [style.maxWidth]=\"'100%'\"\r\n                    [ngModel]=\"text\"\r\n                    [tabIndex]=\"-1\"\r\n                    (input)=\"getContent($event.target.value)\"\r\n                    (focus)=\"checkOption()\"\r\n                    (blur)=\"isCurrentOption = false\"\r\n                    />\r\n                    @if (element?.suffix?.length > 0) {\r\n                      <span [style.margin-left.px]=\"3\">\r\n                        {{ element?.suffix }}\r\n                      </span>\r\n                    }\r\n                  </div>\r\n                  <!--  <span\r\n                  for=\"{{ id }}\"\r\n                  [attr.contenteditable]=\"true\"\r\n                  [style.flex]=\"1\"\r\n                  class=\"custom-option\"\r\n                  [textContent]=\"text\"\r\n                  [style.background-color]=\"backColor\"\r\n                  [style.border-color]=\"borderColor\"\r\n                  [style.-webkit-user-select]=\"isSafari ? 'text' : ''\"\r\n                  (input)=\"!isMozila && !isSafari ? getContent($event.target.textContent) : ''\"\r\n                  (blur)=\"isMozila || isSafari ? getContent($event.target.textContent) : ''\"\r\n                  (keyup.enter)=\"isMozila || isSafari ? getContent($event.target.textContent) : ''\"\r\n                  (keypress)=\"disableEnter($event)\"\r\n                  [style]=\"textStyle\"\r\n                  >{{ text }}</span\r\n                  > -->\r\n                </div>\r\n              }\r\n    `,\r\n    styles: [\r\n        `\r\n      .other-option-container {\r\n        display: flex;\r\n      }\r\n      .other-option-container span {\r\n        align-self: center;\r\n      }\r\n      input[type=\"checkbox\"]:hover + svg .box {\r\n        stroke: rgb(163, 189, 227) !important;\r\n        fill: rgb(243, 249, 255) !important;\r\n      }\r\n      input[type=\"checkbox\"]:active + svg .box {\r\n        stroke: rgb(60, 119, 221) !important;\r\n        fill: rgb(217, 236, 255) !important;\r\n      }\r\n      input[type=\"checkbox\"]:disabled + svg .box {\r\n        stroke: rgb(188, 188, 188) !important;\r\n        fill: rgb(230, 230, 230) !important;\r\n      }\r\n      input[type=\"text\"] {\r\n        margin-left: 5px;\r\n        width: 100%;\r\n        outline: none;\r\n        border: 1px solid lightgray;\r\n        padding: 3px 5px;\r\n      }\r\n      label {\r\n        margin-left: 5px;\r\n        white-space: nowrap;\r\n        outline: none;\r\n        overflow: hidden;\r\n        scroll-behavior: smooth;\r\n      }\r\n      label:hover {\r\n        cursor: text;\r\n      }\r\n      span {\r\n        margin-left: 5px;\r\n      }\r\n      .box:hover: {\r\n        stroke: rgb(163, 189, 227) !important;\r\n      }\r\n      .custom-checkbox {\r\n        align-items: center;\r\n        width: 100%;\r\n        position: relative;\r\n        display: flex;\r\n      }\r\n      .custom-checkbox input[type=\"checkbox\"] {\r\n        position: absolute;\r\n        width: 14px;\r\n        z-index: 10;\r\n        opacity: 0;\r\n        margin: 0;\r\n      }\r\n      .other input[type=\"checkbox\"] {\r\n        position: absolute;\r\n        width: 14px;\r\n        z-index: 10;\r\n        opacity: 0;\r\n        margin: 0;\r\n      }\r\n      .custom-option {\r\n        border: 1px solid lightgray;\r\n        padding: 3px 5px;\r\n        z-index: 100;\r\n        white-space: nowrap;\r\n        outline: none;\r\n        overflow: hidden;\r\n        scroll-behavior: smooth;\r\n      }\r\n      .custom-option:hover {\r\n        border-color: rgb(163, 189, 227);\r\n        cursor: text;\r\n      }\r\n      .custom-option:focus {\r\n        border-color: rgb(163, 189, 227);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiSvgCheckBoxComponent implements OnInit {\r\n  @Input() element: any;\r\n  @Input() id: string;\r\n  @Input() text: StiEditableContent;\r\n  @Input() state: boolean;\r\n  @Input() useCustomOption: boolean = false;\r\n  @Input() disablePlaceHolder?: boolean = false;\r\n  @Output() buttonClick = new EventEmitter();\r\n  @Input() tabIndex: number;\r\n  public isCurrentOption: boolean = false;\r\n  public textValue;\r\n  constructor(public model: StiModelService) {}\r\n\r\n  public get selected(): boolean {\r\n    return this.model.selectedComponent?.element == this.element;\r\n  }\r\n  get isMozila(): boolean {\r\n    return this.model.getBrowserType() == \"firefox\" ? true : false;\r\n  }\r\n  get isSafari(): boolean {\r\n    return this.model.getBrowserType() == \"safari\" ? true : false;\r\n  }\r\n  get isCheckBox() {\r\n    return this.element instanceof StiCheckBoxElement;\r\n  }\r\n  get backColor() {\r\n    return (this.element as unknown as StiBackgroundElement).backgroundColor.toHtmlColor();\r\n  }\r\n\r\n  get checkColor() {\r\n    if (this.element instanceof StiCheckBoxElement) {\r\n      return this.element?.checkColor.toHtmlColor();\r\n    } else if (this.element instanceof StiMultipleSelectionElement) {\r\n      return this.element?.checkColor.toHtmlColor();\r\n    } else if (this.element instanceof StiDateTimeBoxElement) {\r\n      return \"black\";\r\n    }\r\n  }\r\n  get borderColor() {\r\n    return (this.element as unknown as StiBorderElement).borderColor.toHtmlColor();\r\n  }\r\n\r\n  get required(): boolean {\r\n    return this.element[\"required\"];\r\n  }\r\n\r\n  get tooltip(): string {\r\n    return this.element instanceof StiDateTimeBoxElement ? \"\" : this.element[\"tooltip\"];\r\n  }\r\n\r\n  get textStyle() {\r\n    if (this.element instanceof StiCheckBoxElement) {\r\n      return this.element?.text.htmlStyle();\r\n    } else if (this.element instanceof StiMultipleSelectionElement) {\r\n      return this.element?.htmlStyle();\r\n    }\r\n  }\r\n  public get needToFill() {\r\n    return (\r\n      this.element.required &&\r\n      (!this.element.value || this.element.value.length == 0) &&\r\n      this.model.hasEmptyReuiredFields\r\n    );\r\n  }\r\n  setContent(innerText) {\r\n    this.text = innerText;\r\n  }\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n  changeState() {\r\n    this.buttonClick.emit();\r\n  }\r\n  getContent(innerText) {\r\n    if (this.isCurrentOption) {\r\n      this.element.selectedOptions?.forEach((option) => {\r\n        if (this.element.options?.indexOf(option) == -1) {\r\n          this.element.selectedOptions?.splice(this.element.selectedOptions.indexOf(option), 1);\r\n        }\r\n      });\r\n      this.element.selectedOptions.push(innerText);\r\n    }\r\n    this.element[\"customOptionText\"] = innerText;\r\n  }\r\n  getCharCode(event) {\r\n    return null === event.which ? event.keyCode : !(0 === event.which || 0 === event.charCode) ? event.which : -1;\r\n  }\r\n  disableEnter(event) {\r\n    if (13 === this.getCharCode(event)) event.preventDefault();\r\n  }\r\n  checkOption() {\r\n    if (this.element.selectedOptions.indexOf(this.element?.customOptionText) >= 0) {\r\n      this.isCurrentOption = true;\r\n    }\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiMultipleSelectionElement } from \"../../elements/StiMultipleSelectionElement\";\r\n\r\n@Component({\r\n  selector: \"sti-multipleselection-component\",\r\n  template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-multiple-selection\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [required]=\"element.required\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            <div class=\"table-container\" [style.maxWidth.px]=\"element.maxWidth + 0.1\">\r\n              <table>\r\n                @for (row of rows; track $index; let i = $index) {\r\n                  <tr>\r\n                    @for (column of getColumns(i); track $index; let idx = $index) {\r\n                      <td\r\n                  [colSpan]=\"\r\n                    element?.useCustomOption && i * element.columns + idx == element.options.length\r\n                      ? element.columns - idx + 1\r\n                      : 0\r\n                  \"\r\n                  [style.width]=\"\r\n                    element?.useCustomOption && i * element.columns + idx == element.options.length ? '100%' : ''\r\n                  \"\r\n                        [style.padding-top.px]=\"(element?.useCustomOption && i == rows.length - 1) || i == 0 ? 0 : 3\"\r\n                  [style.padding-bottom.px]=\"\r\n                    (element?.useCustomOption && i == rows.length - 1) || i == rows.length - 1 ? 0 : 3\r\n                  \"\r\n                        >\r\n                        @if (element?.options[i * element.columns + idx] != null) {\r\n                          <sti-svg-checkbox-component\r\n                            [element]=\"element\"\r\n                            [id]=\"element?.options[i * element.columns + idx] + i + element?.name\"\r\n                            [text]=\"element.optionsContentEditable[i * element.columns + idx]\"\r\n                            [state]=\"element.selectedOptions.indexOf(element?.options[i * element.columns + idx]) >= 0\"\r\n                            [tabIndex]=\"i == 0 && idx == 0 ? element['tabIndex'] : null\"\r\n                            (buttonClick)=\"changeState(element?.options[i * element.columns + idx])\"\r\n                          ></sti-svg-checkbox-component>\r\n                        }\r\n                        @if (element?.useCustomOption && i * element.columns + idx == element.options.length) {\r\n                          <sti-svg-checkbox-component\r\n                            [element]=\"element\"\r\n                            [useCustomOption]=\"element?.useCustomOption\"\r\n                            [id]=\"'MultipleSelectionCustomOption'\"\r\n                            [tabIndex]=\"i == 0 && idx == 0 ? element['tabIndex'] : null\"\r\n                            [text]=\"element?.customOptionText\"\r\n                            [state]=\"element.selectedOptions.indexOf(element?.customOptionText) >= 0\"\r\n                            (buttonClick)=\"changeState(element?.customOptionText)\"\r\n                            [style.width]=\"'100%'\"\r\n                          ></sti-svg-checkbox-component>\r\n                        }\r\n                      </td>\r\n                    }\r\n                    @if (i != rows.length - 1 || (i == 0 && !element.useCustomOption)) {\r\n                      <td [style.width]=\"'100%'\"></td>\r\n                    }\r\n                  </tr>\r\n                }\r\n              </table>\r\n            </div>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>`,\r\n  styles: [\r\n    `\r\n      .table-container {\r\n        overflow: hidden;\r\n      }\r\n      table {\r\n        width: 100%;\r\n        border-spacing: 0;\r\n        overflow: hidden;\r\n      }\r\n      ul {\r\n        width: 100%;\r\n        margin: 0;\r\n        padding: 0;\r\n        list-style: none;\r\n        column-width: auto;\r\n        column-gap: 10px;\r\n      }\r\n      li {\r\n        margin-top: 5px;\r\n      }\r\n      tr {\r\n        max-width: inherit;\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        max-width: inherit;\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiMultipleSelectionComponent implements OnInit {\r\n  @Input() element: StiMultipleSelectionElement;\r\n  @Input() isClone: boolean = false;\r\n  public get columns() {\r\n    return (this.element.useCustomOption ? this.element.options.length + 1 : this.element.options.length) >\r\n      this.element.columns\r\n      ? new Array(Number(this.element.columns)).fill(3)\r\n      : new Array(this.element.useCustomOption ? this.element.options.length + 1 : this.element.options.length).fill(1);\r\n  }\r\n  public get rows() {\r\n    return this.element.useCustomOption\r\n      ? new Array(Math.ceil((this.element.options.length + 1) / Number(this.element.columns))).fill(2)\r\n      : new Array(Math.ceil(this.element.options.length / Number(this.element.columns))).fill(2);\r\n  }\r\n  public getColumns(rowIndex: number) {\r\n    if (\r\n      (this.element.useCustomOption ? this.element.options.length + 1 : this.element.options.length) -\r\n      Number(this.element.columns) * rowIndex >=\r\n      Number(this.element.columns)\r\n    ) {\r\n      return new Array(Number(this.element.columns)).fill(3);\r\n    } else {\r\n      let count =\r\n        (this.element.useCustomOption ? this.element.options.length + 1 : this.element.options.length) -\r\n        Number(this.element.columns) * rowIndex;\r\n      return new Array(Number(count)).fill(3);\r\n    }\r\n  }\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n\r\n  constructor(public model: StiModelService) { }\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n  changeState(option) {\r\n    if (this.element.selectedOptions.indexOf(option) >= 0) {\r\n      this.element.selectedOptions.splice(this.element.selectedOptions.indexOf(option), 1);\r\n    } else {\r\n      this.element.selectedOptions.push(option);\r\n    }\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiCheckBoxElement } from \"../../elements/StiCheckBoxElement\";\r\n\r\n@Component({\r\n    selector: \"sti-checkbox-component\",\r\n    template: `\r\n    <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-check-box\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [required]=\"element.required\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\" [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n            <sti-svg-checkbox-component\r\n              [element]=\"element\"\r\n              [tabIndex]=\"element['tabIndex']\"\r\n              [id]=\"element?.name\"\r\n              [text]=\"element?.text\"\r\n              [state]=\"element?.isChecked\"\r\n              (buttonClick)=\"changeState()\"\r\n            ></sti-svg-checkbox-component>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>\r\n    <style>\r\n      table {\r\n      border-spacing: 0;\r\n    }\r\n    tr {\r\n    height: max-content;\r\n    padding: 0;\r\n    margin: 0;\r\n    }\r\n    td {\r\n    height: 100%;\r\n    padding: 0;\r\n    margin: 0;\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiCheckBoxComponent implements OnInit {\r\n  @Input() element: StiCheckBoxElement;\r\n  @Input() isClone: boolean;\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  constructor(public model: StiModelService) {}\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n  changeState() {\r\n    this.element.isChecked = !this.element.isChecked;\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport StiLineElement from \"../../elements/StiLineElement\";\r\nimport { StiVerticalAlignment } from \"../../system/enums\";\r\n\r\n@Component({\r\n    selector: \"sti-line-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-line\">\r\n      <div class=\"line-container\" [style.align-items]=\"verticalAlignment\">\r\n        <div class=\"line\" [style.border-bottom]=\"element.toHtmlBorder()\"></div>\r\n      </div>\r\n      @if (element?.description.value?.length > 0) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.description\"\r\n          >\r\n        </sti-editable-content-component>\r\n      }\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      .line-container {\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n      }\r\n      .line {\r\n        width: 100%;\r\n        margin: 0px;\r\n        font-size: 1px;\r\n        height: 1px;\r\n        border-bottom: 1px solid transparent;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiLineComponent implements OnInit {\r\n  @Input() element: StiLineElement;\r\n  @Input() isClone: boolean = false;\r\n  constructor(private model: StiModelService) {}\r\n  public get verticalAlignment() {\r\n    if (this.element.verticalAlignment == StiVerticalAlignment.Top) {\r\n      return \"start\";\r\n    } else if (this.element.verticalAlignment == StiVerticalAlignment.Bottom) {\r\n      return \"flex-end\";\r\n    } else {\r\n      return \"center\";\r\n    }\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { ElementRef, EventEmitter, Type } from \"@angular/core\";\r\nimport { StiFormSaveMode } from \"../system/enums\";\r\n\r\nexport class StiToolboxElement {\r\n  constructor(public caption: String, public image: String, public component: Type<any>, public element: Type<any>, public setForm: boolean) { }\r\n}\r\n\r\nexport class StiEvent {\r\n  constructor(public name: String, public value?: any) { }\r\n}\r\n\r\nexport class StiEditorProperty {\r\n  constructor(public type: string, public property: string, public label: string, public tooltip?: string) { }\r\n}\r\n\r\nexport class Item {\r\n  constructor(\r\n    public name?: string,\r\n    public caption?: string,\r\n    public imageName?: string,\r\n    public key?: any,\r\n    public haveSubMenu?: boolean,\r\n    public imageSizes?: any,\r\n    public selected?: boolean,\r\n    public type?: string\r\n  ) { }\r\n}\r\n\r\nexport class MenuItem {\r\n  constructor(\r\n    public name?: string,\r\n    public caption?: string,\r\n    public img?: string,\r\n    public type?: string,\r\n    public selected?: boolean,\r\n    public imageSize?: string,\r\n    public value?: any,\r\n    public label?: string,\r\n    public items?: any[],\r\n    public command?: any\r\n  ) { }\r\n}\r\n\r\nexport class Menu {\r\n  constructor(\r\n    public name: string,\r\n    public items: MenuItem[],\r\n    public parent: ElementRef,\r\n    public type: string,\r\n    public state?: string,\r\n    public menuEl?: ElementRef,\r\n    public top?: number,\r\n    public left?: number,\r\n    public innerContent?: ElementRef,\r\n    public width?: number,\r\n    public height?: number,\r\n    public menuStyleName?: string,\r\n    public verticalItems?: Item[],\r\n    public action?: EventEmitter<any>,\r\n    public itemStyleName?: string,\r\n    public value?: any,\r\n    public sizeStyle?: string\r\n  ) { }\r\n}\r\n\r\nexport class StiWebFormOptions {\r\n  public localization: string;\r\n  public saveMode = StiFormSaveMode.Automatic;\r\n  public form: string;\r\n  public fontFamilies: string[];\r\n  public imagesArray: any[];\r\n  public assemblyInfo: any;\r\n  public accountUserProperties: any;\r\n  public localizationList: StiLocalizationObject[];\r\n  public licenseProducts: any;\r\n  public version: string;\r\n  public creationDate: string;\r\n  public userName: string;\r\n}\r\n\r\nexport class StiLocalizationObject {\r\n  public description: string;\r\n  public language: string;\r\n  public fileName: string;\r\n  public cultureName: string;\r\n}\r\nexport class FormEvent {\r\n  constructor(public name: string, public value?: any) { }\r\n}\r\n\r\nexport class UsedFont {\r\n  constructor(public fontFamily: string, public fontStyle: string, public fontSize: number) { }\r\n}\r\n\r\nexport class StiUsedFontsList {\r\n  fonts: UsedFont[] = [];\r\n\r\n  public add(fontFamily: string, fontStyle: string, fontSize: number) {\r\n    if (\r\n      !this.fonts.find(\r\n        (u) =>\r\n          u.fontFamily == fontFamily &&\r\n          u.fontStyle.length == fontStyle.length &&\r\n          u.fontStyle == fontStyle &&\r\n          u.fontSize == fontSize\r\n      )\r\n    ) {\r\n      this.fonts.push({ fontFamily: fontFamily, fontStyle: fontStyle, fontSize: fontSize });\r\n    }\r\n  }\r\n}\r\n\r\nexport class StiInterfaceEvent {\r\n  constructor(public name: string, public data?: any) { }\r\n}\r\n\r\nexport class StiClipboardData {\r\n  constructor(public value: string, public type: string, public displayValue: string, public clipboardId: string = \"StiFormsClipboard\") { }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiHttpClientService } from \"./http-client.service\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiUsedFontsList, UsedFont } from \"./objects\";\r\n\r\n@Injectable()\r\nexport class StiFontService {\r\n  private signatureFontsLoaded = false;\r\n  public checkedFonts: StiUsedFontsList = new StiUsedFontsList();\r\n  constructor(public model: StiModelService, public httpService: StiHttpClientService) {\r\n    model.formEvents.subscribe((e) => {\r\n      if (this.model.getBrowserType() != \"firefox\") {\r\n        if (e.name == \"SetForm\") {\r\n          this.checkFonts();\r\n        } else if (e.name == \"UpdateFonts\") {\r\n          this.updateFonts(e.value);\r\n        }\r\n      }\r\n    });\r\n  }\r\n  loadFont(fonts: UsedFont[]) {\r\n    if (fonts.length > 0) {\r\n      fonts.forEach((font) => {\r\n        this.checkedFonts.add(font.fontFamily, font.fontStyle, font.fontSize);\r\n      });\r\n      this.httpService\r\n        .post(this.model.requestUrl, { action: \"GetFonts\", fonts: fonts }, \"json\", { showProgress: false })\r\n        .subscribe((data) => {\r\n          if (Array.isArray(data)) {\r\n            this.loadFontsToCss(data);\r\n          }\r\n        });\r\n    }\r\n  }\r\n\r\n  loadSignatureFonts() {\r\n    if (!this.signatureFontsLoaded) {\r\n      this.signatureFontsLoaded = true;\r\n      this.httpService\r\n        .post(this.model.requestUrl, { action: \"GetSignatureFonts\" }, \"json\", { showProgress: false })\r\n        .subscribe((data) => {\r\n          if (Array.isArray(data)) {\r\n            this.loadFontsToCss(data);\r\n          }\r\n        });\r\n    }\r\n  }\r\n\r\n  loadFontsToCss(data: any[]) {\r\n    data.forEach((item) => {\r\n      let style = document.createElement(\"style\");\r\n      let cssText =\r\n        \"@font-face {\\r\\n\" +\r\n        \"font-family: '\" + item.originalFontFamily + \"';\\r\\n\" +\r\n        (item.originalFontWeight ? \"font-weight: \" + item.originalFontWeight + \";\\r\\n\" : \"\") +\r\n        (item.originalFontStyle ? \"font-style: \" + item.originalFontStyle + \";\\r\\n\" : \"\") +\r\n        \"src: url(\" + item.contentForCss + \"); }\";\r\n\r\n      style.innerHTML = cssText;\r\n      style.id = item.originalFontFamily;\r\n      let head = document.getElementsByTagName(\"head\")[0];\r\n      head.appendChild(style);\r\n    });\r\n  }\r\n\r\n  checkFonts() {\r\n    let usedFonts = new StiUsedFontsList();\r\n    this.model.form.pages.forEach((page) => {\r\n      page.allElements.forEach((element) => {\r\n        element.getUsedFonts(usedFonts);\r\n      });\r\n    });\r\n\r\n    let forceLoad = (document as any).fonts.check(\"12px Dummy font name\");\r\n    let fontsToLoad = usedFonts.fonts.filter(\r\n      (f) =>\r\n        this.checkedFonts.fonts.indexOf(f) == -1 &&\r\n        (forceLoad || !(document as any)?.fonts.check(f.fontStyle + \" \" + f.fontSize + \"px '\" + f.fontFamily + \"'\"))\r\n    );\r\n\r\n    this.loadFont(fontsToLoad);\r\n  }\r\n  updateFonts(font: any) {\r\n    let isChecked = this.checkedFonts.fonts.find(\r\n      (f) => f.fontFamily == font.fontFamily && f.fontSize == font.fontSize && f.fontStyle == font.fontStyle\r\n    );\r\n    if (\r\n      !isChecked &&\r\n      !(document as any)?.fonts?.check(\r\n        (font?.fontStyle ? font?.fontStyle : \"\") +\r\n        \" \" +\r\n        (font?.fontSize ? font?.fontSize : 12) +\r\n        \"px '\" +\r\n        (font?.fontFamily ? font?.fontFamily : \"Arial\") +\r\n        \"'\"\r\n      )\r\n    ) {\r\n      let fontToLoad: UsedFont[] = [];\r\n      fontToLoad.push(font);\r\n      this.loadFont(fontToLoad);\r\n    }\r\n  }\r\n}\r\n","import {\r\n  AfterContentChecked,\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  DoCheck,\r\n  ElementRef,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiSignatureElement } from \"../../elements/StiSignatureElement\";\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { StiComponentResizerService } from \"../../services/sti-component-resizer.service\";\r\nimport { StiHorizontalAlignment, StiLabelAlignment, StiSignatureType, StiVerticalAlignment } from \"../../system/enums\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { Subscription } from \"rxjs/internal/Subscription\";\r\nimport { SignatureService } from \"../../services/sti-signature.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiFontService } from \"../../services/sti-font.service\";\r\n\r\n@Component({\r\n    selector: \"sti-signature-component\",\r\n    template: ` <sti-component\r\n      [element]=\"element\"\r\n      [isClone]=\"isClone\"\r\n      class=\"sti-signature\"\r\n      (dblclick)=\"!model.previewMode ? showSignatureEditor() : ''\"\r\n      (click)=\"model.previewMode && !element.readOnly ? showSignatureEditor() : ''\"\r\n      >\r\n      <div class=\"component-container\" #previewContainer>\r\n        @if (isOldVersion() && !isCurrentEditableSignature) {\r\n          <div\r\n            class=\"signature-image-container\"\r\n            [style.justify-content]=\"getHorizontalAlignment()\"\r\n            >\r\n            <div\r\n              class=\"signature-image\"\r\n              [style.background-image]=\"oldBackgroundImage\"\r\n              [style.background-position]=\"'center'\"\r\n              [style.background-size]=\"'contain'\"\r\n              [style.background-repeat]=\"'no-repeat'\"\r\n            ></div>\r\n          </div>\r\n        }\r\n        <div class=\"inserted-image-container\" [style.justify-content]=\"getHorizontalAlignment()\">\r\n          @if (isDrawingMode()) {\r\n            <div\r\n              class=\"preview-inserted-image\"\r\n              [style.width.px]=\"getImageWidth(previewContainer)\"\r\n              [style.height.px]=\"previewContainer.clientHeight\"\r\n              [style.background-image]=\"image\"\r\n              [style.background-position]=\"getBackgroundPosition()\"\r\n              [style.background-size]=\"getBackgroundSize(previewContainer)\"\r\n              [style.background-repeat]=\"image ? 'no-repeat' : ''\"\r\n            ></div>\r\n          }\r\n          @if (isDrawingMode()) {\r\n            <div\r\n              class=\"preview-drawed-image\"\r\n              [style.background-size]=\"'contain'\"\r\n              [style.background-image]=\"drawedImage\"\r\n            ></div>\r\n          }\r\n        </div>\r\n        <div\r\n          class=\"preview-inserted-text\"\r\n        [style]=\"\r\n          isCurrentEditableSignature\r\n            ? signatureService?.currentEditableText?.htmlStyle()\r\n            : element?.insertedText?.htmlStyle()\r\n        \"\r\n          [style.justify-content]=\"alignment\"\r\n          >\r\n          <span>{{ getInsertedTextValue() }}</span>\r\n        </div>\r\n        <div class=\"signature-content\">\r\n          <div\r\n            class=\"preview-inserted-type-text\"\r\n            [style.font-family]=\"isCurrentEditableSignature ? signatureService.currentPreviewFont : element.specialFont\"\r\n            [style.font-size]=\"'16pt'\"\r\n            [style.justify-content]=\"alignment\"\r\n            >\r\n            <span #sigPad>{{ getTypeTextValue() }}</span>\r\n          </div>\r\n        </div>\r\n        <div class=\"signature-description\" [style]=\"element?.description?.htmlStyle()\">\r\n          @if (element?.description.value?.length > 0) {\r\n            <sti-editable-content-component\r\n              [editableContent]=\"element.description\"\r\n              >\r\n            </sti-editable-content-component>\r\n          }\r\n        </div>\r\n      </div>\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      .signature-image {\r\n        position: absolute;\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .preview-inserted-image {\r\n        position: absolute;\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .preview-inserted-type-text {\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: flex-end;\r\n        overflow: hidden;\r\n        white-space: nowrap;\r\n      }\r\n      .preview-inserted-text {\r\n        position: absolute;\r\n        width: 100%;\r\n        height: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        overflow: hidden;\r\n        white-space: nowrap;\r\n      }\r\n      .signature-description {\r\n        width: calc(100% - 10px);\r\n        height: 50px;\r\n        margin: 0px 5px;\r\n        padding: 0px 5px;\r\n        border-top: 1px solid lightgray;\r\n        display: flex;\r\n        align-items: center;\r\n        overflow: hidden;\r\n        z-index: 100;\r\n      }\r\n      .signature-content {\r\n        z-index: 9999;\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .preview-drawed-image {\r\n        position: absolute;\r\n        width: 100%;\r\n        height: 100%;\r\n        background-position: center;\r\n        background-repeat: no-repeat;\r\n        z-index: 100;\r\n      }\r\n      .signature-image-container {\r\n        position: absolute;\r\n        left: 0;\r\n        top: 0;\r\n        display: flex;\r\n        height: 100%;\r\n        width: 100%;\r\n        z-index: 999;\r\n      }\r\n      .inserted-image-container {\r\n        position: absolute;\r\n        left: 0;\r\n        top: 0;\r\n        display: flex;\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .component-container {\r\n        width: 100%;\r\n        height: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n        position: relative;\r\n      }\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .canvas {\r\n        position: relative;\r\n        cursor: inherit;\r\n      }\r\n      .text-preview:focus {\r\n        outline: none;\r\n      }\r\n      .text-preview {\r\n        position: absolute;\r\n        white-space: nowrap;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        text-align: center;\r\n        width: 100%;\r\n        height: 100%;\r\n        overflow-x: hidden;\r\n        z-index: 100;\r\n        font-size: 28px;\r\n        cursor: text;\r\n      }\r\n      input {\r\n        visibility: hidden;\r\n        width: 0px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiSignatureComponent implements OnInit, AfterViewInit, DoCheck, OnDestroy {\r\n  @Input() element: StiSignatureElement;\r\n  @Input() isClone: boolean = false;\r\n  @ViewChild(\"sigPad\") sigPad: ElementRef;\r\n  @ViewChild(\"ref\") ref: ElementRef;\r\n  @ViewChild(\"label\") label: ElementRef;\r\n  mouseUpSubscription: Subscription;\r\n  buttonClickSubscribe: Subscription;\r\n  loadedImageSubscribe: Subscription;\r\n  public topMargin = 8;\r\n  public labelRef: any;\r\n  public drawingMode: boolean = false;\r\n  public textMode: boolean = false;\r\n  public isDrawing: boolean = false;\r\n  public loadedImage: boolean = false;\r\n  public context;\r\n  public sigPadElement;\r\n  public textContent;\r\n  public isInitialized: boolean = false;\r\n  public isDrawingMode() {\r\n    if (this.isCurrentEditableSignature) {\r\n      return this.signatureService.selectedMode == \"Draw\";\r\n    } else {\r\n      return this.element.currentSignatureMode == \"Draw\";\r\n    }\r\n  }\r\n  public get isAspectRatio() {\r\n    if (this.isCurrentEditableSignature) {\r\n      return (\r\n        this.signatureService?.currentEditableImage?.aspectRatio && this.signatureService?.currentEditableImage?.stretch\r\n      );\r\n    } else {\r\n      return this.element?.insertedImage?.aspectRatio && this.element?.insertedImage?.stretch;\r\n    }\r\n  }\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  public get isCurrentEditableSignature(): boolean {\r\n    return (\r\n      this.signatureService?.currentEditableSignatureElement == this.element &&\r\n      this.model.showSignatureEditor &&\r\n      !this.element.readOnly &&\r\n      !this.isClone\r\n    );\r\n  }\r\n  public getImageWidth(parentContainer) {\r\n    if (this.isInitialized && parentContainer) {\r\n      return this.isAspectRatio\r\n        ? parentContainer.clientHeight > parentContainer.clientWidth\r\n          ? parentContainer.clientWidth\r\n          : parentContainer.clientHeight\r\n        : parentContainer.clientWidth;\r\n    } else {\r\n      return 0;\r\n    }\r\n  }\r\n  public get cursor() {\r\n    return this.signatureService.drawingMode\r\n      ? `url(${this.model.getImage(\"signature.Brush.png\")}) 8 ${16 * window.devicePixelRatio - 4 * window.devicePixelRatio\r\n      }, auto`\r\n      : \"\";\r\n  }\r\n  public isOldVersion(): boolean {\r\n    if (\r\n      this.element.backgroundImage &&\r\n      !this.element.insertedImage.loadedImage &&\r\n      !this.element.drawedImage &&\r\n      !this.element.insertedText.value &&\r\n      !this.element.fullName &&\r\n      !this.element.initials\r\n    ) {\r\n      return true;\r\n    } else return false;\r\n  }\r\n  getInsertedTextValue() {\r\n    if (this.isCurrentEditableSignature) {\r\n      return this.signatureService.selectedMode === \"Draw\" ? this.signatureService?.currentEditableText?.value : \"\";\r\n    } else {\r\n      return this.element.currentSignatureMode === \"Draw\" ? this.element?.insertedText?.value : \"\";\r\n    }\r\n  }\r\n  getTypeTextValue() {\r\n    if (this.isCurrentEditableSignature) {\r\n      return this.signatureService.selectedMode === \"Type\"\r\n        ? `${this.signatureService.currentEditableFullName} ${this.signatureService.currentEditableInitials}`\r\n        : \"\";\r\n    } else {\r\n      return this.element.currentSignatureMode === \"Type\" ? `${this.element?.fullName} ${this.element?.initials}` : \"\";\r\n    }\r\n  }\r\n  showSignatureEditor() {\r\n    if (!this.isClone) {\r\n      this.signatureService.currentSignatureElement = this.helper.clone(this.element) as StiSignatureElement;\r\n      this.signatureService.currentEditableImage = this.signatureService.currentSignatureElement.insertedImage;\r\n      this.signatureService.currentEditableText = this.signatureService.currentSignatureElement.insertedText;\r\n      this.signatureService.currentCanvasContent = this.element.drawedImage;\r\n      this.signatureService.currentEditableFullName = this.element.fullName;\r\n      this.signatureService.currentEditableInitials = this.element.initials;\r\n      this.signatureService.selectedMode = this.element.currentSignatureMode;\r\n      this.signatureService.currentPreviewFont = this.element.specialFont;\r\n      this.signatureService.currentEditableSignatureElement = this.element;\r\n      this.model.showSignatureEditor = !this.model.showSignatureEditor;\r\n    }\r\n  }\r\n  get canvasWidth() {\r\n    if (this.isClone) {\r\n      return 0;\r\n    } else {\r\n      if (this.element[\"label\"][\"alignment\"] != StiLabelAlignment.Top && this.element[\"label\"][\"value\"]) {\r\n        return (\r\n          this.element.width - this.element.label.width - this.element.padding.right - this.element.padding.left - 2\r\n        );\r\n      } else {\r\n        return this.element.width - this.element.padding.right - this.element.padding.left;\r\n      }\r\n    }\r\n  }\r\n  get oldBackgroundImage() {\r\n    return this.getUrlImage(this.element.backgroundImage);\r\n  }\r\n  get image() {\r\n    return this.isCurrentEditableSignature && this.signatureService.selectedMode == \"Draw\"\r\n      ? this.getUrlImage(this.signatureService?.currentEditableImage?.loadedImage)\r\n      : this.isCurrentEditableSignature && this.signatureService.selectedMode == \"Type\"\r\n        ? \"\"\r\n        : this.getUrlImage(this.element?.insertedImage?.loadedImage);\r\n  }\r\n  get drawedImage() {\r\n    return this.isCurrentEditableSignature && this.signatureService.selectedMode == \"Draw\"\r\n      ? this.getUrlImage(this.signatureService?.currentCanvasContent)\r\n      : this.isCurrentEditableSignature && this.signatureService.selectedMode == \"Type\"\r\n        ? \"\"\r\n        : this.getUrlImage(this.element?.drawedImage);\r\n  }\r\n  getUrlImage(image) {\r\n    return image ? \"url(\" + image + \")\" : null;\r\n  }\r\n  get alignment() {\r\n    if (this.isCurrentEditableSignature) {\r\n      if (this.signatureService.selectedMode == \"Type\") {\r\n        return \"start\";\r\n      } else {\r\n        if (this.signatureService?.currentEditableText?.horizontalAlignment == StiHorizontalAlignment.Center) {\r\n          return \"center\";\r\n        } else if (this.signatureService?.currentEditableText?.horizontalAlignment == StiHorizontalAlignment.Right) {\r\n          return \"end\";\r\n        } else {\r\n          return \"start\";\r\n        }\r\n      }\r\n    } else {\r\n      if (this.element.currentSignatureMode == \"Type\") {\r\n        return \"start\";\r\n      } else {\r\n        if (this.element?.insertedText?.horizontalAlignment == StiHorizontalAlignment.Center) {\r\n          return \"center\";\r\n        } else if (this.element?.insertedText?.horizontalAlignment == StiHorizontalAlignment.Right) {\r\n          return \"end\";\r\n        } else {\r\n          return \"start\";\r\n        }\r\n      }\r\n    }\r\n  }\r\n  getHorizontalAlignment() {\r\n    if (this.isCurrentEditableSignature) {\r\n      if (this.signatureService?.currentEditableImage?.horizontalAlignment == StiHorizontalAlignment.Center) {\r\n        return \"center\";\r\n      } else if (this.signatureService?.currentEditableImage?.horizontalAlignment == StiHorizontalAlignment.Left) {\r\n        return \"start\";\r\n      } else {\r\n        return \"end\";\r\n      }\r\n    } else {\r\n      if (this.element?.insertedImage?.horizontalAlignment == StiHorizontalAlignment.Center) {\r\n        return \"center\";\r\n      } else if (this.element?.insertedImage?.horizontalAlignment == StiHorizontalAlignment.Left) {\r\n        return \"start\";\r\n      } else {\r\n        return \"end\";\r\n      }\r\n    }\r\n  }\r\n  getBackgroundSize(container) {\r\n    if (this.isCurrentEditableSignature) {\r\n      if (!this.signatureService?.currentEditableImage?.loadedImage) {\r\n        return;\r\n      }\r\n      if (\r\n        this.signatureService?.currentEditableImage?.aspectRatio &&\r\n        this.signatureService?.currentEditableImage?.stretch\r\n      ) {\r\n        return \"contain\";\r\n      }\r\n      if (this.signatureService?.currentEditableImage?.stretch) {\r\n        return `${container.offsetWidth}px ${container.offsetHeight}px`;\r\n      } else {\r\n        return `${this.signatureService?.currentEditableImage?.naturalWidth}px ${this.signatureService?.currentEditableImage?.naturalHeight}px`;\r\n      }\r\n    } else {\r\n      if (!this.element?.insertedImage?.loadedImage) {\r\n        return;\r\n      }\r\n      if (this.element?.insertedImage?.aspectRatio && this.element?.insertedImage?.stretch) {\r\n        return \"contain\";\r\n      }\r\n      if (this.element?.insertedImage?.stretch) {\r\n        return `${container.offsetWidth}px ${container.offsetHeight}px`;\r\n      } else {\r\n        return `${this.element?.insertedImage?.naturalWidth}px ${this.element?.insertedImage?.naturalHeight}px`;\r\n      }\r\n    }\r\n  }\r\n  getCanvasSize(container) {\r\n    return `${container.offsetWidth}px ${container.offsetHeight}px`;\r\n  }\r\n\r\n  getBackgroundPosition() {\r\n    if (this.isCurrentEditableSignature) {\r\n      if (\r\n        this.signatureService?.currentEditableImage?.stretch &&\r\n        !this.signatureService?.currentEditableImage?.aspectRatio\r\n      ) {\r\n        return `center`;\r\n      } else {\r\n        return `${this.signatureService.getVerticalPosition(\r\n          this.signatureService?.currentEditableImage?.verticalAlignment\r\n        )} ${this.signatureService.getHorizontalPosition(\r\n          this.signatureService?.currentEditableImage?.horizontalAlignment\r\n        )}`;\r\n      }\r\n    } else {\r\n      if (this.element?.insertedImage?.stretch && !this.element?.insertedImage?.aspectRatio) {\r\n        return `center`;\r\n      } else {\r\n        return `${this.signatureService.getVerticalPosition(\r\n          this.element?.insertedImage?.verticalAlignment\r\n        )} ${this.signatureService.getHorizontalPosition(this.element?.insertedImage?.horizontalAlignment)}`;\r\n      }\r\n    }\r\n  }\r\n  get canvasHeight() {\r\n    if (this.isClone) {\r\n      return 0;\r\n    } else {\r\n      if (this.element[\"label\"][\"alignment\"] != StiLabelAlignment.Top) {\r\n        return this.element.height - this.element.padding.top - this.element.padding.bottom;\r\n      } else {\r\n        return (\r\n          this.element.height -\r\n          (this.labelRef?.offsetHeight ? this.labelRef?.offsetHeight : 0) -\r\n          this.element.padding.top -\r\n          this.element.padding.bottom -\r\n          (this.labelRef?.offsetHeight ? this.topMargin : 0)\r\n        );\r\n      }\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public mouse: StiMouseService,\r\n    public resize: StiComponentResizerService,\r\n    public loc: StiLocalizationService,\r\n    public signatureService: SignatureService,\r\n    public helper: StiHelperService,\r\n    public fontService: StiFontService,\r\n    private cdr: ChangeDetectorRef\r\n  ) { }\r\n  ngOnDestroy(): void {\r\n    this.mouseUpSubscription?.unsubscribe();\r\n    this.buttonClickSubscribe?.unsubscribe();\r\n    this.loadedImageSubscribe?.unsubscribe();\r\n  }\r\n  ngDoCheck(): void {\r\n    this.labelRef = this.label ? this.label[\"elementRef\"][\"nativeElement\"] : null;\r\n  }\r\n  public isCanvasBlank(canvas) {\r\n    const context = canvas.getContext(\"2d\");\r\n\r\n    const pixelBuffer = new Uint32Array(context.getImageData(0, 0, canvas.width, canvas.height).data.buffer);\r\n\r\n    return !pixelBuffer.some((color) => color !== 0);\r\n  }\r\n  ngAfterViewInit(): void {\r\n    if (!this.isClone) {\r\n      this.element.element = this.sigPad;\r\n      this.cdr.detectChanges();\r\n\r\n      this.sigPadElement = this.sigPad?.nativeElement;\r\n      if (this.element.backgroundImage && this.context) {\r\n        // this.drawImage(this.element.backgroundImage);\r\n      }\r\n      setTimeout(() => {\r\n        this.isInitialized = true;\r\n      });\r\n    }\r\n  }\r\n  ngOnInit(): void {\r\n    this.resize.EndResizeSubj.subscribe(() => this.UpdateState());\r\n    this.loadedImageSubscribe = this.signatureService.loadedImage.subscribe((any) => {\r\n      if (this.element == this.model.selectedComponent?.element) {\r\n        this.loadedImage = true;\r\n        // this.drawImage(any);\r\n      }\r\n    });\r\n\r\n    this.fontService.loadSignatureFonts();\r\n  }\r\n  UpdateState() {\r\n    if (!this.isClone) {\r\n      // this.drawImage(this.element.backgroundImage);\r\n    }\r\n  }\r\n  private relativeCoords(event) {\r\n    const bounds = this.model.getPositionRelativeToForm(this.sigPad.nativeElement);\r\n    const x = (event.clientX - bounds.left) / this.model.zoom;\r\n    const y = (event.clientY - bounds.top) / this.model.zoom;\r\n    return { x: x, y: y };\r\n  }\r\n  clear() {\r\n    if (!this.isClone) {\r\n      this.context.clearRect(0, 0, this.sigPadElement.width, this.sigPadElement.height);\r\n      this.context.beginPath();\r\n      this.element.backgroundImage = \"\";\r\n    }\r\n  }\r\n\r\n  /* drawImage(url) {\r\n    if (!this.isClone && url) {\r\n      this.context.clearRect(0, 0, this.sigPadElement.width, this.sigPadElement.height);\r\n      this.context.beginPath();\r\n      let base_image = new Image();\r\n      base_image.onload = () => {\r\n        if (this.context) {\r\n          this.context.imageSmoothingEnabled = true;\r\n          this.context.imageSmoothingQuality = \"high\";\r\n          if (this.loadedImage) {\r\n            let hRatio = this.sigPadElement.width / base_image.naturalWidth;\r\n            let vRatio = this.sigPadElement.height / base_image.naturalHeight;\r\n            let ratio = Math.min(hRatio, vRatio);\r\n            let centerShiftX = (this.sigPadElement.width - base_image.naturalWidth * ratio) / 2;\r\n            let centerShiftY = (this.sigPadElement.height - base_image.naturalHeight * ratio) / 2;\r\n            this.context.drawImage(\r\n              base_image,\r\n              0,\r\n              0,\r\n              base_image.naturalWidth,\r\n              base_image.naturalHeight,\r\n              centerShiftX,\r\n              centerShiftY,\r\n              base_image.naturalWidth * ratio,\r\n              base_image.naturalHeight * ratio\r\n            );\r\n          } else {\r\n            this.context.drawImage(base_image, 0, 0, this.sigPadElement.width, this.sigPadElement.height);\r\n          }\r\n          if (this.loadedImage) {\r\n            this.save();\r\n            this.loadedImage = false;\r\n          }\r\n        }\r\n      };\r\n      base_image.src = url;\r\n    }\r\n  } */\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiDateTimeBoxElement } from \"../../elements/StiDateTimeBoxElement\";\r\nimport { StiDateTimeBoxValueChoise, StiDateTimeBoxType, StiHorizontalAlignment } from \"../../system/enums\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\nimport { StiInputTextItem } from \"../../helper/StiInputTextItem\";\r\n\r\n@Component({\r\n    selector: \"sti-datetimebox-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-date-time-box\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [required]=\"element.required\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\" [style.position]=\"'relative'\">\r\n            <div\r\n              class=\"date-time-box-container\"\r\n              [style.align-self]=\"align\"\r\n              [stiTooltip]=\"element?.tooltip\"\r\n              tooltipPosition=\"bottom\"\r\n              showDelay=\"500\"\r\n              [style]=\"element?.htmlStyle()\"\r\n              [style.justify-content]=\"horizontalAlignment\"\r\n              [style.border-color]=\"needToFill ? 'red' : element?.borderColor.toHtmlColor()\"\r\n              [style.background-color]=\"this.element.backgroundColor.toHtmlColor()\"\r\n              [style.border-width]=\"borderWidth()\"\r\n              (click)=\"inFocus(); inputDate.click()\"\r\n              >\r\n              @if (element.allowNull && !model.previewMode) {\r\n                <sti-svg-checkbox-component\r\n                  [style.margin-top.px]=\"margin\"\r\n                  [style.align-self]=\"align\"\r\n                  [style.margin-block]=\"'auto'\"\r\n                  [element]=\"element\"\r\n                  [id]=\"element?.name\"\r\n                  [text]=\"\"\r\n                  [state]=\"element?.dateTimeValueIsNotNull\"\r\n                  [disablePlaceHolder]=\"true\"\r\n                  (buttonClick)=\"changeState()\"\r\n                ></sti-svg-checkbox-component>\r\n              }\r\n              <span\r\n                [style.width]=\"'100%'\"\r\n                [style.opacity]=\"!element.dateTimeValueIsNotNull && element.allowNull ? 0 : 1\"\r\n                [style.pointer-events]=\"!element.dateTimeValueIsNotNull && element.allowNull ? 'none' : ''\"\r\n                [style.color]=\"this.element.textColor.toHtmlColor()\"\r\n                (click)=\"inputDate.click()\"\r\n                >{{getValue()}}</span\r\n                >\r\n                @if (!isReadOnly) {\r\n                  <div\r\n                    class=\"date-picker\"\r\n                    [style.pointer-events]=\"!element.dateTimeValueIsNotNull && element.allowNull ? 'none' : ''\"\r\n                    [style.opacity]=\"!element.dateTimeValueIsNotNull && element.allowNull ? 0 : 1\"\r\n                    >\r\n                    <label [style.display]=\"'flex'\" [style.align-items]=\"'center'\" [style.justify-content]=\"'center'\"\r\n                      ><i class=\"pi pi-chevron-down\"></i\r\n                    ></label>\r\n                  </div>\r\n                }\r\n                <input\r\n                  #inputDate\r\n                  [style.left.px]=\"element.allowNull ? 20 : 0\"\r\n                  [type]=\"isMozila ? 'date' : 'datetime-local'\"\r\n                  (input)=\"parseDate($event.target.value)\"\r\n                  [tabIndex]=\"element['tabIndex']\"\r\n                  [disabled]=\"element.readOnly && model.previewMode\"\r\n                  (select)=\"inputDate.click()\"\r\n                  />\r\n                </div>\r\n              </td>\r\n            </tr>\r\n            @if (element?.description.value?.length > 0) {\r\n              <tr>\r\n                @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n                  <td></td>\r\n                }\r\n                <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n                  @if (element?.description.value?.length > 0) {\r\n                    <sti-editable-content-component\r\n                      [editableContent]=\"element.description\"\r\n                      >\r\n                    </sti-editable-content-component>\r\n                  }\r\n                </td>\r\n              </tr>\r\n            }\r\n          </table>\r\n        </sti-component>`,\r\n    styles: [\r\n        `\r\n      .date-time-box-container {\r\n        align-items: center;\r\n        padding: 3px 4px;\r\n        display: flex;\r\n        width: 100%;\r\n        border: 1px solid transparent;\r\n      }\r\n      .date-time-box-container:hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n      }\r\n      input {\r\n        opacity: 0;\r\n        position: absolute;\r\n        left: 0;\r\n        top: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n      }\r\n      input::-webkit-datetime-edit {\r\n        display: none;\r\n      }\r\n      input::-webkit-calendar-picker-indicator {\r\n        cursor: pointer;\r\n        width: 100%;\r\n      }\r\n      .date-picker {\r\n        background-color: transparent;\r\n        width: 16px;\r\n        position: relative;\r\n        height: 16px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin-left: 4px;\r\n        padding-right: 1px;\r\n      }\r\n      /* .date-picker:hover {\r\n        background-color: rgb(190, 230, 253);\r\n      } */\r\n      i {\r\n        color: lightgrey;\r\n      }\r\n      .pi-chevron-down {\r\n        font-size: 0.575rem;\r\n        font-weight: bold;\r\n        color: rgb(197, 197, 197);\r\n        padding-top: 1px;\r\n      }\r\n      img {\r\n        vertical-align: middle;\r\n        margin-left: 0px;\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiDateTimeBoxComponent implements OnInit {\r\n  @ViewChild(\"inputDate\") inputDate: ElementRef;\r\n  @Input() element: StiDateTimeBoxElement;\r\n  @Input() isClone: boolean = false;\r\n  public get isCurrent() {\r\n    return this.element.initialState == StiDateTimeBoxValueChoise.Current;\r\n  }\r\n  public get isReadOnly() {\r\n    return this.element.readOnly;\r\n  }\r\n  public get needToFill() {\r\n    return (\r\n      this.element.required &&\r\n      (this.element.allowNull ? !this.element.dateTimeValueIsNotNull : !this.element.value) &&\r\n      this.model.hasEmptyReuiredFields\r\n    );\r\n  }\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  public get isMozila() {\r\n    return this.model.getBrowserType() == \"firefox\" ? true : false;\r\n  }\r\n  public get horizontalAlignment() {\r\n    if (this.element.contentAlignment == StiHorizontalAlignment.Left) {\r\n      return \"start\";\r\n    } else if (this.element.contentAlignment == StiHorizontalAlignment.Right) {\r\n      return \"flex-end\";\r\n    } else {\r\n      return \"center\";\r\n    }\r\n  }\r\n  public get format() {\r\n    return this.element.valueType == StiDateTimeBoxType.Date\r\n      ? this.element.dateFormat\r\n      : this.element.valueType == StiDateTimeBoxType.Time\r\n        ? this.element.timeFormat\r\n        : this.element.dateTimeFormat;\r\n  }\r\n\r\n  public getValue(): string {\r\n    return this.element.dateValueString;\r\n  }\r\n\r\n  parseDate(value) {\r\n    if (value.length > 0) {\r\n      this.element.dateValue = new Date(value);\r\n      this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    }\r\n  }\r\n  public formattingDate(dateFormat) {\r\n    let result = dateFormat\r\n      .replace(/M/g, \"k\")\r\n      .replace(/m/g, \"r\")\r\n      .replace(/tt/g, \"a\")\r\n      .replace(/k/g, \"m\")\r\n      .replace(/r/g, \"M\");\r\n    return result;\r\n  }\r\n  changeState() {\r\n    this.element.dateTimeValueIsNotNull = !this.element.dateTimeValueIsNotNull;\r\n  }\r\n\r\n  public borderWidth(): string {\r\n    return `${this.element.borderWeight}px`;\r\n  }\r\n  inFocus() {\r\n    setTimeout(() => {\r\n      let editableContent = new StiInputTextItem(\r\n        \"\",\r\n        this.element.font,\r\n        this.element.textColor,\r\n        this.element.backgroundColor,\r\n        this.element.contentAlignment\r\n      );\r\n      editableContent.element = this.element;\r\n      this.editableService.editableContent = editableContent;\r\n      this.editableService.usedElement = this.element;\r\n    }, 0);\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public editableService: StiEditableContentService\r\n  ) { }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiHttpClientService } from \"./http-client.service\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiMouseService } from \"./mouse.service\";\r\nimport { StiDraggableService } from \"./sti-draggable.service\";\r\n\r\n@Injectable()\r\nexport class StiColumnDraggableService {\r\n  public isDragging = false;\r\n  public itemLabel: String;\r\n  public top: string;\r\n  public left: string;\r\n  public headerRect: DOMRect;\r\n  public cursor: string = \"\";\r\n  public canDrop: boolean = false;\r\n  public fromTable: boolean = false;\r\n  public parentElement: StiFormElement;\r\n  private _item: any;\r\n  private _insertIndex = -1;\r\n\r\n  public containerHeight: number;\r\n  public containerWidth: number;\r\n\r\n  private items: any[];\r\n\r\n  private mouseDownX: number;\r\n  private mouseDownY: number;\r\n  public startX: number;\r\n  public startY: number;\r\n  private headerClicked = false;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public mouseService: StiMouseService,\r\n    public httpService: StiHttpClientService\r\n  ) {\r\n    mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.mouseMove(event);\r\n    });\r\n\r\n    mouseService.getDocumentMouseUp().subscribe((event: MouseEvent) => {\r\n      this.endDrag();\r\n    });\r\n  }\r\n\r\n  public mouseMove(event: MouseEvent) {\r\n    if (this.headerClicked) {\r\n      if (\r\n        !this.isDragging &&\r\n        Math.max(Math.abs(this.mouseDownX - event.clientX), Math.abs(this.mouseDownY - event.clientY)) >\r\n          StiDraggableService.MOUSE_DELTA\r\n      ) {\r\n        this.isDragging = true;\r\n      } else if (this.isDragging) {\r\n        this.left = event.clientX - this.startX + \"px\";\r\n        this.top = event.clientY - this.startY + \"px\";\r\n        this.getIndexOfBottomItem(event);\r\n        this.canDrop ? (this.model.cursor = \"copy\") : (this.model.cursor = \"not-allowed\");\r\n        //\r\n      }\r\n    }\r\n  }\r\n\r\n  public endDrag() {\r\n    if (this.isDragging) {\r\n      if (this._insertIndex > this.items.indexOf(this.item)) {\r\n        this._insertIndex--;\r\n      }\r\n      this.items[\"stopFit\"] = true;\r\n      this.items.splice(this.items.indexOf(this.item), 1);\r\n      this.items.splice(this._insertIndex, 0, this.item);\r\n      this.items[\"stopFit\"] = false;\r\n    }\r\n    this.isDragging = false;\r\n    this.fromTable = false;\r\n    this.parentElement = null;\r\n    this.canDrop = false;\r\n    this.headerClicked = false;\r\n    this.model.cursor = \"default\";\r\n  }\r\n\r\n  onHeaderClick(event: MouseEvent, item: any, items: any[], fromTable?: boolean, parentElement?: StiFormElement) {\r\n    this.mouseDownX = event.clientX;\r\n    this.mouseDownY = event.clientY;\r\n    this._item = item;\r\n    this.items = items;\r\n    this.itemLabel = item.label ?? item.header;\r\n    this.headerClicked = true;\r\n    if (fromTable) {\r\n      this.startX = event.offsetX;\r\n      this.startY = event.offsetY;\r\n    }\r\n    this._insertIndex = items.indexOf(item);\r\n    this.headerRect = this.model.getPositionRelativeToForm(event.currentTarget as Element);\r\n    if (fromTable) {\r\n      this.fromTable = true;\r\n      this.parentElement = parentElement;\r\n    }\r\n  }\r\n  getIndexOfBottomItem(event) {\r\n    let index;\r\n    let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n    this.canDrop = false;\r\n    if (this.fromTable) {\r\n      elements.forEach((element) => {\r\n        if (element?.classList.contains(\"column-drop-area\")) {\r\n          this.canDrop = true;\r\n        }\r\n      });\r\n    } else {\r\n      elements.forEach((element) => {\r\n        if (element?.classList.contains(\"drop-area\")) {\r\n          this.canDrop = true;\r\n        }\r\n      });\r\n    }\r\n  }\r\n  get insertIndex(): number {\r\n    return this.isDragging ? this._insertIndex : -1;\r\n  }\r\n\r\n  set insertIndex(value: number) {\r\n    this._insertIndex = value;\r\n  }\r\n\r\n  get item(): any {\r\n    return this.isDragging ? this._item : null;\r\n  }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiTotalsFieldItem } from \"../../../elements/table/StiTotalsFieldItem\";\r\nimport { StiHorizontalAlignment, StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiMouseService } from \"../../../services/mouse.service\";\r\nimport { StiTableElement } from \"../../../elements/StiTableElement\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n  selector: \"sti-table-totals-field-component\",\r\n  template: ` <table>\r\n      @for (field of fields; track $index; let i = $index) {\r\n        <tr>\r\n          <td\r\n            class=\"field-header\"\r\n        [style.border-top]=\"\r\n          i == 0 && selected && !model.previewMode ? '1px solid rgba(218,218,218,0.5)' : '1px solid transparent'\r\n        \"\r\n        [style.border-bottom]=\"\r\n          selected && !model.previewMode ? '1px solid rgba(218,218,218,0.5)' : '1px solid transparent'\r\n        \"\r\n        [style.border-right]=\"\r\n          selected && !model.previewMode ? '1px solid rgba(218,218,218,0.5)' : '1px solid transparent'\r\n        \"\r\n        [style.border-left]=\"\r\n          selected && !model.previewMode ? '1px solid rgba(218,218,218,0.5)' : '1px solid transparent'\r\n        \"\r\n            [style.width.px]=\"object.totalsHeadersWidth\"\r\n            [style.justify-content]=\"getAlignment(field.headerAlignment)\"\r\n            >\r\n            @if (selected) {\r\n              <div class=\"total-resizer\" (mousedown)=\"initResize($event, 'totalHeader')\"></div>\r\n            }\r\n            <sti-editable-content-component\r\n              [editableContent]=\"field\"\r\n              [eParent]=\"object\"\r\n              [hideEmpty]=\"false\"\r\n              [active]=\"selected\"\r\n            ></sti-editable-content-component>\r\n          </td>\r\n          <td\r\n            class=\"field-value\"\r\n        [style.border-top]=\"\r\n          i == 0 && selected && !model.previewMode ? '1px solid rgba(218,218,218,0.5)' : '1px solid transparent'\r\n        \"\r\n        [style.border-bottom]=\"\r\n          selected && !model.previewMode ? '1px solid rgba(218,218,218,0.5)' : '1px solid transparent'\r\n        \"\r\n        [style.border-right]=\"\r\n          selected && !model.previewMode ? '1px solid rgba(218,218,218,0.5)' : '1px solid transparent'\r\n        \"\r\n            [style.width.px]=\"object.totalsValuesWidth\"\r\n            [style.justify-content]=\"getAlignment(field.valueAlignment)\"\r\n            >\r\n            @if (selected) {\r\n              <div class=\"total-resizer\" (mousedown)=\"initResize($event, 'totalValue')\"></div>\r\n            }\r\n            <label\r\n              [style]=\"object.font.htmlStyle()\"\r\n              [style.text-decoration]=\"'none'\"\r\n              [style.color]=\"field.headerColor.toHtmlColor()\"\r\n              (mousedown)=\"showPropertyInfo(field)\"\r\n              >{{ getValue(field) }}\r\n            </label>\r\n          </td>\r\n        </tr>\r\n      }\r\n    </table>`,\r\n  styles: [\r\n    `\r\n      table {\r\n        border-spacing: 0;\r\n        border-collapse: collapse;\r\n        overflow: hidden;\r\n      }\r\n      td {\r\n        padding: 3px 1px;\r\n        display: flex;\r\n        position: relative;\r\n        white-space: nowrap;\r\n        overflow: hidden;\r\n      }\r\n      tr {\r\n        display: flex;\r\n      }\r\n      label {\r\n        width: max-content;\r\n      }\r\n      .total-resizer {\r\n        height: 100%;\r\n        width: 5px;\r\n        position: absolute;\r\n        left: 0;\r\n        top: 0;\r\n      }\r\n      .total-resizer:hover {\r\n        cursor: ew-resize;\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiTableTotalsFieldComponent implements OnInit, OnDestroy {\r\n  @Input() fields: StiTotalsFieldItem[];\r\n  @Input() object: any;\r\n  @Input() isClone?: boolean = false;\r\n  public startPoint: number;\r\n  public minWidth: number = 40;\r\n  public startColumnWidth: number;\r\n  public adjacentColumnWidth: number;\r\n  public maxWidth: number;\r\n  public isResizing: boolean = false;\r\n  public currentColumnType;\r\n\r\n  mouseUpSubscription: Subscription;\r\n  mouseMoveSubscription: Subscription;\r\n\r\n  public get showResizePreview(): boolean {\r\n    return this.object instanceof StiTableElement &&\r\n      !this.object.gridLines.drawVertical &&\r\n      this.model.selectedComponent.element == this.object\r\n      ? true\r\n      : false;\r\n  }\r\n\r\n  showPropertyInfo(field) {\r\n    setTimeout(() => {\r\n      if (\r\n        this.model.selectedComponent?.element instanceof StiTableElement &&\r\n        !this.model.selectedComponent?.element.showTotalsEditor\r\n      ) {\r\n        this.model.selectedComponent.element.showTotalsEditor = true;\r\n        this.model.needToRefresh.next(true);\r\n      }\r\n      setTimeout(() => {\r\n        if (this.model.selectedComponent?.element instanceof StiTableElement) {\r\n          let index = this.model.selectedComponent.element.totalsFields.findIndex((column) => column == field);\r\n          this.model.currentContentEditableItem.next(index);\r\n        }\r\n      }, 0);\r\n    }, 0);\r\n  }\r\n\r\n  public getAlignment(value) {\r\n    if (value == StiHorizontalAlignment.Left) {\r\n      return \"flex-start\";\r\n    } else if (value == StiHorizontalAlignment.Right) {\r\n      return \"flex-end\";\r\n    } else {\r\n      return \"center\";\r\n    }\r\n  }\r\n  public get selected(): boolean {\r\n    return this.model.selectedComponent?.element == this.object;\r\n  }\r\n\r\n  public getValue(field) {\r\n    let value = this.model.getFormattedValue(field, field.value);\r\n    return `${field.prefix}${value != null && value != undefined ? value : \"\"}${field.suffix}`;\r\n  }\r\n\r\n  initResize(event, columnType) {\r\n    event.stopPropagation();\r\n    this.isResizing = true;\r\n    this.startPoint = event.clientX;\r\n    this.currentColumnType = columnType;\r\n    if (columnType == \"totalHeader\") {\r\n      this.startColumnWidth = this.object.totalsHeadersWidth;\r\n      let tableWidth =\r\n        this.object.label.alignment == StiLabelAlignment.Top || this.object.label.value.length == 0\r\n          ? this.object.width - this.object.padding.left - this.object.padding.right\r\n          : this.object.width - this.object.padding.left - this.object.padding.right - this.object.label.width;\r\n      this.maxWidth = tableWidth - this.object.totalsValuesWidth;\r\n      this.adjacentColumnWidth = this.maxWidth - this.object.totalsHeadersWidth;\r\n    } else {\r\n      this.startColumnWidth = this.object.totalsValuesWidth;\r\n      this.maxWidth = this.object.totalsHeadersWidth + this.object.totalsValuesWidth;\r\n      this.adjacentColumnWidth = this.object.totalsHeadersWidth;\r\n    }\r\n  }\r\n  resize(event: MouseEvent) {\r\n    if (this.isResizing) {\r\n      let delta = event.clientX - this.startPoint;\r\n      if (this.startColumnWidth - delta >= this.minWidth && this.adjacentColumnWidth + delta >= this.minWidth) {\r\n        if (this.currentColumnType == \"totalHeader\") {\r\n          this.object.totalsHeadersWidth = this.startColumnWidth - delta;\r\n        } else {\r\n          this.object.totalsValuesWidth = this.startColumnWidth - delta;\r\n          this.object.totalsHeadersWidth = this.adjacentColumnWidth + delta;\r\n        }\r\n      } else {\r\n        if (this.currentColumnType == \"totalHeader\") {\r\n          if (this.startColumnWidth - delta <= this.minWidth) {\r\n            this.object.totalsHeadersWidth = this.minWidth;\r\n          } else if (this.adjacentColumnWidth + delta <= this.minWidth) {\r\n            this.object.totalsHeadersWidth = this.maxWidth - this.minWidth;\r\n          }\r\n        } else {\r\n          if (this.startColumnWidth - delta <= this.minWidth) {\r\n            this.object.totalsValuesWidth = this.minWidth;\r\n            this.object.totalsHeadersWidth = this.maxWidth - this.minWidth;\r\n          } else if (this.adjacentColumnWidth + delta <= this.minWidth) {\r\n            this.object.totalsValuesWidth = this.maxWidth - this.minWidth;\r\n            this.object.totalsHeadersWidth = this.minWidth;\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  constructor(private model: StiModelService, public mouseService: StiMouseService) {\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe((event) => {\r\n      this.isResizing = false;\r\n    });\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event) => {\r\n      this.resize(event);\r\n    });\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.mouseUpSubscription?.unsubscribe();\r\n    this.mouseMoveSubscription?.unsubscribe();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe((event) => {\r\n      this.isResizing = false;\r\n    });\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event) => {\r\n      this.resize(event);\r\n    });\r\n    /*  if (this.object.loadedFromJson) {\r\n      this.object.totalsFields.forEach((totalField) => {\r\n        totalField.calculationAlgorithm.expression = StiAlgorithmExpression.NumberColumnSum;\r\n\r\n      });\r\n    } */\r\n  }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport { StiColumnItem } from \"../elements/table/StiColumnItem\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiMouseService } from \"../services/mouse.service\";\r\n\r\n@Component({\r\n    selector: \"sti-table-column-resizer\",\r\n    template: `\r\n    <div\r\n      class=\"column-resizer\"\r\n      (mousedown)=\"initResize($event)\"\r\n      [style.border-right]=\"showResizePreview ? '1px solid black' : ''\"\r\n      [style.cursor]=\"model.previewMode ? 'default' : 'ew-resize'\"\r\n    ></div>\r\n    <style>\r\n      .column-resizer {\r\n        height: 100%;\r\n        width: 5px;\r\n        position: absolute;\r\n        opacity: 0.5;\r\n        top: 0;\r\n        right: 0;\r\n      }\r\n      .column-resizer:hover {\r\n        cursor: ew-resize;\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiTableColumnResizerComponent implements OnInit, OnDestroy {\r\n  @Input() resizableItem?: any;\r\n  @Input() element?: StiTableElement;\r\n  @Input() index?: number;\r\n  mouseUpSubscription: Subscription;\r\n  mouseMoveSubscription: Subscription;\r\n  public startPoint: number;\r\n  public minWidth: number = 40;\r\n  public startColumnWidth: number;\r\n  public adjacentColumnWidth: number;\r\n  public maxWidth: number;\r\n  public isResizing = false;\r\n  initResize(event) {\r\n    event.stopPropagation();\r\n    if (this.model.previewMode) {\r\n      return;\r\n    }\r\n    this.isResizing = true;\r\n    this.startPoint = event.clientX;\r\n    if (this.resizableItem instanceof StiColumnItem) {\r\n      this.startColumnWidth = this.resizableItem.width;\r\n      this.maxWidth = this.startColumnWidth + this.element.columns[this.index + 1].width;\r\n      this.adjacentColumnWidth = this.element.columns[this.index + 1].width;\r\n    } else {\r\n      this.startColumnWidth = this.resizableItem.rowLabelsWidth;\r\n      this.maxWidth = this.startColumnWidth + this.element.columns[0].width;\r\n      this.adjacentColumnWidth = this.element.columns[0].width;\r\n    }\r\n  }\r\n  resize(event: MouseEvent) {\r\n    if (this.isResizing) {\r\n      let delta = event.clientX - this.startPoint;\r\n      if (this.startColumnWidth + delta >= this.minWidth && this.adjacentColumnWidth - delta >= this.minWidth) {\r\n        if (this.resizableItem instanceof StiColumnItem) {\r\n          this.resizableItem.width = this.startColumnWidth + delta;\r\n          this.element.columns[this.index + 1].width = this.adjacentColumnWidth - delta;\r\n        } else {\r\n          this.resizableItem.rowLabelsWidth = this.startColumnWidth + delta;\r\n          this.element.columns[0].width = this.adjacentColumnWidth - delta;\r\n        }\r\n      } else {\r\n        if (this.resizableItem instanceof StiColumnItem) {\r\n          if (this.startColumnWidth + delta <= this.minWidth) {\r\n            this.resizableItem.width = this.minWidth;\r\n            this.element.columns[this.index + 1].width = this.maxWidth - this.minWidth;\r\n          } else if (this.adjacentColumnWidth - delta <= this.minWidth) {\r\n            this.element.columns[this.index + 1].width = this.minWidth;\r\n            this.resizableItem.width = this.maxWidth - this.minWidth;\r\n          }\r\n        } else {\r\n          if (this.startColumnWidth + delta <= this.minWidth) {\r\n            this.resizableItem.rowLabelsWidth = this.minWidth;\r\n            this.element.columns[0].width = this.maxWidth - this.minWidth;\r\n          } else if (this.adjacentColumnWidth - delta <= this.minWidth) {\r\n            this.element.columns[0].width = this.minWidth;\r\n            this.resizableItem.rowLabelsWidth = this.maxWidth - this.minWidth;\r\n          }\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  public get showResizePreview(): boolean {\r\n    return this.element instanceof StiTableElement &&\r\n      !this.model.previewMode &&\r\n      ((!this.element.gridLines.drawVertical && this.resizableItem instanceof StiColumnItem) ||\r\n        (!this.element.columnHeadersBorder.drawLeft && !(this.resizableItem instanceof StiColumnItem))) &&\r\n      this.model.selectedComponent?.element == this.element\r\n      ? true\r\n      : false;\r\n  }\r\n  constructor(public model: StiModelService, public mouseService: StiMouseService) { }\r\n  ngOnDestroy(): void {\r\n    this.mouseUpSubscription?.unsubscribe();\r\n    this.mouseMoveSubscription?.unsubscribe();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe((event) => {\r\n      this.isResizing = false;\r\n    });\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event) => {\r\n      this.resize(event);\r\n    });\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiTextBoxColumnItem } from \"../../../elements/table/columns/StiTextBoxColumnItem\";\r\nimport { Enum } from \"../../../system/Enum\";\r\nimport { StiHorizontalAlignment } from \"../../../system/enums\";\r\nimport { StiTableElement } from \"../../../elements/StiTableElement\";\r\n\r\n@Component({\r\n    selector: \"sti-table-input-text-component\",\r\n    template: `<input\r\n    type=\"text\"\r\n    spellcheck=\"false\"\r\n    [(ngModel)]=\"cell.text\"\r\n    [style]=\"object.font.htmlStyle()\"\r\n    [style.text-decoration]=\"'none'\"\r\n    [style.text-align]=\"getColumnAlignment()\"\r\n    [style.border-color]=\"item.cellBorderColor.toHtmlColor()\"\r\n    [style.color]=\"item.cellForeColor.toHtmlColor()\"\r\n    [style.background-color]=\"item.cellBackColor.toHtmlColor()\"\r\n    [disabled]=\"disabled\"\r\n    [tabIndex]=\"tabIndex\"\r\n    (mousedown)=\"disableDrag()\"\r\n    (mouseup)=\"enableDrag()\"\r\n    (focus)=\"inFocus()\"\r\n    (blur)=\"lostFocus()\"\r\n  />`,\r\n    styles: [\r\n        `\r\n      input {\r\n        height: fit-content;\r\n        padding: 3px 4px;\r\n        width: 99%;\r\n        border: 1px solid rgb(198, 198, 198);\r\n      }\r\n      input:not([disabled]):hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n      }\r\n      input:focus {\r\n        outline: none;\r\n        border: 1px solid rgb(163, 189, 227);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTableInputTextComponent implements OnInit {\r\n  @Input() item: StiTextBoxColumnItem;\r\n  @Input() index: number;\r\n  @Input() object: any;\r\n  @Input() disabled: boolean;\r\n  @Input() isClone: boolean = false;\r\n\r\n  getColumnAlignment() {\r\n    return Enum.getName(StiHorizontalAlignment, this.item.cellAlignment);\r\n  }\r\n  public get cell() {\r\n    return this.item.cells[this.index] ? this.item.cells[this.index] : null;\r\n  }\r\n\r\n  public get tabIndex() {\r\n    try {\r\n      let columns = (this.object as StiTableElement).columns;\r\n      return this.object[\"tabIndex\"] + columns.indexOf(this.item) + columns.length * this.index;\r\n    } catch {}\r\n  }\r\n  /* public set cell(value) {\r\n    this.item.cells[this.index] = value;\r\n  } */\r\n  inFocus() {}\r\n  lostFocus() {}\r\n  disableDrag() {\r\n    this.model.canDrag = false;\r\n  }\r\n  enableDrag() {\r\n    this.model.canDrag = true;\r\n  }\r\n  constructor(private model: StiModelService) {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiColumnItem } from \"../../../elements/table/StiColumnItem\";\r\nimport { StiRadioButtonColumnItem } from \"../../../elements/table/columns/StiRadioButtonColumnItem\";\r\nimport { StiTableElement } from \"../../../elements/StiTableElement\";\r\n\r\n@Component({\r\n    selector: \"sti-table-radio-button-component\",\r\n    template: `<div\r\n      class=\"custom-radio\"\r\n      [style.justify-content]=\"alignment\"\r\n      (mousedown)=\"model.canDrag = false\"\r\n      (mouseup)=\"model.canDrag = true\"\r\n      >\r\n      <input type=\"radio\" (click)=\"changeState()\" [disabled]=\"disabled\" [tabIndex]=\"tabIndex\" />\r\n      <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n        <circle\r\n          class=\"box\"\r\n          cx=\"6\"\r\n          cy=\"6\"\r\n          r=\"5.5\"\r\n          [attr.fill]=\"item.cellBackColor.toHtmlColor()\"\r\n          [attr.stroke]=\"item.cellBorderColor.toHtmlColor()\"\r\n          />\r\n          @if (cell?.isChecked) {\r\n            <circle\r\n              class=\"check\"\r\n              cx=\"6\"\r\n              cy=\"6\"\r\n              r=\"2.5\"\r\n              [attr.fill]=\"item.cellForeColor.toHtmlColor()\"\r\n              />\r\n          }\r\n        </svg>\r\n      </div>`,\r\n    styles: [\r\n        `\r\n      input[type=\"radio\"]:hover + svg .box {\r\n        stroke: rgb(163, 189, 227) !important;\r\n        fill: rgb(243, 249, 255) !important;\r\n      }\r\n      input[type=\"radio\"]:active + svg .box {\r\n        stroke: rgb(60, 119, 221) !important;\r\n        fill: rgb(217, 236, 255) !important;\r\n      }\r\n      input[type=\"radio\"]:disabled + svg .box {\r\n        stroke: rgb(188, 188, 188) !important;\r\n        fill: rgb(230, 230, 230) !important;\r\n      }\r\n\r\n      label {\r\n        margin-left: 5px;\r\n      }\r\n      span {\r\n        margin-left: 5px;\r\n      }\r\n\r\n      .box:hover: {\r\n        stroke: rgb(163, 189, 227) !important;\r\n      }\r\n      .custom-radio {\r\n        width: fit-content;\r\n        position: relative;\r\n        align-items: center;\r\n        display: flex;\r\n        width: 100%;\r\n      }\r\n      .custom-radio input[type=\"radio\"] {\r\n        position: absolute;\r\n        width: 100%;\r\n        z-index: 10;\r\n        opacity: 0;\r\n      }\r\n      .other input[type=\"radio\"] {\r\n        position: absolute;\r\n        width: 16px;\r\n        z-index: 10;\r\n        opacity: 0;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTableRadioButtonComponent implements OnInit {\r\n  @Input() item: StiRadioButtonColumnItem;\r\n  @Input() index: number;\r\n  @Input() disabled: boolean;\r\n  @Input() isClone: boolean = false;\r\n  @Input() object: any;\r\n  @Input() alignment: string;\r\n  @Output() buttonClick = new EventEmitter();\r\n  public get cell() {\r\n    return this.item.cells[this.index];\r\n  }\r\n  constructor(public model: StiModelService) {}\r\n  changeState() {\r\n    this.buttonClick.emit();\r\n  }\r\n  ngOnInit(): void {}\r\n\r\n  public get tabIndex() {\r\n    try {\r\n      let columns = (this.object as StiTableElement).columns;\r\n      return this.object[\"tabIndex\"] + columns.indexOf(this.item) + columns.length * this.index;\r\n    } catch {}\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\n\r\nimport { StiComboBoxColumnItem } from \"../../../elements/table/columns/StiComboBoxColumnItem\";\r\nimport { StiTableElement } from \"../../../elements/StiTableElement\";\r\n\r\n@Component({\r\n    selector: \"sti-table-combobox-component\",\r\n    template: ` <select\r\n      class=\"selection\"\r\n      name=\"\"\r\n      id=\"\"\r\n      [style]=\"object.font.htmlStyle()\"\r\n      [style.border-color]=\"item.cellBorderColor.toHtmlColor()\"\r\n      [style.text-decoration]=\"'none'\"\r\n      [style.color]=\"item.cellForeColor.toHtmlColor()\"\r\n      [style.background-color]=\"item.cellBackColor.toHtmlColor()\"\r\n      [(ngModel)]=\"selectedIndex\"\r\n      [tabIndex]=\"tabIndex\"\r\n      [disabled]=\"disabled\"\r\n      >\r\n      @for (option of item?.comboBoxOptions; track option) {\r\n        <option\r\n          [style.background-color]=\"item.cellBackColor.toHtmlColor()\"\r\n          [style]=\"object.font.htmlStyle()\"\r\n          >\r\n          {{ option }}\r\n        </option>\r\n      }\r\n    </select>`,\r\n    styles: [\r\n        `\r\n      .selection {\r\n        width: 99%;\r\n        border: 1px solid rgb(198, 198, 198);\r\n        background: white;\r\n        height: fit-content;\r\n        padding: 3px 4px;\r\n        appearance: none;\r\n        background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDc1MywgMjAyMS8wMi8xNS0xMTo1MjoxMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphNzFiNTVkYi0wMGZlLTVjNDctYmVkZS1jYTVhNjk0NjdkNjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0UxNDE5MzBBNDBDMTFFQkE5MDBCNzU3NjhFQUY2QTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0UxNDE5MkZBNDBDMTFFQkE5MDBCNzU3NjhFQUY2QTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjMgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YTcxYjU1ZGItMDBmZS01YzQ3LWJlZGUtY2E1YTY5NDY3ZDY4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmE3MWI1NWRiLTAwZmUtNWM0Ny1iZWRlLWNhNWE2OTQ2N2Q2OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg8NmFEAAABPSURBVHjaYmxsbGSgBDAxUAiGqQH1eNTXE2NAAw5D6qFyBA1oxGIITDNGnLPgcAEDmm0NSAYTNACbIVg14zMAmwsYSDUAr8bRpIwAAAEGAFUJDal4N9jVAAAAAElFTkSuQmCC\");\r\n        background-repeat: no-repeat;\r\n        background-position: right 5px top 50%;\r\n        background-size: 14px auto;\r\n      }\r\n\r\n      .selection:not([disabled]):hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n        background-color: rgb(226, 239, 252) !important;\r\n      }\r\n      .selection:focus {\r\n        outline: none;\r\n        border-color: rgb(163, 189, 227) !important;\r\n        background-color: white !important;\r\n      }\r\n      select:focus > option:checked {\r\n        background-color: rgb(246, 246, 246) !important;\r\n      }\r\n      select option:hover {\r\n        box-shadow: 0 0 10px 100px orange inset;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTableComboboxComponent implements OnInit {\r\n  @Input() item: StiComboBoxColumnItem;\r\n  @Input() index: number;\r\n  @Input() object: any;\r\n  @Input() disabled: boolean;\r\n  @Input() isClone: boolean = false;\r\n  public get cell() {\r\n    return this.item.cells[this.index];\r\n  }\r\n  public get selectedIndex() {\r\n    return this.item?.comboBoxOptions[this.cell?.selectedIndex ? this.cell?.selectedIndex : 0];\r\n  }\r\n  public set selectedIndex(value) {\r\n    this.item.comboBoxOptions.forEach((option, index) => {\r\n      if (option == value) {\r\n        this.cell.selectedIndex = index;\r\n      }\r\n    });\r\n  }\r\n  constructor(private model: StiModelService) {}\r\n\r\n  public get tabIndex() {\r\n    try {\r\n      let columns = (this.object as StiTableElement).columns;\r\n      return this.object[\"tabIndex\"] + columns.indexOf(this.item) + columns.length * this.index;\r\n    } catch {}\r\n  }\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\n\r\nimport { StiCheckBoxColumnItem } from \"../../../elements/table/columns/StiCheckBoxColumnItem\";\r\nimport { StiTableElement } from \"../../../elements/StiTableElement\";\r\n\r\n@Component({\r\n    selector: \"sti-table-checkbox-component\",\r\n    template: ` <div\r\n      class=\"custom-checkbox\"\r\n      [style.justify-content]=\"alignment\"\r\n      (mousedown)=\"model.canDrag = false\"\r\n      (mouseup)=\"model.canDrag = true\"\r\n      >\r\n      <input\r\n        type=\"checkbox\"\r\n        name=\"\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        [tabIndex]=\"tabIndex\"\r\n        (click)=\"changeState()\"\r\n        [disabled]=\"disabled\"\r\n        />\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 18 16\" fill=\"none\">\r\n          <rect\r\n            class=\"box\"\r\n            x=\"0.5\"\r\n            y=\"15.5\"\r\n            width=\"16\"\r\n            height=\"16\"\r\n            transform=\"rotate(-90 0.5 15.5)\"\r\n            [attr.fill]=\"item.cellBackColor.toHtmlColor()\"\r\n            [attr.stroke]=\"item.cellBorderColor.toHtmlColor()\"\r\n            />\r\n            @if (cell?.isChecked) {\r\n              <path\r\n                class=\"check\"\r\n                d=\"M5 7.23529L8.15 12L14 3\"\r\n                [attr.stroke]=\"item.cellForeColor.toHtmlColor()\"\r\n                fill=\"transparent\"\r\n                stroke-width=\"2\"\r\n                stroke-linecap=\"round\"\r\n                stroke-linejoin=\"round\"\r\n                />\r\n            }\r\n          </svg>\r\n        </div>`,\r\n    styles: [\r\n        `\r\n      input[type=\"checkbox\"]:hover + svg .box {\r\n        stroke: rgb(163, 189, 227) !important;\r\n        fill: rgb(243, 249, 255) !important;\r\n      }\r\n      input[type=\"checkbox\"]:active + svg .box {\r\n        stroke: rgb(60, 119, 221) !important;\r\n        fill: rgb(217, 236, 255) !important;\r\n      }\r\n      input[type=\"checkbox\"]:disabled + svg .box {\r\n        stroke: rgb(188, 188, 188) !important;\r\n        fill: rgb(230, 230, 230) !important;\r\n      }\r\n\r\n      label {\r\n        margin-left: 5px;\r\n      }\r\n      span {\r\n        margin-left: 5px;\r\n      }\r\n      .box:hover: {\r\n        stroke: rgb(163, 189, 227) !important;\r\n      }\r\n      .custom-checkbox {\r\n        align-items: center;\r\n        width: fit-content;\r\n        position: relative;\r\n        display: flex;\r\n        width: 100%;\r\n      }\r\n      .custom-checkbox input[type=\"checkbox\"] {\r\n        position: absolute;\r\n        width: 14px;\r\n        z-index: 10;\r\n        opacity: 0;\r\n        margin: 0;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTableCheckboxComponent implements OnInit {\r\n  @Input() item: StiCheckBoxColumnItem;\r\n  @Input() index: number;\r\n  @Input() object: any;\r\n  @Input() disabled: boolean;\r\n  @Input() isClone: boolean = false;\r\n  @Input() alignment: string;\r\n  @Output() buttonClick = new EventEmitter();\r\n  public get cell() {\r\n    return this.item.cells[this.index] ? this.item.cells[this.index] : null;\r\n  }\r\n  constructor(public model: StiModelService) {}\r\n  changeState() {\r\n    this.buttonClick.emit();\r\n  }\r\n  ngOnInit(): void {}\r\n\r\n  public get tabIndex() {\r\n    try {\r\n      let columns = (this.object as StiTableElement).columns;\r\n      return this.object[\"tabIndex\"] + columns.indexOf(this.item) + columns.length * this.index;\r\n    } catch {}\r\n  }\r\n}\r\n","import { ElementRef, Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiLabelElement } from \"../elements/StiLabelElement\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport { StiLabelColumnItem } from \"../elements/table/columns/StiLabelColumnItem\";\r\nimport { StiColumnItem } from \"../elements/table/StiColumnItem\";\r\nimport { StiTotalsFieldItem } from \"../elements/table/StiTotalsFieldItem\";\r\nimport { StiDraggableExpressionObject, StiFormattedElement, StiValueElement } from \"../system/interfaces\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiMouseService } from \"./mouse.service\";\r\nimport { StiRowLabel } from \"../elements/table/StiRowLabel\";\r\nimport { StiStaticHelperService } from \"./sti-static-helper.service\";\r\n\r\n@Injectable()\r\nexport class StiExpressionService {\r\n  static MOUSE_DELTA = 3;\r\n  private started = false;\r\n  private status = {};\r\n  public componentX: number;\r\n  public componentY: number;\r\n  public componentWidth: number = 700;\r\n  public componentHeight: number = 482;\r\n  public startExpressionDraggingX: number;\r\n  public startExpressionDraggingY: number;\r\n  public expressionDraggableContainerX: number;\r\n  public expressionDraggableContainerY: number;\r\n  public expressionDraggableContainerWidth: number;\r\n  public expressionDraggableContainerHeight: number;\r\n  public draggableExpressionObject: StiDraggableExpressionObject;\r\n  public needToAddExpression = new Subject<StiDraggableExpressionObject>();\r\n  public expressionPreviewString = \"\";\r\n  public isDragging: boolean = false;\r\n  public elementRef: ElementRef;\r\n  public currentSelectedObject: any;\r\n  public currentCarretOffset: number;\r\n\r\n  getExpressionString(startItem): StiDraggableExpressionObject {\r\n    let expressionObject: StiDraggableExpressionObject = { previewString: \"\", startObject: null, lastCaretOffset: 1 };\r\n    expressionObject.startObject = startItem;\r\n    if (typeof startItem.object == \"string\") {\r\n      if (startItem.object.length == 1) {\r\n        expressionObject.previewString = startItem.object;\r\n      } else {\r\n        let string = \"\";\r\n        if (startItem.object.toLowerCase() == \"value\") {\r\n          string = startItem.object + `('')`;\r\n        } else if (\r\n          startItem.object.toLowerCase() == \"line\" ||\r\n          startItem.object.toLowerCase() == \"today\" ||\r\n          startItem.object.toLowerCase() == \"time\"\r\n        ) {\r\n          string = startItem.object;\r\n        } else if (startItem.object.toLowerCase() == \"cell\") {\r\n          string = startItem.object + \"(,,'')\";\r\n        } else if (\r\n          startItem.object.toLowerCase() == \"total\" ||\r\n          startItem.object.toLowerCase() == \"col\" ||\r\n          startItem.object.toLowerCase() == \"row\"\r\n        ) {\r\n          string = startItem.object + \"(,'')\";\r\n        } else {\r\n          string = startItem.object + \"()\";\r\n        }\r\n        expressionObject.previewString = string;\r\n      }\r\n    } else {\r\n      if (startItem.object instanceof StiFormElement) {\r\n        expressionObject.previewString = `Value('${startItem.object.name}')`;\r\n      } else {\r\n        if (startItem.object instanceof StiTotalsFieldItem) {\r\n          expressionObject.previewString = `Total(${startItem.object.eParent.totalsFields.indexOf(startItem.object) + 1\r\n            },'${startItem.object.eParent.name}')`;\r\n        } else if (startItem.object instanceof StiColumnItem && !startItem.isCell) {\r\n          expressionObject.previewString = `Col(${startItem.object.eParent.columns.indexOf(startItem.object) + 1},'${startItem.object.eParent.name\r\n            }')`;\r\n        } else {\r\n          expressionObject.previewString = `Cell(${startItem.object.eParent.columns.indexOf(startItem.object) + 1},${startItem.index\r\n            },'${startItem.object.eParent.name}')`;\r\n        }\r\n      }\r\n    }\r\n    return expressionObject;\r\n  }\r\n\r\n  public startContainerDrag(object) {\r\n    this.startExpressionDraggingX = object.event.clientX;\r\n    this.startExpressionDraggingY = object.event.clientY;\r\n    this.draggableExpressionObject = this.getExpressionString(object);\r\n    this.isDragging = true;\r\n    let elem = this.elementRef.nativeElement;\r\n    elem.focus();\r\n  }\r\n  public moveContainer(event) {\r\n    if (this.isDragging) {\r\n      event.preventDefault();\r\n      let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n      if (elements.find((elem) => elem.classList.contains(\"expression-preview\"))) {\r\n        let currentRange;\r\n        if (document.caretRangeFromPoint) {\r\n          currentRange = document.caretRangeFromPoint(event.clientX, event.clientY);\r\n        } else {\r\n          let sel = window.getSelection();\r\n          sel.collapse(event.rangeParent, event.rangeOffset);\r\n          currentRange = sel.getRangeAt(0);\r\n        }\r\n        this.currentCarretOffset = currentRange.startOffset;\r\n        setTimeout(() => {\r\n          var range = document.createRange();\r\n          var sel = window.getSelection();\r\n          if (this.elementRef.nativeElement.childNodes[0]) {\r\n            range?.setStart(this.elementRef.nativeElement.childNodes[0], this.currentCarretOffset);\r\n            range?.collapse(true);\r\n            sel.removeAllRanges();\r\n            sel.addRange(range);\r\n            this.draggableExpressionObject.lastCaretOffset = this.currentCarretOffset;\r\n          }\r\n        });\r\n      }\r\n      let deltaX = event.clientX - this.startExpressionDraggingX;\r\n      let deltaY = event.clientY - this.startExpressionDraggingY;\r\n      if (this.startExpressionDraggingX - 10 + deltaX < 0) {\r\n        this.expressionDraggableContainerX = 0;\r\n      } else if (\r\n        this.startExpressionDraggingX - 10 + deltaX >\r\n        window.innerWidth - this.elementRef?.nativeElement.clientWidth\r\n      ) {\r\n        this.expressionDraggableContainerX = window.innerWidth - this.elementRef?.nativeElement.clientWidth;\r\n      } else {\r\n        this.expressionDraggableContainerX = this.startExpressionDraggingX - 10 + deltaX;\r\n      }\r\n      if (this.startExpressionDraggingY - 10 + deltaY < 0) {\r\n        this.expressionDraggableContainerY = 0;\r\n      } else if (\r\n        this.startExpressionDraggingY - 10 + deltaY >\r\n        window.innerHeight - this.elementRef?.nativeElement.clientHeight\r\n      ) {\r\n        this.expressionDraggableContainerY = window.innerHeight - this.elementRef?.nativeElement.clientHeight;\r\n      } else {\r\n        this.expressionDraggableContainerY = this.startExpressionDraggingY - 10 + deltaY;\r\n      }\r\n    }\r\n  }\r\n  public endContainerDrag(event) {\r\n    if (this.isDragging) {\r\n      if (\r\n        document\r\n          .elementsFromPoint(event.clientX, event.clientY)\r\n          .find((element) => element.classList.contains(\"expression-preview\"))\r\n      ) {\r\n        this.needToAddExpression.next(this.draggableExpressionObject);\r\n      }\r\n      this.isDragging = false;\r\n      this.draggableExpressionObject = null;\r\n    }\r\n  }\r\n\r\n  constructor(public model: StiModelService, public mouseService: StiMouseService) {\r\n    window.onresize = (event) => {\r\n      if (window.innerWidth > this.componentWidth) {\r\n        if (window.innerWidth < this.componentX + this.componentWidth) {\r\n          this.componentX = (window.innerWidth - this.componentWidth) / 2;\r\n        }\r\n      } else {\r\n        this.componentX = 0;\r\n      }\r\n      if (window.innerHeight > this.componentHeight) {\r\n        if (window.innerHeight < this.componentY + this.componentHeight) {\r\n          this.componentY = (window.innerHeight - this.componentHeight) / 2;\r\n        }\r\n      } else {\r\n        this.componentY = 0;\r\n      }\r\n    };\r\n    this.mouseService.getDocumentMouseMove().subscribe((event) => {\r\n      this.moveContainer(event);\r\n    });\r\n    this.mouseService.getDocumentMouseUp().subscribe((event) => {\r\n      this.endContainerDrag(event);\r\n    });\r\n  }\r\n  public getCaretOffset(element): number {\r\n    let caretOffset = 0;\r\n    let doc = element.ownerDocument || element.document;\r\n    let win = doc.defaultView || doc.parentWindow;\r\n    let sel;\r\n    if (typeof win.getSelection != \"undefined\") {\r\n      sel = win.getSelection();\r\n      if (sel.rangeCount > 0) {\r\n        let range = win.getSelection().getRangeAt(0);\r\n        let preCaretRange = range.cloneRange();\r\n        preCaretRange.selectNodeContents(element);\r\n        preCaretRange.setEnd(range.endContainer, range.endOffset);\r\n        caretOffset = preCaretRange.toString().length;\r\n      }\r\n    } else if ((sel = doc.selection) && sel.type != \"Control\") {\r\n      let textRange = sel.createRange();\r\n      let preCaretTextRange = doc.body.createTextRange();\r\n      preCaretTextRange.moveToElementText(element);\r\n      preCaretTextRange.setEndPoint(\"EndToEnd\", textRange);\r\n      caretOffset = preCaretTextRange.text.length;\r\n    }\r\n    return caretOffset;\r\n  }\r\n  public start() {\r\n    if (this.started) {\r\n      return;\r\n    }\r\n    this.started = true;\r\n\r\n    this.model.formEvents.subscribe((e) => {\r\n      if (e.name == \"ValueChanged\" || e.name == \"ComponentDeleted\" || e.name == \"SetForm\" || e.name == \"UpdateForm\") {\r\n        setTimeout(() => {\r\n          this.calculate();\r\n        }, 0);\r\n      }\r\n    });\r\n  }\r\n\r\n  private addDependency(expression: string, names: string[], dependecies: string[], excludeName: string) {\r\n    let regex = /(\\{.+?\\})/g;\r\n    let exec;\r\n    while ((exec = regex.exec(expression)) !== null) {\r\n      names.forEach(n => {\r\n        if (excludeName != n && exec[0].indexOf(`'${n}'`) > 0 && dependecies.indexOf(n) == -1) {\r\n          dependecies.push(n);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  public calculate() {\r\n    let elements = {};\r\n    let dependencies = {};\r\n    let allElements = this.model.form.allElements.filter(el => (el instanceof StiTableElement || el instanceof StiLabelElement));\r\n    let names: string[] = allElements.map(e => e.name);\r\n\r\n    allElements.forEach((e) => {\r\n      if (e instanceof StiTableElement) {\r\n        let dep = [];\r\n        let table = e as StiTableElement;\r\n        table.columns.filter(c => c instanceof StiLabelColumnItem).\r\n          forEach((col: StiLabelColumnItem) => this.addDependency(col.expression, names, dep, table.name));\r\n\r\n        table.totalsFields.forEach(t => this.addDependency(t.value, names, dep, table.name));\r\n        dependencies[table.name] = dep;\r\n      } else if (e instanceof StiLabelElement) {\r\n        let dep = [];\r\n        let label = e as StiLabelElement;\r\n        this.addDependency(label.text.value, names, dep, label.name);\r\n        dependencies[label.name] = dep;\r\n      }\r\n    });\r\n\r\n    let calculatedElements = [];\r\n    let excludeElements = [new Object()];\r\n    while (excludeElements.length > 0) {\r\n      excludeElements = [];\r\n      allElements.forEach((e) => {\r\n        if (dependencies[e.name].length == 0 || dependencies[e.name].every(name => calculatedElements.indexOf(name) >= 0)) {\r\n          excludeElements.push(e);\r\n          calculatedElements.push(e.name);\r\n          if (e instanceof StiTableElement) {\r\n            let table = e as StiTableElement;\r\n            table.columns.forEach((c, colIndex) => {\r\n              if (c instanceof StiLabelColumnItem) {\r\n                let label = c as StiLabelColumnItem;\r\n                label.cells.forEach((c, rowIndex) => {\r\n                  this.exec(label, elements, table, colIndex, rowIndex);\r\n                });\r\n              }\r\n            });\r\n            table.totalsFields.forEach((t, index) => {\r\n              let total = t as StiTotalsFieldItem;\r\n              this.exec(total, elements, table, null, null, index);\r\n            });\r\n            table.rowLabelsContentEditable.forEach((r, index) => {\r\n              let row = r as StiRowLabel;\r\n              this.exec(row, elements, table, null, index);\r\n            });\r\n          } else if (e instanceof StiLabelElement) {\r\n            let label = e as StiLabelElement;\r\n            this.exec(label, elements);\r\n          }\r\n        }\r\n      });\r\n\r\n      allElements = allElements.filter(e => excludeElements.indexOf(e) == -1);\r\n    }\r\n  }\r\n\r\n  private getElementName(element: StiValueElement, row: number) {\r\n    if (\r\n      element instanceof StiTotalsFieldItem ||\r\n      element instanceof StiLabelColumnItem ||\r\n      element instanceof StiRowLabel\r\n    ) {\r\n      let tables = [];\r\n      this.model.form.pages.forEach((p) =>\r\n        p.allElements.forEach((e) => {\r\n          if (e instanceof StiTableElement) {\r\n            tables.push(e);\r\n          }\r\n        })\r\n      );\r\n      let table = tables.find(\r\n        (t: StiTableElement) =>\r\n          t.totalsFields?.indexOf(element as any) >= 0 ||\r\n          t.columns?.indexOf(element as any) >= 0 ||\r\n          t.rowLabelsContentEditable?.indexOf(element as any) >= 0\r\n      );\r\n      if (element instanceof StiRowLabel) {\r\n        return `${table.name}.Row.${row}`;\r\n      }\r\n      if (element instanceof StiTotalsFieldItem) {\r\n        return `${table.name}.0.0.${table.totalsFields.indexOf(element as any)}`;\r\n      } else {\r\n        return `${table.name}.${table.columns?.indexOf(element as any)}.${row}`;\r\n      }\r\n    } else {\r\n      return (element as any).name;\r\n    }\r\n  }\r\n\r\n  public exec(\r\n    element: StiValueElement,\r\n    elements: object,\r\n    table?: StiTableElement,\r\n    col?: number,\r\n    row?: number,\r\n    total?: number\r\n  ) {\r\n    let elName = this.getElementName(element, row);\r\n    if (elements[elName] || !(\"expression\" in element)) {\r\n      return;\r\n    } else if (this.haveExpression(element)) {\r\n      try {\r\n        elements[elName] = true;\r\n        let this_ = this;\r\n\r\n        let Value = function (elementName) {\r\n          let el = this_.findElement(elementName);\r\n          if (el) {\r\n            this_.exec(el, elements);\r\n            return el.value;\r\n          }\r\n          return null;\r\n        };\r\n\r\n        let Sum = function (elements) {\r\n          let sum = 0;\r\n          try {\r\n            elements.forEach((element) => {\r\n              if (this_.isNumber(element)) {\r\n                sum += element;\r\n              }\r\n            });\r\n          } catch { }\r\n          return sum;\r\n        };\r\n        let Line = function () {\r\n          try {\r\n            return row + 1;\r\n          } catch {\r\n            return 0;\r\n          }\r\n        };\r\n        let Today = function () {\r\n          try {\r\n            return StiStaticHelperService.formatDate(new Date(), this_.model.form.settings.dateFormat, this_.model.form.settings.culture);\r\n          } catch {\r\n            return null;\r\n          }\r\n        };\r\n        let Time = function () {\r\n          try {\r\n            return StiStaticHelperService.formatDate(new Date(), this_.model.form.settings.timeFormat, this_.model.form.settings.culture);\r\n          } catch {\r\n            return null;\r\n          }\r\n        };\r\n        let Max = function (elements) {\r\n          let res;\r\n          try {\r\n            elements.forEach((element) => {\r\n              if (this_.isNumber(element)) {\r\n                if (res == null) {\r\n                  res = element;\r\n                }\r\n                res = Math.max(element, res);\r\n              }\r\n            });\r\n          } catch { }\r\n          return res;\r\n        };\r\n\r\n        let Min = function (elements) {\r\n          let res;\r\n          try {\r\n            elements.forEach((element) => {\r\n              if (this_.isNumber(element)) {\r\n                if (res == null) {\r\n                  res = element;\r\n                }\r\n                res = Math.min(element, res);\r\n              }\r\n            });\r\n          } catch { }\r\n          return res;\r\n        };\r\n\r\n        let Total = function (index, tableName) {\r\n          try {\r\n            let curTable = tableName ? (this_.model.form.getElementByName(tableName) as StiTableElement) : table;\r\n            let total =\r\n              typeof index == \"number\"\r\n                ? curTable.totalsFields[index - 1]\r\n                : curTable.totalsFields.find((t) => t.header == index);\r\n            this_.exec(total, elements, curTable, null, null, index);\r\n            return total.value;\r\n          } catch { }\r\n        };\r\n\r\n        let Count = function (elements) {\r\n          try {\r\n            return elements.length;\r\n          } catch {\r\n            return 0;\r\n          }\r\n        };\r\n\r\n        let Col = function (name, tableName) {\r\n          try {\r\n            let curTable = tableName ? (this_.model.form.getElementByName(tableName) as StiTableElement) : table;\r\n            let column: StiColumnItem = this_.isNumber(name)\r\n              ? curTable.columns[name - 1]\r\n              : curTable.columns.find((c: StiColumnItem) => c.label.toLowerCase() == name.toLowerCase());\r\n            let result = [];\r\n            column[\"cells\"].forEach((cell, index) => {\r\n              try {\r\n                this_.exec(column as any, elements, curTable, curTable.columns.indexOf(column), index);\r\n                result.push(cell[\"value\"] != undefined ? (cell as StiValueElement).value : cell);\r\n              } catch {\r\n                result.push(undefined);\r\n              }\r\n            });\r\n            return row != null ? result[row] : result;\r\n          } catch { }\r\n        };\r\n\r\n        let Row = function (name, tableName) {\r\n          try {\r\n            let curTable = tableName ? (this_.model.form.getElementByName(tableName) as StiTableElement) : table;\r\n            let rowIndex = this_.isNumber(name)\r\n              ? name - 1\r\n              : curTable.rowLabels.findIndex((value) => value.toLowerCase() == name.toLowerCase());\r\n            let result = [];\r\n            curTable.columns.forEach((ccol, index) => {\r\n              try {\r\n                let cell = ccol[\"cells\"][rowIndex];\r\n                if (typeof cell == \"number\") {\r\n                  result.push(cell);\r\n                } else {\r\n                  this_.exec(cell, elements, curTable, index, rowIndex);\r\n                  result.push(cell[\"value\"] != undefined ? (cell as StiValueElement).value : cell);\r\n                }\r\n              } catch {\r\n                result.push(undefined);\r\n              }\r\n            });\r\n            return col != null ? result[col] : result;\r\n          } catch { }\r\n        };\r\n\r\n        let Cell = function (colIndex, rowIndex, tableName) {\r\n          try {\r\n            let curTable = tableName ? (this_.model.form.getElementByName(tableName) as StiTableElement) : table;\r\n            let ccol: StiColumnItem = this_.isNumber(colIndex)\r\n              ? curTable.columns[colIndex - 1]\r\n              : curTable.columns.find((c: StiColumnItem) => c.label == colIndex);\r\n            let curRowIndex = this_.isNumber(rowIndex)\r\n              ? rowIndex - 1\r\n              : curTable.rowLabels.findIndex((value) => value.toLowerCase() == rowIndex.toLowerCase());\r\n            let cell = ccol[\"cells\"][curRowIndex];\r\n            this_.exec(cell[\"value\"] != undefined ? cell : ccol, elements, curTable, colIndex, rowIndex);\r\n            return cell[\"value\"] != undefined ? (cell as StiValueElement).value : cell;\r\n          } catch { }\r\n        };\r\n\r\n        let regex = /(\\{.+?\\})/g;\r\n        let exp = element[\"expression\"].toString();\r\n        let exec;\r\n        let displayValue: string = exp;\r\n        while ((exec = regex.exec(exp)) !== null) {\r\n          let value = this.isSystemVariables(exec[0]) ? eval(this.replaceSystemVariables(exec[0])) : eval(exec[0]);\r\n          if (element instanceof StiRowLabel) {\r\n            value = value;\r\n          } else {\r\n            value = typeof value == \"function\" ? \"\" : value;\r\n            value = Number.isNaN(value) || value === undefined ? exec[0] : value;\r\n          }\r\n          if ((element as any) instanceof StiLabelColumnItem) {\r\n            (element as StiLabelColumnItem).cells[row] = value;\r\n          } else if ((element as any) instanceof StiRowLabel) {\r\n            (element as any).value = exec.input;\r\n          } else {\r\n            (element as any).value = value;\r\n          }\r\n\r\n          if (this_.isNumber(value) && !this_.isSystemVariables(exec[0])) {\r\n            let formattedElement = (element as any) instanceof StiLabelElement ? this_.model.form.settings : element;\r\n            value = this_.model.getFormattedValue(formattedElement as any as StiFormattedElement, value);\r\n          }\r\n          displayValue = displayValue.replace(exec[0], Number.isNaN(value) || value === undefined ? exec[0] : value);\r\n          if (\r\n            exec.index > 1 &&\r\n            !((element as any) instanceof StiLabelElement) &&\r\n            !((element as any) instanceof StiRowLabel)\r\n          ) {\r\n            if ((element as any) instanceof StiLabelColumnItem) {\r\n              (element as StiLabelColumnItem).cells[row] = displayValue;\r\n            } else {\r\n              (element as any).value = displayValue;\r\n            }\r\n          }\r\n        }\r\n\r\n        if ((element as any) instanceof StiLabelElement || (element as any) instanceof StiRowLabel) {\r\n          (element as any).displayValue = displayValue;\r\n        }\r\n      } catch {\r\n        this.resetValue(element, row, element[\"expression\"]);\r\n      }\r\n    } else {\r\n      this.resetValue(element, row, element[\"expression\"]);\r\n    }\r\n  }\r\n  public replaceSystemVariables(expressionString: string) {\r\n    let value = expressionString.replace(/\\s/g, \"\").toLowerCase();\r\n    let startIndex;\r\n    let slicedValue;\r\n    if (value.indexOf(\"line\") != -1) {\r\n      startIndex = value.indexOf(\"line\");\r\n    } else if (value.indexOf(\"today\") != -1) {\r\n      startIndex = value.indexOf(\"today\");\r\n    } else {\r\n      startIndex = value.indexOf(\"time\");\r\n    }\r\n    if (value.slice(startIndex, startIndex + 5) == \"today\") {\r\n      slicedValue = value.slice(startIndex, startIndex + 5);\r\n    } else {\r\n      slicedValue = value.slice(startIndex, startIndex + 4);\r\n    }\r\n    let valueForReplace = slicedValue.split();\r\n    valueForReplace.push(\"(\");\r\n    valueForReplace.push(\")\");\r\n    let resultString = valueForReplace.join().replace(/,/g, \"\");\r\n    resultString = resultString[0].toUpperCase() + resultString.slice(1);\r\n    return value.replace(slicedValue, resultString);\r\n  }\r\n  private resetValue(element: StiValueElement, row: number, expression: any) {\r\n    if ((element as any) instanceof StiLabelElement) {\r\n      (element as StiLabelElement).displayValue = undefined;\r\n      (element as StiLabelElement).value = null;\r\n    } else {\r\n      let value =\r\n        this.haveExpression(element as any) && expression?.toString() == parseFloat(expression).toString()\r\n          ? parseFloat(expression)\r\n          : expression?.toString() == parseFloat(expression).toString()\r\n            ? parseFloat(expression)\r\n            : expression;\r\n      if ((element as any) instanceof StiLabelColumnItem) {\r\n        (element as StiLabelColumnItem).cells[row] = value;\r\n      } else {\r\n        (element as any).value = value;\r\n      }\r\n    }\r\n  }\r\n\r\n  private isNumber(value: any): boolean {\r\n    return typeof value === \"number\" && !isNaN(value);\r\n  }\r\n\r\n  private haveExpression(element: StiValueElement): boolean {\r\n    let str = element[\"expression\"];\r\n    let regex = /(\\{.+?\\})/g;\r\n    let regex2 = /{.+?\\}/g;\r\n    return element instanceof StiLabelElement || element instanceof StiRowLabel\r\n      ? regex.test(str)\r\n      : (element instanceof StiTotalsFieldItem || element instanceof StiLabelColumnItem) && regex2.test(str);\r\n  }\r\n\r\n  public isSystemVariables(string: string): boolean {\r\n    let value = string.replace(/\\s/g, \"\");\r\n    return (\r\n      value.toLowerCase().indexOf(\"line\") != -1 ||\r\n      value.toLowerCase().indexOf(\"today\") != -1 ||\r\n      value.toLowerCase().indexOf(\"time\") != -1\r\n    );\r\n  }\r\n\r\n  private findElement(name: string): any {\r\n    let el;\r\n    this.model.form.pages.forEach((p) =>\r\n      p.allElements.forEach((e) => {\r\n        if (e.name == name) {\r\n          el = e;\r\n        }\r\n      })\r\n    );\r\n    return el;\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiLabelColumnItem } from \"../../../elements/table/columns/StiLabelColumnItem\";\r\nimport { StiExpressionService } from \"../../../services/sti-expression.service\";\r\n\r\n@Component({\r\n    selector: \"sti-table-label-component\",\r\n    template: `<div\r\n    class=\"cell\"\r\n    [style.text-align]=\"'inherit'\"\r\n    (mousedown)=\"model.canDrag = false\"\r\n    (mouseup)=\"model.canDrag = true\"\r\n  >\r\n    <span\r\n      [style]=\"object.font.htmlStyle()\"\r\n      [style.text-decoration]=\"'none'\"\r\n      [style.width]=\"'100%'\"\r\n      [style.border-color]=\"item.cellBorderColor.toHtmlColor()\"\r\n      [style.color]=\"item.cellForeColor.toHtmlColor()\"\r\n      [style.background-color]=\"item.cellBackColor.toHtmlColor()\"\r\n      [style.whiteSpace]=\"'nowrap'\"\r\n      >{{ cell }}</span\r\n    >\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .cell {\r\n        display: flex;\r\n        width: 100%;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTableLabelComponent implements OnInit {\r\n  @Input() item: StiLabelColumnItem;\r\n  @Input() index: number;\r\n  @Input() object: any;\r\n  @Input() disabled: boolean;\r\n  @Input() isClone: boolean = false;\r\n\r\n  public get cell() {\r\n    let value = this.expressionService.isSystemVariables(this.item.expression)\r\n      ? this.item.cells[this.index]\r\n      : this.model.getFormattedValue(this.item, this.item.cells[this.index]);\r\n    return `${this.item.prefix}${value != null && value != undefined ? value : \"\"}${this.item.suffix}`;\r\n  }\r\n  /* public set cell(value) {\r\n    this.item.cells[this.index] = value;\r\n  } */\r\n  constructor(public model: StiModelService, public expressionService: StiExpressionService) { }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\nimport { StiComboBoxColumnItem } from \"../.././../elements/table/columns/StiComboBoxColumnItem\";\r\nimport { StiColumnItem } from \"../../../elements/table/StiColumnItem\";\r\nimport { StiFormElement } from \"../../../elements/base/StiFormElement\";\r\nimport { Enum } from \"../../../system/Enum\";\r\nimport { StiHorizontalAlignment } from \"../../../system/enums\";\r\nimport { StiRadioButtonColumnItem } from \"../../../elements/table/columns/StiRadioButtonColumnItem\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiTableElement } from \"../../../elements/StiTableElement\";\r\n\r\n@Component({\r\n    selector: \"sti-table-column-component\",\r\n    template: `\r\n    @if (column && column.type == 'LabelColumn') {\r\n      <sti-table-label-component\r\n        [item]=\"column\"\r\n        [disabled]=\"element?.readOnly\"\r\n        [style.text-align]=\"getColumnAlignment(column)\"\r\n        [index]=\"index\"\r\n        [object]=\"element\"\r\n        [style.overflow]=\"'hidden'\"\r\n        [style.width]=\"'100%'\"\r\n      ></sti-table-label-component>\r\n    }\r\n    @if (column && column.type == 'TextBoxColumn') {\r\n      <sti-table-input-text-component\r\n        [item]=\"column\"\r\n        [disabled]=\"element?.readOnly\"\r\n        [index]=\"index\"\r\n        [object]=\"element\"\r\n        [style.overflow]=\"'hidden'\"\r\n        [style.width]=\"'100%'\"\r\n      ></sti-table-input-text-component>\r\n    }\r\n    @if (column && column.type == 'RadioButtonColumn') {\r\n      <sti-table-radio-button-component\r\n        [item]=\"column\"\r\n        [alignment]=\"getColumnAlignment(column)\"\r\n        [disabled]=\"element?.readOnly\"\r\n        [index]=\"index\"\r\n        [object]=\"element\"\r\n        (buttonClick)=\"changeState(column, index)\"\r\n        [style.width]=\"'100%'\"\r\n      ></sti-table-radio-button-component>\r\n    }\r\n    @if (column && column.type == 'NumberBoxColumn') {\r\n      <sti-number-component\r\n        [element]=\"column\"\r\n        [index]=\"index\"\r\n        [table]=\"element\"\r\n        [style.width]=\"'100%'\"\r\n        [style.overflow]=\"'hidden'\"\r\n      ></sti-number-component>\r\n    }\r\n    @if (column && column.type == 'ComboBoxColumn') {\r\n      <sti-table-combobox-component\r\n        [item]=\"column\"\r\n        [disabled]=\"element?.readOnly\"\r\n        [index]=\"index\"\r\n        [object]=\"element\"\r\n        [style.width]=\"'100%'\"\r\n        [style.overflow]=\"'hidden'\"\r\n      ></sti-table-combobox-component>\r\n    }\r\n    @if (column && column.type == 'CheckBoxColumn') {\r\n      <sti-table-checkbox-component\r\n        [item]=\"column\"\r\n        [disabled]=\"element?.readOnly\"\r\n        [object]=\"element\"\r\n        [alignment]=\"getColumnAlignment(column)\"\r\n        [index]=\"index\"\r\n        (buttonClick)=\"changeState(column, index)\"\r\n        [style.width]=\"'100%'\"\r\n      ></sti-table-checkbox-component>\r\n    }\r\n    `,\r\n    styles: [``],\r\n    standalone: false\r\n})\r\nexport class StiTableColumnComponent implements OnInit {\r\n  @Input() column: StiColumnItem;\r\n  @Input() index: number;\r\n  @Input() element: StiFormElement;\r\n\r\n  getColumnAlignment(column) {\r\n    return Enum.getName(StiHorizontalAlignment, column.cellAlignment);\r\n  }\r\n  public changeState(column, i) {\r\n    if (column instanceof StiRadioButtonColumnItem) {\r\n      if (this.element instanceof StiTableElement) {\r\n        this.element.columns.forEach((col) => {\r\n          if (col instanceof StiRadioButtonColumnItem && col != column) {\r\n            col.cells[i].isChecked = false;\r\n          }\r\n        });\r\n      }\r\n      if (!column.cells[i].isChecked) {\r\n        column.cells[i].isChecked = true;\r\n      }\r\n    } else {\r\n      column.cells[i].isChecked = !column.cells[i].isChecked;\r\n    }\r\n  }\r\n  constructor(private model: StiModelService) {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","import {\r\n  AfterContentChecked,\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiTableElement } from \"../../elements/StiTableElement\";\r\nimport { StiHorizontalAlignment, StiLabelAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\nimport { StiRadioButtonColumnItem } from \"../../elements/table/columns/StiRadioButtonColumnItem\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport Color from \"../../system/Color\";\r\nimport { StiPen } from \"../../properties/StiPen\";\r\nimport { StiDraggableService } from \"../../services/sti-draggable.service\";\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { StiColumnDraggableService } from \"../../services/sti-column-draggable.service\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\n\r\n@Component({\r\n  selector: \"sti-table-component\",\r\n  template: ` <sti-component\r\n      [element]=\"element\"\r\n      [isClone]=\"isClone\"\r\n      (mouseenter)=\"model.previewMode ? (isActive = true) : ''\"\r\n      (mouseleave)=\"model.previewMode ? (isActive = false) : ''\"\r\n      >\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"contentAlign\"\r\n          [editableContent]=\"element.label\"\r\n          [style.width]=\"width\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table\r\n        class=\"outer-table\"\r\n        [style.width]=\"'100%'\"\r\n        [style.height]=\"'max-content'\"\r\n        [style.margin-top.px]=\"element?.getTopMargin()\"\r\n        >\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              #label\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            <div class=\"sti-table\" #table>\r\n              <div [style.display]=\"'flex'\">\r\n                <table\r\n                  class=\"column-drop-area\"\r\n                  [style.background-color]=\"element?.backgroundColor.toHtmlColor()\"\r\n                  [style.align-self]=\"align\"\r\n                  >\r\n                  <thead>\r\n                    <tr #tableTr>\r\n                      @if (element?.showRowLabels) {\r\n                        <th\r\n                          [id]=\"0\"\r\n                          (mousemove)=\"columnDraggableService.fromTable ? (columnDraggableService.insertIndex = 0) : return\"\r\n                          [style.justify-content]=\"headerAlignment\"\r\n                          [style.color]=\"element?.tableHeaderColor.toHtmlColor()\"\r\n                          [style.background-color]=\"element?.tableHeaderBackgroundColor.toHtmlColor()\"\r\n                          [style.width.px]=\"!isClone ? element?.rowLabelsWidth : 0\"\r\n                      [style.max-height.px]=\"\r\n                        !isClone && !model.pdfPreviewMode && isInitialized && isOverMaxHeight()\r\n                          ? getMaxHeight()\r\n                          : 'auto'\r\n                      \"\r\n                          [style.border-top]=\"getBorder(element?.border.pen, element?.border.drawTop)\"\r\n                          [style.border-left]=\"getBorder(element?.border.pen, element?.border.drawLeft)\"\r\n                      [style.border-bottom]=\"\r\n                        getBorder(element?.rowHeadersBorder.pen, element?.rowHeadersBorder.drawTop)\r\n                      \"\r\n                      [style.border-right]=\"\r\n                        element.columns.length > 0 ? '' : getBorder(element?.border.pen, element?.border.drawRight)\r\n                      \"\r\n                          [style.padding]=\"'5px 0px 5px 5px'\"\r\n                          >\r\n                          <sti-editable-content-component\r\n                            [editableContent]=\"element\"\r\n                            [alignment]=\"element?.tableHeaderAlignment\"\r\n                            [isTableHeader]=\"true\"\r\n                            [style.width]=\"'100%'\"\r\n                            [hideEmpty]=\"false\"\r\n                            [active]=\"selected\"\r\n                          ></sti-editable-content-component>\r\n                          <sti-table-column-resizer\r\n                            [resizableItem]=\"element\"\r\n                            [element]=\"element\"\r\n                            [style.height]=\"'100%'\"\r\n                          ></sti-table-column-resizer>\r\n                        </th>\r\n                      }\r\n                      @for (column of element.columns; track $index; let idx = $index) {\r\n                        <th\r\n                          [id]=\"idx + 1\"\r\n                      (mousemove)=\"\r\n                        columnDraggableService.fromTable ? (columnDraggableService.insertIndex = idx + 1) : return\r\n                      \"\r\n                          class=\"drag-item sti-table-th\"\r\n                          (click)=\"model.showColumnPreview(idx)\"\r\n                          [style]=\"element.font.htmlStyle()\"\r\n                          [style.justify-content]=\"getColumnAlignment(column)\"\r\n                          (mousedown)=\"onHeaderClick($event, column)\"\r\n                          [style.color]=\"column?.headerForeColor.toHtmlColor()\"\r\n                          [style.background-color]=\"column?.headerBackColor.toHtmlColor()\"\r\n                          [style.width.px]=\"!isClone ? column?.width : 0\"\r\n                      [style.height.px]=\"\r\n                        isClone && !model.pdfPreviewMode ? element?.element?.nativeElement?.clientHeight : 'auto'\r\n                      \"\r\n                      [style.max-height.px]=\"\r\n                        !isClone && !model.pdfPreviewMode && isInitialized && isOverMaxHeight()\r\n                          ? getMaxHeight()\r\n                          : 'auto'\r\n                      \"\r\n                          [style.transition]=\"columnDraggableService.fromTable ? 'border-width 50ms linear' : ''\"\r\n                      [style.border-top]=\"\r\n                        getBorder(element?.columnHeadersBorder.pen, element?.columnHeadersBorder.drawTop) !=\r\n                        'transparent'\r\n                          ? getBorder(element?.columnHeadersBorder.pen, element?.columnHeadersBorder.drawTop)\r\n                          : getBorder(element?.border.pen, element?.border.drawTop)\r\n                      \"\r\n                      [style.border-bottom]=\"\r\n                        getBorder(element?.columnHeadersBorder.pen, element?.columnHeadersBorder.drawBottom)\r\n                      \"\r\n                      [style.border-right]=\"\r\n                        getBorder(\r\n                          element?.columnHeadersBorder.pen,\r\n                          element?.columnHeadersBorder.drawRight,\r\n                          columnDraggableService.parentElement == element &&\r\n                            columnDraggableService.fromTable &&\r\n                            columnDraggableService.insertIndex == idx + 1\r\n                            ? true\r\n                            : false\r\n                        ) != 'transparent'\r\n                          ? idx == element.columns.length - 1\r\n                            ? getBorder(\r\n                                element?.columnHeadersBorder.pen,\r\n                                element?.columnHeadersBorder.drawRight,\r\n                                columnDraggableService.parentElement == element &&\r\n                                  columnDraggableService.fromTable &&\r\n                                  columnDraggableService.insertIndex == idx + 1\r\n                                  ? true\r\n                                  : false\r\n                              )\r\n                            : getBorder(\r\n                                element?.gridLines.pen,\r\n                                element?.gridLines.drawVertical,\r\n                                columnDraggableService.parentElement == element &&\r\n                                  columnDraggableService.fromTable &&\r\n                                  columnDraggableService.insertIndex == idx + 1\r\n                                  ? true\r\n                                  : false\r\n                              )\r\n                          : idx == element.columns.length - 1\r\n                          ? getBorder(\r\n                              element?.border.pen,\r\n                              element?.border.drawRight,\r\n                              columnDraggableService.parentElement == element &&\r\n                                columnDraggableService.fromTable &&\r\n                                columnDraggableService.insertIndex == idx + 1\r\n                                ? true\r\n                                : false\r\n                            )\r\n                          : getBorder(\r\n                              element?.gridLines.pen,\r\n                              element?.gridLines.drawVertical,\r\n                              columnDraggableService.parentElement == element &&\r\n                                columnDraggableService.fromTable &&\r\n                                columnDraggableService.insertIndex == idx + 1\r\n                                ? true\r\n                                : false\r\n                            )\r\n                      \"\r\n                      [style.border-left]=\"\r\n                        idx == 0\r\n                          ? getBorder(\r\n                              element?.columnHeadersBorder.pen,\r\n                              element?.columnHeadersBorder.drawLeft,\r\n                              columnDraggableService.parentElement == element &&\r\n                                columnDraggableService.fromTable &&\r\n                                columnDraggableService.insertIndex == 0 &&\r\n                                idx == 0\r\n                                ? true\r\n                                : false\r\n                            )\r\n                          : ''\r\n                      \"\r\n                      [style.border-left-width]=\"\r\n                        columnDraggableService.parentElement == element &&\r\n                        columnDraggableService.fromTable &&\r\n                        columnDraggableService.insertIndex == 0 &&\r\n                        idx == 0\r\n                          ? getBorderWidth(element?.columnHeadersBorder.pen, true)\r\n                          : getBorderWidth(element?.columnHeadersBorder.pen, false)\r\n                      \"\r\n                      [style.border-right-width]=\"\r\n                        idx != element.columns.length - 1\r\n                          ? columnDraggableService.parentElement == element &&\r\n                            columnDraggableService.fromTable &&\r\n                            columnDraggableService.insertIndex == idx + 1\r\n                            ? getBorderWidth(element?.gridLines.pen, true)\r\n                            : getBorderWidth(element?.gridLines.pen, false)\r\n                          : element?.columnHeadersBorder.drawRight\r\n                          ? columnDraggableService.parentElement == element &&\r\n                            columnDraggableService.fromTable &&\r\n                            columnDraggableService.insertIndex == idx + 1\r\n                            ? getBorderWidth(element?.columnHeadersBorder.pen, true)\r\n                            : getBorderWidth(element?.columnHeadersBorder.pen, false)\r\n                          : columnDraggableService.parentElement == element &&\r\n                            columnDraggableService.fromTable &&\r\n                            columnDraggableService.insertIndex == idx + 1\r\n                          ? getBorderWidth(element?.border.pen, true)\r\n                          : getBorderWidth(element?.border.pen, false)\r\n                      \"\r\n                          [style.padding]=\"'5px 0px 5px 5px'\"\r\n                          >\r\n                          <sti-editable-content-component\r\n                            [eParent]=\"element\"\r\n                            [editableContent]=\"column\"\r\n                            [alignment]=\"column?.headerAlignment\"\r\n                            [isTableHeader]=\"true\"\r\n                            [style.width]=\"'100%'\"\r\n                            [hideEmpty]=\"false\"\r\n                            [active]=\"selected\"\r\n                          ></sti-editable-content-component>\r\n                          @if (idx != element.columns.length - 1) {\r\n                            <sti-table-column-resizer\r\n                              [resizableItem]=\"column\"\r\n                              [element]=\"element\"\r\n                              [index]=\"idx\"\r\n                              [style.height]=\"'100%'\"\r\n                            ></sti-table-column-resizer>\r\n                          }\r\n                        </th>\r\n                      }\r\n                    </tr>\r\n                  </thead>\r\n                  <tbody #tBody>\r\n                    @for (rowLabel of element.rowLabelsContentEditable; track $index; let i = $index) {\r\n                      <tr #tableRow>\r\n                        @if (element?.showRowLabels) {\r\n                          <td\r\n                            [attr.data-label]=\"element.tableHeaderText\"\r\n                            [id]=\"0\"\r\n                            (mousemove)=\"columnDraggableService.fromTable ? (columnDraggableService.insertIndex = 0) : return\"\r\n                            [style]=\"element.font.htmlStyle()\"\r\n                            [style.justify-content]=\"rowAlignment\"\r\n                            [style.color]=\"getColumnForeColor(rowLabel, i)\"\r\n                            [style.width.px]=\"!isClone ? element?.rowLabelsWidth : 0\"\r\n                            [style.background-color]=\"getColumnBackColor(rowLabel, i)\"\r\n                      [style.border-left]=\"\r\n                        getBorder(element?.rowHeadersBorder.pen, element?.rowHeadersBorder.drawLeft) != 'transparent'\r\n                          ? getBorder(element?.rowHeadersBorder.pen, element?.rowHeadersBorder.drawLeft)\r\n                          : getBorder(element?.border.pen, element?.border.drawLeft)\r\n                      \"\r\n                      [style.border-bottom]=\"\r\n                        getBorder(element?.rowHeadersBorder.pen, element?.rowHeadersBorder.drawBottom) != 'transparent'\r\n                          ? i == element.rowLabels.length - 1\r\n                            ? getBorder(element?.rowHeadersBorder.pen, element?.rowHeadersBorder.drawBottom)\r\n                            : getBorder(element?.gridLines.pen, element?.gridLines.drawHorizontal)\r\n                          : i == element.rowLabels.length - 1\r\n                          ? getBorder(element?.border.pen, element?.border.drawBottom)\r\n                          : getBorder(element?.gridLines.pen, element?.gridLines.drawHorizontal)\r\n                      \"\r\n                      [style.border-right]=\"\r\n                        element.columns.length > 0\r\n                          ? ''\r\n                          : getBorder(element?.rowHeadersBorder.pen, element?.rowHeadersBorder.drawRight) !=\r\n                            'transparent'\r\n                          ? getBorder(element?.rowHeadersBorder.pen, element?.rowHeadersBorder.drawRight)\r\n                          : getBorder(element?.border.pen, element?.border.drawRight)\r\n                      \"\r\n                            >\r\n                            <sti-editable-content-component\r\n                              [eParent]=\"element\"\r\n                              [editableContent]=\"rowLabel\"\r\n                              [displayContent]=\"rowLabel?.displayValue\"\r\n                              [alignment]=\"element?.rowLabelsHorizontalAlignment\"\r\n                              [style.width]=\"'100%'\"\r\n                              [hideEmpty]=\"false\"\r\n                              [active]=\"selected\"\r\n                            ></sti-editable-content-component>\r\n                          </td>\r\n                        }\r\n                        @for (column of element.columns; track $index; let ind = $index) {\r\n                          <td\r\n                            [attr.data-label]=\"column.label\"\r\n                            [id]=\"ind + 1\"\r\n                            (mousedown)=\"updatePropertyGrid(column, $event)\"\r\n                      (mousemove)=\"\r\n                        columnDraggableService.fromTable ? (columnDraggableService.insertIndex = ind + 1) : return\r\n                      \"\r\n                            class=\"drag-item sti-table-td\"\r\n                            [style.justify-content]=\"getColumnAlignment(column)\"\r\n                            [style.color]=\"getColumnForeColor(column, i)\"\r\n                            [style.background-color]=\"getColumnBackColor(column, i)\"\r\n                      [style.width.px]=\"\r\n                        !isClone ? (ind == element.columns.length - 1 ? column?.width + 0.04 : column?.width) : 0\r\n                      \"\r\n                            [style.transition]=\"columnDraggableService.fromTable ? 'border-width 50ms linear' : ''\"\r\n                      [style.border-left]=\"\r\n                        ind == 0\r\n                          ? getBorder(\r\n                              element?.rowHeadersBorder.pen,\r\n                              element?.rowHeadersBorder.drawRight,\r\n                              columnDraggableService.parentElement == element &&\r\n                                columnDraggableService.fromTable &&\r\n                                columnDraggableService.insertIndex == 0 &&\r\n                                ind == 0\r\n                                ? true\r\n                                : false\r\n                            )\r\n                          : ''\r\n                      \"\r\n                      [style.border-bottom]=\"\r\n                        i == element.rowLabels.length - 1\r\n                          ? getBorder(element?.border.pen, element?.border.drawBottom)\r\n                          : getBorder(element?.gridLines.pen, element?.gridLines.drawHorizontal)\r\n                      \"\r\n                      [style.border-right]=\"\r\n                        ind == element.columns.length - 1\r\n                          ? getBorder(\r\n                              element?.border.pen,\r\n                              element?.border.drawRight,\r\n                              columnDraggableService.parentElement == element &&\r\n                                columnDraggableService.fromTable &&\r\n                                columnDraggableService.insertIndex == ind + 1\r\n                                ? true\r\n                                : false\r\n                            )\r\n                          : getBorder(\r\n                              element?.gridLines.pen,\r\n                              element?.gridLines.drawVertical,\r\n                              columnDraggableService.parentElement == element &&\r\n                                columnDraggableService.fromTable &&\r\n                                columnDraggableService.insertIndex == ind + 1\r\n                                ? true\r\n                                : false\r\n                            )\r\n                      \"\r\n                      [style.border-left-width]=\"\r\n                        columnDraggableService.parentElement == element &&\r\n                        columnDraggableService.fromTable &&\r\n                        columnDraggableService.insertIndex == 0 &&\r\n                        ind == 0\r\n                          ? getBorderWidth(element?.rowHeadersBorder.pen, true)\r\n                          : getBorderWidth(element?.rowHeadersBorder.pen, false)\r\n                      \"\r\n                      [style.border-right-width]=\"\r\n                        ind != element.columns.length - 1\r\n                          ? columnDraggableService.parentElement == element &&\r\n                            columnDraggableService.fromTable &&\r\n                            columnDraggableService.insertIndex == ind + 1\r\n                            ? getBorderWidth(element?.gridLines.pen, true)\r\n                            : getBorderWidth(element?.gridLines.pen, false)\r\n                          : element?.columnHeadersBorder.drawRight\r\n                          ? columnDraggableService.parentElement == element &&\r\n                            columnDraggableService.fromTable &&\r\n                            columnDraggableService.insertIndex == ind + 1\r\n                            ? getBorderWidth(element?.border.pen, true)\r\n                            : getBorderWidth(element?.border.pen, false)\r\n                          : columnDraggableService.parentElement == element &&\r\n                            columnDraggableService.fromTable &&\r\n                            columnDraggableService.insertIndex == ind + 1\r\n                          ? getBorderWidth(element?.border.pen, true)\r\n                          : getBorderWidth(element?.border.pen, false)\r\n                      \"\r\n                            >\r\n                            <sti-table-column-component\r\n                              [column]=\"column\"\r\n                              [index]=\"i\"\r\n                              [element]=\"element\"\r\n                              [style.width]=\"'100%'\"\r\n                            ></sti-table-column-component>\r\n                          </td>\r\n                        }\r\n                      </tr>\r\n                    }\r\n                  </tbody>\r\n                </table>\r\n                @if (\r\n                  element == model.selectedComponent?.element &&\r\n                  model.draggingElement != element &&\r\n                  !model.previewMode\r\n                  ) {\r\n                  <div\r\n                    class=\"right\"\r\n                    >\r\n                    <div class=\"right-control-panel\">\r\n                      <div\r\n                        class=\"add control-button\"\r\n                        [style.margin-bottom.px]=\"5\"\r\n                        [style.background-color]=\"getPageColor()\"\r\n                        (click)=\"addColumn()\"\r\n                        >\r\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n                          <rect class=\"plus\" width=\"16\" height=\"16\" [attr.fill]=\"getPageColor()\" />\r\n                          <path\r\n                            d=\"M11.5656 8.905H8.97358V11.5656H7.16329V8.905H4.57129V7.23186H7.16329V4.57129H8.97358V7.23186H11.5656V8.905Z\"\r\n                            fill=\"#898989\"\r\n                            />\r\n                          </svg>\r\n                        </div>\r\n                        <div\r\n                          class=\"delete control-button {{ canDeleteColumn() ? '' : 'disabled' }}\"\r\n                          [style.background-color]=\"getPageColor()\"\r\n                          (click)=\"deleteColumn()\"\r\n                          >\r\n                          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n                            <path\r\n                              d=\"M6 8H8H10\"\r\n                              stroke=\"#898989\"\r\n                              stroke-width=\"2\"\r\n                              stroke-linecap=\"square\"\r\n                              stroke-linejoin=\"round\"\r\n                              />\r\n                            </svg>\r\n                          </div>\r\n                        </div>\r\n                      </div>\r\n                    }\r\n                  </div>\r\n                  @if (\r\n                    (element == model.selectedComponent?.element &&\r\n                    model.draggingElement != element &&\r\n                    !model.previewMode) ||\r\n                    (model.previewMode && !element.readOnly && element.dynamicRows && isActive)\r\n                    ) {\r\n                    <div\r\n                      class=\"bottom\"\r\n                      >\r\n                      <div class=\"bottom-control-panel\">\r\n                        <div\r\n                          class=\"add control-button {{ canAddRow ? '' : 'disabled' }}\"\r\n                          [style.margin-right.px]=\"5\"\r\n                          [style.background-color]=\"getPageColor()\"\r\n                          (click)=\"addRow()\"\r\n                          >\r\n                          <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n                            <rect class=\"plus\" width=\"16\" height=\"16\" [attr.fill]=\"getPageColor()\" />\r\n                            <path\r\n                              d=\"M11.5656 8.905H8.97358V11.5656H7.16329V8.905H4.57129V7.23186H7.16329V4.57129H8.97358V7.23186H11.5656V8.905Z\"\r\n                              fill=\"#898989\"\r\n                              />\r\n                            </svg>\r\n                          </div>\r\n                          <div\r\n                            class=\"delete control-button {{ canDeleteRow ? '' : 'disabled' }}\"\r\n                            [style.background-color]=\"getPageColor()\"\r\n                            (click)=\"deleteRow()\"\r\n                            >\r\n                            <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n                              <path\r\n                                d=\"M6 8H8H10\"\r\n                                stroke=\"#898989\"\r\n                                stroke-width=\"2\"\r\n                                stroke-linecap=\"square\"\r\n                                stroke-linejoin=\"round\"\r\n                                />\r\n                              </svg>\r\n                            </div>\r\n                          </div>\r\n                        </div>\r\n                      }\r\n                    </div>\r\n                    @if (element?.useTotals) {\r\n                      <div class=\"totals\" #totals>\r\n                        <div\r\n                          class=\"totals-header\"\r\n                          [style.align-items]=\"totalVerticalAlignment\"\r\n                          [style.justify-content]=\"totalHorizontalAlignment\"\r\n                          >\r\n                          <sti-editable-content-component\r\n                            [editableContent]=\"element.totalsRowHeaderEditableContent\"\r\n                            [hideEmpty]=\"false\"\r\n                            [active]=\"selected\"\r\n                            [isTableTotalHeader]=\"true\"\r\n                          ></sti-editable-content-component>\r\n                        </div>\r\n                        <div class=\"totals-fields\">\r\n                          <sti-table-totals-field-component\r\n                            [fields]=\"element.totalsFields\"\r\n                            [object]=\"element\"\r\n                          ></sti-table-totals-field-component>\r\n                        </div>\r\n                      </div>\r\n                    }\r\n                  </td>\r\n                </tr>\r\n                @if (element?.description.value?.length > 0) {\r\n                  <tr #description>\r\n                    @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n                      <td></td>\r\n                    }\r\n                    <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n                      @if (element?.description.value?.length > 0) {\r\n                        <sti-editable-content-component\r\n                          [editableContent]=\"element.description\"\r\n                          >\r\n                        </sti-editable-content-component>\r\n                      }\r\n                    </td>\r\n                  </tr>\r\n                }\r\n              </table>\r\n            </sti-component>`,\r\n  styles: [\r\n    `\r\n      .outer-table table {\r\n        border-spacing: 0;\r\n      }\r\n      .outer-table tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .outer-table td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .add {\r\n        border-radius: 3px;\r\n        background-color: transparent;\r\n        display: flex;\r\n        border: 1px solid lightGray;\r\n        justify-content: center;\r\n        align-items: center;\r\n        z-index: 100;\r\n      }\r\n      .disabled {\r\n        opacity: 0.5;\r\n        pointer-events: none;\r\n      }\r\n      .right {\r\n        width: 0px;\r\n        background-color: transparent;\r\n        position: relative;\r\n      }\r\n      .right-control-panel {\r\n        height: 55px;\r\n        width: 18px;\r\n        left: 3px;\r\n        top: calc(50% - 22.5px);\r\n        position: absolute;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .right-control-panel .control-button {\r\n        height: 25px;\r\n      }\r\n      .control-button {\r\n        border-radius: 3px;\r\n        background-color: transparent;\r\n        display: flex;\r\n        border: 1px solid lightGray;\r\n        justify-content: center;\r\n        align-items: center;\r\n        z-index: 100;\r\n      }\r\n      .control-button:hover {\r\n        background-color: lightgray !important;\r\n        cursor: default;\r\n      }\r\n      .control-button:hover .plus {\r\n        fill: lightgray !important;\r\n        cursor: default;\r\n      }\r\n      .bottom-control-panel {\r\n        height: 18px;\r\n        width: 55px;\r\n        top: 3px;\r\n        left: calc(50% - 22.5px);\r\n        position: absolute;\r\n        display: flex;\r\n      }\r\n      .bottom-control-panel .control-button {\r\n        width: 25px;\r\n      }\r\n      .bottom {\r\n        width: calc(100% - 5px);\r\n        height: 0px;\r\n        background-color: transparent;\r\n        position: relative;\r\n      }\r\n      .table-content {\r\n        min-width: 260px;\r\n        width: 100%;\r\n        display: inline-block;\r\n        flex-direction: column;\r\n        flex: 1;\r\n      }\r\n      table,\r\n      th,\r\n      td {\r\n        border-collapse: collapse;\r\n      }\r\n      th {\r\n        position: relative;\r\n      }\r\n      .sti-table th,\r\n      .sti-table td {\r\n        display: flex;\r\n        /* flex: 1; */\r\n        flex-direction: row;\r\n        align-items: center;\r\n        overflow: hidden;\r\n        padding: 4px;\r\n        height: auto;\r\n      }\r\n      .sti-table table {\r\n        width: 100%;\r\n        margin: 0;\r\n        padding: 0;\r\n        display: inline-table;\r\n        table-layout: auto;\r\n        border-collapse: collapse;\r\n        border-spacing: 0;\r\n        overflow: hidden;\r\n      }\r\n      .sti-table th {\r\n        padding: 3px;\r\n      }\r\n\r\n      .sti-table tr {\r\n        display: flex;\r\n        flex-direction: row;\r\n        flex: 1;\r\n      }\r\n      .totals {\r\n        width: 100%;\r\n        display: flex;\r\n        min-height: 5px;\r\n        margin-top: 5px;\r\n        overflow: hidden;\r\n      }\r\n      .totals-header {\r\n        display: flex;\r\n        flex: 1;\r\n        padding: 4px 0px;\r\n      }\r\n      .field {\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiTableComponent implements OnInit, AfterViewInit, OnDestroy, AfterContentChecked {\r\n  @Input() element: StiTableElement;\r\n  @Input() isClone: boolean = false;\r\n  public minWidth = 40;\r\n  public isDrag: boolean = false;\r\n  public canDrag: boolean = false;\r\n  public draggableItemIndex: number;\r\n  public mouseDownX: number;\r\n  public mouseDownY: number;\r\n  public isInitialized: boolean = false;\r\n  public isActive: boolean = false;\r\n\r\n  private _canAddRow: boolean = false;\r\n  private _canDeleteRow: boolean = false;\r\n  @ViewChild(\"tableTr\") tableTr: ElementRef;\r\n  @ViewChild(\"tBody\") tBody: ElementRef;\r\n  @ViewChild(\"totals\") totals: ElementRef;\r\n  @ViewChild(\"table\") table: ElementRef;\r\n  @ViewChild(\"tableRow\") tableRow: ElementRef;\r\n  @ViewChild(\"description\") componentDescription: ElementRef;\r\n  @ViewChild(\"label\") componentLabel: ElementRef;\r\n\r\n  innerMargin = 5;\r\n  public get selected(): boolean {\r\n    return this.model.selectedComponent?.element == this.element;\r\n  }\r\n  public get canAddRow(): boolean {\r\n    return this._canAddRow;\r\n  }\r\n  public set canAddRow(value: boolean) {\r\n    let oldValue = this._canAddRow;\r\n    if (oldValue != value) {\r\n      this._canAddRow = value;\r\n      this.cdr.detectChanges();\r\n    }\r\n  }\r\n  public get canDeleteRow(): boolean {\r\n    return this._canDeleteRow;\r\n  }\r\n  public set canDeleteRow(value: boolean) {\r\n    let oldValue = this._canDeleteRow;\r\n    if (oldValue != value) {\r\n      this._canDeleteRow = value;\r\n      this.cdr.detectChanges();\r\n    }\r\n  }\r\n  public checkAbilityToAddRow() {\r\n    if (this.isInitialized) {\r\n      let tableRect = this.model.getPositionRelativeToForm(this.table?.nativeElement);\r\n      let totalsRect = this.model.getPositionRelativeToForm(this.totals?.nativeElement);\r\n      let tableRowRect = this.model.getPositionRelativeToForm(this.tableRow?.nativeElement);\r\n      let componentLabelRect = this.model.getPositionRelativeToForm(this.componentLabel?.nativeElement);\r\n      let componentDescriptionRect = this.model.getPositionRelativeToForm(this.componentDescription?.nativeElement);\r\n\r\n      if (this.model.previewMode) {\r\n        let componentInnerHeight = this.element.height - this.element.padding.top - this.element.padding.bottom;\r\n        this.canAddRow =\r\n          componentInnerHeight -\r\n          (this.element.label.value && this.element.label.alignment == StiLabelAlignment.Top\r\n            ? componentLabelRect?.height\r\n            : 0) -\r\n          (this.element.description.value ? componentDescriptionRect?.height : 0) -\r\n          (this.element.useTotals ? totalsRect?.height : 0) -\r\n          tableRect?.height >\r\n          tableRowRect?.height;\r\n      } else {\r\n        let parentContainer = this.model.getElementPage(this.element) ?? this.model.getElementPanel(this.element);\r\n        this.canAddRow =\r\n          parentContainer.contentAreaHeight -\r\n          (this.element.label.value && this.element.label.alignment == StiLabelAlignment.Top\r\n            ? componentLabelRect?.height\r\n            : 0) -\r\n          (this.element.description.value ? componentDescriptionRect?.height : 0) -\r\n          (this.element.useTotals ? totalsRect?.height : 0) -\r\n          tableRect?.height >\r\n          tableRowRect?.height;\r\n      }\r\n    } else {\r\n      this.canAddRow = false;\r\n    }\r\n  }\r\n  public getMaxHeight(): number {\r\n    if (!this.isInitialized) {\r\n      return 0;\r\n    }\r\n    let tBodyRec = this.tBody ? this.model.getPositionRelativeToForm(this.tBody?.nativeElement) : 0;\r\n    let totalsRec = this.totals ? this.model.getPositionRelativeToForm(this.totals?.nativeElement) : 0;\r\n    return Number(\r\n      (\r\n        this.element.geometry.bottom -\r\n        this.element.padding.bottom -\r\n        this.element.padding.top -\r\n        this.getSizeWithZoom(tBodyRec instanceof DOMRect ? tBodyRec.height : 0) -\r\n        this.getSizeWithZoom(totalsRec instanceof DOMRect ? totalsRec.height : 0) -\r\n        this.innerMargin\r\n      ).toFixed(2)\r\n    );\r\n  }\r\n  public checkAbilityToDeleteRow() {\r\n    this.canDeleteRow = this.element.rowLabels.length > 1;\r\n  }\r\n  public canDeleteColumn(): boolean {\r\n    return this.element.columns.length > 0 && this.isInitialized ? true : false;\r\n  }\r\n  public getSizeWithZoom(size: number): number {\r\n    return size / this.model.zoom;\r\n  }\r\n  public isOverMaxHeight() {\r\n    if (!this.isInitialized) {\r\n      return false;\r\n    }\r\n    let parentContainer = this.model.getElementPage(this.element) ?? this.model.getElementPanel(this.element);\r\n    return this.element.height == parentContainer.contentAreaHeight - this.element.y;\r\n  }\r\n  public updatePropertyGrid(column, event) {\r\n    if (!this.element.showColumnsEditor) {\r\n      this.element.showColumnsEditor = true;\r\n      this.model.needToRefresh.next(true);\r\n    }\r\n    setTimeout(() => {\r\n      let index = this.element.columns.findIndex((item) => item == column);\r\n      if (\r\n        this.model.currentContentEditableItemIndex != index ||\r\n        this.model.previousSelectedComponent?.element != this.element\r\n      ) {\r\n        this.model.currentContentEditableItem.next(index);\r\n        this.model.currentContentEditableItemIndex = index;\r\n      }\r\n    }, 0);\r\n  }\r\n  public get totalsWidth() {\r\n    return this.element?.label?.alignment == StiLabelAlignment.Top\r\n      ? this.element?.width - this.element.padding.left - this.element.padding.right\r\n      : this.element?.width - this.element?.label?.width - this.element.padding.left - this.element.padding.right;\r\n  }\r\n  public getPageColor() {\r\n    if (this.model.selectedComponent.element == this.element) {\r\n      if (this.model.getElementPage(this.element)) {\r\n        return this.model.getElementPage(this.element)?.backgroundColor?.toHtmlColor();\r\n      } else {\r\n        let currentElement = this.model.getElementPanel(this.element);\r\n        if (this.model.getElementPage(currentElement)) {\r\n          return this.model.getElementPage(currentElement)?.backgroundColor?.toHtmlColor();\r\n        } else {\r\n          while (this.model.getElementPage(currentElement)) {\r\n            currentElement = this.model.getElementPanel(currentElement);\r\n          }\r\n          return this.model.getElementPage(currentElement)?.backgroundColor?.toHtmlColor();\r\n        }\r\n      }\r\n    } else {\r\n      return \"transparent\";\r\n    }\r\n  }\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  public get contentAlign() {\r\n    return this.element[\"label\"][\"alignment\"] == StiLabelAlignment.Right ? \"flex-end\" : \"start\";\r\n  }\r\n  public get width() {\r\n    if (this.element.label.alignment == StiLabelAlignment.Top) {\r\n      return \"100%\";\r\n    } else {\r\n      return this.element.label.width + \"px\";\r\n    }\r\n  }\r\n  public get margin() {\r\n    return this.element[\"label\"][\"alignment\"] == StiLabelAlignment.Top && this.element.label.value ? \"10\" : \"0\";\r\n  }\r\n  public get headerAlignment() {\r\n    return Enum.getName(StiHorizontalAlignment, this.element.tableHeaderAlignment);\r\n  }\r\n  public get rowAlignment() {\r\n    return Enum.getName(StiHorizontalAlignment, this.element.rowLabelsHorizontalAlignment);\r\n  }\r\n  public get totalVerticalAlignment() {\r\n    if (this.element.totalsRowHeaderVerticalAlignment == StiVerticalAlignment.Top) {\r\n      return \"flex-start\";\r\n    } else if (this.element.totalsRowHeaderVerticalAlignment == StiVerticalAlignment.Bottom) {\r\n      return \"flex-end\";\r\n    } else {\r\n      return \"center\";\r\n    }\r\n  }\r\n  public get totalHorizontalAlignment() {\r\n    if (this.element.totalsRowHeaderHorizontalAlignment == StiHorizontalAlignment.Left) {\r\n      return \"flex-start\";\r\n    } else if (this.element.totalsRowHeaderHorizontalAlignment == StiHorizontalAlignment.Right) {\r\n      return \"flex-end\";\r\n    } else {\r\n      return \"center\";\r\n    }\r\n  }\r\n\r\n  onHeaderClick(event: MouseEvent, item: any) {\r\n    if (this.model.previewMode) {\r\n      return;\r\n    }\r\n    let form = document.querySelector(\"stimulsoft-forms\");\r\n    form?.classList.add(\"unselectable\");\r\n    this.model.canDrag = false;\r\n    if (this.editableContentService.editableContent != item) {\r\n      this.columnDraggableService.onHeaderClick(event, item, this.element.columns, true, this.element);\r\n    }\r\n  }\r\n\r\n  changeStyle(elem) { }\r\n  public get tableBackColor() {\r\n    return this.element?.backgroundColor.toHtmlColor()\r\n      ? this.element.backgroundColor.toHtmlColor()\r\n      : Color.transparent().toHtmlColor();\r\n  }\r\n\r\n  addColumn() {\r\n    this.element.addColumnLikeLast();\r\n    this.model.showColumnPreview(this.element.columns.length - 1);\r\n  }\r\n  addRow() {\r\n    this.element.addRow();\r\n  }\r\n  deleteColumn() {\r\n    this.element.deleteLastColumn();\r\n  }\r\n  deleteRow() {\r\n    this.element.deleteLastRow();\r\n  }\r\n  getColumnAlignment(column) {\r\n    return Enum.getName(StiHorizontalAlignment, column.cellAlignment);\r\n  }\r\n\r\n  public getBorder(pen: StiPen, isVisible: boolean, isDragPreview: boolean = false): string {\r\n    return isVisible || isDragPreview ? pen.toHtmlBorder() : \"transparent\";\r\n  }\r\n  public getBorderWidth(pen: StiPen, isDragPreview: boolean) {\r\n    let res = isDragPreview ? Number(pen.width) + 2 : pen.width;\r\n    return res + \"px\";\r\n  }\r\n\r\n  public getColumnBackColor(column, index) {\r\n    if (this.element.alternateRowColors) {\r\n      if (index % 2 === 0) {\r\n        return this.element.oddRowsStyle.toHtmlColor();\r\n      } else {\r\n        return this.element.evenRowsStyle.toHtmlColor();\r\n      }\r\n    } else {\r\n      return column.backgroundColor?.toHtmlColor() ?? column.eBackgroundColor.toHtmlColor();\r\n    }\r\n  }\r\n\r\n  public getColumnForeColor(column, index) {\r\n    if (this.element.alternateRowColors) {\r\n      if (index % 2 === 0) {\r\n        return this.element.oddRowsTextColor.toHtmlColor();\r\n      } else {\r\n        return this.element.evenRowsTextColor.toHtmlColor();\r\n      }\r\n    } else {\r\n      return column.cellForeColor?.toHtmlColor() ?? column.eColor.toHtmlColor();\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public draggableService: StiDraggableService,\r\n    public columnDraggableService: StiColumnDraggableService,\r\n    public editableContentService: StiEditableContentService,\r\n    private cdr: ChangeDetectorRef,\r\n    public mouseService?: StiMouseService\r\n  ) { }\r\n  ngAfterContentChecked(): void {\r\n    if (\r\n      !this.model.draggingElement &&\r\n      !this.isClone &&\r\n      (this.model?.selectedComponent?.element == this.element || this.isActive)\r\n    ) {\r\n      this.checkAbilityToAddRow();\r\n      this.checkAbilityToDeleteRow();\r\n    }\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.isInitialized = false;\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.element && !this.isClone) {\r\n      this.element.element = this.tableTr;\r\n      if (this.element != this.model.draggingElement) {\r\n        setTimeout(() => {\r\n          this.isInitialized = true;\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  public changeState(column, i) {\r\n    if (column instanceof StiRadioButtonColumnItem) {\r\n      column.cells.forEach((cell) => {\r\n        cell.isChecked = false;\r\n      });\r\n    }\r\n    column.cells[i].isChecked = !column.cells[i].isChecked;\r\n  }\r\n}\r\n","import { StiBorder } from \"./StiBorder\";\r\n\r\nexport class StiBorderArea {\r\n  constructor() {}\r\n  top: number;\r\n  left: number;\r\n  width: number;\r\n  height: number;\r\n  border: StiBorder;\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiImageElement } from \"../../elements/StiImageElement\";\r\nimport { StiLabelAlignment } from \"../../system/enums\";\r\nimport { StiBorderArea } from \"../../properties/StiBorderArea\";\r\n\r\n@Component({\r\n    selector: \"sti-image-component\",\r\n    template: ` <sti-component [element]=\"element\" [borderArea]=\"borderArea\" [isClone]=\"isClone\" class=\"sti-image\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [required]=\"element.required\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'100%'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\" [style.height]=\"'100%'\">\r\n            <div\r\n              #ref\r\n              (dblclick)=\"!model.previewMode ? inputFile.click() : ''\"\r\n              (click)=\"openLink()\"\r\n              class=\"image\"\r\n              [style.align-self]=\"'center'\"\r\n              [style.width]=\"'100%'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.min-width.px]=\"isClone ? 30 : 0\"\r\n              [style.min-height.px]=\"isClone ? 30 : 0\"\r\n              [style.background-image]=\"image\"\r\n              [style.background-position]=\"element.preserveAspectRatio ? '' : 'center'\"\r\n              [style.background-size]=\"backgroundSize\"\r\n              [style.background-repeat]=\"image ? 'no-repeat' : ''\"\r\n              [stiTooltip]=\"element?.tooltip\"\r\n              tooltipPosition=\"bottom\"\r\n              showDelay=\"500\"\r\n              [style.cursor]=\"element.hyperlink.length > 0 ? 'pointer' : model.previewMode ? 'default' : 'move'\"\r\n            ></div>\r\n            <input\r\n              type=\"file\"\r\n              [style.display]=\"'none'\"\r\n              accept=\".jpg, .jpeg, .png\"\r\n              (change)=\"onFileSelected($event.target)\"\r\n              #inputFile\r\n              />\r\n            </td>\r\n          </tr>\r\n          @if (element?.description.value?.length > 0) {\r\n            <tr>\r\n              @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n                <td></td>\r\n              }\r\n              <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n                @if (element?.description.value?.length > 0) {\r\n                  <sti-editable-content-component\r\n                    [editableContent]=\"element.description\"\r\n                    >\r\n                  </sti-editable-content-component>\r\n                }\r\n              </td>\r\n            </tr>\r\n          }\r\n        </table>\r\n      </sti-component>`,\r\n    styles: [\r\n        `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .sti-image .image {\r\n        position: relative;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiImageComponent implements OnInit, AfterViewInit {\r\n  public sigPadElement;\r\n  @Input() element: StiImageElement;\r\n  @Input() isClone: boolean = false;\r\n  @ViewChild(\"ref\") ref: ElementRef;\r\n\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  get image() {\r\n    return this.element.image ? \"url(\" + this.element.image + \")\" : null;\r\n  }\r\n  get imageWidth() {\r\n    if (this.isClone) {\r\n      return 0;\r\n    } else {\r\n      if (this.element[\"label\"][\"alignment\"] != StiLabelAlignment.Top && this.element[\"label\"][\"value\"]) {\r\n        return this.element.width - this.element.label.width - this.element.padding.right - this.element.padding.left;\r\n      } else {\r\n        return this.element.width - this.element.padding.right - this.element.padding.left /*borderWidth */;\r\n      }\r\n    }\r\n  }\r\n  get imageHeight() {\r\n    return this.element.canvasHeight;\r\n  }\r\n  public get borderArea() {\r\n    if (!this.isClone) {\r\n      let borderArea = new StiBorderArea();\r\n      borderArea.top =\r\n        this.ref?.nativeElement?.offsetTop -\r\n        (this.element.label.alignment != StiLabelAlignment.Top ? this.element.padding.top : 0);\r\n      borderArea.left = this.ref?.nativeElement?.offsetLeft;\r\n      borderArea.width = this.ref?.nativeElement?.offsetWidth - this.element.padding.left - this.element.padding.right;\r\n      borderArea.height = this.ref?.nativeElement?.offsetHeight;\r\n      borderArea.border = this.element.border;\r\n      return borderArea;\r\n    }\r\n  }\r\n  onFileSelected(event) {\r\n    if (event.files && event.files[0]) {\r\n      var reader = new FileReader();\r\n      reader.onload = (e: any) => {\r\n        this.element.image = e.target.result;\r\n      };\r\n      reader.readAsDataURL(event.files[0]);\r\n    }\r\n  }\r\n  openLink() {\r\n    if (this.element.hyperlink.length > 0 && this.model.previewMode) {\r\n      window.open(this.element.hyperlink, \"_blank\");\r\n    }\r\n  }\r\n  get backgroundSize() {\r\n    if (this.element.preserveAspectRatio) {\r\n      return \"contain\";\r\n    } else {\r\n      return this.imageWidth + \"px \" + this.imageHeight + \"px\";\r\n    }\r\n  }\r\n\r\n  constructor(public model: StiModelService) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (!this.isClone) {\r\n      this.element.element = this.ref?.nativeElement;\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiButtonElement } from \"../../elements/StiButtonElement\";\r\nimport { StiButtonType } from \"../../system/enums\";\r\nimport { StiTextBoxElement } from \"../../elements/StiTextBoxElement\";\r\nimport { StiNumberBoxElement } from \"../../elements/StiNumberBoxElement\";\r\nimport { StiComboBoxElement } from \"../../elements/StiComboBoxElement\";\r\nimport { StiListBoxElement } from \"../../elements/StiListBoxElement\";\r\nimport { StiSingleSelectionElement } from \"../../elements/StiSingleSelectionElement\";\r\nimport { StiMultipleSelectionElement } from \"../../elements/StiMultipleSelectionElement\";\r\nimport { StiCheckBoxElement } from \"../../elements/StiCheckBoxElement\";\r\nimport { StiSignatureElement } from \"../../elements/StiSignatureElement\";\r\nimport { StiDateTimeBoxElement } from \"../../elements/StiDateTimeBoxElement\";\r\nimport { StiImageElement } from \"../../elements/StiImageElement\";\r\nimport { StiBarcodeElement } from \"../../elements/StiBarcodeElement\";\r\nimport { StiLabelElement } from \"../../elements/StiLabelElement\";\r\nimport { StiTableElement } from \"../../elements/StiTableElement\";\r\nimport { StiTextBoxCellItem } from \"../../elements/table/cells/StiTextBoxCellItem\";\r\nimport { StiRadioButtonCellItem } from \"../../elements/table/cells/StiRadioButtonCellItem\";\r\nimport { StiNumberBoxCellItem } from \"../../elements/table/cells/StiNumberBoxCellItem\";\r\nimport { StiComboBoxCellItem } from \"../../elements/table/cells/StiComboBoxCellItem\";\r\nimport { StiCheckBoxCellItem } from \"../../elements/table/cells/StiCheckBoxCellItem\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { StiAddressElement } from \"../../elements/StiAddressElement\";\r\nimport { StiForm } from \"../../elements/StiForm\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { of, Subscription } from \"rxjs\";\r\nimport { throwError } from \"rxjs\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiRadioButtonColumnItem } from \"../../elements/table/columns/StiRadioButtonColumnItem\";\r\nimport { StiStaticHelperService } from \"../../services/sti-static-helper.service\";\r\n\r\n@Component({\r\n    selector: \"sti-button-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" [style.align-items]=\"'center'\" class=\"StiButton\">\r\n    <div\r\n      class=\"button {{ element?.readOnly ? 'disabled' : '' }}\"\r\n      [style.background-color]=\"element?.text.backgroundColor.toHtmlColor()\"\r\n      [style.border]=\"'1px solid' + element?.text.backgroundColor.toHtmlColor()\"\r\n      [stiTooltip]=\"element?.tooltip\"\r\n      (click)=\"clickEvent()\"\r\n      tooltipPosition=\"bottom\"\r\n      showDelay=\"500\"\r\n    >\r\n      <sti-editable-content-component\r\n        [hideEmpty]=\"false\"\r\n        [editableContent]=\"element.text\"\r\n        [fromButton]=\"true\"\r\n        [active]=\"selected\"\r\n      ></sti-editable-content-component>\r\n    </div>\r\n  </sti-component>`,\r\n    styles: [\r\n        `\r\n      .disabled {\r\n        pointer-events: none;\r\n      }\r\n      .button {\r\n        width: fit-content;\r\n        padding: 10px;\r\n        background-color: rgb(211, 211, 211);\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n\r\n      .button:hover {\r\n        opacity: 0.5;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiButtonComponent implements OnInit, OnDestroy {\r\n  retryEvent: Subscription;\r\n  @Input() element: StiButtonElement;\r\n  @Input() isClone: boolean = false;\r\n  constructor(public model: StiModelService, private httpClient: HttpClient) { }\r\n  ngOnDestroy(): void {\r\n    this.retryEvent?.unsubscribe();\r\n  }\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n  clickEvent() {\r\n    if (this.element.buttonType == StiButtonType.ClearForm && this.model.previewMode) {\r\n      this.model.form.pages.forEach((page) => {\r\n        page.allElements.forEach((element) => {\r\n          element.setDefaultValues();\r\n        });\r\n      });\r\n    } else if (this.element.buttonType == StiButtonType.SendForm && this.model.previewMode) {\r\n      this.model.errorWindowMessage = this.element.submissionMessage;\r\n      if (this.element.formSendURL) {\r\n        this.model.showProgress = true;\r\n        let xml = this.createXml();\r\n        let url;\r\n        if (\r\n          this.element.formSendURL.trim().toLocaleLowerCase() == \"stimulsoft cloud\" ||\r\n          this.element.formSendURL.trim().toLocaleLowerCase() == \"cloud.stimulsoft.com\"\r\n        ) {\r\n          url = \"https://submit.stimulsoft.com/submit\";\r\n        } else {\r\n          url = this.element.formSendURL;\r\n        }\r\n        if (this.formHasEmptyRequiredFields()) {\r\n          let elem = this.formHasEmptyRequiredFields();\r\n          this.model.errorWindowMessage = StiLocalizationService.get(\"Errors\", \"FieldRequire\").replace(\r\n            \"{0}\",\r\n            elem[\"label\"] ? elem[\"label\"][\"value\"] : elem[\"name\"]\r\n          );\r\n          this.model.showErrorWindow = true;\r\n          this.model.showProgress = false;\r\n          this.scrollToRequired(elem);\r\n          return;\r\n        }\r\n        this.httpClient\r\n          .post(url, xml)\r\n          .pipe(\r\n            catchError((data: any) => {\r\n              this.model.showProgress = false;\r\n              this.model.showError(StiLocalizationService.get(\"DesignerFx\", \"ConnectionError\"), true, this.element);\r\n              this.model.interfaceEvent.next({ name: \"FormSubmittedError\", data: data });\r\n              return throwError(\"Something bad happened; please try again later.\");\r\n            })\r\n          )\r\n          .subscribe((data) => {\r\n            this.model.showProgress = false;\r\n            this.model.interfaceEvent.next({ name: \"FormSubmitted\", data: data });\r\n\r\n            if (this.element.submissionMessage != null && this.element.submissionMessage.length > 0) {\r\n              this.model.showButtonMessageWindow = true;\r\n            }\r\n          });\r\n      } else {\r\n        this.model.interfaceEvent.next({ name: \"FormSubmitted\" });\r\n\r\n        if (\r\n          this.element.submissionMessage != null &&\r\n          this.element.submissionMessage.length > 0 &&\r\n          this.element.formSendURL\r\n        ) {\r\n          this.model.showButtonMessageWindow = true;\r\n        }\r\n      }\r\n    } else if (this.element.buttonType == StiButtonType.AttachFiles && this.model.previewMode) {\r\n      this.model.loadAttachedFile();\r\n    }\r\n  }\r\n\r\n  public get selected(): boolean {\r\n    return this.model.selectedComponent?.element == this.element;\r\n  }\r\n  public scrollToRequired(elem) {\r\n    let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n    let domElement = document.getElementById(elem.guid);\r\n    let elementRect = this.model.getPositionRelativeToForm(domElement);\r\n    const componentHeader = 38;\r\n    let currentScrollPosition = workspace.scrollTop;\r\n    if (elementRect.top < 0) {\r\n      workspace.scrollTop = currentScrollPosition - (Math.abs(elementRect?.top) + componentHeader);\r\n    } else {\r\n      workspace.scrollTop = currentScrollPosition + (elementRect?.top - componentHeader);\r\n    }\r\n  }\r\n  public createXml() {\r\n    let string =\r\n      `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n    <xfdf xmlns=\"http://ns.adobe.com/xfdf/\" xml:space=\"preserve\">\r\n    <fields>` +\r\n      this.addXmlField({ name: \"StiFormGuid\", value: this.model.form.guid }) +\r\n      (this.model.form.versionKey != null && this.model.form.versionKey.length > 0\r\n        ? this.addXmlField({ name: \"StiVersionKey\", value: this.model.form.versionKey })\r\n        : \"\") +\r\n      //this.addXmlField({ name: \"StiUserId\", value: this.model.form.userId }) +\r\n      this.createFields() +\r\n      this.addAttachedFiles() +\r\n      this.addAdditionsFormField() +\r\n      `</fields>\r\n    </xfdf>`;\r\n    return string;\r\n  }\r\n  public createFields() {\r\n    let fields: string = \"\";\r\n\r\n    this.model.form.pages.forEach((page) => {\r\n      page.allElements.forEach((element) => {\r\n        if (element instanceof StiTableElement) {\r\n          this.model.removeUnusedCells(element);\r\n          fields += this.getXmlTableField(element);\r\n        } else if (element instanceof StiAddressElement) {\r\n          fields += this.getXmlAddressField(element);\r\n        } else {\r\n          let field = this.addXmlField(this.getValue(element));\r\n          if (field) {\r\n            fields += field;\r\n          }\r\n        }\r\n      });\r\n    });\r\n    return fields;\r\n  }\r\n  public formHasEmptyRequiredFields(): boolean {\r\n    this.model.hasEmptyReuiredFields = false;\r\n    let emptyRequiredElement = null;\r\n    for (let page of this.model.form.pages) {\r\n      for (let elem of page.allElements) {\r\n        if ((!elem[\"value\"] || elem[\"value\"].length == 0) && elem[\"required\"]) {\r\n          emptyRequiredElement = elem;\r\n          break;\r\n        }\r\n      }\r\n      if (emptyRequiredElement) {\r\n        break;\r\n      }\r\n    }\r\n    if (emptyRequiredElement) {\r\n      this.model.hasEmptyReuiredFields = true;\r\n      return emptyRequiredElement;\r\n    }\r\n    return null;\r\n  }\r\n  public addAdditionsFormField() {\r\n    let string: string = \"\";\r\n    this.model.form.additionalFormFields.forEach((field) => {\r\n      string += this.addXmlField({ name: field.key, value: field.value });\r\n    });\r\n    return string;\r\n  }\r\n  public addXmlField(elementInfo) {\r\n    if (elementInfo && (elementInfo.values != null || elementInfo.value != null)) {\r\n      let val = \"\";\r\n      (elementInfo.values ?? [elementInfo.value]).forEach((value) => {\r\n        val += `<value>${this.encodeHTML(value)}</value>`;\r\n      });\r\n      return `<field name=\"${elementInfo.name}\">${val}</field>`;\r\n    }\r\n    return \"\";\r\n  }\r\n\r\n  public encodeHTML(data: any) {\r\n    if (data instanceof Date) {\r\n      return StiStaticHelperService.formatDate(data, \"dd-mm-yyyyTHH:mm:ss\");\r\n    } else if (typeof data == \"string\") {\r\n      return data.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&apos;\");\r\n    }\r\n    return data;\r\n  }\r\n\r\n  public getXmlTableField(element: StiTableElement) {\r\n    let field =\r\n      `<field name=\"${element.name}\">\r\n    ` +\r\n      this.createTableFields(element) +\r\n      `</field>\r\n    `;\r\n    return field;\r\n  }\r\n  public addAttachedFiles(): string {\r\n    let string: string = \"\";\r\n    this.model.form.attachedFiles.forEach((file, index) => {\r\n      string += this.addXmlField({ name: \"AttachedFile\" + index, value: file });\r\n    });\r\n    return string;\r\n  }\r\n  public getXmlAddressField(element: StiAddressElement) {\r\n    let field =\r\n      `<field name=\"${element.name}\">\r\n    ` +\r\n      this.createAddressField(element) +\r\n      `</field>\r\n    `;\r\n    return field;\r\n  }\r\n  public createAddressField(element: StiAddressElement) {\r\n    let fields: string = \"\";\r\n    if (element.useCountry) {\r\n      fields += this.addXmlField({\r\n        name: \"Country\",\r\n        value: element.country,\r\n      });\r\n    }\r\n    if (element.useCity) {\r\n      fields += this.addXmlField({\r\n        name: \"City\",\r\n        value: element.city,\r\n      });\r\n    }\r\n    if (element.useState) {\r\n      fields += this.addXmlField({\r\n        name: \"State\",\r\n        value: element.state,\r\n      });\r\n    }\r\n    if (element.useStreetAddress) {\r\n      fields += this.addXmlField({\r\n        name: \"StreetAddress\",\r\n        value: element.streetAddress,\r\n      });\r\n    }\r\n    if (element.useStreetAddress2) {\r\n      fields += this.addXmlField({\r\n        name: \"StreetAddress2\",\r\n        value: element.streetAddress2,\r\n      });\r\n    }\r\n    if (element.useZipCode) {\r\n      fields += this.addXmlField({\r\n        name: \"ZipCode\",\r\n        value: element.zipCode,\r\n      });\r\n    }\r\n    return fields;\r\n  }\r\n  public createTableFields(element: StiTableElement) {\r\n    let fields: string = \"\";\r\n    element.columns.forEach((column, index) => {\r\n      let columnIndex = index;\r\n      column[\"cells\"].forEach((cell, index) => {\r\n        fields += this.addXmlField(this.getTableCellValue(column, columnIndex, cell, index));\r\n      });\r\n    });\r\n    element.totalsFields.forEach((field, index) => {\r\n      fields += this.addXmlField(this.getTableFieldValue(field, index));\r\n    });\r\n    element.rowLabels.forEach((row, index) => {\r\n      element.columns.forEach((column, idx) => {\r\n        if (column instanceof StiRadioButtonColumnItem && column.cells[index].isChecked) {\r\n          fields += this.addXmlField(this.getRowValue(index, idx));\r\n        }\r\n      });\r\n    });\r\n    return fields;\r\n  }\r\n  public getTableFieldValue(field, fieldIndex) {\r\n    return { name: \"TotalsField\" + fieldIndex, value: field.value };\r\n  }\r\n  public getRowValue(rowIndex, columnIndex) {\r\n    return { name: `Row-${rowIndex}-SingleSelection`, value: `Column-${columnIndex}` };\r\n  }\r\n  public getTableCellValue(column, columnIndex: number, cell, cellIndex: number) {\r\n    let name =\r\n      \"Cell\" +\r\n      \"-\" +\r\n      columnIndex +\r\n      \"-\" +\r\n      cellIndex +\r\n      \"-\" +\r\n      (cell instanceof StiRadioButtonCellItem ? \"SingleSelection\" : column[\"type\"].replace(\"Column\", \"\"));\r\n    let value = cell;\r\n    if (cell instanceof StiTextBoxCellItem) {\r\n      value = cell.text;\r\n    } else if (cell instanceof StiRadioButtonCellItem) {\r\n      return;\r\n      value = cell.isChecked;\r\n    } else if (cell instanceof StiNumberBoxCellItem) {\r\n      value = cell.value;\r\n    } else if (cell instanceof StiComboBoxCellItem) {\r\n      value = column.comboBoxOptions[cell.selectedIndex];\r\n    } else if (cell instanceof StiCheckBoxCellItem) {\r\n      value = cell.isChecked;\r\n    }\r\n    return { name: name, value: value };\r\n  }\r\n  public getValue(element) {\r\n    let name = element.name ?? element.guid;\r\n    let value, values;\r\n    if (element instanceof StiTextBoxElement) {\r\n      value = element.text;\r\n    } else if (element instanceof StiNumberBoxElement) {\r\n      value = element.value;\r\n    } else if (element instanceof StiComboBoxElement) {\r\n      value = element.selectedOption;\r\n    } else if (element instanceof StiListBoxElement) {\r\n      values = element.selectedOptions;\r\n    } else if (element instanceof StiSingleSelectionElement) {\r\n      value = element.selectedOption;\r\n    } else if (element instanceof StiMultipleSelectionElement) {\r\n      values = element.selectedOptions;\r\n    } else if (element instanceof StiCheckBoxElement) {\r\n      value = element.isChecked;\r\n    } else if (element instanceof StiSignatureElement) {\r\n      value = element.value;\r\n    } else if (element instanceof StiDateTimeBoxElement) {\r\n      value = element.dateValue;\r\n    } else if (element instanceof StiBarcodeElement) {\r\n      value = element.img;\r\n    } else if (element instanceof StiLabelElement) {\r\n      value = element.displayValue != undefined ? element.displayValue : element.text.value;\r\n    }\r\n    return { name: name, value: value, values: values };\r\n  }\r\n  ngOnInit(): void {\r\n    if ((this.model.isCloudMode || this.model.isWebView) && this.element.formSendURL?.length == 0) {\r\n      this.element.formSendURL = \"cloud.stimulsoft.com\";\r\n    }\r\n    this.retryEvent = this.model.retryButtonRequest.subscribe((element) => {\r\n      if (element == this.element && !this.isClone) {\r\n        this.clickEvent();\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\n\r\n@Component({\r\n    selector: \"sti-progress\",\r\n    template: `\r\n    <div\r\n      style=\"position: absolute; z-index: 99999999; left: calc(50% - 35px);top: calc(50% - 100px);\"\r\n      [style.display]=\"display ? '' : 'none'\"\r\n    >\r\n      <div class=\"sti_loader sti_loader_default\"></div>\r\n    </div>\r\n\r\n    <style>\r\n      .sti_loader {\r\n        margin: 60px auto;\r\n        font-size: 10px;\r\n        position: relative;\r\n        text-indent: -9999em;\r\n        -webkit-transform: translateZ(0);\r\n        -ms-transform: translateZ(0);\r\n        transform: translateZ(0);\r\n        -webkit-animation: load8 1.1s infinite linear;\r\n        animation: load8 1.1s infinite linear;\r\n        box-sizing: border-box;\r\n      }\r\n\r\n      .sti_loader_default {\r\n        border-top: 6px solid rgba(25, 71, 138, 0.2);\r\n        border-right: 6px solid rgba(25, 71, 138, 0.2);\r\n        border-bottom: 6px solid rgba(25, 71, 138, 0.2);\r\n        border-left: 6px solid #19478a;\r\n      }\r\n\r\n      .sti_loader,\r\n      .sti_loader:after {\r\n        border-radius: 50%;\r\n        width: 64px;\r\n        height: 64px;\r\n      }\r\n\r\n      @-webkit-keyframes load8 {\r\n        0% {\r\n          -webkit-transform: rotate(0deg);\r\n          transform: rotate(0deg);\r\n        }\r\n        100% {\r\n          -webkit-transform: rotate(360deg);\r\n          transform: rotate(360deg);\r\n        }\r\n      }\r\n\r\n      @keyframes load8 {\r\n        0% {\r\n          -webkit-transform: rotate(0deg);\r\n          transform: rotate(0deg);\r\n        }\r\n        100% {\r\n          -webkit-transform: rotate(360deg);\r\n          transform: rotate(360deg);\r\n        }\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiProgressComponent implements OnInit {\r\n  @Input() display;\r\n  constructor(public model: StiModelService) {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\n//import { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiBarcodeElement } from \"../../elements/StiBarcodeElement\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLabelAlignment } from \"../../system/enums\";\r\n\r\n@Component({\r\n    selector: \"sti-barcode-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-barcode\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [style.align-self]=\"align\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <sti-progress [display]=\"element.showProgress\"></sti-progress>\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'100%'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\" [style.height]=\"'100%'\">\r\n            <div\r\n              #ref\r\n              class=\"image\"\r\n              [style.align-self]=\"'center'\"\r\n              [style.width]=\"'100%'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.min-width.px]=\"isClone ? 55 : 0\"\r\n              [style.min-height.px]=\"isClone ? 55 : 0\"\r\n              [style.background-image]=\"this.barcode\"\r\n              [style.background-size]=\"'contain'\"\r\n              [style.background-repeat]=\"this.barcode ? 'no-repeat' : ''\"\r\n              [stiTooltip]=\"element?.tooltip\"\r\n              tooltipPosition=\"bottom\"\r\n              showDelay=\"500\"\r\n            ></div>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .sti-image .image {\r\n        position: relative;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiBarcodeComponent implements OnInit, AfterViewInit {\r\n  @Input() element: StiBarcodeElement;\r\n  @Input() isClone: boolean = false;\r\n  @ViewChild(\"ref\") ref: ElementRef;\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  public get barcode() {\r\n    return \"url(\" + this.element.img + \")\";\r\n  }\r\n  get barcodeHeight() {\r\n    return this.element.Height;\r\n  }\r\n  get barcodeWidth() {\r\n    if (this.isClone) {\r\n      return 0;\r\n    } else {\r\n      if (this.element[\"label\"][\"alignment\"] != StiLabelAlignment.Top && this.element[\"label\"][\"value\"]) {\r\n        return (\r\n          this.element.width - this.element.label.width - this.element.padding.right - this.element.padding.left - 2\r\n        );\r\n      } else {\r\n        return this.element.width - this.element.padding.right - this.element.padding.left - 2 /*borderWidth */;\r\n      }\r\n    }\r\n  }\r\n  constructor(public model: StiModelService) {}\r\n\r\n  ngOnInit(): void {}\r\n  ngAfterViewInit(): void {\r\n    if (!this.isClone) {\r\n      this.element.element = this.ref;\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport Color from \"../system/Color\";\r\nimport { StiHorizontalAlignment } from \"../system/enums\";\r\nimport { StiModelService } from \"./model.service\";\r\n\r\n@Injectable()\r\nexport class StiRichTextService {\r\n  private sizes = { 1: 8, 2: 10, 3: 12, 4: 14, 5: 18, 6: 24, 7: 36 };\r\n  private xSizes = {\r\n    \"x-small\": 8,\r\n    small: 10,\r\n    medium: 12,\r\n    large: 14,\r\n    \"x-large\t\": 18,\r\n    \"xx-large\": 24,\r\n    \"xxx-large\": 36,\r\n  };\r\n\r\n  public activeTextStyles: any[] = [];\r\n  public activeAlignment: StiHorizontalAlignment;\r\n  public activeFontFamily = \"Arial\";\r\n  public activeFontSize = 3;\r\n  public activeColor: Color = Color.red();\r\n\r\n  public currentSelectedTextIsBold: boolean = false;\r\n  public currentSelectedTextIsItalic: boolean = false;\r\n  public currentSelectedTextIsUnderline: boolean = false;\r\n  public currentSelectedTextHasCenterAlignment: boolean = false;\r\n  public currentSelectedTextHasLeftAlignment: boolean = false;\r\n  public currentSelectedTextHasRightAlignment: boolean = false;\r\n\r\n  constructor(public model: StiModelService) {}\r\n\r\n  public showCurrentState() {\r\n    this.currentSelectedTextIsBold = this.getIframe()?.queryCommandState(\"bold\");\r\n    this.currentSelectedTextIsItalic = this.getIframe()?.queryCommandState(\"italic\");\r\n    this.currentSelectedTextIsUnderline = this.getIframe()?.queryCommandState(\"underline\");\r\n    this.currentSelectedTextHasCenterAlignment = this.getIframe()?.queryCommandState(\"justifyCenter\");\r\n    this.currentSelectedTextHasLeftAlignment = this.getIframe()?.queryCommandState(\"justifyLeft\");\r\n    this.currentSelectedTextHasRightAlignment = this.getIframe()?.queryCommandState(\"justifyRight\");\r\n    this.activeFontFamily = this.getIframe()?.queryCommandValue(\"FontName\").replace(/\"/g, \"\");\r\n    this.activeFontSize =\r\n      Number(this.getIframe()?.queryCommandValue(\"FontSize\")) > 7\r\n        ? this.convertSizeMmToHtmlSize(Number(this.getIframe()?.queryCommandValue(\"FontSize\")))\r\n        : Number(this.getIframe()?.queryCommandValue(\"FontSize\"));\r\n    if (this.getIframe() != null) {\r\n      let foreColor = this.getIframe()?.queryCommandValue(\"ForeColor\");\r\n      if (foreColor.length > 0) {\r\n        let color = new Color();\r\n        if (this.getIframe().queryCommandValue(\"ForeColor\").includes(\"#\")) {\r\n          color?.deserializeFromString(this.hexToRgb(this.getIframe()?.queryCommandValue(\"ForeColor\")));\r\n        } else {\r\n          color?.deserializeFromString(\r\n            this.getIframe().queryCommandValue(\"ForeColor\").replace(\"rgb(\", \"\").replace(\")\", \"\")\r\n          );\r\n        }\r\n        this.activeColor = color;\r\n      }\r\n    }\r\n    this.activeTextStyles = [];\r\n    if (this.currentSelectedTextIsBold) {\r\n      this.activeTextStyles.push(\"Bold\");\r\n    }\r\n    if (this.currentSelectedTextIsItalic) {\r\n      this.activeTextStyles.push(\"Italic\");\r\n    }\r\n\r\n    if (this.currentSelectedTextIsUnderline) {\r\n      this.activeTextStyles.push(\"Underline\");\r\n    }\r\n    if (this.currentSelectedTextHasLeftAlignment) {\r\n      this.activeAlignment = StiHorizontalAlignment.Left;\r\n    }\r\n\r\n    if (this.currentSelectedTextHasCenterAlignment) {\r\n      this.activeAlignment = StiHorizontalAlignment.Center;\r\n    }\r\n\r\n    if (this.currentSelectedTextHasRightAlignment) {\r\n      this.activeAlignment = StiHorizontalAlignment.Right;\r\n    }\r\n  }\r\n\r\n  execCommand(command: string, value?: string) {\r\n    this.getIframe().execCommand(command, false, value);\r\n  }\r\n  hexToRgb(hex) {\r\n    const r = parseInt(hex.slice(1, 3), 16);\r\n    const g = parseInt(hex.slice(3, 5), 16);\r\n    const b = parseInt(hex.slice(5, 7), 16);\r\n    return `${r}, ${g}, ${b}`;\r\n  }\r\n  getIframe() {\r\n    let frameElement = document.getElementById(\"iframe\" + this.model.selectedComponent?.element?.guid) as any;\r\n    let doc = frameElement?.contentWindow?.document;\r\n    return doc ? doc : null;\r\n  }\r\n  insertBold() {\r\n    this.execCommand(\"bold\");\r\n    this.currentSelectedTextIsBold = this.getIframe()?.queryCommandState(\"bold\");\r\n  }\r\n  insertItalic() {\r\n    this.execCommand(\"italic\");\r\n    this.currentSelectedTextIsItalic = this.getIframe()?.queryCommandState(\"italic\");\r\n  }\r\n  insertUnderline() {\r\n    this.execCommand(\"underline\");\r\n    this.currentSelectedTextIsUnderline = this.getIframe()?.queryCommandState(\"underline\");\r\n  }\r\n  insertForeColor() {\r\n    this.execCommand(\"foreColor\", this.activeColor.toHexColor());\r\n  }\r\n  insertFontFamily(fontName) {\r\n    this.execCommand(\"fontName\", fontName);\r\n  }\r\n  /* useUndo() {\r\n    this.execCommand(\"undo\");\r\n  }\r\n  useRedo() {\r\n    this.execCommand(\"redo\");\r\n  } */\r\n  insertFontSize() {\r\n    this.execCommand(\"fontSize\", this.activeFontSize + \"px\");\r\n  }\r\n  setCenterAlignment() {\r\n    this.execCommand(\"justifyCenter\");\r\n    this.currentSelectedTextHasCenterAlignment = this.getIframe()?.queryCommandState(\"justifyCenter\");\r\n  }\r\n  setLeftAlignment() {\r\n    this.execCommand(\"justifyLeft\");\r\n    this.currentSelectedTextHasLeftAlignment = this.getIframe()?.queryCommandState(\"justifyLeft\");\r\n  }\r\n  setRightAlignment() {\r\n    this.execCommand(\"justifyRight\");\r\n    this.currentSelectedTextHasRightAlignment = this.getIframe()?.queryCommandState(\"justifyRight\");\r\n  }\r\n  convertSizeMmToHtmlSize(sizeMm: number): number {\r\n    if (sizeMm <= 8) return 1;\r\n    else if (sizeMm > 8 && sizeMm <= 10) return 2;\r\n    else if (sizeMm > 10 && sizeMm <= 12) return 3;\r\n    else if (sizeMm > 12 && sizeMm <= 14) return 4;\r\n    else if (sizeMm > 14 && sizeMm <= 18) return 5;\r\n    else if (sizeMm > 18 && sizeMm <= 24) return 6;\r\n    else if (sizeMm > 24) return 7;\r\n    else return 3;\r\n  }\r\n\r\n  convertDocumentToForm(srcDoc: any): string {\r\n    let doc = document.implementation.createHTMLDocument();\r\n    let newDocElement = doc.importNode(srcDoc.documentElement, true);\r\n    doc.replaceChild(newDocElement, doc.documentElement);\r\n\r\n    let tags = doc.getElementsByTagName(\"*\");\r\n    for (let i = 0; i < tags.length; i++) {\r\n      let tag = tags[i];\r\n      let size = tag.getAttribute(\"size\");\r\n      if (size) {\r\n        tag.setAttribute(\"size\", this.sizes[parseInt(size)]);\r\n      }\r\n      let fontSize = (tag as any).style?.fontSize;\r\n      if (fontSize && this.xSizes[fontSize]) {\r\n        (tag as any).style.fontSize = this.xSizes[fontSize] + \"px\";\r\n      }\r\n\r\n      let align = tag.getAttribute(\"align\");\r\n      if (align) {\r\n        (tag as any).style.textAlign = align;\r\n        tag.removeAttribute(\"align\");\r\n      }\r\n    }\r\n\r\n    return doc.body.innerHTML.toString();\r\n  }\r\n\r\n  convertHtmlAttributesForWysiwyg(doc) {\r\n    var tags = doc.getElementsByTagName(\"*\");\r\n    for (var i = 0; i < tags.length; i++) {\r\n      var tag = tags[i];\r\n      var size = tag.getAttribute(\"size\");\r\n      if (size) {\r\n        var newSize = this.convertSizeMmToHtmlSize(parseInt(size));\r\n        tag.setAttribute(\"size\", newSize);\r\n      }\r\n    }\r\n    for (var i = 0; i < tags.length; i++) {\r\n      var tag = tags[i];\r\n      if (tag.style) {\r\n        if (this.getNavigatorName() == \"MSIE\" && tag.style.textAlign) {\r\n          tag.setAttribute(\"align\", tag.style.textAlign.toLowerCase());\r\n          tag.style.textAlign = \"\";\r\n        }\r\n        if (tag.style.fontSize) {\r\n          var childs = [];\r\n          for (var k = 0; k < tag.childNodes.length; k++) {\r\n            childs.push(tag.childNodes[k]);\r\n          }\r\n          var font = document.createElement(\"font\");\r\n          for (var k = 0; k < childs.length; k++) {\r\n            font.appendChild(childs[k]);\r\n          }\r\n          tag.appendChild(font);\r\n          font.setAttribute(\"size\", this.convertSizeMmToHtmlSize(parseInt(tag.style.fontSize)).toString());\r\n          tag.style.fontSize = \"\";\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  getNavigatorName() {\r\n    var useragent = navigator.userAgent;\r\n    var navigatorname = \"Unknown\";\r\n    if (this.getIEVersion() > 0) {\r\n      navigatorname = \"MSIE\";\r\n    } else if (useragent.indexOf(\"Gecko\") != -1) {\r\n      if (useragent.indexOf(\"Chrome\") != -1) navigatorname = \"Google Chrome\";\r\n      else navigatorname = \"Mozilla\";\r\n    } else if (useragent.indexOf(\"Mozilla\") != -1) {\r\n      navigatorname = \"old Netscape or Mozilla\";\r\n    } else if (useragent.indexOf(\"Opera\") != -1) {\r\n      navigatorname = \"Opera\";\r\n    }\r\n\r\n    return navigatorname;\r\n  }\r\n\r\n  getIEVersion() {\r\n    var sAgent = window.navigator.userAgent;\r\n    var Idx = sAgent.indexOf(\"MSIE\");\r\n\r\n    // If IE, return version number.\r\n    if (Idx > 0) return parseInt(sAgent.substring(Idx + 5, sAgent.indexOf(\".\", Idx)));\r\n    // If IE 11 then look for Updated user agent string.\r\n    // eslint-disable-next-line no-extra-boolean-cast\r\n    else if (!!navigator.userAgent.match(/Trident\\/7\\./)) return 11;\r\n    else return 0; //It is not IE\r\n  }\r\n\r\n  initFont(htmlTextString: string) {\r\n    if (htmlTextString?.length == 0) {\r\n      setTimeout(() => {\r\n        let label = this.model.form.settings.label;\r\n        let font = label.font;\r\n        this.activeFontFamily = font.family;\r\n        this.activeFontSize = this.convertSizeMmToHtmlSize(font.size);\r\n        this.activeColor = label.color.clone();\r\n        //this.activeAlignment = label.alignment;\r\n\r\n        this.insertFontFamily(font.family);\r\n        this.insertFontSize();\r\n        this.insertForeColor();\r\n        font.style.forEach((style) => {\r\n          if (style == \"Bold\") {\r\n            this.insertBold();\r\n          } else if (style == \"Italic\") {\r\n            this.insertItalic();\r\n          } else if (style == \"Underline\") {\r\n            this.insertUnderline();\r\n          }\r\n        });\r\n      }, 0);\r\n    }\r\n  }\r\n}\r\n","import {\r\n  AfterViewChecked,\r\n  AfterViewInit,\r\n  Component,\r\n  ElementRef,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiTextElement } from \"../../elements/StiTextElement\";\r\nimport { StiRichTextService } from \"../../services/sti-rich-text.service\";\r\nimport { StiComponent } from \"../sti-component\";\r\nimport { StiComponentResizerService } from \"../../services/sti-component-resizer.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport StiRectangleGeometryLayout from \"../../computed/StiRectangleGeometryLayout\";\r\n\r\n@Component({\r\n    selector: \"sti-text-component\",\r\n    template: ` <sti-component [element]=\"element\" #component [isClone]=\"isClone\" class=\"sti-text\">\r\n      <div\r\n        style=\"position: absolute;pointer-events:none;width:100%;height:100%; left:0; top:0;z-index:999\"\r\n        [style.height.px]=\"borderInnerHeight\"\r\n        [style.width.px]=\"borderInnerWidth\"\r\n        [style.left.px]=\"-(element.border.pen.width / 2)\"\r\n        [style.top.px]=\"-(element.border.pen.width / 2)\"\r\n        [style.border-top]=\"element.border.drawTop ? element.border.pen.toHtmlBorder() : 'transparent'\"\r\n        [style.border-left]=\"element.border.drawLeft ? element.border.pen.toHtmlBorder() : 'transparent'\"\r\n        [style.border-right]=\"element.border.drawRight ? element.border.pen.toHtmlBorder() : 'transparent'\"\r\n        [style.border-bottom]=\"element.border.drawBottom ? element.border.pen.toHtmlBorder() : 'transparent'\"\r\n      ></div>\r\n      @if (element.isAdded) {\r\n        <iframe\r\n          #iframe\r\n          id=\"{{ 'iframe' + element.guid }}\"\r\n          src=\"about:blank\"\r\n          frameborder=\"0\"\r\n          [style.height.px]=\"getIframeHeight(iframe)\"\r\n          [style.width]=\"'100%'\"\r\n          (mouseup)=\"model.canDrag = true\"\r\n          [style.pointer-events]=\"componentResizerService.isResizing ? 'none' : ''\"\r\n          >\r\n        </iframe>\r\n      }\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      .rich-text-editor {\r\n        height: 100%;\r\n        width: 100%;\r\n        outline: none;\r\n        font-weight: normal;\r\n        overflow: hidden;\r\n      }\r\n      .rich-text-editor:hover {\r\n        cursor: text;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTextComponent implements OnInit, AfterViewInit, OnDestroy, AfterViewChecked {\r\n  @ViewChild(\"richTextEditor\") richTextEditor: ElementRef;\r\n  @ViewChild(\"component\") component: StiComponent;\r\n\r\n  @Input() element: StiTextElement;\r\n  @Input() isClone: boolean = false;\r\n\r\n  changeModeSubscription: Subscription;\r\n\r\n  public selectedComponent;\r\n  private observer: MutationObserver;\r\n  //component: StiComponent;\r\n  public get borderInnerWidth(): Number {\r\n    return Number(this.element.width) + Number(this.element.border.pen.width);\r\n  }\r\n  public get borderInnerHeight(): Number {\r\n    return Number(this.element.height) + Number(this.element.border.pen.width);\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public richTextService: StiRichTextService,\r\n    public componentResizerService: StiComponentResizerService,\r\n    public render: StiRectangleGeometryLayout\r\n  ) { }\r\n  ngAfterViewChecked(): void {\r\n    let frameElement = document.getElementById(\"iframe\" + this.element?.guid) as any;\r\n    let doc = frameElement?.contentWindow?.document;\r\n  }\r\n  changeMode(value: boolean) {\r\n    let frameElement = document.getElementById(\"iframe\" + this.element?.guid) as any;\r\n    let doc = frameElement?.contentWindow?.document;\r\n    doc.body.contentEditable = value.toString();\r\n  }\r\n  get currentVerticalStep(): number {\r\n    return this.model.form?.settings?.gridVerticalStep != 1 ? this.model.form?.settings?.gridVerticalStep : 5;\r\n  }\r\n  getIframeHeight(iframe) {\r\n    if (this.getIframeMinHeight(iframe) > this.element?.height) {\r\n      setTimeout(() => {\r\n        if (!this.isClone) {\r\n          let height = this.getIframeMinHeight(iframe) + this.element.padding.top + this.element.padding.bottom;\r\n          this.element.height = Math.ceil(height / this.currentVerticalStep) * this.currentVerticalStep;\r\n          this.updateFormGeometry();\r\n        }\r\n      });\r\n      return this.getIframeMinHeight(iframe);\r\n    } else {\r\n      return this.element.height;\r\n    }\r\n  }\r\n  updateFormGeometry() {\r\n    this.render.insertElement(this.element);\r\n  }\r\n  getIframeMinHeight(iframe) {\r\n    if (iframe) {\r\n      let firstChild = iframe?.contentDocument?.body?.firstChild;\r\n      if (firstChild) {\r\n        return firstChild.offsetHeight;\r\n      } else {\r\n        return 0;\r\n      }\r\n    } else {\r\n      return 0;\r\n    }\r\n  }\r\n  ngOnDestroy(): void {\r\n    if (this.observer) {\r\n      this.observer.disconnect();\r\n    }\r\n    this.changeModeSubscription?.unsubscribe();\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.element.isAdded && !this.isClone) {\r\n      if (this.model.getBrowserType() == \"firefox\") {\r\n        let frameElements = document.querySelectorAll(\"#iframe\" + this.element?.guid);\r\n        frameElements.forEach((frameElement) => {\r\n          let this_ = this;\r\n          (frameElement as any)?.contentWindow?.addEventListener(\"load\", () => {\r\n            let doc = (frameElement as any)?.contentWindow?.document;\r\n            doc.body.contentEditable = \"true\";\r\n            doc.body.style.margin = \"0\";\r\n            doc.body.style.overflowWrap = \"break-word\";\r\n            doc.body.innerHTML = this_.element.htmlTextString;\r\n            this_.richTextService.convertHtmlAttributesForWysiwyg(doc);\r\n\r\n            let element = this_.element;\r\n            const targetNode = doc.body;\r\n\r\n            this_.observer = new MutationObserver(\r\n              () => (element.htmlTextString = this_.richTextService.convertDocumentToForm(doc))\r\n            );\r\n            doc.body.addEventListener(\"mouseup\", () => this_.richTextService.showCurrentState());\r\n            doc.body.addEventListener(\"keyup\", () => this_.richTextService.showCurrentState());\r\n            doc.body.addEventListener(\"focus\", () => {\r\n              this_.richTextService.initFont(this_.element.htmlTextString);\r\n              this_.richTextService.showCurrentState();\r\n            });\r\n            doc.body.addEventListener(\"mousedown\", () => {\r\n              this_.model.selectedComponent = this_.component;\r\n            });\r\n            this_.observer.observe(targetNode, {\r\n              childList: true,\r\n              subtree: true,\r\n              attributes: true,\r\n              characterData: true,\r\n            });\r\n          });\r\n        });\r\n      } else {\r\n        let frameElements = document.querySelectorAll(\"#iframe\" + this.element?.guid);\r\n        frameElements.forEach((frameElement) => {\r\n          let doc = (frameElement as any)?.contentWindow?.document;\r\n          doc.body.contentEditable = \"true\";\r\n          doc.body.style.margin = \"0\";\r\n          doc.body.innerHTML = this.element.htmlTextString;\r\n          this.richTextService.convertHtmlAttributesForWysiwyg(doc);\r\n\r\n          let element = this.element;\r\n          const targetNode = doc.body;\r\n          let this_ = this;\r\n\r\n          this.observer = new MutationObserver(\r\n            () => (element.htmlTextString = this_.richTextService.convertDocumentToForm(doc))\r\n          );\r\n          this.observer.observe(targetNode, {\r\n            childList: true,\r\n            subtree: true,\r\n            attributes: true,\r\n            characterData: true,\r\n          });\r\n\r\n          doc.body.addEventListener(\"mouseup\", () => this.richTextService.showCurrentState());\r\n          doc.body.addEventListener(\"keyup\", () => this.richTextService.showCurrentState());\r\n          doc.body.addEventListener(\"focus\", () => {\r\n            this.richTextService.initFont(this.element.htmlTextString);\r\n            this.richTextService.showCurrentState();\r\n          });\r\n\r\n          doc.body.addEventListener(\"mousedown\", () => {\r\n            this_.model.selectedComponent = this_.component;\r\n          });\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.changeModeSubscription = this.model.interfaceEvent.subscribe((event) => {\r\n      if (event.name == \"setRibbon\" && event.data?.ribbon === \"Preview\") {\r\n        this.changeMode(false);\r\n      } else if (event.name == \"setRibbon\" && event.data?.oldRibbon === \"Preview\") {\r\n        this.changeMode(true);\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiLabelElement } from \"../../elements/StiLabelElement\";\r\nimport { StiHorizontalAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\n\r\n@Component({\r\n    selector: \"sti-label-component\",\r\n    template: ` <sti-component\r\n    [element]=\"element\"\r\n    [isClone]=\"isClone\"\r\n    class=\"sti-label\"\r\n    [style.pointer-events]=\"model.previewMode ? 'none' : ''\"\r\n  >\r\n    <div\r\n      [style]=\"element.htmlStyle()\"\r\n      [style.justify-content]=\"horizontalAlignment\"\r\n      [style.align-items]=\"verticalAlignment\"\r\n      [style.overflow]=\"'hidden'\"\r\n    >\r\n      <sti-editable-content-component\r\n        [editableContent]=\"element?.text\"\r\n        [displayContent]=\"element?.displayValue\"\r\n        [style]=\"element.htmlStyle()\"\r\n        [hideEmpty]=\"false\"\r\n        [active]=\"selected\"\r\n        [disablePadding]=\"true\"\r\n        (click)=\"openLink()\"\r\n        [parentCursor]=\"element.hyperlink.length > 0 && model.previewMode ? 'pointer' : 'text'\"\r\n      >\r\n      </sti-editable-content-component>\r\n    </div>\r\n    <div\r\n      style=\"position: absolute;pointer-events:none;width:100%;height:100%; left:0; top:0;z-index:999\"\r\n      [style.height.px]=\"borderInnerHeight\"\r\n      [style.width.px]=\"borderInnerWidth\"\r\n      [style.left.px]=\"-(element.border.pen.width / 2)\"\r\n      [style.top.px]=\"-(element.border.pen.width / 2)\"\r\n      [style.border-top]=\"element.border.drawTop ? element.border.pen.toHtmlBorder() : 'transparent'\"\r\n      [style.border-left]=\"element.border.drawLeft ? element.border.pen.toHtmlBorder() : 'transparent'\"\r\n      [style.border-right]=\"element.border.drawRight ? element.border.pen.toHtmlBorder() : 'transparent'\"\r\n      [style.border-bottom]=\"element.border.drawBottom ? element.border.pen.toHtmlBorder() : 'transparent'\"\r\n    ></div>\r\n    <div\r\n      class=\"exceed-margins\"\r\n      [style.background-color]=\"element?.text.backgroundColor.toHtmlColor()\"\r\n      [style.left.px]=\"exceedMarginsLeft\"\r\n      [style.top.px]=\"exceedMarginsTop\"\r\n      [style.width.px]=\"exceedMarginsWidth\"\r\n      [style.height.px]=\"exceedMarginsHeight\"\r\n      [style.pointer-events]=\"'none'\"\r\n    ></div>\r\n  </sti-component>`,\r\n    styles: [\r\n        `\r\n      .sti-label p {\r\n        font-size: 12px;\r\n        font-weight: normal;\r\n        margin: 0;\r\n      }\r\n      div {\r\n        display: flex;\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .exceed-margins {\r\n        position: absolute;\r\n        background-color: red;\r\n        z-index: -1;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiLabelComponent implements OnInit {\r\n  @Input() element: StiLabelElement;\r\n  @Input() isClone: boolean = false;\r\n  public get borderInnerWidth(): Number {\r\n    return Number(this.element.width) + Number(this.element.border.pen.width);\r\n  }\r\n  public get borderInnerHeight(): Number {\r\n    return Number(this.element.height) + Number(this.element.border.pen.width);\r\n  }\r\n  public get selected(): boolean {\r\n    return this.model.selectedComponent?.element == this.element;\r\n  }\r\n  public get exceedMarginsLeft() {\r\n    if (this.element.exceedMargins.drawLeft) {\r\n      return -this.model.getElementPage(this.element)?.padding.left - this.element.geometry.x;\r\n    } else {\r\n      return 0;\r\n    }\r\n  }\r\n  public get exceedMarginsTop() {\r\n    if (this.element.exceedMargins.drawTop) {\r\n      return -this.model.getElementPage(this.element)?.padding.top - this.element.geometry.y;\r\n    } else {\r\n      return 0;\r\n    }\r\n  }\r\n  public get exceedMarginsWidth() {\r\n    if (!this.element.exceedMargins.drawLeft && !this.element.exceedMargins.drawRight) {\r\n      return this.element.width;\r\n    } else if (this.element.exceedMargins.drawLeft && !this.element.exceedMargins.drawRight) {\r\n      return (\r\n        this.element.width -\r\n        this.element.padding.right +\r\n        this.model.getElementPage(this.element)?.padding.left +\r\n        this.element.geometry.x\r\n      );\r\n    } else if (!this.element.exceedMargins.drawLeft && this.element.exceedMargins.drawRight) {\r\n      return (\r\n        this.model.getElementPage(this.element)?.width -\r\n        this.model.getElementPage(this.element)?.padding.left -\r\n        this.element.x -\r\n        this.element.padding.left\r\n      );\r\n    } else {\r\n      return this.model.getElementPage(this.element)?.width;\r\n    }\r\n  }\r\n  public get exceedMarginsHeight() {\r\n    if (!this.element.exceedMargins.drawTop && !this.element.exceedMargins.drawBottom) {\r\n      return this.element.height;\r\n    } else if (this.element.exceedMargins.drawTop && !this.element.exceedMargins.drawBottom) {\r\n      return (\r\n        this.element.height -\r\n        this.element.padding.bottom +\r\n        this.model.getElementPage(this.element)?.padding.top +\r\n        this.element.geometry.y\r\n      );\r\n    } else if (!this.element.exceedMargins.drawTop && this.element.exceedMargins.drawBottom) {\r\n      return (\r\n        this.model.getElementPage(this.element)?.height -\r\n        this.model.getElementPage(this.element)?.padding.top -\r\n        this.element.y -\r\n        this.element.padding.top\r\n      );\r\n    } else {\r\n      return this.model.getElementPage(this.element)?.height;\r\n    }\r\n  }\r\n  public get horizontalAlignment() {\r\n    if (this.element.text.horizontalAlignment == StiHorizontalAlignment.Left) {\r\n      return \"start\";\r\n    } else if (this.element.text.horizontalAlignment == StiHorizontalAlignment.Right) {\r\n      return \"flex-end\";\r\n    } else {\r\n      return \"center\";\r\n    }\r\n  }\r\n  public get verticalAlignment() {\r\n    if (this.element.text.verticalAlignment == StiVerticalAlignment.Top) {\r\n      return \"start\";\r\n    } else if (this.element.text.verticalAlignment == StiVerticalAlignment.Bottom) {\r\n      return \"flex-end\";\r\n    } else {\r\n      return \"center\";\r\n    }\r\n  }\r\n  openLink() {\r\n    if (this.element.hyperlink.length > 0 && this.model.previewMode) {\r\n      window.open(this.element.hyperlink, \"_blank\");\r\n    }\r\n  }\r\n  constructor(public model: StiModelService) { }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiAddressElement } from \"../../elements/StiAddressElement\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\n\r\n@Component({\r\n    selector: \"sti-address-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" [style.align-items]=\"'center'\" class=\"StiButton\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [style.align-self]=\"'start'\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            <div\r\n              class=\"address-form\"\r\n              (mousedown)=\"disableDrag($event)\"\r\n              [style.maxWidth.px]=\"element.maxWidth + 0.1\"\r\n              (mouseup)=\"this.model.canDrag = true\"\r\n              >\r\n              @if (element.useStreetAddress) {\r\n                <div class=\"field\">\r\n                  <sti-input-text-component\r\n                    [element]=\"element\"\r\n                    [tabIndex]=\"element['tabIndex']\"\r\n                    [property]=\"'streetAddress'\"\r\n                    [style.width]=\"'100%'\"\r\n                  ></sti-input-text-component>\r\n                  <sti-editable-content-component\r\n                    [editableContent]=\"element.streetAddressLabelItem\"\r\n                    [style.width]=\"'min-content'\"\r\n                  ></sti-editable-content-component>\r\n                </div>\r\n              }\r\n              @if (element.useStreetAddress2) {\r\n                <div class=\"field\">\r\n                  <sti-input-text-component\r\n                    [element]=\"element\"\r\n                    [tabIndex]=\"element['tabIndex'] + 1\"\r\n                    [property]=\"'streetAddress2'\"\r\n                    [style.width]=\"'100%'\"\r\n                  ></sti-input-text-component>\r\n                  <sti-editable-content-component\r\n                    [editableContent]=\"element.streetAddress2LabelItem\"\r\n                  ></sti-editable-content-component>\r\n                </div>\r\n              }\r\n              @if (element.useCity || element.useState) {\r\n                <div\r\n                  class=\"group\"\r\n                  [style.grid-template-columns]=\"element.useCity && element.useState ? '50% 50%' : '100%'\"\r\n                  >\r\n                  @if (element.useCity) {\r\n                    <div class=\"group-field\" [style.padding-right.px]=\"element.useState ? 3 : 0\">\r\n                      <sti-input-text-component\r\n                        [element]=\"element\"\r\n                        [property]=\"'city'\"\r\n                        [tabIndex]=\"element['tabIndex'] + 2\"\r\n                        [style.width]=\"'100%'\"\r\n                      ></sti-input-text-component>\r\n                      <sti-editable-content-component\r\n                        [editableContent]=\"element.cityLabelItem\"\r\n                      ></sti-editable-content-component>\r\n                    </div>\r\n                  }\r\n                  @if (element.useState) {\r\n                    <div class=\"group-field\" [style.padding-left.px]=\"element.useCity ? 3 : 0\">\r\n                      <sti-input-text-component\r\n                        [element]=\"element\"\r\n                        [tabIndex]=\"element['tabIndex'] + 3\"\r\n                        [property]=\"'state'\"\r\n                        [style.width]=\"'100%'\"\r\n                      ></sti-input-text-component>\r\n                      <sti-editable-content-component\r\n                        [editableContent]=\"element.stateLabelItem\"\r\n                      ></sti-editable-content-component>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              }\r\n              @if (element.useZipCode || element.useCountry) {\r\n                <div\r\n                  class=\"group\"\r\n                  [style.grid-template-columns]=\"element.useZipCode && element.useCountry ? '50% 50%' : '100%'\"\r\n                  >\r\n                  @if (element.useZipCode) {\r\n                    <div class=\"group-field\" [style.padding-right.px]=\"element.useCountry ? 3 : 0\">\r\n                      <sti-input-text-component\r\n                        [element]=\"element\"\r\n                        [tabIndex]=\"element['tabIndex'] + 4\"\r\n                        [property]=\"'zipCode'\"\r\n                        [style.width]=\"'100%'\"\r\n                      ></sti-input-text-component>\r\n                      <sti-editable-content-component\r\n                        [editableContent]=\"element.zipCodeLabelItem\"\r\n                      ></sti-editable-content-component>\r\n                    </div>\r\n                  }\r\n                  @if (element.useCountry) {\r\n                    <div class=\"group-field\" [style.padding-left.px]=\"element.useZipCode ? 3 : 0\">\r\n                      <select\r\n                        class=\"selection\"\r\n                        name=\"\"\r\n                        id=\"\"\r\n                        [(ngModel)]=\"element.country\"\r\n                        [style.align-self]=\"'start'\"\r\n                        [style]=\"element?.comboBoxHtmlStyle()\"\r\n                        [style.color]=\"element?.textColor.toHtmlColor()\"\r\n                        [style.background-color]=\"element?.backgroundColor.toHtmlColor()\"\r\n                        [style.border-color]=\"element?.borderColor.toHtmlColor()\"\r\n                        [style.border-width]=\"borderWidth()\"\r\n                        [style.padding-right]=\"'20px'\"\r\n                        [disabled]=\"element?.readOnly\"\r\n                        [required]=\"element?.required\"\r\n                        [tabIndex]=\"element['tabIndex'] + 5\"\r\n                        (mousedown)=\"disableDrag($event)\"\r\n                        (mouseup)=\"this.model.canDrag = true\"\r\n                        >\r\n                        @for (country of helper?.countries; track country) {\r\n                          <option>{{ country.name }}</option>\r\n                        }\r\n                      </select>\r\n                      <sti-editable-content-component\r\n                        [editableContent]=\"element.countryLabelItem\"\r\n                      ></sti-editable-content-component>\r\n                    </div>\r\n                  }\r\n                </div>\r\n              }\r\n            </div>\r\n          </td>\r\n        </tr>\r\n      </table>\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .address-form {\r\n        flex: 1;\r\n      }\r\n      .field {\r\n        flex: 1;\r\n        margin-bottom: 5px;\r\n      }\r\n      .group {\r\n        display: grid;\r\n        grid-template-columns: 50% 50%;\r\n      }\r\n      .group-field {\r\n        width: 100%;\r\n        margin-bottom: 5px;\r\n      }\r\n      .selection {\r\n        width: 100%;\r\n        border: 1px solid rgb(198, 198, 198);\r\n        background-color: white;\r\n        height: fit-content;\r\n        padding: 3px 4px;\r\n        appearance: none;\r\n        background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDA2IDc5LjE2NDc1MywgMjAyMS8wMi8xNS0xMTo1MjoxMyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDphNzFiNTVkYi0wMGZlLTVjNDctYmVkZS1jYTVhNjk0NjdkNjgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0UxNDE5MzBBNDBDMTFFQkE5MDBCNzU3NjhFQUY2QTQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0UxNDE5MkZBNDBDMTFFQkE5MDBCNzU3NjhFQUY2QTQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjMgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YTcxYjU1ZGItMDBmZS01YzQ3LWJlZGUtY2E1YTY5NDY3ZDY4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmE3MWI1NWRiLTAwZmUtNWM0Ny1iZWRlLWNhNWE2OTQ2N2Q2OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pg8NmFEAAABPSURBVHjaYmxsbGSgBDAxUAiGqQH1eNTXE2NAAw5D6qFyBA1oxGIITDNGnLPgcAEDmm0NSAYTNACbIVg14zMAmwsYSDUAr8bRpIwAAAEGAFUJDal4N9jVAAAAAElFTkSuQmCC\");\r\n        background-repeat: no-repeat;\r\n        background-position: right 5px top 50%;\r\n        background-size: 14px auto;\r\n      }\r\n\r\n      .selection:hover {\r\n        border-color: rgb(163, 189, 227) !important;\r\n        background-color: rgb(226, 239, 252) !important;\r\n      }\r\n      .selection:focus {\r\n        outline: none;\r\n        border-color: rgb(163, 189, 227) !important;\r\n        background-color: white !important;\r\n      }\r\n      select:focus > option:checked {\r\n        background-color: rgb(246, 246, 246) !important;\r\n      }\r\n      select option:hover {\r\n        box-shadow: 0 0 10px 100px orange inset;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiAddressComponent implements OnInit {\r\n  @Input() element: StiAddressElement;\r\n  @Input() isClone: boolean = false;\r\n  constructor(public model: StiModelService, public helper: StiHelperService) {}\r\n  public get values() {\r\n    return this.helper.countries;\r\n  }\r\n  disableDrag(event) {\r\n    this.model.canDrag = false;\r\n  }\r\n  public borderWidth(): string {\r\n    return `${this.element.borderWeight}px`;\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import {\r\n  AfterContentChecked,\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  DoCheck,\r\n  ElementRef,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { StiComponentResizerService } from \"../../services/sti-component-resizer.service\";\r\nimport { StiLabelAlignment, StiSignatureType } from \"../../system/enums\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { Subscription } from \"rxjs/internal/Subscription\";\r\nimport { SignatureService } from \"../../services/sti-signature.service\";\r\nimport { StiPDFSignatureElement } from \"../../elements/StiPDFSignatureElement\";\r\n\r\n@Component({\r\n    selector: \"sti-pdf-signature-component\",\r\n    template: ` <sti-component [element]=\"element\" [isClone]=\"isClone\" class=\"sti-signature\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.align-self]=\"align\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [required]=\"element.required\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n          #label\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'max-content'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\">\r\n            <div [style.align-self]=\"align\" [style.position]=\"'relative'\" [style.display]=\"'flex'\">\r\n              <div\r\n                class=\"canvas\"\r\n                [style.width.px]=\"canvasWidth\"\r\n                [style.height.px]=\"canvasHeight\"\r\n                [style.cursor]=\"cursor\"\r\n              ></div>\r\n              <div\r\n                class=\"digital-signature\"\r\n                [style.width.px]=\"canvasWidth\"\r\n                [style.height.px]=\"canvasHeight\"\r\n                [style.border]=\"model.previewMode ? '' : '1px dashed lightgray'\"\r\n                [style.background-color]=\"element?.placeholderBackColor.toHtmlColor()\"\r\n                [style.position]=\"'absolute'\"\r\n                [style.left]=\"0\"\r\n                [style.top]=\"0\"\r\n                #sigPad\r\n                >\r\n                <h2>{{ element.placeholder }}</h2>\r\n              </div>\r\n            </div>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td>\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>`,\r\n    styles: [\r\n        `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .canvas {\r\n        position: relative;\r\n        cursor: inherit;\r\n      }\r\n      .digital-signature {\r\n        background-color: lightgray;\r\n        text-align: center;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        overflow: hidden;\r\n      }\r\n      .digital-signature h2 {\r\n        color: red;\r\n        margin: 0;\r\n        font-size: 8px;\r\n      }\r\n      input {\r\n        visibility: hidden;\r\n        width: 0px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiPDFSignatureComponent implements OnInit, AfterViewInit, DoCheck, OnDestroy, AfterContentChecked {\r\n  @Input() element: StiPDFSignatureElement;\r\n  @Input() isClone: boolean = false;\r\n  @ViewChild(\"sigPad\") sigPad: ElementRef;\r\n  @ViewChild(\"textPreview\") text: ElementRef;\r\n  @ViewChild(\"ref\") ref: ElementRef;\r\n  @ViewChild(\"label\") label: ElementRef;\r\n  public topMargin = 8;\r\n  public labelRef: any;\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  public get cursor() {\r\n    return this.signatureService.drawingMode\r\n      ? `url(${this.model.getImage(\"signature.Brush.png\")}) 8 ${16 * window.devicePixelRatio - 4 * window.devicePixelRatio\r\n      }, auto`\r\n      : \"\";\r\n  }\r\n  get canvasWidth() {\r\n    if (this.isClone) {\r\n      return 0;\r\n    } else {\r\n      if (this.element[\"label\"][\"alignment\"] != StiLabelAlignment.Top && this.element[\"label\"][\"value\"]) {\r\n        return (\r\n          this.element.width - this.element.label.width - this.element.padding.right - this.element.padding.left - 2\r\n        );\r\n      } else {\r\n        return this.element.width - this.element.padding.right - this.element.padding.left;\r\n      }\r\n    }\r\n  }\r\n\r\n  get canvasHeight() {\r\n    if (this.isClone) {\r\n      return 0;\r\n    } else {\r\n      if (this.element[\"label\"][\"alignment\"] != StiLabelAlignment.Top) {\r\n        return this.element.height - this.element.padding.top - this.element.padding.bottom;\r\n      } else {\r\n        return (\r\n          this.element.height -\r\n          (this.labelRef?.offsetHeight ? this.labelRef?.offsetHeight : 0) -\r\n          this.element.padding.top -\r\n          this.element.padding.bottom -\r\n          (this.labelRef?.offsetHeight ? this.topMargin : 0)\r\n        );\r\n      }\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public mouse: StiMouseService,\r\n    public resize: StiComponentResizerService,\r\n    public loc: StiLocalizationService,\r\n    public signatureService: SignatureService,\r\n    private cdr: ChangeDetectorRef\r\n  ) { }\r\n  ngAfterContentChecked(): void { }\r\n\r\n  ngOnDestroy(): void { }\r\n  ngDoCheck(): void {\r\n    this.labelRef = this.label ? this.label[\"elementRef\"][\"nativeElement\"] : null;\r\n  }\r\n  ngAfterViewInit(): void {\r\n    if (!this.isClone) {\r\n      this.element.element = this.sigPad;\r\n      this.cdr.detectChanges();\r\n    }\r\n  }\r\n  onMouseDown(event) { }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiDragPreviewElement } from \"../../elements/StiDragPreviewElement\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\n@Component({\r\n    selector: \"sti-drag-preview-adorner\",\r\n    template: ` <div\r\n    class=\"sti-drag-preview\"\r\n    [id]=\"id\"\r\n    [style.left.px]=\"x\"\r\n    [style.top.px]=\"y\"\r\n    [style.width.px]=\"width\"\r\n    [style.height.px]=\"height\"\r\n    [style.visibility]=\"visible\"\r\n  ></div>`,\r\n    styles: [\r\n        `\r\n      .sti-drag-preview {\r\n        background-color: rgb(239, 239, 239);\r\n        border: 1px solid rgb(146, 146, 146);\r\n        position: absolute;\r\n        transition: left 0.1s ease 0s, top 0.2s ease 0s;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        opacity: 0.6;\r\n        z-index: 11;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiDragPreviewAdornerComponent implements OnInit {\r\n  @Input() element: StiDragPreviewElement;\r\n  get x(): number {\r\n    return Number(\r\n      this.element?.x + (!this.model.getElementPanel(this.element) ? this.model.lastUsedPage?.padding.left : 0)\r\n    );\r\n  }\r\n  get y(): number {\r\n    return Number(\r\n      this.element?.y + (!this.model.getElementPanel(this.element) ? this.model.lastUsedPage?.padding.top : 0)\r\n    );\r\n  }\r\n  get width(): number {\r\n    return this.element?.width;\r\n  }\r\n  get height(): number {\r\n    return this.element?.height;\r\n  }\r\n  get id(): string {\r\n    return this.element?.id;\r\n  }\r\n  get visible(): string {\r\n    if (this.element?.visible == true) {\r\n      return \"visible\";\r\n    } else {\r\n      return \"hidden\";\r\n    }\r\n  }\r\n  constructor(public model: StiModelService) {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport StiRectangleGeometryLayout from \"../computed/StiRectangleGeometryLayout\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiDragPreviewElement } from \"../elements/StiDragPreviewElement\";\r\nimport { StiPanelElement } from \"../elements/StiPanelElement\";\r\nimport { StiBorderArea } from \"../properties/StiBorderArea\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiLabelAlignment } from \"../system/enums\";\r\n\r\n@Component({\r\n  selector: \"sti-component-holder\",\r\n  template: `\r\n    @if (element != null) {\r\n      @if (element.type === 'AddressElement') {\r\n        <sti-address-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-address-component>\r\n      }\r\n      @if (element.type === 'Text_BoxElement') {\r\n        <sti-textbox-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-textbox-component>\r\n      }\r\n      @if (element.type === 'TextElement') {\r\n        <sti-text-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-text-component>\r\n      }\r\n      @if (element.type === 'TableElement') {\r\n        <sti-table-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-table-component>\r\n      }\r\n      @if (element.type === 'Single_SelectionElement') {\r\n        <sti-singleselection-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-singleselection-component>\r\n      }\r\n      @if (element.type === 'SignatureElement') {\r\n        <sti-signature-component [element]=\"element\" [isClone]=\"isClone\">\r\n        </sti-signature-component>\r\n      }\r\n      @if (element.type === 'PDFSignatureElement') {\r\n        <sti-pdf-signature-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-pdf-signature-component>\r\n      }\r\n      @if (element.type === 'PanelElement') {\r\n        <sti-panel-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-panel-component>\r\n      }\r\n      @if (element.type === 'Number_BoxElement') {\r\n        <sti-numberbox-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-numberbox-component>\r\n      }\r\n      @if (element.type === 'Multiple_SelectionElement') {\r\n        <sti-multipleselection-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-multipleselection-component>\r\n      }\r\n      @if (element.type === 'List_BoxElement') {\r\n        <sti-listbox-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-listbox-component>\r\n      }\r\n      @if (element.type === 'LabelElement') {\r\n        <sti-label-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-label-component>\r\n      }\r\n      @if (element.type === 'ImageElement') {\r\n        <sti-image-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-image-component>\r\n      }\r\n      @if (element.type === 'Drag_Preview') {\r\n        <sti-drag-preview-adorner [element]=\"element\"></sti-drag-preview-adorner>\r\n      }\r\n      @if (element.type === 'LineElement') {\r\n        <sti-line-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-line-component>\r\n      }\r\n      @if (element.type === 'DateTime_BoxElement') {\r\n        <sti-datetimebox-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-datetimebox-component>\r\n      }\r\n      @if (element.type === 'Combo_BoxElement') {\r\n        <sti-combobox-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-combobox-component>\r\n      }\r\n      @if (element.type === 'Check_BoxElement') {\r\n        <sti-checkbox-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-checkbox-component>\r\n      }\r\n      @if (element.type === 'ButtonElement') {\r\n        <sti-button-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-button-component>\r\n      }\r\n      @if (element.type === 'BarCodeElement') {\r\n        <sti-barcode-component\r\n          [element]=\"element\"\r\n          [isClone]=\"isClone\"\r\n        ></sti-barcode-component>\r\n      }\r\n    }\r\n    `,\r\n  standalone: false\r\n})\r\nexport class StiComponentHolderComponent implements OnInit {\r\n  @Input() element: StiFormElement;\r\n  @Input() isClone: boolean = false;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() { }\r\n}\r\n//==========================================================\r\n@Component({\r\n  selector: \"sti-panel-component\",\r\n  template: ` <sti-component [element]=\"element\" [borderArea]=\"borderArea\" [isClone]=\"isClone\" class=\"sti-panel\">\r\n      @if (element?.label.value?.length > 0 && element?.isLabelTopAlignment()) {\r\n        <sti-editable-content-component\r\n          [editableContent]=\"element.label\"\r\n          [style.text-align]=\"element?.getContentAlign()\"\r\n          [style.align-self]=\"align\"\r\n          [hideEmpty]=\"element.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n          [style.width]=\"element?.getLabelWidth()\"\r\n        ></sti-editable-content-component>\r\n      }\r\n      <table [style.width]=\"'100%'\" [style.height]=\"'100%'\" [style.margin-top.px]=\"element?.getTopMargin()\">\r\n        <tr>\r\n          @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n            <td\r\n              [style.display]=\"'flex'\"\r\n              [style.height]=\"'100%'\"\r\n              [style.width]=\"element?.getLabelWidth()\"\r\n              [style.align-items]=\"element?.getVerticalAlignment()\"\r\n              >\r\n              @if (element?.label.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element?.label\"\r\n                  [required]=\"element.required\"\r\n                  [style.text-align]=\"element?.getContentAlign()\"\r\n                  [style.width]=\"element?.getLabelWidth()\"\r\n                  [hideEmpty]=\"element?.showLabelPlaceholder(model?.selectedComponent?.element == element)\"\r\n                ></sti-editable-content-component>\r\n              }\r\n            </td>\r\n          }\r\n          <td [style.width]=\"'100%'\" [style.height]=\"'100%'\">\r\n            <div\r\n              #ref\r\n              class=\"sti-panel-container\"\r\n              [style.height]=\"'100%'\"\r\n              [style.min-width.px]=\"minWidth\"\r\n              [style.min-height.px]=\"minHeight\"\r\n              [style.align-self]=\"'center'\"\r\n              [style.overflow]=\"'hidden'\"\r\n            [style.background-color]=\"\r\n              (!element.isAdded &&\r\n                element.backgroundColor.r == 255 &&\r\n                element.backgroundColor.g == 255 &&\r\n                element.backgroundColor.b == 255) ||\r\n              element.backgroundColor.a == 0\r\n                ? 'transparent'\r\n                : element?.backgroundColor.toHtmlColor()\r\n            \"\r\n              >\r\n              @for (element of elements; track $index) {\r\n                <div [disabled]=\"element?.readOnly ? true : false\">\r\n                  <sti-component-holder [element]=\"element\"></sti-component-holder>\r\n                </div>\r\n              }\r\n            </div>\r\n          </td>\r\n        </tr>\r\n        @if (element?.description.value?.length > 0) {\r\n          <tr>\r\n            @if (element?.label.value?.length > 0 && !element?.isLabelTopAlignment()) {\r\n              <td></td>\r\n            }\r\n            <td [style.maxWidth.px]=\"element.maxWidth + 1\">\r\n              @if (element?.description.value?.length > 0) {\r\n                <sti-editable-content-component\r\n                  [editableContent]=\"element.description\"\r\n                  >\r\n                </sti-editable-content-component>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </sti-component>`,\r\n  styles: [\r\n    `\r\n      table {\r\n        border-spacing: 0;\r\n      }\r\n      tr {\r\n        height: max-content;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      td {\r\n        height: 100%;\r\n        padding: 0;\r\n        margin: 0;\r\n      }\r\n      .sti-panel-container {\r\n        min-height: 5px;\r\n        position: relative;\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiPanelComponent implements OnInit, AfterViewInit {\r\n  @ViewChild(\"ref\") ref: ElementRef;\r\n  @Input() element: StiPanelElement;\r\n  @Input() isClone: boolean = false;\r\n  public currentBottomPoint: number;\r\n  get elements(): StiFormElement[] {\r\n    return this.element?.elements;\r\n  }\r\n  public get borderArea() {\r\n    if (!this.isClone) {\r\n      let borderArea = new StiBorderArea();\r\n      borderArea.top =\r\n        this.ref?.nativeElement?.offsetTop -\r\n        (this.element.label.alignment != StiLabelAlignment.Top ? this.element.padding.top : 0);\r\n      borderArea.left = this.ref?.nativeElement?.offsetLeft;\r\n      borderArea.width = this.ref?.nativeElement?.offsetWidth - this.element.padding.left - this.element.padding.right;\r\n      borderArea.height = this.ref?.nativeElement?.offsetHeight;\r\n      borderArea.border = this.element.border;\r\n      return borderArea;\r\n    }\r\n  }\r\n\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  get minWidth() {\r\n    if (this.elements?.length > 0) {\r\n      let minWidth = this.elements[0]?.x + this.elements[0]?.width;\r\n      this.elements.forEach((element) => {\r\n        if (minWidth < element.x + element.width) {\r\n          minWidth = element.x + element.width;\r\n        }\r\n      });\r\n      return minWidth;\r\n    }\r\n    return \"min-content\";\r\n  }\r\n  public get minHeight(): number {\r\n    if (!this.model.draggingElement) {\r\n      if (this.elements?.length > 0) {\r\n        let maxBottomPoint = 0;\r\n        this.elements?.forEach((element) => {\r\n          if (!(element instanceof StiDragPreviewElement) && element.geometry.bottom > maxBottomPoint) {\r\n            maxBottomPoint = element.geometry.bottom;\r\n          }\r\n        });\r\n        if (this.currentBottomPoint != maxBottomPoint) {\r\n          this.render.insertElement(this.element);\r\n          this.render.checkOutputs(this.model.getElementPage(this.element));\r\n          this.currentBottomPoint = maxBottomPoint;\r\n        }\r\n        return maxBottomPoint > 0 ? maxBottomPoint : 5;\r\n      } else {\r\n        return 5;\r\n      }\r\n    }\r\n  }\r\n  constructor(public model: StiModelService, public render: StiRectangleGeometryLayout) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (!this.isClone) {\r\n      this.element.element = this.ref;\r\n    }\r\n  }\r\n  ngOnInit(): void { }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiToolboxElementComponent } from \"../toolbox/sti-toolbox-element.component\";\r\nimport { StiMouseService } from \"./mouse.service\";\r\nimport { StiTextBoxComponent } from \"../components/sti-text-box/sti-text-box.component\";\r\nimport { StiNumberBoxComponent } from \"../components/sti-number-box/sti-number-box.component\";\r\nimport { StiComboBoxComponent } from \"../components/sti-combo-box/sti-combo-box.component\";\r\nimport { StiListBoxComponent } from \"../components/sti-list-box/sti-list-box.component\";\r\nimport { StiSingleSelectionComponent } from \"../components/sti-single-selection/sti-single-selection.component\";\r\nimport { StiMultipleSelectionComponent } from \"../components/sti-multiple-selection/sti-multiple-selection.component\";\r\nimport { StiCheckBoxComponent } from \"../components/sti-check-box/sti-check-box.component\";\r\nimport { StiLineComponent } from \"../components/sti-line/sti-line.component\";\r\nimport { StiSignatureComponent } from \"../components/sti-signature/sti-signature.component\";\r\nimport { StiDateTimeBoxComponent } from \"../components/sti-date-time-box/sti-date-time-box.component\";\r\nimport { StiTableComponent } from \"../components/sti-table/sti-table.component\";\r\nimport { StiImageComponent } from \"../components/sti-image/sti-image.component\";\r\nimport { StiButtonComponent } from \"../components/sti-button/sti-button.component\";\r\nimport { StiBarcodeComponent } from \"../components/sti-barcode/sti-barcode.component\";\r\nimport { StiTextComponent } from \"../components/sti-text/sti-text.component\";\r\nimport { StiLabelComponent } from \"../components/sti-label/sti-label.component\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { StiDraggableService } from \"./sti-draggable.service\";\r\nimport { StiBarcodeElement } from \"../elements/StiBarcodeElement\";\r\nimport { StiButtonElement } from \"../elements/StiButtonElement\";\r\nimport { StiCheckBoxElement } from \"../elements/StiCheckBoxElement\";\r\nimport { StiComboBoxElement } from \"../elements/StiComboBoxElement\";\r\nimport { StiDateTimeBoxElement } from \"../elements/StiDateTimeBoxElement\";\r\nimport { StiImageElement } from \"../elements/StiImageElement\";\r\nimport { StiLabelElement } from \"../elements/StiLabelElement\";\r\nimport StiLineElement from \"../elements/StiLineElement\";\r\nimport { StiListBoxElement } from \"../elements/StiListBoxElement\";\r\nimport { StiMultipleSelectionElement } from \"../elements/StiMultipleSelectionElement\";\r\nimport { StiNumberBoxElement } from \"../elements/StiNumberBoxElement\";\r\nimport { StiPanelElement } from \"../elements/StiPanelElement\";\r\nimport { StiSignatureElement } from \"../elements/StiSignatureElement\";\r\nimport { StiSingleSelectionElement } from \"../elements/StiSingleSelectionElement\";\r\nimport { StiTableElement } from \"../elements/StiTableElement\";\r\nimport { StiTextBoxElement } from \"../elements/StiTextBoxElement\";\r\nimport { StiTextElement } from \"../elements/StiTextElement\";\r\nimport { StiLocalizationService } from \"./sti-localization.service\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiAddressComponent } from \"../components/sti-address/sti-address.component\";\r\nimport { StiAddressElement } from \"../elements/StiAddressElement\";\r\nimport { StiPDFSignatureComponent } from \"../components/sti-pdf-signature/sti-pdf-signature.component\";\r\nimport { StiPDFSignatureElement } from \"../elements/StiPDFSignatureElement\";\r\nimport { StiPanelComponent } from \"../components/sti-components-holder.component\";\r\n\r\n@Injectable()\r\nexport class StiToolboxService {\r\n  public showGroupPreview: boolean = false;\r\n  public previewX: number;\r\n  public previewY: number;\r\n  public currentGroup: string;\r\n  public elementsForRibbon = [\r\n    {\r\n      caption: \"Input\",\r\n      image: \"images.Toolbox.StiTextBoxElement.png\",\r\n      category: \"PropertyMain\",\r\n    },\r\n    {\r\n      caption: \"Selection\",\r\n      image: \"images.Toolbox.StiSingleSelectionElement.png\",\r\n    },\r\n    {\r\n      caption: \"Others\",\r\n      image: \"images.Toolbox.StiSignatureElement.png\",\r\n      category: \"FormDesigner\",\r\n    },\r\n    { caption: \"Divider\" },\r\n    {\r\n      caption: \"StiTable\",\r\n      image: \"images.Toolbox.StiTableElement.png\",\r\n      id: \"table\",\r\n      component: StiTableComponent,\r\n      element: StiTableElement,\r\n      setForm: true\r\n    },\r\n    {\r\n      caption: \"StiButton\",\r\n      image: \"images.Toolbox.StiButtonElement.png\",\r\n      id: \"button\",\r\n      component: StiButtonComponent,\r\n      element: StiButtonElement,\r\n    },\r\n    {\r\n      caption: \"StiLabelControl\",\r\n      image: \"images.Toolbox.StiLabelElement.png\",\r\n      id: \"label\",\r\n      component: StiLabelComponent,\r\n      element: StiLabelElement,\r\n      category: \"Dialogs\",\r\n    },\r\n    {\r\n      caption: \"StiText\",\r\n      image: \"images.Toolbox.StiRichTextElement.png\",\r\n      id: \"text\",\r\n      component: StiTextComponent,\r\n      element: StiTextElement,\r\n    },\r\n    {\r\n      caption: \"StiImage\",\r\n      image: \"images.Toolbox.StiImageElement.png\",\r\n      id: \"image\",\r\n      component: StiImageComponent,\r\n      element: StiImageElement,\r\n    },\r\n    {\r\n      caption: \"StiPanel\",\r\n      image: \"images.Toolbox.StiPanelElement.png\",\r\n      id: \"panel\",\r\n      component: StiPanelComponent,\r\n      element: StiPanelElement,\r\n    },\r\n  ];\r\n  public inputGroup = [\r\n    {\r\n      caption: \"StiTextBoxControl\",\r\n      image: \"images.Toolbox.StiTextBoxElement.png\",\r\n      id: \"textbox\",\r\n      component: StiTextBoxComponent,\r\n      element: StiTextBoxElement,\r\n      category: \"Dialogs\",\r\n    },\r\n    {\r\n      caption: \"StiNumberBox\",\r\n      image: \"images.Toolbox.StiNumberBoxElement.png\",\r\n      id: \"numberbox\",\r\n      component: StiNumberBoxComponent,\r\n      element: StiNumberBoxElement,\r\n    },\r\n    {\r\n      caption: \"StiComboBox\",\r\n      image: \"images.Toolbox.StiComboBoxElement.png\",\r\n      id: \"combobox\",\r\n      component: StiComboBoxComponent,\r\n      element: StiComboBoxElement,\r\n    },\r\n    {\r\n      caption: \"StiDateTimePickerControl\",\r\n      image: \"images.Toolbox.StiDateTimeBoxElement.png\",\r\n      id: \"dateTime\",\r\n      component: StiDateTimeBoxComponent,\r\n      element: StiDateTimeBoxElement,\r\n      setForm: true,\r\n      category: \"Dialogs\",\r\n    },\r\n  ];\r\n  public selectionGroup = [\r\n    {\r\n      caption: \"StiSingleSelection\",\r\n      image: \"images.Toolbox.StiSingleSelectionElement.png\",\r\n      id: \"singleSelection\",\r\n      component: StiSingleSelectionComponent,\r\n      element: StiSingleSelectionElement,\r\n    },\r\n    {\r\n      caption: \"StiMultipleSelection\",\r\n      image: \"images.Toolbox.StiMultipleSelectionElement.png\",\r\n      id: \"multipleSelection\",\r\n      component: StiMultipleSelectionComponent,\r\n      element: StiMultipleSelectionElement,\r\n    },\r\n    {\r\n      caption: \"StiListBox\",\r\n      image: \"images.Toolbox.StiListBoxElement.png\",\r\n      id: \"listbox\",\r\n      component: StiListBoxComponent,\r\n      element: StiListBoxElement,\r\n    },\r\n    {\r\n      caption: \"StiCheckBox\",\r\n      image: \"images.Toolbox.StiCheckBoxElement.png\",\r\n      id: \"checkbox\",\r\n      component: StiCheckBoxComponent,\r\n      element: StiCheckBoxElement,\r\n    },\r\n  ];\r\n  public otherGroup = [\r\n    {\r\n      caption: \"StiElectronicSignature\",\r\n      image: \"images.Toolbox.StiElectronicSignature.png\",\r\n      id: \"signature\",\r\n      component: StiSignatureComponent,\r\n      element: StiSignatureElement,\r\n    },\r\n    {\r\n      caption: \"StiPdfDigitalSignature\",\r\n      image: \"images.Toolbox.StiPdfDigitalSignature.png\",\r\n      id: \"PDFsignature\",\r\n      component: StiPDFSignatureComponent,\r\n      element: StiPDFSignatureElement,\r\n    },\r\n    {\r\n      caption: \"StiBarCode\",\r\n      image: \"images.Toolbox.StiBarCodeElement.png\",\r\n      id: \"barcode\",\r\n      component: StiBarcodeComponent,\r\n      element: StiBarcodeElement,\r\n    },\r\n    {\r\n      caption: \"Address\",\r\n      image: \"images.Toolbox.Address.png\",\r\n      id: \"address\",\r\n      component: StiAddressComponent,\r\n      element: StiAddressElement,\r\n      category: \"Report\",\r\n    },\r\n    {\r\n      caption: \"Line\",\r\n      image: \"images.Toolbox.StiLineElement.png\",\r\n      id: \"line\",\r\n      component: StiLineComponent,\r\n      element: StiLineElement,\r\n      category: \"Chart\",\r\n    },\r\n  ];\r\n  public elements = [\r\n    {\r\n      caption: \"StiTextBoxControl\",\r\n      image: \"images.Toolbox.StiTextBoxElement.png\",\r\n      id: \"textbox\",\r\n      component: StiTextBoxComponent,\r\n      element: StiTextBoxElement,\r\n      enabled: true,\r\n      category: \"Dialogs\",\r\n    },\r\n    {\r\n      caption: \"StiNumberBox\",\r\n      image: \"images.Toolbox.StiNumberBoxElement.png\",\r\n      id: \"numberbox\",\r\n      component: StiNumberBoxComponent,\r\n      element: StiNumberBoxElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiComboBox\",\r\n      image: \"images.Toolbox.StiComboBoxElement.png\",\r\n      id: \"combobox\",\r\n      component: StiComboBoxComponent,\r\n      element: StiComboBoxElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiListBox\",\r\n      image: \"images.Toolbox.StiListBoxElement.png\",\r\n      id: \"listbox\",\r\n      component: StiListBoxComponent,\r\n      element: StiListBoxElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiSingleSelection\",\r\n      image: \"images.Toolbox.StiSingleSelectionElement.png\",\r\n      id: \"singleSelection\",\r\n      component: StiSingleSelectionComponent,\r\n      element: StiSingleSelectionElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiMultipleSelection\",\r\n      image: \"images.Toolbox.StiMultipleSelectionElement.png\",\r\n      id: \"multipleSelection\",\r\n      component: StiMultipleSelectionComponent,\r\n      element: StiMultipleSelectionElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiCheckBox\",\r\n      image: \"images.Toolbox.StiCheckBoxElement.png\",\r\n      id: \"checkbox\",\r\n      component: StiCheckBoxComponent,\r\n      element: StiCheckBoxElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiElectronicSignature\",\r\n      image: \"images.Toolbox.StiElectronicSignature.png\",\r\n      id: \"signature\",\r\n      component: StiSignatureComponent,\r\n      element: StiSignatureElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiPdfDigitalSignature\",\r\n      image: \"images.Toolbox.StiPdfDigitalSignature.png\",\r\n      id: \"PDFsignature\",\r\n      component: StiPDFSignatureComponent,\r\n      element: StiPDFSignatureElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiDateTimePickerControl\",\r\n      image: \"images.Toolbox.StiDateTimeBoxElement.png\",\r\n      id: \"dateTime\",\r\n      component: StiDateTimeBoxComponent,\r\n      element: StiDateTimeBoxElement,\r\n      enabled: true,\r\n      category: \"Dialogs\",\r\n    },\r\n    {\r\n      caption: \"StiTable\",\r\n      image: \"images.Toolbox.StiTableElement.png\",\r\n      id: \"table\",\r\n      component: StiTableComponent,\r\n      element: StiTableElement,\r\n      enabled: true,\r\n      setForm: true\r\n    },\r\n    {\r\n      caption: \"StiButton\",\r\n      image: \"images.Toolbox.StiButtonElement.png\",\r\n      id: \"button\",\r\n      component: StiButtonComponent,\r\n      element: StiButtonElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiBarCode\",\r\n      image: \"images.Toolbox.StiBarCodeElement.png\",\r\n      id: \"barcode\",\r\n      component: StiBarcodeComponent,\r\n      element: StiBarcodeElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"Address\",\r\n      image: \"images.Toolbox.Address.png\",\r\n      id: \"address\",\r\n      component: StiAddressComponent,\r\n      element: StiAddressElement,\r\n      enabled: true,\r\n      category: \"Report\",\r\n    },\r\n    { caption: \"Divider\" },\r\n    {\r\n      caption: \"StiLabelControl\",\r\n      image: \"images.Toolbox.StiLabelElement.png\",\r\n      id: \"label\",\r\n      component: StiLabelComponent,\r\n      element: StiLabelElement,\r\n      enabled: true,\r\n      category: \"Dialogs\",\r\n    },\r\n    {\r\n      caption: \"StiText\",\r\n      image: \"images.Toolbox.StiRichTextElement.png\",\r\n      id: \"text\",\r\n      component: StiTextComponent,\r\n      element: StiTextElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"StiImage\",\r\n      image: \"images.Toolbox.StiImageElement.png\",\r\n      id: \"image\",\r\n      component: StiImageComponent,\r\n      element: StiImageElement,\r\n      enabled: true,\r\n    },\r\n    {\r\n      caption: \"Line\",\r\n      image: \"images.Toolbox.StiLineElement.png\",\r\n      id: \"line\",\r\n      component: StiLineComponent,\r\n      element: StiLineElement,\r\n      enabled: true,\r\n      category: \"Chart\",\r\n    },\r\n    {\r\n      caption: \"StiPanel\",\r\n      image: \"images.Toolbox.StiPanelElement.png\",\r\n      id: \"panel\",\r\n      component: StiPanelComponent,\r\n      element: StiPanelElement,\r\n      enabled: true,\r\n    },\r\n  ];\r\n  public unusedElements: string[] = [];\r\n\r\n  public isEnabled(element) {\r\n    if (this.unusedElements?.find((item) => item == element.id) || !this.isEnabledFromSettings(element)) {\r\n      return false;\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n  isEnabledFromSettings(element) {\r\n    return this.model.getBooleanSetting(this.idToCamelCase(element?.id)) ?? true;\r\n  }\r\n  getToolboxId(type) {\r\n    if (type == \"TextElement\" || type == \"Text\") {\r\n      return \"text\";\r\n    } else if (type == \"Text_BoxElement\" || type == \"TextBox\") {\r\n      return \"textbox\";\r\n    } else if (type == \"TableElement\" || type == \"Table\") {\r\n      return \"table\";\r\n    } else if (type == \"Single_SelectionElement\" || type == \"SingleSelection\") {\r\n      return \"singleSelection\";\r\n    } else if (type == \"SignatureElement\" || type == \"Signature\") {\r\n      return \"signature\";\r\n    } else if (type == \"PDFSignatureElement\" || type == \"PDFSignature\") {\r\n      return \"PDFsignature\";\r\n    } else if (type == \"PanelElement\" || type == \"Panel\") {\r\n      return \"panel\";\r\n    } else if (type == \"Number_BoxElement\" || type == \"NumberBox\") {\r\n      return \"numberbox\";\r\n    } else if (type == \"Multiple_SelectionElement\" || type == \"MultipleSelection\") {\r\n      return \"multipleSelection\";\r\n    } else if (type == \"List_BoxElement\" || type == \"ListBox\") {\r\n      return \"listbox\";\r\n    } else if (type == \"LineElement\" || type == \"Line\") {\r\n      return \"line\";\r\n    } else if (type == \"LabelElement\" || type == \"Label\") {\r\n      return \"label\";\r\n    } else if (type == \"ImageElement\" || type == \"Image\") {\r\n      return \"image\";\r\n    } else if (type == \"DateTime_BoxElement\" || type == \"DateTimeBox\") {\r\n      return \"dateTime\";\r\n    } else if (type == \"Combo_BoxElement\" || type == \"ComboBox\") {\r\n      return \"combobox\";\r\n    } else if (type == \"Check_BoxElement\" || type == \"CheckBox\") {\r\n      return \"checkbox\";\r\n    } else if (type == \"ButtonElement\" || type == \"Button\") {\r\n      return \"button\";\r\n    } else if (type == \"BarCodeElement\" || type == \"BarCode\") {\r\n      return \"barcode\";\r\n    } else if (type == \"AddressElement\" || type == \"Address\") {\r\n      return \"address\";\r\n    }\r\n  }\r\n  idToCamelCase(id) {\r\n    switch (id) {\r\n      case \"textbox\":\r\n        return \"showTextBox\";\r\n      case \"numberbox\":\r\n        return \"showNumberBox\";\r\n      case \"combobox\":\r\n        return \"showComboBox\";\r\n      case \"listbox\":\r\n        return \"showListBox\";\r\n      case \"singleSelection\":\r\n        return \"showSingleSelection\";\r\n      case \"multipleSelection\":\r\n        return \"showMultipleSelection\";\r\n      case \"checkbox\":\r\n        return \"showCheckBox\";\r\n      case \"signature\":\r\n        return \"showSignature\";\r\n      /*  case \"PDFsignature\":\r\n        return \"showPDFSignature\"; */\r\n      case \"dateTime\":\r\n        return \"showDateTimeBox\";\r\n      case \"table\":\r\n        return \"showTable\";\r\n      case \"button\":\r\n        return \"showButton\";\r\n      case \"barcode\":\r\n        return \"showBarCode\";\r\n      case \"address\":\r\n        return \"showAddress\";\r\n      case \"label\":\r\n        return \"showLabel\";\r\n      case \"text\":\r\n        return \"showText\";\r\n      case \"image\":\r\n        return \"showImage\";\r\n      case \"line\":\r\n        return \"showLine\";\r\n      case \"panel\":\r\n        return \"showPanel\";\r\n    }\r\n  }\r\n  public isGroupEnabled(group) {\r\n    if (\r\n      group.caption == \"Input\" ||\r\n      group.caption == \"Selection\" ||\r\n      group.caption == \"Other\" ||\r\n      group.caption == \"Divider\"\r\n    ) {\r\n      if (group.caption == \"Input\") {\r\n        if (\r\n          !this.unusedElements?.find((item) => item == \"textbox\") ||\r\n          !this.unusedElements?.find((item) => item == \"numberbox\") ||\r\n          !this.unusedElements?.find((item) => item == \"combobox\") ||\r\n          !this.unusedElements?.find((item) => item == \"dateTime\")\r\n        ) {\r\n          return true;\r\n        } else {\r\n          return false;\r\n        }\r\n      } else if (group.caption == \"Selection\") {\r\n        if (\r\n          !this.unusedElements?.find((item) => item == \"singleSelection\") ||\r\n          !this.unusedElements?.find((item) => item == \"multipleSelection\") ||\r\n          !this.unusedElements?.find((item) => item == \"listbox\") ||\r\n          !this.unusedElements?.find((item) => item == \"checkbox\")\r\n        ) {\r\n          return true;\r\n        } else {\r\n          return false;\r\n        }\r\n      } else if (group.caption == \"Other\") {\r\n        if (\r\n          !this.unusedElements?.find((item) => item == \"signature\") ||\r\n          !this.unusedElements?.find((item) => item == \"PDFsignature\") ||\r\n          !this.unusedElements?.find((item) => item == \"barcode\") ||\r\n          !this.unusedElements?.find((item) => item == \"address\") ||\r\n          !this.unusedElements?.find((item) => item == \"line\")\r\n        ) {\r\n          return true;\r\n        } else {\r\n          return false;\r\n        }\r\n      }\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n  public isInsertInlineElementsDividerEnabled(element) {\r\n    if (element.caption == \"Divider\") {\r\n      if (\r\n        !this.unusedElements?.find((item) => item == \"textbox\") ||\r\n        !this.unusedElements?.find((item) => item == \"numberbox\") ||\r\n        !this.unusedElements?.find((item) => item == \"combobox\") ||\r\n        !this.unusedElements?.find((item) => item == \"dateTime\") ||\r\n        !this.unusedElements?.find((item) => item == \"singleSelection\") ||\r\n        !this.unusedElements?.find((item) => item == \"multipleSelection\") ||\r\n        !this.unusedElements?.find((item) => item == \"listbox\") ||\r\n        !this.unusedElements?.find((item) => item == \"checkbox\") ||\r\n        !this.unusedElements?.find((item) => item == \"signature\") ||\r\n        !this.unusedElements?.find((item) => item == \"PDFsignature\") ||\r\n        !this.unusedElements?.find((item) => item == \"barcode\") ||\r\n        !this.unusedElements?.find((item) => item == \"address\") ||\r\n        !this.unusedElements?.find((item) => item == \"line\")\r\n      ) {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  public isToolboxInlineElementsDividerEnabled(element) {\r\n    if (element.caption == \"Divider\") {\r\n      if (\r\n        !this.unusedElements?.find((item) => item == \"textbox\") ||\r\n        !this.unusedElements?.find((item) => item == \"numberbox\") ||\r\n        !this.unusedElements?.find((item) => item == \"combobox\") ||\r\n        !this.unusedElements?.find((item) => item == \"dateTime\") ||\r\n        !this.unusedElements?.find((item) => item == \"singleSelection\") ||\r\n        !this.unusedElements?.find((item) => item == \"multipleSelection\") ||\r\n        !this.unusedElements?.find((item) => item == \"listbox\") ||\r\n        !this.unusedElements?.find((item) => item == \"checkbox\") ||\r\n        !this.unusedElements?.find((item) => item == \"signature\") ||\r\n        !this.unusedElements?.find((item) => item == \"PDFsignature\") ||\r\n        !this.unusedElements?.find((item) => item == \"barcode\") ||\r\n        !this.unusedElements?.find((item) => item == \"address\") ||\r\n        !this.unusedElements?.find((item) => item == \"table\") ||\r\n        !this.unusedElements?.find((item) => item == \"button\")\r\n      ) {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  public isInsertOutlineElementsDividerEnabled() {\r\n    if (\r\n      !this.unusedElements?.find((item) => item == \"table\") ||\r\n      !this.unusedElements?.find((item) => item == \"button\") ||\r\n      !this.unusedElements?.find((item) => item == \"label\") ||\r\n      !this.unusedElements?.find((item) => item == \"text\") ||\r\n      !this.unusedElements?.find((item) => item == \"image\") ||\r\n      !this.unusedElements?.find((item) => item == \"panel\")\r\n    ) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  public isToolboxOutlineElementsDividerEnabled() {\r\n    if (\r\n      !this.unusedElements?.find((item) => item == \"label\") ||\r\n      !this.unusedElements?.find((item) => item == \"text\") ||\r\n      !this.unusedElements?.find((item) => item == \"image\") ||\r\n      !this.unusedElements?.find((item) => item == \"line\") ||\r\n      !this.unusedElements?.find((item) => item == \"panel\")\r\n    ) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  public haveEnabledComponents() {\r\n    let isEnabled = false;\r\n    for (let element of this.elements) {\r\n      if (element.enabled) {\r\n        isEnabled = true;\r\n        break;\r\n      }\r\n    }\r\n    return isEnabled;\r\n  }\r\n  public mouseDownComponent: StiToolboxElementComponent;\r\n  private subject = new Subject<any>();\r\n  public showToolbox: boolean = true;\r\n\r\n  public mouseDownX: number;\r\n  public mouseDownY: number;\r\n\r\n  constructor(\r\n    public mouseService: StiMouseService,\r\n    public draggableService: StiDraggableService,\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService\r\n  ) {\r\n    mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.onMouseMove(event);\r\n    });\r\n\r\n    mouseService.getDocumentMouseUp().subscribe(() => {\r\n      // this.mouseDownComponent = null;\r\n    });\r\n  }\r\n\r\n  public getMessage(): Observable<any> {\r\n    return this.subject.asObservable();\r\n  }\r\n  public elementMouseDown(component: StiToolboxElementComponent, event: MouseEvent) {\r\n    this.mouseDownComponent = component;\r\n    this.mouseDownX = event.clientX;\r\n    this.mouseDownY = event.clientY;\r\n  }\r\n\r\n  public elementDoubleClick(component: StiToolboxElementComponent) {\r\n    this.mouseDownComponent = null;\r\n\r\n    let element = new component.element.element(component.element.setForm ? this.model.form : undefined);\r\n    this.model.form.settings.applySettings(element);\r\n    this.draggableService.addingByDoubleClick(element);\r\n  }\r\n\r\n  public onMouseMove(event: MouseEvent) {\r\n    if (\r\n      this.mouseDownComponent &&\r\n      Math.max(Math.abs(this.mouseDownX - event.clientX), Math.abs(this.mouseDownY - event.clientY)) >\r\n      StiDraggableService.MOUSE_DELTA\r\n    ) {\r\n      let element = new this.mouseDownComponent.element.element(this.mouseDownComponent.element.setForm ? this.model.form : undefined);\r\n      this.model.form.settings.applySettings(element);\r\n      this.model.elementToUpdate = element;\r\n      this.draggableService.startDrag(event, element);\r\n      if (this.model.showGroupPreview) {\r\n        this.model.showGroupPreview = false;\r\n      }\r\n      this.mouseDownComponent = null;\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { StiModelService } from \"./model.service\";\r\n\r\n@Injectable()\r\nexport class StiThemeService {\r\n  private _currentTheme: string;\r\n  public currentThemeSubj = new Subject<string>();\r\n  public get currentTheme() {\r\n    return this._currentTheme;\r\n  }\r\n  public set currentTheme(value: string) {\r\n    this._currentTheme = value;\r\n    this.currentThemeSubj.next(value);\r\n  }\r\n  public getIcon(type: string) {\r\n    if (type == \"All\") {\r\n      return this.model.getImage(\"images.Properties.BorderAll.png\");\r\n    } else if (type == \"None\") {\r\n      return this.model.getImage(\"images.Properties.BorderNone.png\");\r\n    } else if (type == \"Top\") {\r\n      return this.model.getImage(\"images.Properties.BorderTop.png\");\r\n    } else if (type == \"Left\") {\r\n      return this.model.getImage(\"images.Properties.BorderLeft.png\");\r\n    } else if (type == \"Bottom\") {\r\n      return this.model.getImage(\"images.Properties.BorderBottom.png\");\r\n    } else if (type == \"Right\") {\r\n      return this.model.getImage(\"images.Properties.BorderRight.png\");\r\n    } else if (type == \"GridAll\") {\r\n      return this.model.getImage(\"images.Properties.GridLinesAll.png\");\r\n    } else if (type == \"GridNone\") {\r\n      return this.model.getImage(\"images.Properties.GridLinesNone.png\");\r\n    } else if (type == \"Vertical\") {\r\n      return this.model.getImage(\"images.Properties.GridLinesVertical.png\");\r\n    } else if (type == \"Horizontal\") {\r\n      return this.model.getImage(\"images.Properties.GridLinesHorizontal.png\");\r\n    }\r\n  }\r\n\r\n  public changeTheme() {\r\n    if (this.currentTheme == \"Light\") {\r\n      if (document.getElementById(\"CurrentTheme\")) {\r\n        document.getElementById(\"CurrentTheme\").remove();\r\n      }\r\n      let head = document.getElementsByTagName(\"head\")[0];\r\n      let style = document.createElement(\"style\");\r\n      style.id = \"CurrentTheme\";\r\n      style.innerHTML = `:root {\r\n        --back-color: rgb(255, 255, 255);\r\n        --workspace-color: rgb(236,236,236);\r\n        --modalNav-color: rgb(236, 236, 236);\r\n        --modalBorder-color: rgb(195, 195, 195);\r\n        --text-color: rgb(85, 85, 85);\r\n        --property-label-color: rgb(118,118,118);\r\n        --input-color: white;\r\n        --inputBorder-color: rgb(107, 107, 107);\r\n        --track-color: rgb(154, 154, 153);\r\n        --trackHover-color: rgb(170, 171, 169);\r\n        --thumb-color: rgb(192, 192, 191);\r\n        --hover-color: rgb(218, 218, 218);\r\n        --active-color: rgb(239, 239, 239);\r\n        --focus-color: rgb(170, 171, 169);\r\n        --formBorder-color: rgb(224, 224, 224);\r\n        --arrowHover-color: rgb(195, 195, 195);\r\n        --columnDeleteHover-color: rgb(209, 208, 207);\r\n        --toolbarResizer-color: white;\r\n        --toolbarResizerBorder-color: rgb(220, 219, 217);\r\n        --pageNavBackground-color: white;\r\n        --pageNavBorder-color: rgb(220, 219, 217);\r\n        --pageNavDisable-color: rgb(244, 244, 244);\r\n    }`;\r\n      head.appendChild(style);\r\n    } else {\r\n      if (document.getElementById(\"CurrentTheme\")) {\r\n        document.getElementById(\"CurrentTheme\").remove();\r\n      }\r\n      let head = document.getElementsByTagName(\"head\")[0];\r\n      let style = document.createElement(\"style\");\r\n      style.id = \"CurrentTheme\";\r\n      style.innerHTML = `:root {\r\n        --back-color: rgb(51, 51, 51);\r\n        --workspace-color: rgb(45,45,45);\r\n        --modalNav-color: rgb(54, 54, 55);\r\n        --modalBorder-color: rgb(45, 45, 45);\r\n        --text-color: rgb(255, 255, 255);\r\n        --property-label-color: rgb(167,167,167);\r\n        --input-color: rgb(43, 43, 43);\r\n        --inputBorder-color: rgb(190, 190, 190);\r\n        --track-color: rgb(71, 71, 71);\r\n        --trackHover-color: rgb(94, 95, 93);\r\n        --thumb-color: rgb(71, 71, 71);\r\n        --hover-color: rgb(80, 80, 80);\r\n        --active-color: rgb(59, 59, 59);\r\n        --focus-color: rgb(91, 91, 91);\r\n        --formBorder-color: rgb(79, 79, 79);\r\n        --arrowHover-color: rgb(124, 124, 124);\r\n        --columnDeleteHover-color: rgb(132, 132, 132);\r\n        --toolbarResizer-color: rgb(71, 71, 71);\r\n        --toolbarResizerBorder-color: rgb(71, 71, 71);\r\n        --pageNavBackground-color: rgb(71, 71, 71);\r\n        --pageNavBorder-color: rgb(64, 64, 64);\r\n        --pageNavDisable-color: rgb(55, 55, 55);\r\n    }`;\r\n      head.appendChild(style);\r\n    }\r\n  }\r\n  constructor(public model: StiModelService) {\r\n    this.currentThemeSubj.subscribe(() => this.changeTheme());\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class StiLocalStorageService {\r\n  constructor() {}\r\n\r\n  public getItem(key: string): string | null {\r\n    try {\r\n      return localStorage.getItem(key);\r\n    } catch {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  public setItem(key: string, value: string) {\r\n    try {\r\n      localStorage.setItem(key, value);\r\n    } catch {}\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiHttpClientService } from \"./http-client.service\";\r\nimport { StiModelService } from \"./model.service\";\r\n\r\n@Injectable()\r\nexport class StiExportService {\r\n  public showModalWindow: boolean = false;\r\n  public useReadOnly: boolean = false;\r\n  public usePdfA: boolean = false;\r\n  public openAfterExport: boolean = false;\r\n  constructor(public model: StiModelService, public httpService: StiHttpClientService) {}\r\n\r\n  public exportToPdf() {\r\n    let currentForm = this.model.form.saveToReportJsonObject().serialize();\r\n    let data = {\r\n      action: \"GeneratePDF\",\r\n      form: currentForm,\r\n      settings: {\r\n        usePdfA: this.usePdfA,\r\n        readOnly: this.useReadOnly,\r\n      },\r\n    };\r\n    this.httpService.post(this.model.requestUrl, data, \"byteArray\", { showProgress: true }).subscribe((data) => {\r\n      let pdfBytes = new Int8Array(data as ArrayBuffer);\r\n      this.model.showProgress = false;\r\n      this.model.downloadFiles(pdfBytes, \"ExportFromForm.pdf\");\r\n    });\r\n  }\r\n  public getPdfBytes() {\r\n    let currentForm = this.model.form.saveToReportJsonObject().serialize();\r\n    let data = {\r\n      action: \"GeneratePDF\",\r\n      form: currentForm,\r\n      settings: {\r\n        usePdfA: this.usePdfA,\r\n        readOnly: this.useReadOnly,\r\n      },\r\n    };\r\n    return this.httpService\r\n      .post(this.model.requestUrl, data, \"byteArray\", { showProgress: true })\r\n      .toPromise()\r\n      .then((res) => {\r\n        this.model.showProgress = false;\r\n        return new Int8Array(res as ArrayBuffer);\r\n      });\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiHttpClientService } from \"./http-client.service\";\r\nimport { StiLocalizationService } from \"./sti-localization.service\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiWebFormOptions } from \"./objects\";\r\nimport { StiHelperService } from \"./sti-helper.service\";\r\nimport { StiUserService } from \"./sti-user-service\";\r\nimport { StiObject } from \"../system/StiObject\";\r\nimport { StimulsoftFormsService } from \"../stimulsoft-forms.service\";\r\nimport { StiLocalStorageService } from \"./sti-local-storage.service\";\r\nimport { StiExportService } from \"./sti-export.service\";\r\nimport { StiDraggableService } from \"./sti-draggable.service\";\r\nimport { StiStaticHelperService } from \"./sti-static-helper.service\";\r\n\r\n@Injectable()\r\nexport class StiControllerService {\r\n  private USED_PROPERTIES = [\r\n    \"localization\",\r\n    \"accountUserProperties\",\r\n    \"localizationList\",\r\n    \"licenseProducts\",\r\n    \"creationDate\",\r\n    \"version\",\r\n    \"fontFamilies\",\r\n    \"imagesArray\",\r\n  ];\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public httpClient: StiHttpClientService,\r\n    public helper: StiHelperService,\r\n    public userService: StiUserService,\r\n    public loc: StiLocalizationService,\r\n    public formService: StimulsoftFormsService,\r\n    public stiLocalStorage: StiLocalStorageService,\r\n    public exportService: StiExportService,\r\n    public draggableService: StiDraggableService\r\n  ) {\r\n    formService.serviceEvents.subscribe((data) => {\r\n      switch (data.action) {\r\n        case \"postData\":\r\n          this.httpClient.post(this.model.requestUrl, data.data, \"json\", data.options).subscribe((result) => {\r\n            this.model.showProgress = false;\r\n            if (data.func) {\r\n              data.func(result);\r\n            }\r\n          });\r\n          break;\r\n        case \"showFileMenu\":\r\n          this.model.formEvents.next({ name: \"ShowFileMenu\" });\r\n          break;\r\n        case \"showSaveMenu\":\r\n          this.model.formEvents.next({ name: \"ShowSaveMenu\" });\r\n          break;\r\n        case \"showTab\":\r\n          this.model.formEvents.next({ name: \"ShowTab\", value: data.tabName });\r\n          break;\r\n        case \"exportToPdf\":\r\n          this.exportService.useReadOnly = data.readOnly;\r\n          this.exportService.usePdfA = data.pdfACompliance;\r\n          this.exportService.exportToPdf();\r\n          break;\r\n        case \"getPdfBytes\":\r\n          this.exportService.useReadOnly = data.readOnly;\r\n          this.exportService.usePdfA = data.pdfACompliance;\r\n          this.exportService.getPdfBytes().then((val) => {\r\n            this.formService.serviceEventsCallbacks.next({ action: \"pdfBytesCallback\", value: val });\r\n          });\r\n          break;\r\n        case \"setZoom\":\r\n          this.model.setZoomFromString(data.zoom);\r\n          break;\r\n        case \"addElementToForm\":\r\n          this.draggableService.addingByDoubleClick(data.element);\r\n          break;\r\n      }\r\n    });\r\n  }\r\n\r\n  public initialize() {\r\n    if (this.model.properties?.cloudLoginInfo) {\r\n      this.model.login = this.model.properties.cloudLoginInfo;\r\n      return;\r\n    }\r\n\r\n    let localization;\r\n    if (\r\n      this.stiLocalStorage.getItem(\"StiFormsLocalization\") != null &&\r\n      this.stiLocalStorage.getItem(\"StiFormsLocalization\") != undefined &&\r\n      this.stiLocalStorage.getItem(\"StiFormsLocalization\") != \"undefined\"\r\n    ) {\r\n      localization = JSON.parse(this.stiLocalStorage.getItem(\"StiFormsLocalization\"));\r\n    }\r\n    let currentLocalization = (localization?.cultureName) ?? (StiStaticHelperService.browserLanguage ?? \"en\");\r\n    let scale = window.devicePixelRatio;\r\n    this.httpClient\r\n      .post(\r\n        this.model.requestUrl,\r\n        { action: \"Initialize\", currentLocalization: currentLocalization, scaleFactor: scale },\r\n        \"json\",\r\n        { showProgress: this.model.loadingFromCloud ? false : true }\r\n      )\r\n      .subscribe(\r\n        (data) => {\r\n          if (this.model.properties) {\r\n            delete this.model.properties?.cloudLogin;\r\n            delete this.model.properties?.cloudPassword;\r\n          }\r\n\r\n          if (data[\"cloudReload\"]) {\r\n            document.location.href = document.location.href;\r\n            return;\r\n          }\r\n\r\n          let options = (this.model.options = data as StiWebFormOptions);\r\n          StiLocalizationService.setLocalization(options.localization);\r\n          this.model.assemblyInfo = options.assemblyInfo;\r\n          this.userService.licenseProducts = options.licenseProducts;\r\n          this.userService.currentUser = options.accountUserProperties;\r\n          this.model.userName = options.userName;\r\n          this.loc.localizationList = this.model.toCamelCase(options.localizationList);\r\n          let localizationSetting = data[\"localizationSetting\"];\r\n          let defaultLocalization = StiStaticHelperService.browserLanguage;\r\n\r\n          if (!this.loc.localizationList?.find((item) => item.cultureName == defaultLocalization)) {\r\n            defaultLocalization = defaultLocalization.substring(0, 2);\r\n          }\r\n          this.loc.defaultLocalization = this.loc.localizationList?.find(\r\n            (item) => item.cultureName == defaultLocalization\r\n          );\r\n          if (localizationSetting && localizationSetting.length > 0) {\r\n            this.loc.currentLocalization = this.loc.localizationList?.find(\r\n              (item) => item.cultureName == localizationSetting\r\n            );\r\n          } else {\r\n            if (!this.loc.currentLocalization) {\r\n              if (currentLocalization != this.loc.defaultLocalization?.cultureName) {\r\n                this.loc.currentLocalization = this.loc.localizationList?.find(\r\n                  (item) => item.cultureName == currentLocalization\r\n                );\r\n              } else {\r\n                this.loc.currentLocalization = this.loc.localizationList?.find(\r\n                  (item) => item.cultureName == defaultLocalization\r\n                );\r\n              }\r\n            }\r\n          }\r\n          if (options.creationDate) {\r\n            this.userService.buildDate = new Date(options.creationDate);\r\n            this.model.buildDate = options.creationDate;\r\n          } else {\r\n            this.userService.buildDate = new Date(options.assemblyInfo?.created);\r\n            this.model.buildDate = options.assemblyInfo?.created;\r\n          }\r\n          if (this.model?.properties?.cloudPlanIdent) {\r\n          } else {\r\n            this.userService.checkLicense();\r\n          }\r\n          this.model.buildVersion = options.assemblyInfo.version;\r\n          if (options.fontFamilies) {\r\n            let fontFamilies = [];\r\n            options.fontFamilies.forEach((f) => fontFamilies.push({ name: f }));\r\n            this.model.fontFamilies = fontFamilies;\r\n          }\r\n          if (options.imagesArray) {\r\n            this.model.imagesArray = options.imagesArray;\r\n          }\r\n          this.model.showProgress = false;\r\n          this.model.needToRefresh.next(true);\r\n          this.helper.updateHelper();\r\n          setTimeout(() => {\r\n            this.model.showTrialLog();\r\n          });\r\n          let eventData = {};\r\n          this.model.isInitialized = true;\r\n          setTimeout(() => {\r\n            if (this.model.isWebView && this.model.showTrialBar) {\r\n              this.model.showTrialTimerWindow = true;\r\n            }\r\n          }, 3000);\r\n          this.model.setZoomFromString(this.model?.settings?.zoom);\r\n          StiObject.keys(options)\r\n            .filter((p) => this.USED_PROPERTIES.indexOf(p) == -1)\r\n            .forEach((prop) => (eventData[prop] = options[prop]));\r\n          this.model.interfaceEvent.next({ name: \"Loaded\", data: eventData });\r\n        },\r\n        (error: any) => {\r\n          if (!this.model?.properties?.cloudPlanIdent) {\r\n            this.userService.checkLicense();\r\n          }\r\n        }\r\n      );\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiMouseService } from \"./mouse.service\";\r\n\r\n@Injectable()\r\nexport class StiChangesService {\r\n  private forceChanged = false;\r\n  private started = false;\r\n  private savedForm: string;\r\n\r\n  constructor(public model: StiModelService, public mouseService: StiMouseService) {\r\n    model.formEvents.subscribe((e) => {\r\n      if (e.name == \"SetForm\" || e.name == \"UpdateForm\") {\r\n        this.savedForm = this.model.form.saveToJsonObject({ notSerializeImages: true }).serialize();\r\n      }\r\n    });\r\n  }\r\n\r\n  public start() {\r\n    if (this.started) {\r\n      return;\r\n    }\r\n\r\n    let this_ = this;\r\n    setInterval(() => {\r\n      if (\r\n        this_.model.form &&\r\n        this_.model.draggingElement == null &&\r\n        !this_.mouseService.leftButtonDown &&\r\n        this.model.elementToUpdate == null\r\n      ) {\r\n        let s = this_.model.form.saveToJsonObject({ notSerializeImages: true }).serialize();\r\n        let equals = this_.savedForm == s;\r\n        if (!equals || this_.forceChanged) {\r\n          this_.savedForm = s;\r\n          this_.model.formEvents.next({ name: \"FormChanged\" });\r\n          this_.forceChanged = false;\r\n        }\r\n      }\r\n    }, 1000);\r\n  }\r\n\r\n  public forceChanges() {\r\n    this.forceChanged = true;\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiDraggableService } from \"./sti-draggable.service\";\r\nimport { StiHelperService } from \"./sti-helper.service\";\r\nimport { StiNameService } from \"./sti-name.service\";\r\n\r\n@Injectable()\r\nexport class FormEventsService {\r\n\r\n\r\n  static dateToJsonDate(date: Date): string {\r\n    let offset: number = date.getTimezoneOffset() * -1;\r\n    let hoursOffset: string = Math.abs(Math.floor(offset / 60)).toString();\r\n    let minutesOffset: string = Math.abs(offset % 60).toString();\r\n    if (hoursOffset.length == 1) hoursOffset = \"0\" + hoursOffset;\r\n    if (minutesOffset.length == 1) minutesOffset = \"0\" + minutesOffset;\r\n    return (\r\n      \"/Date(\" + Date.parse(date.toString()).toString() + (offset >= 0 ? \"+\" : \"-\") + hoursOffset + minutesOffset + \")/\"\r\n    );\r\n  }\r\n\r\n  public get canMoveUp(): boolean {\r\n    let state: boolean = true;\r\n    this.model.form.pages.forEach((page, index) => {\r\n      if (page === this.currentPage && index == 0) {\r\n        state = false;\r\n      }\r\n    });\r\n    return state;\r\n  }\r\n  public get currentPage() {\r\n    return this.model.selectedPage ? this.model.selectedPage : null;\r\n  }\r\n  public get canMoveDown(): boolean {\r\n    let state: boolean = true;\r\n    this.model.form.pages.forEach((page, index) => {\r\n      if (page === this.currentPage && index == this.model.form.pages.length - 1) {\r\n        state = false;\r\n      }\r\n    });\r\n    return state;\r\n  }\r\n  public get canDelete(): boolean {\r\n    return this.model?.form?.pages?.length > 1 ? true : false;\r\n  }\r\n  public get canClear(): boolean {\r\n    return this.currentPage.allElements.length > 0 ? true : false;\r\n  }\r\n\r\n  deleteComponent() {\r\n    this.helper.deleteSelectedComponent();\r\n    if (this.model.showContextMenu) {\r\n      this.model.showContextMenu = false;\r\n    }\r\n  }\r\n  moveUp() {\r\n    let index: number = this.model.form.pages.indexOf(this.currentPage);\r\n    this.model.form.pages.splice(index, 1);\r\n    this.model.form.pages.splice(index - 1, 0, this.currentPage);\r\n    setTimeout(() => {\r\n      let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n      workspace.scrollTop = workspace.scrollTop - (this.currentPage?.height + 20) * this.model.zoom;\r\n    }, 0);\r\n    if (this.model.showContextMenu) {\r\n      this.model.showContextMenu = false;\r\n    }\r\n  }\r\n  moveDown() {\r\n    let index: number = this.model.form.pages.indexOf(this.currentPage);\r\n    this.model.form.pages.splice(index, 1);\r\n    this.model.form.pages.splice(index + 1, 0, this.currentPage);\r\n    setTimeout(() => {\r\n      let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n      workspace.scrollTop = workspace.scrollTop + (this.currentPage?.height + 20) * this.model.zoom;\r\n    }, 0);\r\n    if (this.model.showContextMenu) {\r\n      this.model.showContextMenu = false;\r\n    }\r\n  }\r\n  insertAfter() {\r\n    let newPage = this.helper.clonePage(this.currentPage);\r\n    newPage.elements = [];\r\n    newPage.name = this.nameService.getElementName(newPage);\r\n    this.model.form.pages.splice(this.model.form.pages.indexOf(this.currentPage) + 1, 0, newPage);\r\n    setTimeout(() => {\r\n      this.model.selectedPage = newPage;\r\n    });\r\n    setTimeout(() => {\r\n      let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n      workspace.scrollTop = workspace.scrollTop + (newPage.height + 20) * this.model.zoom;\r\n    }, 0);\r\n    if (this.model.showContextMenu) {\r\n      this.model.showContextMenu = false;\r\n    }\r\n  }\r\n  insertBefore() {\r\n    let newPage = this.helper.clonePage(this.currentPage);\r\n    newPage.name = this.nameService.getElementName(newPage);\r\n    newPage.elements = [];\r\n    this.model.form.pages.splice(this.model.form.pages.indexOf(this.currentPage), 0, newPage);\r\n    setTimeout(() => {\r\n      this.model.selectedPage = newPage;\r\n    });\r\n    if (this.model.showContextMenu) {\r\n      this.model.showContextMenu = false;\r\n    }\r\n  }\r\n  clear() {\r\n    this.currentPage.elements = [];\r\n    if (this.model.showContextMenu) {\r\n      this.model.showContextMenu = false;\r\n    }\r\n  }\r\n  delete() {\r\n    this.model.showModalWindow = true;\r\n    if (this.model.showContextMenu) {\r\n      this.model.showContextMenu = false;\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public draggableService: StiDraggableService,\r\n    public nameService: StiNameService\r\n  ) { }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiModelService } from \"./model.service\";\r\n\r\n@Injectable()\r\nexport class StiColorDialogService {\r\n  public dialogWidth: number = 185;\r\n  public dialogHeight: number = 236;\r\n\r\n  public dialogX: number;\r\n  public dialogY: number;\r\n  public currentColorObject: any;\r\n  public cloneOfCurrentColorObject: any;\r\n  public rgbToHex(rgb: string): string {\r\n    let rgbArray = rgb.split(\",\");\r\n    let hex = \"#\";\r\n    rgbArray.forEach((item) => {\r\n      hex += this.componentToHex(Number(item));\r\n    });\r\n    return hex;\r\n  }\r\n  componentToHex(c: number): string {\r\n    let hex = c.toString(16);\r\n    return hex.length == 1 ? \"0\" + hex : hex;\r\n  }\r\n  public browserColors = [\r\n    { name: \"Transparent\", color: \"transparent\" },\r\n    { name: \"Black\", color: \"0,0,0\" },\r\n    { name: \"DimGray\", color: \"105,105,105\" },\r\n    { name: \"Gray\", color: \"128,128,128\" },\r\n    { name: \"DarkGray\", color: \"169,169,169\" },\r\n    { name: \"Silver\", color: \"192,192,192\" },\r\n    { name: \"LightGray\", color: \"211,211,211\" },\r\n    { name: \"Gainsboro\", color: \"220,220,220\" },\r\n    { name: \"WhiteSmoke\", color: \"245,245,245\" },\r\n    { name: \"White\", color: \"255,255,255\" },\r\n    { name: \"RosyBrown\", color: \"188,143,143\" },\r\n    { name: \"IndianRed\", color: \"205,92,92\" },\r\n    { name: \"Brown\", color: \"165,42,42\" },\r\n    { name: \"Firebrick\", color: \"178,34,34\" },\r\n    { name: \"LightCoral\", color: \"240,128,12\" },\r\n    { name: \"Maroon\", color: \"128,0,0\" },\r\n    { name: \"DarkRed\", color: \"139,0,0\" },\r\n    { name: \"Red\", color: \"255,0,0\" },\r\n    { name: \"Snow\", color: \"255,250,250\" },\r\n    { name: \"MistyRose\", color: \"255,228,225\" },\r\n    { name: \"Salmon\", color: \"250,128,114\" },\r\n    { name: \"Tomato\", color: \"255,99,71\" },\r\n    { name: \"DarkSalmon\", color: \"233,150,122\" },\r\n    { name: \"Coral\", color: \"255,127,80\" },\r\n    { name: \"OrangeRed\", color: \"255,69,0\" },\r\n    { name: \"LightSalmon\", color: \"255,160,122\" },\r\n    { name: \"Sienna\", color: \"160,82,45\" },\r\n    { name: \"SeaShell\", color: \"255,245,23\" },\r\n    { name: \"Chocolate\", color: \"210,105,30\" },\r\n    { name: \"SaddleBrown\", color: \"139,69,19\" },\r\n    { name: \"SandyBrown\", color: \"244,164,96\" },\r\n    { name: \"PeachPuff\", color: \"255,218,185\" },\r\n    { name: \"Peru\", color: \"205,133,63\" },\r\n    { name: \"Linen\", color: \"250,240,230\" },\r\n    { name: \"Bisque\", color: \"255,228,196\" },\r\n    { name: \"DarkOrange\", color: \"255,140,0\" },\r\n    { name: \"BurlyWood\", color: \"222,184,135\" },\r\n    { name: \"Tan\", color: \"210,180,140\" },\r\n    { name: \"AntiqueWhite\", color: \"250,235,215\" },\r\n    { name: \"NavajoWhite\", color: \"255,222,173\" },\r\n    { name: \"BlanchedAlmond\", color: \"255,235,205\" },\r\n    { name: \"PapayaWhip\", color: \"255,239,213\" },\r\n    { name: \"Moccasin\", color: \"255,228,181\" },\r\n    { name: \"Orange\", color: \"255,165,0\" },\r\n    { name: \"Wheat\", color: \"245,222,179\" },\r\n    { name: \"OldLace\", color: \"253,245,230\" },\r\n    { name: \"FloralWhite\", color: \"255,250,240\" },\r\n    { name: \"DarkGoldenrod\", color: \"184,134,11\" },\r\n    { name: \"Goldenrod\", color: \"218,165,32\" },\r\n    { name: \"Cornsilk\", color: \"255,248,220\" },\r\n    { name: \"Gold\", color: \"255,215,0\" },\r\n    { name: \"Khaki\", color: \"240,230,140\" },\r\n    { name: \"LemonChiffon\", color: \"255,250,205\" },\r\n    { name: \"PaleGoldenrod\", color: \"238,232,170\" },\r\n    { name: \"DarkKhaki\", color: \"189,183,107\" },\r\n    { name: \"Beige\", color: \"245,245,220\" },\r\n    { name: \"LightGoldenrodYellow\", color: \"250,250,210\" },\r\n    { name: \"Olive\", color: \"128,128,0\" },\r\n    { name: \"Yellow\", color: \"255,255,0\" },\r\n    { name: \"LightYellow\", color: \"255,255,224\" },\r\n    { name: \"Ivory\", color: \"255,255,240\" },\r\n    { name: \"OliveDrab\", color: \"107,142,35\" },\r\n    { name: \"YellowGreen\", color: \"154,205,50\" },\r\n    { name: \"DarkOliveGreen\", color: \"85,107,47\" },\r\n    { name: \"GreenYellow\", color: \"173,255,47\" },\r\n    { name: \"Chartreuse\", color: \"127,255,0\" },\r\n    { name: \"LawnGreen\", color: \"124,252,0\" },\r\n    { name: \"DarkSeaGreen\", color: \"143,188,139\" },\r\n    { name: \"ForestGreen\", color: \"34,139,34\" },\r\n    { name: \"LimeGreen\", color: \"50,205,50\" },\r\n    { name: \"LightGreen\", color: \"144,238,144\" },\r\n    { name: \"PaleGreen\", color: \"152,251,152\" },\r\n    { name: \"DarkGreen\", color: \"0,100,0\" },\r\n    { name: \"Green\", color: \"0,128,0\" },\r\n    { name: \"Lime\", color: \"0,255,0\" },\r\n    { name: \"Honeydew\", color: \"240,255,240\" },\r\n    { name: \"SeaGreen\", color: \"46,139,87\" },\r\n    { name: \"MediumSeaGreen\", color: \"60,179,113\" },\r\n    { name: \"SpringGreen\", color: \"0,255,127\" },\r\n    { name: \"MintCream\", color: \"245,255,250\" },\r\n    { name: \"MediumSpringGreen\", color: \"0,250,154\" },\r\n    { name: \"MediumAquamarine\", color: \"102,205,170\" },\r\n    { name: \"Aquamarine\", color: \"127,255,212\" },\r\n    { name: \"Turquoise\", color: \"64,224,20\" },\r\n    { name: \"LightSeaGreen\", color: \"32,178,170\" },\r\n    { name: \"MediumTurquoise\", color: \"72,209,204\" },\r\n    { name: \"DarkSlateGray\", color: \"47,79,79\" },\r\n    { name: \"PaleTurquoise\", color: \"175,238,23\" },\r\n    { name: \"Teal\", color: \"0,128,12\" },\r\n    { name: \"DarkCyan\", color: \"0,139,139\" },\r\n    { name: \"Aqua\", color: \"0,255,255\" },\r\n    { name: \"Cyan\", color: \"0,255,255\" },\r\n    { name: \"LightCyan\", color: \"224,255,255\" },\r\n    { name: \"Azure\", color: \"240,255,255\" },\r\n    { name: \"DarkTurquoise\", color: \"0,206,209\" },\r\n    { name: \"CadetBlue\", color: \"95,158,160\" },\r\n    { name: \"PowderBlue\", color: \"176,224,230\" },\r\n    { name: \"LightBlue\", color: \"173,216,230\" },\r\n    { name: \"DeepSkyBlue\", color: \"0,191,255\" },\r\n    { name: \"SkyBlue\", color: \"135,206,235\" },\r\n    { name: \"LightSkyBlue\", color: \"135,206,250\" },\r\n    { name: \"SteelBlue\", color: \"70,130,180\" },\r\n    { name: \"AliceBlue\", color: \"240,248,255\" },\r\n    { name: \"DodgerBlue\", color: \"30,144,255\" },\r\n    { name: \"SlateGray\", color: \"112,128,144\" },\r\n    { name: \"LightSlateGray\", color: \"119,136,153\" },\r\n    { name: \"LightSteelBlue\", color: \"176,196,222\" },\r\n    { name: \"CornflowerBlue\", color: \"100,149,237\" },\r\n    { name: \"RoyalBlue\", color: \"65,105,225\" },\r\n    { name: \"MidnightBlue\", color: \"25,25,112\" },\r\n    { name: \"Lavender\", color: \"230,230,250\" },\r\n    { name: \"Navy\", color: \"0,0,12\" },\r\n    { name: \"DarkBlue\", color: \"0,0,139\" },\r\n    { name: \"MediumBlue\", color: \"0,0,205\" },\r\n    { name: \"Blue\", color: \"0,0,255\" },\r\n    { name: \"GhostWhite\", color: \"248,248,255\" },\r\n    { name: \"SlateBlue\", color: \"106,90,205\" },\r\n    { name: \"DarkSlateBlue\", color: \"72,61,139\" },\r\n    { name: \"MediumSlateBlue\", color: \"123,104,23\" },\r\n    { name: \"MediumPurple\", color: \"147,112,219\" },\r\n    { name: \"BlueViolet\", color: \"138,43,226\" },\r\n    { name: \"Indigo\", color: \"75,0,130\" },\r\n    { name: \"DarkOrchid\", color: \"153,50,204\" },\r\n    { name: \"DarkViolet\", color: \"148,0,211\" },\r\n    { name: \"MediumOrchid\", color: \"186,85,211\" },\r\n    { name: \"Thistle\", color: \"216,191,216\" },\r\n    { name: \"Plum\", color: \"221,160,221\" },\r\n    { name: \"Violet\", color: \"238,130,23\" },\r\n    { name: \"Purple\", color: \"128,0,12\" },\r\n    { name: \"DarkMagenta\", color: \"139,0,139\" },\r\n    { name: \"Magenta\", color: \"255,0,255\" },\r\n    { name: \"Fuchsia\", color: \"255,0,255\" },\r\n    { name: \"Orchid\", color: \"218,112,214\" },\r\n    { name: \"MediumVioletRed\", color: \"199,21,133\" },\r\n    { name: \"DeepPink\", color: \"255,20,147\" },\r\n    { name: \"HotPink\", color: \"255,105,180\" },\r\n    { name: \"LavenderBlush\", color: \"255,240,245\" },\r\n    { name: \"PaleVioletRed\", color: \"219,112,147\" },\r\n    { name: \"Crimson\", color: \"220,20,60\" },\r\n    { name: \"Pink\", color: \"255,192,203\" },\r\n    { name: \"LightPink\", color: \"255,182,193\" },\r\n  ];\r\n  public themeColors = [\r\n    { color: \"255,255,255\" },\r\n    { color: \"0,0,0\" },\r\n    { color: \"231,230,230\" },\r\n    { color: \"68,84,106\" },\r\n    { color: \"91,155,213\" },\r\n    { color: \"237,125,49\" },\r\n    { color: \"165,165,165\" },\r\n    { color: \"255,192,0\" },\r\n    { color: \"68,114,196\" },\r\n    { color: \"112,173,71\" },\r\n    { color: \"242,242,242\" },\r\n    { color: \"127,127,127\" },\r\n    { color: \"208,206,206\" },\r\n    { color: \"214,220,228\" },\r\n    { color: \"222,235,246\" },\r\n    { color: \"251,229,213\" },\r\n    { color: \"237,237,237\" },\r\n    { color: \"255,242,204\" },\r\n    { color: \"217,226,243\" },\r\n    { color: \"226,239,217\" },\r\n    { color: \"216,216,216\" },\r\n    { color: \"89,89,89\" },\r\n    { color: \"174,171,171\" },\r\n    { color: \"173,185,202\" },\r\n    { color: \"189,215,238\" },\r\n    { color: \"247,203,172\" },\r\n    { color: \"219,219,219\" },\r\n    { color: \"254,229,153\" },\r\n    { color: \"180,198,231\" },\r\n    { color: \"197,224,179\" },\r\n    { color: \"191,191,191\" },\r\n    { color: \"63,63,63\" },\r\n    { color: \"117,112,112\" },\r\n    { color: \"132,150,176\" },\r\n    { color: \"156,195,229\" },\r\n    { color: \"224,177,131\" },\r\n    { color: \"201,201,201\" },\r\n    { color: \"255,217,101\" },\r\n    { color: \"142,170,219\" },\r\n    { color: \"168,208,141\" },\r\n    { color: \"165,165,165\" },\r\n    { color: \"38,38,38\" },\r\n    { color: \"58,56,56\" },\r\n    { color: \"50,63,79\" },\r\n    { color: \"46,117,181\" },\r\n    { color: \"197,90,17\" },\r\n    { color: \"123,123,123\" },\r\n    { color: \"191,144,0\" },\r\n    { color: \"47,84,150\" },\r\n    { color: \"83,129,53\" },\r\n    { color: \"127,127,127\" },\r\n    { color: \"12,12,12\" },\r\n    { color: \"23,22,22\" },\r\n    { color: \"34,42,53\" },\r\n    { color: \"30,78,121\" },\r\n    { color: \"131,60,11\" },\r\n    { color: \"82,82,82\" },\r\n    { color: \"127,96,0\" },\r\n    { color: \"31,56,100\" },\r\n    { color: \"55,86,35\" },\r\n  ];\r\n  public standardColors = [\r\n    { color: \"192,0,0\" },\r\n    { color: \"255,0,0\" },\r\n    { color: \"255,192,0\" },\r\n    { color: \"255,255,0\" },\r\n    { color: \"146,208,80\" },\r\n    { color: \"0,176,80\" },\r\n    { color: \"0,176,240\" },\r\n    { color: \"0,112,192\" },\r\n    { color: \"0,32,96\" },\r\n    { color: \"112,48,160\" },\r\n  ];\r\n  public isRichText = false;\r\n  public openDialog(element, object, isRichText?) {\r\n    this.isRichText = isRichText;\r\n    let elementRect = this.model.getPositionRelativeToForm(element);\r\n    let windowHeight = window.innerHeight;\r\n    let windowWidth = window.innerWidth;\r\n    this.currentColorObject = object;\r\n    this.cloneOfCurrentColorObject = object.clone();\r\n    if (elementRect.bottom + this.dialogHeight > windowHeight - 32) {\r\n      this.dialogY = elementRect.top - this.dialogHeight;\r\n    } else {\r\n      this.dialogY = elementRect.bottom;\r\n    }\r\n    if (elementRect.left + this.dialogWidth > windowWidth) {\r\n      this.dialogX = windowWidth - this.dialogWidth;\r\n    } else {\r\n      this.dialogX = elementRect.left;\r\n    }\r\n    this.model.showColorDialog = true;\r\n  }\r\n  constructor(public model: StiModelService) {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { StiTabIndex } from '../system/interfaces';\r\nimport { StiModelService } from './model.service';\r\n\r\n@Injectable()\r\nexport class StiTabIndexService {\r\n\r\n  constructor(public model: StiModelService) {\r\n\r\n    model.interfaceEvent.subscribe((event) => {\r\n      if (event.name == \"setRibbon\" && event.data?.ribbon === \"Preview\") {\r\n        this.arrangeTabIndex();\r\n      }\r\n    });\r\n\r\n    model.formEvents.subscribe((event) => {\r\n      if (event.name == \"SetForm\" && model.viewerMode) {\r\n        this.arrangeTabIndex();\r\n      }\r\n    });\r\n  }\r\n\r\n  private arrangeTabIndex(): void {\r\n    let elements = [];\r\n    this.model.form?.pages.forEach((form, pageIndex) => {\r\n      form.allElements.filter(e => e[\"setTabIndex\"] != null).forEach(element => {\r\n        elements.push({\r\n          element: element,\r\n          geometry: element.geometry,\r\n          pageIndex: pageIndex\r\n        });\r\n      });\r\n    });\r\n\r\n    elements.sort((e1, e2) => {\r\n      if (e1.pageIndex != e2.pageIndex) {\r\n        return e1.pageIndex > e2.pageIndex ? 1 : -1;\r\n      } else if (e1.geometry.y != e2.geometry.y) {\r\n        return e1.geometry.y > e2.geometry.y ? 1 : -1;\r\n      } else {\r\n        return e1.geometry.x > e2.geometry.x ? 1 : -1;\r\n      }\r\n    });\r\n\r\n    let tabIndex = 100;\r\n    elements.forEach(e => tabIndex = (e.element as StiTabIndex).setTabIndex(tabIndex));\r\n  }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { StiFormCheckerItem } from \"../system/interfaces\";\r\nimport { StiModelService } from \"./model.service\";\r\nimport { StiButtonElement } from \"../elements/StiButtonElement\";\r\n\r\n@Injectable()\r\nexport class StiFormCheckerService {\r\n  public showFormCheckerWindow: boolean = false;\r\n  public formMessages: StiFormCheckerItem[] = [];\r\n  public buttonNames: string = \"\";\r\n  public componentX: number;\r\n  public componentY: number;\r\n  public componentWidth: number = 700;\r\n  public componentHeight: number = 482;\r\n  public currentPressedButton: string = \"\";\r\n  public issuesCount: number = 1;\r\n\r\n  isRibbonWithPreview(ribbon): boolean {\r\n    return ribbon == \"Preview\" || ribbon == \"PDFPreview\";\r\n  }\r\n  haveStiCloudSubmitButton(): boolean {\r\n    let state: boolean = false;\r\n    this.model.form?.pages.forEach((page) => {\r\n      page.allElements.forEach((element) => {\r\n        if (\r\n          element instanceof StiButtonElement &&\r\n          (element.formSendURL?.trim().toLocaleLowerCase() == \"stimulsoft cloud\" ||\r\n            element.formSendURL?.trim().toLocaleLowerCase() == \"cloud.stimulsoft.com\")\r\n        ) {\r\n          state = true;\r\n        }\r\n      });\r\n    });\r\n    return state;\r\n  }\r\n\r\n  needToDisplayFormsChecker(): boolean {\r\n    return (\r\n      this.haveStiCloudSubmitButton() && (this.model.form.versionKey == null || this.model.form.versionKey.length == 0)\r\n    );\r\n  }\r\n  public check(ribbon: string): boolean {\r\n    let state = (this.model.isWebView || this.model.isCloudMode) && this.needToDisplayFormsChecker();\r\n    if (state) {\r\n      // this.hasIssue = true;\r\n      // this.currentPressedButton = ribbon;\r\n      // this.displayFormsChecker(ribbon);\r\n    }\r\n    return true;\r\n  }\r\n\r\n  public get hasIssue(): boolean {\r\n    return (\r\n      (this.model.isWebView || this.model.isCloudMode) && this.needToDisplayFormsChecker() && !this.model.previewMode\r\n    );\r\n  }\r\n\r\n  public displayFormsChecker() {\r\n    this.showFormCheckerWindow = true;\r\n  }\r\n\r\n  updateFormAfterSaving(form) {\r\n    if (form) {\r\n      if (typeof form != \"boolean\") {\r\n        this.model.setFormFromString(JSON.stringify(form));\r\n      }\r\n      this.showFormCheckerWindow = false;\r\n      this.model.saveLastFormState();\r\n      this.model.saveSettings();\r\n      this.model.formEvents.next({ name: this.model.ribbon });\r\n    }\r\n  }\r\n\r\n  public getButtonNames() {\r\n    let buttonElements = [];\r\n    this.model.form?.pages.forEach((page) => {\r\n      page.allElements.forEach((element) => {\r\n        if (\r\n          element.type == \"ButtonElement\" &&\r\n          (element as StiButtonElement).formSendURL?.trim().toLocaleLowerCase() == \"stimulsoft cloud\"\r\n        ) {\r\n          buttonElements.push(element.name);\r\n        }\r\n      });\r\n    });\r\n    this.buttonNames = buttonElements.join().length > 0 ? \"(\" + buttonElements.join() + \")\" : \"\";\r\n  }\r\n  constructor(public model: StiModelService) {\r\n    let newItem: StiFormCheckerItem = {\r\n      type: \"warning\",\r\n      label: \"Form not saved in Stimulsoft Cloud\",\r\n      content:\r\n        \"To submit the form data to the Stimulsoft server, you can use the Submit button {0} on the form. Once the data is sent, you will be able to view all submissions for that particular form. To ensure that the data is processed correctly, it is important to save the form to the cloud. You can modify the URL of the Stimulsoft Cloud button.\",\r\n    };\r\n    this.formMessages.push(newItem);\r\n    window.onresize = (event) => {\r\n      if (window.innerWidth > this.componentWidth) {\r\n        if (window.innerWidth < this.componentX + this.componentWidth) {\r\n          this.componentX = (window.innerWidth - this.componentWidth) / 2;\r\n        }\r\n      } else {\r\n        this.componentX = 0;\r\n      }\r\n      if (window.innerHeight > this.componentHeight) {\r\n        if (window.innerHeight < this.componentY + this.componentHeight) {\r\n          this.componentY = (window.innerHeight - this.componentHeight) / 2;\r\n        }\r\n      } else {\r\n        this.componentY = 0;\r\n      }\r\n    };\r\n  }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable()\r\nexport class StiDraggableModalWindowService {\r\n  private _isTextEditor: boolean = false;\r\n  private _isImageEditor: boolean = true;\r\n  private _editorX: number = 0;\r\n  private _editorY: number = 0;\r\n  public showDraggableModalWindow: boolean = false;\r\n  public editorWidth: number = 800;\r\n  public editorHeight: number = 510;\r\n  public get isTextEditor(): boolean {\r\n    return this._isTextEditor;\r\n  }\r\n  public set isTextEditor(value: boolean) {\r\n    if (value) {\r\n      this._isImageEditor = false;\r\n    }\r\n    this._isTextEditor = value;\r\n  }\r\n  public get isImageEditor(): boolean {\r\n    return this._isImageEditor;\r\n  }\r\n  public set isImageEditor(value: boolean) {\r\n    if (value) {\r\n      this._isTextEditor = false;\r\n    }\r\n    this._isImageEditor = value;\r\n  }\r\n  public get editorX(): number {\r\n    return this._editorX;\r\n  }\r\n  public set editorX(value: number) {\r\n    value <= 0 ? (this._editorX = 0) : (this._editorX = value);\r\n  }\r\n  public get editorY(): number {\r\n    return this._editorY;\r\n  }\r\n  public set editorY(value: number) {\r\n    value <= 0 ? (this._editorY = 0) : (this._editorY = value);\r\n  }\r\n  constructor() {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport Guid from '../system/Guid';\r\nimport StiJson from '../system/StiJson';\r\nimport { StiModelService } from './model.service';\r\nimport { StiClipboardData } from './objects';\r\nimport { StiDraggableService } from './sti-draggable.service';\r\nimport { StiHelperService } from './sti-helper.service';\r\nimport { StiNameService } from './sti-name.service';\r\n\r\n@Injectable()\r\nexport class StiClipboardService {\r\n  public copiedElement;\r\n\r\n  constructor(public model: StiModelService, public helper: StiHelperService, public nameService: StiNameService,\r\n    public draggableService: StiDraggableService) {\r\n    document.addEventListener(\"visibilitychange\", () => {\r\n      if (!document.hidden) {\r\n        this.updateDataFromClipboard();\r\n      }\r\n    });\r\n\r\n    this.updateDataFromClipboard();\r\n  }\r\n\r\n  public get hasCopy(): boolean {\r\n    return this.copiedElement ? true : false;\r\n  }\r\n\r\n  public get canCopy() {\r\n    return this.model.selectedComponent?.element ? false : true;\r\n  }\r\n\r\n  updateDataFromClipboard() {\r\n    let this_ = this;\r\n    this.loadDataFromClipboard().then(e => {\r\n      if (e instanceof DOMException) {\r\n        setTimeout(() => this_.updateDataFromClipboard(), 500);\r\n      }\r\n    });\r\n  }\r\n\r\n  loadDataFromClipboard(forceReadClipboard: boolean = false): Promise<any> {\r\n    return (navigator.permissions as any).query({ name: \"clipboard-read\" }).then(value => {\r\n      try {\r\n        return forceReadClipboard || value.state == \"granted\" ? navigator.clipboard.readText() : null;\r\n      } catch { return null }\r\n    }).then(data => {\r\n      try {\r\n        if (data && data.indexOf(\"StiFormsClipboard\") >= 0) {\r\n          let clipboardData: StiClipboardData = JSON.parse(data);\r\n          let clazz = this.helper.getElementClass(clipboardData.type);\r\n          let element = new clazz();\r\n          let jObject = new StiJson();\r\n          let elementStr = this.helper.base64Decode(clipboardData.value);\r\n          jObject.deserialize(elementStr);\r\n          element.loadFromJsonObject(jObject);\r\n\r\n          if (clipboardData.displayValue) {\r\n            element[\"displayValue\"] = this.helper.base64Decode(clipboardData.displayValue);\r\n          }\r\n\r\n          this.copiedElement = element;\r\n        }\r\n      } catch { return null }\r\n    }).catch(e => { return e });\r\n  }\r\n\r\n  pasteElement(event: MouseEvent) {\r\n    this.loadDataFromClipboard(true).then(() => {\r\n      if (this.copiedElement) {\r\n        let element = this.helper.clone(this.copiedElement);\r\n        element.name = this.nameService.checkElementName(element);\r\n        element.guid = Guid.newGuid().toString();\r\n\r\n        this.draggableService.startDrag(event, element, false, true);\r\n      }\r\n    }).catch(reason => {\r\n      //console.log(reason);\r\n    });\r\n  }\r\n\r\n  copyElement() {\r\n    let element = this.model.selectedComponent?.element;\r\n    if (element)\r\n      try {\r\n        this.copiedElement = this.helper.clone(element);\r\n\r\n        let elementStr = element.saveToJsonObject({}).serialize();\r\n        let base64Element = this.helper.base64Encode(elementStr);\r\n        let base64ElementValue = element[\"displayValue\"] ? this.helper.base64Encode(element[\"displayValue\"]) : null;\r\n        let clipboardData: StiClipboardData = new StiClipboardData(base64Element, element.type, base64ElementValue);\r\n\r\n        navigator.clipboard.writeText(JSON.stringify(clipboardData));\r\n        this.loadDataFromClipboard(true);\r\n      } catch (e) {\r\n        //console.error(e);\r\n      }\r\n  }\r\n\r\n\r\n  cutElement() {\r\n    this.copyElement();\r\n    this.helper.deleteSelectedComponent();\r\n  }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiDropdownService } from \"./sti-dropdown-service\";\r\n\r\n@Component({\r\n    selector: \"sti-dropdown-component\",\r\n    template: `<div\r\n    class=\"sti-dropdown-component {{ disabled ? 'disabled' : '' }}\"\r\n    [stiTooltip]=\"tooltip\"\r\n    tooltipPosition=\"bottom\"\r\n    showDelay=\"500\"\r\n    (click)=\"showList($event)\"\r\n  >\r\n    <span class=\"current-value\">{{\r\n      value ? this.getLabel() : options.length > 0 ? (options[0][\"name\"] ? options[0][\"name\"] : options[0]) : \"\"\r\n    }}</span>\r\n    <div class=\"button\" [style.width.px]=\"isMinVersion ? 15 : 20\">\r\n      <span><i class=\"pi pi-chevron-down\"></i></span>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .sti-dropdown-component {\r\n        width: inherit;\r\n        height: inherit;\r\n        background: var(--input-color);\r\n        border: 1px solid var(--inputBorder-color);\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .sti-dropdown-component:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .current-value {\r\n        flex: 1;\r\n        padding: 3px 5px;\r\n        overflow: hidden;\r\n        white-space: nowrap;\r\n      }\r\n      .button {\r\n        width: 20px;\r\n      }\r\n      .button i {\r\n        height: 12px;\r\n        width: 12px;\r\n        right: 3px;\r\n        color: rgb(186, 185, 184);\r\n      }\r\n      .disabled {\r\n        pointer-events: none;\r\n        opacity: 0.5;\r\n      }\r\n      span {\r\n        pointer-events: none;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiDropdownComponent implements OnInit, OnDestroy {\r\n  @Input() id;\r\n  @Input() options: any[];\r\n  @Input() value: string | number;\r\n  @Input() disabled: boolean;\r\n  @Input() optionLabel: string = null;\r\n  @Input() optionValue: string = null;\r\n  @Input() isMinVersion: boolean = false;\r\n  @Input() tooltip;\r\n  @Output() valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  valueChangedSubscription: Subscription;\r\n  constructor(public dropdownService: StiDropdownService, public model: StiModelService) {}\r\n  ngOnDestroy(): void {\r\n    this.valueChangedSubscription.unsubscribe();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.valueChangedSubscription = this.dropdownService.valueChanged.subscribe((value) => {\r\n      if (this.id == this.dropdownService.currentUsedComponentId) {\r\n        this.valueChange.emit(value);\r\n      }\r\n    });\r\n  }\r\n  getLabel() {\r\n    if (this.optionLabel == this.optionValue) {\r\n      return this.value;\r\n    } else {\r\n      let option = this.options.find((option) => option[this.optionValue] == this.value);\r\n      return option[this.optionLabel];\r\n    }\r\n  }\r\n  showList(event) {\r\n    let parentRec = this.model.getPositionRelativeToForm(event.target.parentElement);\r\n    this.dropdownService.dropdownX = parentRec.left;\r\n    this.dropdownService.dropdownY = parentRec.bottom;\r\n    this.dropdownService.currentOptionList = this.options;\r\n    this.dropdownService.optionLabel = this.optionLabel;\r\n    this.dropdownService.optionValue = this.optionValue;\r\n    this.dropdownService.currentValue = this.getLabel();\r\n    this.dropdownService.currentUsedComponentId = this.id;\r\n    this.dropdownService.showDropdownList = true;\r\n  }\r\n}\r\n","import { Component, ContentChild, ElementRef, EventEmitter, Input, OnInit, Output, TemplateRef } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: \"sti-selectButton\",\r\n    template: ` <div class=\"button-container {{ disabled ? 'disabled' : '' }}\">\r\n      @for (option of options; track option; let i = $index) {\r\n        <div\r\n          #button\r\n      class=\"button {{ isSelected(option) ? 'selected' : '' }} {{ i == 0 ? 'left' : '' }} {{\r\n        i == options.length - 1 ? 'right' : ''\r\n      }}\"\r\n          [style.border-right-width.px]=\"i == options.length - 1 ? 1 : 0\"\r\n          (click)=\"selectOption($event, option, i)\"\r\n          >\r\n          @if (!itemTemplate) {\r\n            <span class=\"label\">{{ getOptionLabel(option) }}</span>\r\n          } @else {\r\n            <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: option, index: i }\"></ng-container>\r\n          }\r\n        </div>\r\n      }\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      .disabled {\r\n        pointer-events: none;\r\n        opacity: 0.5;\r\n      }\r\n      .button {\r\n        background-color: var(--back-color);\r\n        border: 1px solid var(--back-color);\r\n        color: var(--text-color);\r\n        padding: 3px 6px;\r\n        width: auto;\r\n        height: inherit;\r\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif,\r\n          \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n        font-size: 14px;\r\n        font-weight: normal;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .button:hover {\r\n        background-color: var(--active-color);\r\n        border-color: var(--active-color);\r\n        cursor: pointer;\r\n      }\r\n      .selected {\r\n        background-color: var(--active-color);\r\n        border-color: var(--active-color);\r\n      }\r\n      .button-container {\r\n        display: flex;\r\n        width: 100%;\r\n        height: inherit;\r\n      }\r\n      .left {\r\n        border-top-left-radius: 3px;\r\n        border-bottom-left-radius: 3px;\r\n      }\r\n      .right {\r\n        border-top-right-radius: 3px;\r\n        border-bottom-right-radius: 3px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiSelectButtonComponent implements OnInit {\r\n  @Input() options: any[] | undefined;\r\n\r\n  @Input() value: any | undefined;\r\n\r\n  @Input() optionLabel: string | undefined;\r\n\r\n  @Input() optionValue: string | undefined;\r\n\r\n  @Input() multiple: boolean | undefined;\r\n\r\n  @Input() disabled: boolean | undefined;\r\n\r\n  @Output() onOptionClick = new EventEmitter<any>();\r\n\r\n  @Output() onChange = new EventEmitter<any>();\r\n\r\n  @Output() valueChange = new EventEmitter<any>();\r\n\r\n  @ContentChild(TemplateRef) itemTemplate: TemplateRef<ElementRef>;\r\n  constructor() {}\r\n  public getOptionLabel(option) {\r\n    return option[this.optionLabel];\r\n  }\r\n  isSelected(option) {\r\n    let optionValue = this.getOptionValue(option);\r\n    if (this.multiple) {\r\n      if (this.value && this.value?.indexOf(optionValue) != -1) {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    } else {\r\n      return optionValue === this.value;\r\n    }\r\n  }\r\n  getOptionValue(option: any) {\r\n    return option.value ? option.value : option;\r\n  }\r\n  removeOption(option) {\r\n    let optionValue = this.getOptionValue(option);\r\n    this.value = this.value.filter((item: any) => item != optionValue);\r\n  }\r\n  selectOption(event: Event, option: any, index: number) {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n    let optionValue = this.getOptionValue(option);\r\n    if (this.multiple) {\r\n      if (this.isSelected(option)) this.removeOption(option);\r\n      else this.value = [...(this.value || []), optionValue];\r\n\r\n      this.onChange.emit({\r\n        originalEvent: event,\r\n        value: this.value,\r\n      });\r\n      this.valueChange.emit(this.value);\r\n    } else if (this.value !== optionValue) {\r\n      this.value = optionValue;\r\n      this.onChange.emit({\r\n        originalEvent: event,\r\n        value: this.value,\r\n      });\r\n      this.valueChange.emit(this.value);\r\n    }\r\n\r\n    this.onOptionClick.emit({\r\n      originalEvent: event,\r\n      option: option,\r\n      index: index,\r\n    });\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiDraggableService } from \"../../services/sti-draggable.service\";\r\nimport { StiThemeService } from \"../../services/theme.service\";\r\nimport StiRectangleGeometryLayout from \"../../computed/StiRectangleGeometryLayout\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiTextElement } from \"../../elements/StiTextElement\";\r\nimport { StiRichTextService } from \"../../services/sti-rich-text.service\";\r\nimport { StiUndoService } from \"../../services/sti-undo-service\";\r\nimport { UsedFont } from \"../../services/objects\";\r\nimport { StiNameService } from \"../../services/sti-name.service\";\r\nimport { FormEventsService } from \"../../services/sti-form-events-service\";\r\nimport { StiColorDialogService } from \"../../services/sti-color-dialog.service\";\r\nimport Color from \"../../system/Color\";\r\nimport { StiClipboardService } from \"../../services/sti-clipboard-sevice\";\r\n\r\n@Component({\r\n    selector: \"sti-home-ribbon-component\",\r\n    template: `<div\r\n      class=\"home\"\r\n      style=\"-moz-user-select: none;-webkit-touch-callout: none;-webkit-user-select: none;-ms-user-select: none;user-select: none\"\r\n      >\r\n      <div\r\n        [style.margin-left]=\"'10px'\"\r\n        class=\"container {{ undoService?.undos?.length < 2 ? 'disabled' : '' }}\"\r\n        [stiTooltip]=\"loc.get2('HelpDesigner', 'Undo').replace('.', '')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"undoService.undo()\"\r\n        >\r\n        <div class=\"button\"><img [src]=\"model.getImage('images.Ribbon.Undo.png')\" alt=\"\" /></div>\r\n      </div>\r\n      <div\r\n        class=\"container {{ undoService?.redos?.length < 1 ? 'disabled' : '' }}\"\r\n        [stiTooltip]=\"loc.get2('HelpDesigner', 'Redo').replace('.', '')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"undoService.redo()\"\r\n        >\r\n        <div class=\"button\"><img [src]=\"model.getImage('images.Ribbon.Redo.png')\" alt=\"\" /></div>\r\n      </div>\r\n      <!-- <div\r\n      *ngIf=\"isRichText\"\r\n      [style.margin-left]=\"'10px'\"\r\n      class=\"container\"\r\n      [stiTooltip]=\"loc.getP('Undo')\"\r\n      tooltipPosition=\"bottom\" showDelay=\"500\"\r\n      (click)=\"richTextService.useUndo()\"\r\n      >\r\n      <div class=\"button\"><img [src]=\"getIcon('Undo')\" alt=\"\" /></div>\r\n    </div>\r\n    <div\r\n      *ngIf=\"isRichText\"\r\n      class=\"container\"\r\n      [stiTooltip]=\"loc.getP('Redo')\"\r\n      tooltipPosition=\"bottom\" showDelay=\"500\"\r\n      (click)=\"richTextService.useRedo()\"\r\n      >\r\n      <div class=\"button\"><img [src]=\"getIcon('Redo')\" alt=\"\" /></div>\r\n    </div> -->\r\n    <div class=\"vertical-line\"></div>\r\n    <div\r\n      class=\"container {{ !clipboardService.hasCopy ? 'disabled' : '' }}\"\r\n      [stiTooltip]=\"loc.get2('MainMenu', 'menuEditPaste').replace('&amp', '').replace(';', '')\"\r\n      tooltipPosition=\"bottom\"\r\n      showDelay=\"500\"\r\n      (click)=\"clipboardService.pasteElement($event)\"\r\n      >\r\n      <div class=\"button\"><img [src]=\"model.getImage('images.Ribbon.Paste.png')\" alt=\"\" /></div>\r\n    </div>\r\n    <div\r\n      class=\"container {{ clipboardService.canCopy ? 'disabled' : '' }}\"\r\n      [stiTooltip]=\"loc.get2('MainMenu', 'menuEditCopy').replace('&amp', '').replace(';', '')\"\r\n      tooltipPosition=\"bottom\"\r\n      showDelay=\"500\"\r\n      (click)=\"clipboardService.copyElement()\"\r\n      >\r\n      <div class=\"button\"><img [src]=\"model.getImage('images.Ribbon.Copy.png')\" alt=\"\" /></div>\r\n    </div>\r\n    <div\r\n      class=\"container {{ clipboardService.canCopy ? 'disabled' : '' }}\"\r\n      [stiTooltip]=\"loc.get2('MainMenu', 'menuEditCut').replace('&amp', '').replace(';', '')\"\r\n      tooltipPosition=\"bottom\"\r\n      showDelay=\"500\"\r\n      (click)=\"clipboardService.cutElement()\"\r\n      >\r\n      <div class=\"button\"><img [src]=\"model.getImage('images.Ribbon.Cut.png')\" alt=\"\" /></div>\r\n    </div>\r\n    <div\r\n      class=\"container {{ !canDelete ? 'disabled' : '' }}\"\r\n      [stiTooltip]=\"loc.get2('Buttons', 'Delete')\"\r\n      tooltipPosition=\"bottom\"\r\n      showDelay=\"500\"\r\n      (click)=\"formEvents.deleteComponent()\"\r\n      >\r\n      <div class=\"button\"><img [src]=\"model.getImage('images.Ribbon.Delete.png')\" alt=\"\" /></div>\r\n    </div>\r\n    <div class=\"vertical-line\"></div>\r\n    @if (!isRichText) {\r\n      <sti-dropdown-component\r\n        [id]=\"0\"\r\n        [options]=\"model.fontFamilies\"\r\n        [(value)]=\"fontFamily\"\r\n        [disabled]=\"editableContentService.editableContent == null\"\r\n        [tooltip]=\"loc.get2('HelpDesigner', 'FontName')\"\r\n        [optionLabel]=\"'name'\"\r\n        [optionValue]=\"'name'\"\r\n      [style]=\"{\r\n        width: '150px',\r\n        height: '32px',\r\n        alignItems: 'center',\r\n        margin: '1px 2px',\r\n        marginTop: '10px',\r\n        fontSize: '12px'\r\n      }\"\r\n        (mousedown)=\"$event.preventDefault()\"\r\n        (mouseup)=\"editableContentService.startEdit()\"\r\n        (valueChange)=\"changeEvent()\"\r\n      ></sti-dropdown-component>\r\n    }\r\n    <!-- <p-dropdown\r\n    *ngIf=\"!isRichText\"\r\n    [options]=\"model.fontFamilies\"\r\n    [(ngModel)]=\"fontFamily\"\r\n    optionLabel=\"name\"\r\n    optionValue=\"name\"\r\n      [style]=\"{\r\n        width: '150px',\r\n        height: '32px',\r\n        alignItems: 'center',\r\n        margin: '1px 2px',\r\n        marginTop: '10px',\r\n        fontSize: '12px'\r\n      }\"\r\n    [disabled]=\"editableContentService.editableContent == null\"\r\n    [tooltip]=\"loc.get2('HelpDesigner', 'FontName')\"\r\n    tooltipPosition=\"bottom\"\r\n    showDelay=\"500\"\r\n    (mousedown)=\"$event.preventDefault()\"\r\n    (mouseup)=\"editableContentService.startEdit()\"\r\n    (onChange)=\"changeEvent()\"\r\n    ></p-dropdown> -->\r\n    @if (isRichText) {\r\n      <sti-dropdown-component\r\n        [id]=\"1\"\r\n        [options]=\"model.fontFamilies\"\r\n        [(value)]=\"richTextService.activeFontFamily\"\r\n        [tooltip]=\"loc.get2('HelpDesigner', 'FontName')\"\r\n        [optionLabel]=\"'name'\"\r\n        [optionValue]=\"'name'\"\r\n      [style]=\"{\r\n        width: '150px',\r\n        height: '32px',\r\n        alignItems: 'center',\r\n        margin: '1px 2px',\r\n        marginTop: '10px',\r\n        fontSize: '12px'\r\n      }\"\r\n        (mousedown)=\"$event.preventDefault()\"\r\n        (mouseup)=\"editableContentService.startEdit()\"\r\n        (valueChange)=\"richTextService.insertFontFamily(richTextService.activeFontFamily)\"\r\n      ></sti-dropdown-component>\r\n    }\r\n    <!-- <p-dropdown\r\n    *ngIf=\"isRichText\"\r\n    [options]=\"model.fontFamilies\"\r\n    [(ngModel)]=\"richTextService.activeFontFamily\"\r\n    optionLabel=\"name\"\r\n    optionValue=\"name\"\r\n      [style]=\"{\r\n        width: '150px',\r\n        height: '32px',\r\n        alignItems: 'center',\r\n        margin: '1px 2px',\r\n        marginTop: '10px',\r\n        fontSize: '12px'\r\n      }\"\r\n    [tooltip]=\"loc.get2('HelpDesigner', 'FontName')\"\r\n    tooltipPosition=\"bottom\"\r\n    showDelay=\"500\"\r\n    (mousedown)=\"$event.preventDefault()\"\r\n    (onChange)=\"richTextService.insertFontFamily(richTextService.activeFontFamily)\"\r\n    (mouseup)=\"editableContentService.startEdit()\"\r\n    ></p-dropdown> -->\r\n    @if (!isRichText) {\r\n      <sti-dropdown-component\r\n        [id]=\"2\"\r\n        [options]=\"helper.fontSizes\"\r\n        [(value)]=\"fontSize\"\r\n        [tooltip]=\"loc.getP('FontSize')\"\r\n      [style]=\"{\r\n        width: '60px',\r\n        height: '32px',\r\n        alignItems: 'center',\r\n        margin: '10px 10px 1px 2px',\r\n        fontSize: '12px'\r\n      }\"\r\n        [disabled]=\"editableContentService.editableContent == null\"\r\n        (mousedown)=\"$event.preventDefault()\"\r\n        (mouseup)=\"editableContentService.startEdit()\"\r\n        (valueChange)=\"changeEvent()\"\r\n      ></sti-dropdown-component>\r\n    }\r\n    <!-- <p-dropdown\r\n    *ngIf=\"!isRichText\"\r\n    [options]=\"helper.fontSizes\"\r\n    [(ngModel)]=\"fontSize\"\r\n    [style]=\"{ width: '60px', height: '32px', alignItems: 'center', margin: '10px 10px 1px 2px', fontSize: '12px' }\"\r\n    [tooltip]=\"loc.getP('FontSize')\"\r\n    tooltipPosition=\"bottom\"\r\n    showDelay=\"500\"\r\n    [disabled]=\"editableContentService.editableContent == null\"\r\n    (mousedown)=\"$event.preventDefault()\"\r\n    (mouseup)=\"editableContentService.startEdit()\"\r\n    (onChange)=\"changeEvent()\"\r\n    ></p-dropdown> -->\r\n    @if (isRichText) {\r\n      <sti-dropdown-component\r\n        [id]=\"3\"\r\n        [options]=\"helper.richTextFontSizes\"\r\n        [(value)]=\"richTextService.activeFontSize\"\r\n        [tooltip]=\"loc.getP('FontSize')\"\r\n        [optionLabel]=\"'name'\"\r\n        [optionValue]=\"'value'\"\r\n      [style]=\"{\r\n        width: '60px',\r\n        height: '32px',\r\n        alignItems: 'center',\r\n        margin: '10px 10px 1px 2px',\r\n        fontSize: '12px'\r\n      }\"\r\n        (mousedown)=\"$event.preventDefault()\"\r\n        (mouseup)=\"editableContentService.startEdit()\"\r\n        (valueChange)=\"richTextService.insertFontSize()\"\r\n      ></sti-dropdown-component>\r\n    }\r\n    <!-- <p-dropdown\r\n    *ngIf=\"isRichText\"\r\n    [options]=\"helper.richTextFontSizes\"\r\n    [(ngModel)]=\"richTextService.activeFontSize\"\r\n    optionLabel=\"name\"\r\n    optionValue=\"value\"\r\n    [style]=\"{ width: '60px', height: '32px', alignItems: 'center', margin: '10px 10px 1px 2px', fontSize: '12px' }\"\r\n    [tooltip]=\"loc.getP('FontSize')\"\r\n    tooltipPosition=\"bottom\"\r\n    showDelay=\"500\"\r\n    (mousedown)=\"$event.preventDefault()\"\r\n    (onChange)=\"richTextService.insertFontSize()\"\r\n    (mouseup)=\"editableContentService.startEdit()\"\r\n    ></p-dropdown> -->\r\n    @if (!isRichText) {\r\n      <sti-selectButton\r\n        [options]=\"helper.styleOptions\"\r\n        [(value)]=\"fontStyle\"\r\n        [multiple]=\"true\"\r\n        optionValue=\"value\"\r\n        [style]=\"{ margin: '11px 10px 1px 1px', height: '32px', minWidth: '94px' }\"\r\n        [disabled]=\"editableContentService.editableContent == null\"\r\n        (mousedown)=\"$event.preventDefault()\"\r\n        (onChange)=\"changeEvent()\"\r\n        ><ng-template let-item>\r\n        <img\r\n          [src]=\"model.getImage(item.image)\"\r\n          [stiTooltip]=\"loc.getP(item.value)\"\r\n          tooltipPosition=\"bottom\"\r\n          showDelay=\"500\"\r\n          /> </ng-template\r\n        ></sti-selectButton>\r\n      }\r\n      @if (isRichText) {\r\n        <sti-selectButton\r\n          [options]=\"helper.styleOptions\"\r\n          [(value)]=\"richTextService.activeTextStyles\"\r\n          [multiple]=\"true\"\r\n          optionValue=\"value\"\r\n          (onOptionClick)=\"setStyle($event.option.value)\"\r\n          [style]=\"{ margin: '11px 10px 1px 1px', height: '32px', minWidth: '94px' }\"\r\n          ><ng-template let-item>\r\n          <img\r\n            [src]=\"model.getImage(item.image)\"\r\n            [stiTooltip]=\"loc.getP(item.value)\"\r\n            tooltipPosition=\"bottom\"\r\n            showDelay=\"500\"\r\n            /> </ng-template\r\n          ></sti-selectButton>\r\n        }\r\n        <div class=\"vertical-line\"></div>\r\n        @if (!isRichText) {\r\n          <div\r\n            class=\"button-container\"\r\n            [stiTooltip]=\"loc.getP('ForeColor')\"\r\n            tooltipPosition=\"bottom\"\r\n            showDelay=\"500\"\r\n            [style.opacity]=\"editableContentService.editableContent != null ? '1' : '0.5'\"\r\n            [class]=\"editableContentService.editableContent != null ? 'enabled' : 'disabled'\"\r\n            (click)=\"showColorPicker(fontColorEditor, foreColor)\"\r\n            (mousedown)=\"$event.preventDefault()\"\r\n            #fontColorEditor\r\n            >\r\n            <div class=\"prev\">\r\n              <div class=\"foreground\" [style]=\"{ backgroundPosition: 'center', backgroundRepeat: 'no-repeat' }\">\r\n                <img [src]=\"model.getImage('images.Brush.png')\" alt=\"\" />\r\n              </div>\r\n              <span\r\n                class=\"color-preview\"\r\n          [style.background-color]=\"\r\n            editableContentService.editableContent != null\r\n              ? editableContentService.editableContent?.eColor?.toHtmlColor()\r\n              : 'rgb(182, 181, 180)'\r\n          \"\r\n              ></span>\r\n            </div>\r\n            <div [style]=\"{ position: 'relative', alignSelf: 'center' }\">\r\n              <i class=\"pi pi-chevron-down\"></i>\r\n            </div>\r\n          </div>\r\n        }\r\n        @if (isRichText) {\r\n          <div\r\n            class=\"button-container\"\r\n            [stiTooltip]=\"loc.getP('ForeColor')\"\r\n            tooltipPosition=\"bottom\"\r\n            showDelay=\"500\"\r\n            [style.opacity]=\"1\"\r\n            [class]=\"'enabled'\"\r\n            (click)=\"showColorPicker(richTextColorEditor, richTextService.activeColor, true)\"\r\n            (mousedown)=\"$event.preventDefault()\"\r\n            #richTextColorEditor\r\n            >\r\n            <div class=\"prev\">\r\n              <div class=\"foreground\" [style]=\"{ backgroundPosition: 'center', backgroundRepeat: 'no-repeat' }\">\r\n                <img [src]=\"model.getImage('images.Brush.png')\" alt=\"\" />\r\n              </div>\r\n              <span class=\"color-preview\" [style.background-color]=\"richTextService.activeColor.toHtmlColor()\"></span>\r\n            </div>\r\n            <div [style]=\"{ position: 'relative', alignSelf: 'center' }\">\r\n              <i class=\"pi pi-chevron-down\"></i>\r\n            </div>\r\n          </div>\r\n        }\r\n        <div\r\n          class=\"button-container\"\r\n          [stiTooltip]=\"loc.getP('BackColor')\"\r\n          tooltipPosition=\"bottom\"\r\n          showDelay=\"500\"\r\n          [style.opacity]=\"haveBackgroundColor() ? '1' : '0.5'\"\r\n          [class]=\"haveBackgroundColor() ? 'enabled' : 'disabled'\"\r\n          (click)=\"showColorPicker(backColorEditor, backColor)\"\r\n          (mousedown)=\"$event.preventDefault()\"\r\n          (mouseup)=\"editableContentService.startEdit()\"\r\n          #backColorEditor\r\n          >\r\n          <div class=\"prev\">\r\n            <div class=\"background\" [style]=\"{ backgroundPosition: 'center', backgroundRepeat: 'no-repeat' }\">\r\n              <img [src]=\"model.getImage('images.Fill.png')\" alt=\"\" />\r\n            </div>\r\n            <span\r\n              class=\"color-preview\"\r\n          [style.background-color]=\"\r\n            editableContentService.editableContent != null\r\n              ? editableContentService.editableContent?.eBackgroundColor?.toHtmlColor()\r\n              : 'rgb(182, 181, 180)'\r\n          \"\r\n            ></span>\r\n          </div>\r\n          <div [style]=\"{ position: 'relative', alignSelf: 'center' }\">\r\n            <i class=\"pi pi-chevron-down\"></i>\r\n          </div>\r\n        </div>\r\n        @if (haveContentAlignment()) {\r\n          <sti-selectButton\r\n            [options]=\"helper.justifyOptions\"\r\n            [(value)]=\"editableContentService.editableContent.eContentAlignment\"\r\n            optionValue=\"value\"\r\n            [style]=\"{ margin: '11px 10px 1px 1px', height: '32px', minWidth: '94px' }\"\r\n            (mousedown)=\"editableContentService.startEdit()\"\r\n            >\r\n            <ng-template let-item>\r\n              <img\r\n                [src]=\"model.getImage(item.image)\"\r\n                [stiTooltip]=\"loc.getP(item.name)\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                [style]=\"{ height: '16px', width: '16px' }\"\r\n                />\r\n              </ng-template>\r\n            </sti-selectButton>\r\n          }\r\n          @if (!haveContentAlignment() && !isRichText) {\r\n            <sti-selectButton\r\n              [options]=\"helper.justifyOptions\"\r\n              optionValue=\"value\"\r\n              [style]=\"{ margin: '11px 10px 1px 1px', height: '32px', minWidth: '94px' }\"\r\n              [disabled]=\"true\"\r\n              >\r\n              <ng-template let-item>\r\n                <img\r\n                  [src]=\"model.getImage(item.image)\"\r\n                  [stiTooltip]=\"loc.getP(item.name)\"\r\n                  tooltipPosition=\"bottom\"\r\n                  showDelay=\"500\"\r\n                  [style]=\"{ height: '16px', width: '16px' }\"\r\n                  />\r\n                </ng-template>\r\n              </sti-selectButton>\r\n            }\r\n            @if (isRichText) {\r\n              <sti-selectButton\r\n                [options]=\"helper.justifyOptions\"\r\n                [(value)]=\"richTextService.activeAlignment\"\r\n                optionValue=\"value\"\r\n                [style]=\"{ margin: '11px 10px 1px 1px', height: '32px', minWidth: '94px' }\"\r\n                (onOptionClick)=\"setAlignment($event.option.value)\"\r\n                >\r\n                <ng-template let-item>\r\n                  <img\r\n                    [src]=\"model.getImage(item.image)\"\r\n                    [stiTooltip]=\"loc.getP(item.name)\"\r\n                    tooltipPosition=\"bottom\"\r\n                    showDelay=\"500\"\r\n                    [style]=\"{ height: '16px', width: '16px' }\"\r\n                    />\r\n                  </ng-template>\r\n                </sti-selectButton>\r\n              }\r\n              @if (haveVerticalAlignment()) {\r\n                <sti-selectButton\r\n                  [options]=\"helper.verticalAlignment\"\r\n                  [(value)]=\"editableContentService.editableContent.eVerticalAlignment\"\r\n                  optionValue=\"value\"\r\n                  [style]=\"{ margin: '11px 10px 1px 1px', height: '32px', minWidth: '94px' }\"\r\n                  (mousedown)=\"editableContentService.startEdit()\"\r\n                  >\r\n                  <ng-template let-item>\r\n                    <img\r\n                      [src]=\"model.getImage(item.image)\"\r\n                      [stiTooltip]=\"loc.getP(item.name)\"\r\n                      tooltipPosition=\"bottom\"\r\n                      showDelay=\"500\"\r\n                      [style]=\"{ height: '16px', width: '16px' }\"\r\n                      />\r\n                    </ng-template>\r\n                  </sti-selectButton>\r\n                }\r\n                @if (!haveVerticalAlignment()) {\r\n                  <sti-selectButton\r\n                    [options]=\"helper.verticalAlignment\"\r\n                    optionValue=\"value\"\r\n                    [disabled]=\"true\"\r\n                    [style]=\"{ margin: '11px 10px 1px 1px', height: '32px', minWidth: '90px' }\"\r\n                    >\r\n                    <ng-template let-item>\r\n                      <img\r\n                        [src]=\"model.getImage(item.image)\"\r\n                        [stiTooltip]=\"loc.getP(item.name)\"\r\n                        tooltipPosition=\"bottom\"\r\n                        showDelay=\"500\"\r\n                        [style]=\"{ height: '16px', width: '16px' }\"\r\n                        />\r\n                      </ng-template>\r\n                    </sti-selectButton>\r\n                  }\r\n                  <!-- <div class=\"vertical-line\"></div>\r\n                  <div\r\n                    class=\"container\"\r\n                    [stiTooltip]=\"loc.getP('ToggleElementCorners')\"\r\n                    tooltipPosition=\"bottom\"\r\n                    showDelay=\"500\"\r\n                    (click)=\"model.showCornerRadius = !model.showCornerRadius\"\r\n                    >\r\n                    <div class=\"button {{ model.showCornerRadius ? 'active' : '' }}\"><img [src]=\"getIcon('Corners')\" alt=\"\" /></div>\r\n                  </div> -->\r\n                </div>`,\r\n    styles: [\r\n        `\r\n      .active {\r\n        background-color: var(--active-color) !important;\r\n      }\r\n      .disabled {\r\n        opacity: 0.5;\r\n        pointer-events: none;\r\n      }\r\n      .container {\r\n        width: 40px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .button {\r\n        height: 32px;\r\n        width: 32px;\r\n        background-color: var(--back-color);\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .button:hover {\r\n        background-color: var(--hover-color) !important;\r\n      }\r\n      .button:active {\r\n        background-color: var(--columnDeleteHover-color) !important;\r\n      }\r\n      img {\r\n        max-width: 18px;\r\n      }\r\n      .prev {\r\n        display: flex;\r\n        width: 100%;\r\n        position: relative;\r\n        flex-direction: column;\r\n      }\r\n      .button-container {\r\n        display: flex;\r\n        margin-top: 11px;\r\n        height: 32px;\r\n        width: 48px;\r\n        position: relative;\r\n        margin-right: 10px;\r\n        border-radius: 3px;\r\n      }\r\n      .button-container:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n      .button-container:active {\r\n        background-color: var(--columnDeleteHover-color);\r\n      }\r\n      .color-preview {\r\n        width: 20px;\r\n        height: 5px;\r\n        margin-left: 6px;\r\n      }\r\n      i {\r\n        height: 12px;\r\n        width: 12px;\r\n        right: 3px;\r\n        top: 50%;\r\n        vertical-align: middle;\r\n        color: var(--text-color);\r\n      }\r\n      i:hover {\r\n        color: white;\r\n      }\r\n      .home {\r\n        height: 55px;\r\n        color: var(--text-color);\r\n        width: 100%;\r\n        display: flex;\r\n        border-bottom: 1px solid var(--formBorder-color);\r\n        vertical-align: -webkit-baseline-middle;\r\n        background-color: var(--back-color);\r\n        font-family: \"Segoe UI\";\r\n        overflow-x: auto;\r\n        overflow-y: hidden;\r\n      }\r\n      * {\r\n        scrollbar-width: thin;\r\n        scrollbar-color: var(--thumb-color), var(--back-color);\r\n      }\r\n\r\n      *::-webkit-scrollbar {\r\n        -webkit-appearance: none;\r\n        background-color: var(--back-color);\r\n        height: 10px;\r\n        width: 10px;\r\n        outline: none;\r\n      }\r\n\r\n      *::-webkit-scrollbar-button {\r\n        -webkit-appearance: none;\r\n        height: 3px;\r\n        width: 3px;\r\n      }\r\n\r\n      *::-webkit-scrollbar-thumb {\r\n        -webkit-appearance: none;\r\n        background-color: var(--thumb-color);\r\n        height: 10px;\r\n        min-width: 25px;\r\n        max-width: 80%;\r\n        border-radius: 4px;\r\n        border: 2px solid var(--back-color);\r\n      }\r\n\r\n      *::-webkit-scrollbar-thumb:hover {\r\n        background-color: var(--trackHover-color);\r\n        height: 10px;\r\n      }\r\n\r\n      *::-webkit-scrollbar-track {\r\n        -webkit-appearance: none;\r\n        background-color: var(--back-color);\r\n        border: 1px solid var(--back-color);\r\n      }\r\n      *::-webkit-scrollbar-corner {\r\n        background-color: var(--back-color);\r\n      }\r\n      .home input {\r\n        margin-top: 12.5px;\r\n        vertical-align: -webkit-baseline-middle;\r\n      }\r\n\r\n      .vertical-line {\r\n        margin-top: 10px;\r\n        width: 0px;\r\n        height: 32px;\r\n        border-right: 1px solid rgb(195, 195, 195);\r\n        margin-right: 5px;\r\n      }\r\n\r\n      .Bold {\r\n        background: var(--navbarBold-icon);\r\n      }\r\n\r\n      .Italic {\r\n        background: var(--navbarItalic-icon);\r\n      }\r\n\r\n      .Underline {\r\n        background: var(--navbarUnder-icon);\r\n      }\r\n\r\n      .foreground {\r\n        margin-left: 10px;\r\n        margin-top: 5px;\r\n        width: 16px;\r\n        height: 18px;\r\n      }\r\n\r\n      .background {\r\n        margin-left: 8px;\r\n        margin-top: 5px;\r\n        width: 16px;\r\n        height: 18px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiHomeRibbonComponent implements OnInit {\r\n  public copiedComponent;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public draggableService: StiDraggableService,\r\n    public theme: StiThemeService,\r\n    public render: StiRectangleGeometryLayout,\r\n    public formEvents: FormEventsService,\r\n    public editableContentService: StiEditableContentService,\r\n    public loc: StiLocalizationService,\r\n    public richTextService: StiRichTextService,\r\n    public undoService: StiUndoService,\r\n    public nameService: StiNameService,\r\n    public colorService: StiColorDialogService,\r\n    public clipboardService: StiClipboardService\r\n  ) { }\r\n  public get alignment() {\r\n    return this.editableContentService.editableContent[\"horizontalAlignment\"]\r\n      ? this.editableContentService.editableContent[\"horizontalAlignment\"]\r\n      : null;\r\n  }\r\n  public haveBackgroundColor(): boolean {\r\n    return (\r\n      this.editableContentService.editableContent != null &&\r\n      this.editableContentService.editableContent.haveBackgoundColor()\r\n    );\r\n  }\r\n  public haveContentAlignment(): boolean {\r\n    return (\r\n      this.editableContentService.editableContent != null &&\r\n      this.editableContentService.editableContent.haveContentAlignment()\r\n    );\r\n  }\r\n  public haveVerticalAlignment(): boolean {\r\n    return (\r\n      this.editableContentService.editableContent != null &&\r\n      this.editableContentService.editableContent.haveVerticalAlignment()\r\n    );\r\n  }\r\n  showColorPicker(element, object, isRichText = false) {\r\n    this.colorService.openDialog(element, object, isRichText);\r\n  }\r\n  changeEvent() {\r\n    let currentChangableFont: UsedFont = new UsedFont(\r\n      this.editableContentService.editableContent.eFont.family,\r\n      this.model.arrayOfStylesToString(this.editableContentService.editableContent.eFont.style),\r\n      this.editableContentService.editableContent.eFont.size\r\n    );\r\n    this.model.form.formEvents.next({ name: \"UpdateFonts\", value: currentChangableFont });\r\n  }\r\n\r\n  public setStyle(value) {\r\n    if (value == \"Bold\") {\r\n      this.richTextService.insertBold();\r\n    } else if (value == \"Italic\") {\r\n      this.richTextService.insertItalic();\r\n    } else {\r\n      this.richTextService.insertUnderline();\r\n    }\r\n  }\r\n  public setAlignment(value) {\r\n    if (value == 1) {\r\n      this.richTextService.setLeftAlignment();\r\n    } else if (value == 2) {\r\n      this.richTextService.setCenterAlignment();\r\n    } else {\r\n      this.richTextService.setRightAlignment();\r\n    }\r\n  }\r\n\r\n  public get fontSize(): number {\r\n    return this.editableContentService.editableContent?.eFont.size;\r\n  }\r\n\r\n  public set fontSize(value: number) {\r\n    if (this.editableContentService.editableContent) {\r\n      this.editableContentService.editableContent.eFont.size = value;\r\n    }\r\n  }\r\n\r\n  public get fontFamily() {\r\n    return this.editableContentService.editableContent?.eFont.family;\r\n  }\r\n\r\n  public set fontFamily(value: string) {\r\n    if (this.editableContentService.editableContent) {\r\n      this.editableContentService.editableContent.eFont.family = value;\r\n    }\r\n  }\r\n\r\n  public get fontStyle(): string[] {\r\n    return this.editableContentService.editableContent?.eFont.style;\r\n  }\r\n\r\n  public set fontStyle(value: string[]) {\r\n    if (this.editableContentService.editableContent) {\r\n      this.editableContentService.editableContent.eFont.style = value;\r\n    }\r\n  }\r\n\r\n  public get foreColor(): Color {\r\n    return this.editableContentService.editableContent?.eColor;\r\n  }\r\n  public get backColor(): Color {\r\n    return this.editableContentService.editableContent.eBackgroundColor;\r\n  }\r\n\r\n  public get canDelete(): boolean {\r\n    return this.model.selectedComponent ? true : false;\r\n  }\r\n\r\n  public get isRichText(): boolean {\r\n    return this.model.selectedComponent?.element instanceof StiTextElement ? true : false;\r\n  }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"sti-file-ribbon-component\",\r\n    template: `<div class=\"saving\">\r\n    <button style=\"margin-left: 20px\">{{ loc.getP(\"New\") }}</button>\r\n    <button (click)=\"open()\">{{ loc.getP(\"Open\") }}</button>\r\n    <button (click)=\"saveAs()\">{{ loc.getP(\"SaveAs\") }}</button>\r\n    <button (click)=\"importFromPdf()\">{{ loc.getP(\"ImportFromPdf\") }}</button>\r\n    <button (click)=\"showAboutWindow()\">{{ loc.getP(\"About\") }}</button>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .saving {\r\n        height: 55px;\r\n        color: var(--text-color);\r\n        width: 100%;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        border-bottom: 1px solid var(--formBorder-color);\r\n        background-color: var(--back-color);\r\n        font-family: \"Segoe UI\";\r\n      }\r\n\r\n      .saving button {\r\n        margin-top: 15px;\r\n        padding: 3px 12px;\r\n        text-decoration: none;\r\n        margin-right: 5px;\r\n        text-align: center;\r\n        justify-content: center;\r\n        font-size: 12px;\r\n        color: var(--text-color);\r\n        font-weight: 600;\r\n        cursor: default;\r\n        background-color: var(--input-color);\r\n        border-top: 2px solid var(--toolbarResizerBorder-color);\r\n        border-left: 1px solid var(--toolbarResizerBorder-color);\r\n        border-right: 1px solid var(--toolbarResizerBorder-color);\r\n        border-bottom: 1px solid var(--toolbarResizerBorder-color);\r\n        vertical-align: -webkit-baseline-middle;\r\n        border-radius: 3px;\r\n      }\r\n\r\n      .saving button:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFileRibbonComponent implements OnInit {\r\n  constructor(private model: StiModelService, public loc: StiLocalizationService) {}\r\n\r\n  public saveAs() {}\r\n\r\n  public open() {\r\n    let input = document.createElement(\"input\");\r\n    input.type = \"file\";\r\n    let model = this.model;\r\n    input.onchange = (_) => {\r\n      // you can use this method to get file and perform respective operations\r\n      let file = Array.from(input.files)[0];\r\n      var reader = new FileReader();\r\n      reader.readAsText(file, \"UTF-8\");\r\n      reader.onload = function (evt) {\r\n        model.setFormFromString(evt.target.result as string);\r\n      };\r\n    };\r\n    input.click();\r\n  }\r\n  importFromPdf() {\r\n    //TODO\r\n  }\r\n  showAboutWindow() {\r\n    this.model.showAboutWindow = true;\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiToolboxElement } from \"../services/objects\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport { StiToolbarResizerService } from \"../services/sti-toolbar-resizer.service\";\r\nimport { StiToolboxService } from \"../services/sti-toolbox.service\";\r\nimport { StiThemeService } from \"../services/theme.service\";\r\n\r\n@Component({\r\n    selector: \"sti-toolbox-element\",\r\n    template: `\r\n    @if (\r\n      !forGroup && toolboxService.isEnabled(element) && !this.isMaximize && element.caption != 'Divider' && !forRibbon\r\n      ) {\r\n      <div\r\n        [class]=\"className\"\r\n        (mousedown)=\"onMouseDown($event)\"\r\n        (dblclick)=\"onDoubleClick()\"\r\n        [stiTooltip]=\"loc.get2(element.category ? element.category : 'Components', element.caption)\"\r\n        tooltipPosition=\"right\"\r\n        showDelay=\"500\"\r\n        >\r\n        <img [src]=\"image\" style=\"pointer-events: none\" />\r\n      </div>\r\n    }\r\n    @if (\r\n      !forGroup &&\r\n      !this.isMaximize &&\r\n      element.caption == 'Divider' &&\r\n      !forRibbon &&\r\n      toolboxService.isToolboxInlineElementsDividerEnabled(element)\r\n      ) {\r\n      <div\r\n        class=\"divider\"\r\n        [style.height.px]=\"4\"\r\n        [style.width.px]=\"28\"\r\n        >\r\n        <div [style.height.px]=\"1\" [style.width.px]=\"22\" [style.border-bottom]=\"'1px solid rgb(170,170,170)'\"></div>\r\n      </div>\r\n    }\r\n    @if (!forGroup && toolboxService.isEnabled(element) && this.isMaximize && !forRibbon) {\r\n      <div\r\n        [class]=\"className\"\r\n        (mousedown)=\"onMouseDown($event)\"\r\n        (dblclick)=\"onDoubleClick()\"\r\n        >\r\n        <img [src]=\"image\" style=\"pointer-events: none\" />\r\n        <label style=\"width: 110px;\">{{\r\n          loc.get2(element.category ? element.category : \"Components\", element.caption)\r\n        }}</label>\r\n      </div>\r\n    }\r\n    @if (\r\n      !forGroup &&\r\n      toolboxService.isEnabled(element) &&\r\n      toolboxService.isGroupEnabled(element) &&\r\n      forRibbon &&\r\n      (element.caption == 'Input' || element.caption == 'Others' || element.caption == 'Selection')\r\n      ) {\r\n      <div\r\n        class=\"container current-group\"\r\n        [stiTooltip]=\"loc.getP(element.caption)\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"showPreview($event, element.caption)\"\r\n        >\r\n        <div class=\"button\">\r\n          <img class=\"img\" [src]=\"image\" alt=\"\" />\r\n          <span>{{\r\n            element.caption == \"Others\"\r\n            ? loc.get2(\"FormColorBoxPopup\", element.caption).replace(\"...\", \"\")\r\n            : loc.getP(element.caption)\r\n          }}</span>\r\n          <span class=\"select-button\"><i class=\"pi pi-chevron-down\"></i></span>\r\n        </div>\r\n      </div>\r\n    }\r\n    @if (\r\n      !forGroup &&\r\n      toolboxService.isEnabled(element) &&\r\n      forRibbon &&\r\n      element.caption != 'Divider' &&\r\n      element.caption != 'Input' &&\r\n      element.caption != 'Selection' &&\r\n      element.caption != 'Others'\r\n      ) {\r\n      <div\r\n        class=\"container\"\r\n        [stiTooltip]=\"loc.get2(element.category ? element.category : 'Components', element.caption)\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (mousedown)=\"onMouseDown($event)\"\r\n        (dblclick)=\"onDoubleClick()\"\r\n        >\r\n        <div class=\"button\">\r\n          <img class=\"img\" [src]=\"image\" alt=\"\" />\r\n          <span>{{ loc.get2(element.category ? element.category : \"Components\", element.caption) }}</span>\r\n        </div>\r\n      </div>\r\n    }\r\n    @if (forGroup && toolboxService.isEnabled(element)) {\r\n      <div\r\n        class=\"container-group\"\r\n        [stiTooltip]=\"loc.get2(element.category ? element.category : 'Components', element.caption)\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (mousedown)=\"onMouseDown($event)\"\r\n        (dblclick)=\"onDoubleClick()\"\r\n        [style.width]=\"'100%'\"\r\n        >\r\n        <div class=\"button-group\">\r\n          <img class=\"img\" [src]=\"image\" alt=\"\" />\r\n          <span>{{ loc.get2(element.category ? element.category : \"Components\", element.caption) }}</span>\r\n        </div>\r\n      </div>\r\n    }\r\n    @if (\r\n      !forGroup &&\r\n      forRibbon &&\r\n      element.caption == 'Divider' &&\r\n      toolboxService.isInsertInlineElementsDividerEnabled(element)\r\n      ) {\r\n      <div\r\n        class=\"vertical-line\"\r\n      ></div>\r\n    }\r\n    `,\r\n    styles: [\r\n        `\r\n      .container {\r\n        width: max-content;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        margin-top: 2px;\r\n      }\r\n      .button {\r\n        height: 50px;\r\n        width: max-content;\r\n        background-color: var(--back-color);\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        padding-left: 5px;\r\n        padding-right: 5px;\r\n      }\r\n      .button:hover {\r\n        background-color: var(--hover-color) !important;\r\n      }\r\n      .button:active {\r\n        background-color: var(--columnDeleteHover-color) !important;\r\n      }\r\n      .container-group {\r\n        width: max-content;\r\n        height: max-content;\r\n        display: flex;\r\n        align-items: center;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        margin-top: 1px;\r\n      }\r\n      .button-group {\r\n        height: max-content;\r\n        width: 100%;\r\n        background-color: var(--back-color);\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        padding: 4px;\r\n      }\r\n      .button-group:hover {\r\n        background-color: var(--hover-color) !important;\r\n      }\r\n      .button-group:active {\r\n        background-color: var(--columnDeleteHover-color) !important;\r\n      }\r\n      .divider {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .element {\r\n        width: 28px;\r\n        height: 28px;\r\n        background-color: inherit;\r\n        color: var(--text-color);\r\n        border-radius: 3px;\r\n        display: flex;\r\n        flex-wrap: nowrap;\r\n        font-size: 13px;\r\n        font-weight: 500;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n\r\n      .element.hover:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n\r\n      .element.active {\r\n        background-color: var(--active-color);\r\n      }\r\n      img {\r\n        vertical-align: sub;\r\n        width: 16px;\r\n        height: 16px;\r\n      }\r\n      .img {\r\n        max-width: 18px;\r\n        pointer-events: none;\r\n      }\r\n      .vertical-line {\r\n        margin-top: 10px;\r\n        width: 0px;\r\n        height: 32px;\r\n        border-right: 1px solid rgb(195, 195, 195);\r\n        margin-right: 5px;\r\n      }\r\n      label {\r\n        margin-left: 3px;\r\n        word-wrap: normal;\r\n        white-space: nowrap;\r\n        width: 110px;\r\n      }\r\n      span {\r\n        font-size: 13px;\r\n        white-space: nowrap;\r\n        margin-left: 9px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiToolboxElementComponent implements OnInit {\r\n  @Input() element: StiToolboxElement;\r\n  @Input() forRibbon: boolean = false;\r\n  @Input() forGroup: boolean = false;\r\n\r\n  constructor(\r\n    public toolboxService: StiToolboxService,\r\n    public toolbarResizerService: StiToolbarResizerService,\r\n    public theme: StiThemeService,\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  showPreview(event, caption) {\r\n    let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n    let element = elements?.find((element) => element?.classList.contains(\"current-group\"));\r\n    let elementRect = this.model.getPositionRelativeToForm(element);\r\n    this.toolboxService.previewY = elementRect?.bottom;\r\n    this.toolboxService.previewX = elementRect?.left;\r\n    this.toolboxService.currentGroup = caption;\r\n    if (\r\n      caption == \"Input\" &&\r\n      (!this.toolboxService.unusedElements?.find((item) => item == \"textbox\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"numberbox\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"combobox\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"dateTime\"))\r\n    ) {\r\n      this.model.showGroupPreview = true;\r\n    } else if (\r\n      caption == \"Selection\" &&\r\n      (!this.toolboxService.unusedElements?.find((item) => item == \"singleSelection\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"multipleSelection\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"listbox\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"checkbox\"))\r\n    ) {\r\n      this.model.showGroupPreview = true;\r\n    } else if (\r\n      caption == \"Others\" &&\r\n      (!this.toolboxService.unusedElements?.find((item) => item == \"signature\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"barcode\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"address\") ||\r\n        !this.toolboxService.unusedElements?.find((item) => item == \"line\"))\r\n    ) {\r\n      this.model.showGroupPreview = true;\r\n    }\r\n  }\r\n  onMouseDown(event: MouseEvent) {\r\n    let form = document.querySelector(\"stimulsoft-forms\");\r\n    form?.classList.add(\"unselectable\");\r\n    this.toolboxService.elementMouseDown(this, event);\r\n  }\r\n  onDoubleClick() {\r\n    this.toolboxService.elementDoubleClick(this);\r\n  }\r\n  get isMaximize(): boolean {\r\n    return this.toolbarResizerService.isMaximizeMode;\r\n  }\r\n\r\n  get className(): string {\r\n    return \"element \" + (this.toolboxService.mouseDownComponent?.element == this.element ? \"active\" : \"hover\");\r\n  }\r\n  get image() {\r\n    return this.model.getImage(this.element.image);\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiToolboxService } from \"../../services/sti-toolbox.service\";\r\nimport { StiNameService } from \"../../services/sti-name.service\";\r\n\r\n@Component({\r\n    selector: \"sti-insert-ribbon-component\",\r\n    template: `<div class=\"insert\">\r\n      <div\r\n        class=\"container\"\r\n        [stiTooltip]=\"loc.get2('HelpDesigner', 'PageNew')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (mousedown)=\"addPage()\"\r\n        >\r\n        <div class=\"button\">\r\n          <img [src]=\"model.getImage('images.Page.StiPage.png')\" alt=\"\" />\r\n          <span>{{ loc.get2(\"FormViewer\", \"PageNew\") }}</span>\r\n        </div>\r\n      </div>\r\n      <div class=\"vertical-line\"></div>\r\n      @for (element of toolboxService.elementsForRibbon; track element) {\r\n        <sti-toolbox-element\r\n          [forRibbon]=\"true\"\r\n          [element]=\"element\"\r\n        ></sti-toolbox-element>\r\n      }\r\n      @if (toolboxService.isInsertOutlineElementsDividerEnabled() && model.getBooleanSetting('showSetupToolbox')) {\r\n        <div\r\n          class=\"vertical-line\"\r\n        ></div>\r\n      }\r\n      @if (model.getBooleanSetting('showSetupToolbox')) {\r\n        <div\r\n          class=\"container\"\r\n          (click)=\"model.showToolboxSetup = true\"\r\n          [stiTooltip]=\"loc.get2('FormDesigner', 'SetupToolbox')\"\r\n          tooltipPosition=\"bottom\"\r\n          showDelay=\"500\"\r\n          >\r\n          <div class=\"button\">\r\n            <img [src]=\"model.getImage('images.Other.SetupToolbox.png')\" alt=\"\" />\r\n            <span>{{ loc.get2(\"FormDesigner\", \"SetupToolbox\") }}</span>\r\n          </div>\r\n        </div>\r\n      }\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      .container {\r\n        width: max-content;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .button {\r\n        height: 50px;\r\n        padding-left: 5px;\r\n        padding-right: 5px;\r\n        width: max-content;\r\n        background-color: var(--back-color);\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .button:hover {\r\n        background-color: var(--hover-color) !important;\r\n      }\r\n      .button:active {\r\n        background-color: var(--columnDeleteHover-color) !important;\r\n      }\r\n      img {\r\n        max-width: 18px;\r\n      }\r\n      .insert {\r\n        height: 55px;\r\n        color: var(--text-color);\r\n        width: 100%;\r\n        display: flex;\r\n        border-bottom: 1px solid var(--formBorder-color);\r\n        vertical-align: -webkit-baseline-middle;\r\n        background-color: var(--back-color);\r\n        font-family: \"Segoe UI\";\r\n        overflow-x: auto;\r\n        overflow-y: hidden;\r\n      }\r\n      * {\r\n        scrollbar-width: thin;\r\n        scrollbar-color: var(--thumb-color), var(--back-color);\r\n      }\r\n\r\n      *::-webkit-scrollbar {\r\n        -webkit-appearance: none;\r\n        background-color: var(--back-color);\r\n        height: 10px;\r\n        width: 10px;\r\n        outline: none;\r\n      }\r\n\r\n      *::-webkit-scrollbar-button {\r\n        -webkit-appearance: none;\r\n        height: 3px;\r\n        width: 3px;\r\n      }\r\n\r\n      *::-webkit-scrollbar-thumb {\r\n        -webkit-appearance: none;\r\n        background-color: var(--thumb-color);\r\n        height: 10px;\r\n        min-width: 25px;\r\n        max-width: 80%;\r\n        border-radius: 4px;\r\n        border: 2px solid var(--back-color);\r\n      }\r\n\r\n      *::-webkit-scrollbar-thumb:hover {\r\n        background-color: var(--trackHover-color);\r\n        height: 10px;\r\n      }\r\n\r\n      *::-webkit-scrollbar-track {\r\n        -webkit-appearance: none;\r\n        background-color: var(--back-color);\r\n        border: 1px solid var(--back-color);\r\n      }\r\n      *::-webkit-scrollbar-corner {\r\n        background-color: var(--back-color);\r\n      }\r\n      .vertical-line {\r\n        margin-top: 10px;\r\n        width: 0px;\r\n        height: 32px;\r\n        border-right: 1px solid rgb(195, 195, 195);\r\n        margin-right: 5px;\r\n        margin-left: 5px;\r\n      }\r\n      span {\r\n        font-size: 13px;\r\n        margin-left: 3px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiInsertRibbonComponent implements OnInit {\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public toolboxService: StiToolboxService,\r\n    public helper: StiHelperService,\r\n    public nameService: StiNameService\r\n  ) { }\r\n  addPage() {\r\n    let newPage = this.helper.clonePage(this.model.form.pages[this.model.form.pages.length - 1]);\r\n    newPage.elements = [];\r\n    newPage.name = this.nameService.getElementName(newPage);\r\n    this.model.form.pages.splice(\r\n      this.model.form.pages.indexOf(this.model.form.pages[this.model.form.pages.length - 1]) + 1,\r\n      0,\r\n      newPage\r\n    );\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport StiRectangleGeometryLayout from \"../../computed/StiRectangleGeometryLayout\";\r\nimport { StiHttpClientService } from \"../../services/http-client.service\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiDraggableService } from \"../../services/sti-draggable.service\";\r\nimport { StiExportService } from \"../../services/sti-export.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiToolboxService } from \"../../services/sti-toolbox.service\";\r\nimport { StiUserService } from \"../../services/sti-user-service\";\r\nimport { StiThemeService } from \"../../services/theme.service\";\r\nimport { StiFormCheckerService } from \"../../services/sti-form-checker.service\";\r\nimport { StiButtonElement } from \"../../elements/StiButtonElement\";\r\n\r\n@Component({\r\n    selector: \"sti-navbar\",\r\n    templateUrl: \"./navbar.component.html\",\r\n    standalone: false\r\n})\r\nexport class NavbarComponent implements OnInit, OnDestroy {\r\n  @ViewChild(\"saveButton\") saveButton: ElementRef;\r\n\r\n  public fonts: any;\r\n  public fontSizes: any;\r\n  public disabled: boolean = true;\r\n\r\n  public get editButtonRight(): number {\r\n    return (this.saveButton?.nativeElement.offsetWidth ?? 0) + 20;\r\n  }\r\n\r\n  public get componentHeight() {\r\n    if (this.model.viewerMode) {\r\n      return 0;\r\n    } else if (this.model.pdfPreviewMode || this.model.previewMode) {\r\n      return 38;\r\n    } else return 93;\r\n  }\r\n\r\n  getClass(ribbon: string) {\r\n    return this.model.ribbon == ribbon ? \"current\" : \"other\";\r\n  }\r\n\r\n  setEvent(event: string) {\r\n    if (event == \"Share\") {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"ShareButtonClick\" }).subscribe(() => { });\r\n    } else if (event == \"Publish\") {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"PublishButtonClick\" }).subscribe(() => { });\r\n    } else if (event == \"Login\") {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"LoginButtonClick\" }).subscribe(() => { });\r\n    } else if (event == \"Signup\") {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"SignUpButtonClick\" }).subscribe(() => { });\r\n    }\r\n  }\r\n\r\n  setRibbon(ribbon: string) {\r\n    this.model.ribbon = ribbon;\r\n  }\r\n\r\n  onSetRibbon(ribbon: string, oldRibbon: string) {\r\n    if (ribbon == \"PDFPreview\" || ribbon == \"File\") {\r\n      this.model.currentFormState = this.model.form.saveToReportJsonObject().serialize();\r\n    }\r\n\r\n    if ((this.model.isWebView || this.model.embeddedMode) && ribbon == \"File\") {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"RibbonFileClick\" }).subscribe(() => { });\r\n      this.model.ribbon = oldRibbon;\r\n    } else {\r\n      if (ribbon == \"File\") {\r\n        this.model.currentSelectedFileOption = \"Open\";\r\n      }\r\n    }\r\n    this.model.showTrialLog();\r\n  }\r\n  save() {\r\n    if (this.model.isWebView || this.model.embeddedMode || this.model.isCloudMode) {\r\n      let form = this.model.form.saveToJsonObject().serialize();\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"SaveButtonClick\", form: form }).subscribe(() => { });\r\n    } else {\r\n      this.setRibbon(\"File\");\r\n      this.model.currentSelectedFileOption = \"SaveAs\";\r\n    }\r\n  }\r\n  showInfo(event, type) {\r\n    let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n    let element =\r\n      elements.find((element) => element?.classList.contains(\"localization\")) ||\r\n      elements.find((element) => element?.classList.contains(\"user-info\"));\r\n    let elementRect = this.model.getPositionRelativeToForm(element);\r\n    this.userService.previewY = elementRect.bottom;\r\n    if (type == \"Localization\") {\r\n      this.userService.showLocalizationPreview = true;\r\n      this.userService.previewX = elementRect.right - (this.loc.localizationList?.length > 0 ? 465 : 155);\r\n    } else {\r\n      this.userService.showUserInfo = true;\r\n      this.userService.previewX = elementRect.right - 351;\r\n    }\r\n  }\r\n  sendExportEvent() {\r\n    if (this.model.isWebView) {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"ExportButtonClick\" }).subscribe(() => { });\r\n    } else if (this.model.isCloudMode && !this.model.viewerMode) {\r\n      this.model.showSaveDialogFromCloud = true;\r\n    } else {\r\n      this.showPdfOption();\r\n    }\r\n  }\r\n  setFormEventSubscription: Subscription;\r\n  startPdfEventSubscription: Subscription;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public draggableService: StiDraggableService,\r\n    public exportService: StiExportService,\r\n    public render: StiRectangleGeometryLayout,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService,\r\n    public toolboxService: StiToolboxService,\r\n    public httpService: StiHttpClientService,\r\n    public userService: StiUserService,\r\n    public formCheckerService: StiFormCheckerService\r\n  ) { }\r\n  ngOnDestroy(): void {\r\n    this.startPdfEventSubscription?.unsubscribe();\r\n    this.setFormEventSubscription?.unsubscribe();\r\n  }\r\n\r\n  editForm() {\r\n    let cloudParams = {\r\n      demomode: true,\r\n      localizationName: \"en\",\r\n      themeName: \"Office2022WhiteBlue\",\r\n      isForm: true,\r\n      reportName: this.helper.base64Encode(this.model.form.formName),\r\n    };\r\n\r\n    let win_ = window.open(\"about:blank\");\r\n    let doc = win_ ? win_.document : document;\r\n\r\n    this.httpService.postForm(\r\n      \"https://designer.stimulsoft.com/\",\r\n      {\r\n        designerParams: this.helper.base64Encode(JSON.stringify(cloudParams)),\r\n      },\r\n      doc,\r\n      true\r\n    );\r\n  }\r\n\r\n  showPdfOption() {\r\n    this.exportService.showModalWindow = !this.exportService.showModalWindow;\r\n  }\r\n  ngOnInit(): void {\r\n    this.model.form?.pages.length == 1 ? (this.disabled = true) : (this.disabled = false);\r\n    this.setFormEventSubscription = this.model.formEvents.subscribe((e) => {\r\n      if (e.name == \"SetForm\") {\r\n        this.setDefaultTab();\r\n      } else if (e.name == \"ShowFileMenu\") {\r\n        this.setRibbon(\"File\");\r\n      } else if (e.name == \"ShowSaveMenu\") {\r\n        this.setRibbon(\"File\");\r\n        this.model.currentSelectedFileOption = \"SaveAs\";\r\n      } else if (e.name == \"ShowTab\") {\r\n        this.setRibbon(e.value);\r\n      }\r\n    });\r\n\r\n    this.model.interfaceEvent.subscribe((e) => {\r\n      if (e.name == \"setRibbon\") {\r\n        this.onSetRibbon(e.data.ribbon, e.data.oldRibbon)\r\n      }\r\n    });\r\n\r\n    this.startPdfEventSubscription = this.model.startPdfExportEvent.subscribe(() => {\r\n      this.setRibbon(\"Preview\");\r\n      this.showPdfOption();\r\n    });\r\n  }\r\n  public setDefaultTab() {\r\n    let defaultSettingsTab = this.model.settings?.defaultTab;\r\n    let tab = defaultSettingsTab == \"Home\" || defaultSettingsTab == \"Insert\" || defaultSettingsTab == \"Preview\" || defaultSettingsTab == \"PDFPreview\" ?\r\n      defaultSettingsTab : \"Home\";\r\n    this.model.ribbon = tab;\r\n  }\r\n}\r\n","<div class=\"navbar\" [style.visibility]=\"model.viewerMode ? 'hidden' : 'visible'\" [style.height.px]=\"componentHeight\">\r\n  <div\r\n    class=\"navigation\"\r\n    [style.border-bottom]=\"\r\n      model.previewMode && !model.viewerMode ? '1px solid rgb(224,224,224)' : '1px solid transparent'\r\n    \"\r\n    >\r\n    @if (model.previewMode && model.showEditButton) {\r\n      <div\r\n        class=\"image-container\"\r\n        [style.right.px]=\"editButtonRight\"\r\n        [style.visibility]=\"'visible'\"\r\n        [style.top.px]=\"model.viewerMode ? 5 : 43\"\r\n        [style.min-width.px]=\"model.isMobile() ? 33 : 83\"\r\n        (click)=\"editForm()\"\r\n        >\r\n        <img [style.margin]=\"model.isMobile() ? '0px' : '0px 5px 0px 0px'\" [src]=\"model.getImage('images.Edit.png')\" />\r\n        @if (!model.isMobile()) {\r\n          <span>{{ loc.get2(\"MainMenu\", \"menuEditEdit\") }}</span>\r\n        }\r\n      </div>\r\n    }\r\n    @if ((model.viewerMode || model.previewMode) && model.showSaveToPdfButton && !model.fileMenuMode) {\r\n      <div\r\n        #saveButton\r\n        class=\"image-container\"\r\n        [style.right.px]=\"15\"\r\n        [style.visibility]=\"'visible'\"\r\n        [style.top.px]=\"model.viewerMode ? 5 : 43\"\r\n        [style.min-width.px]=\"model.isMobile() ? 33 : 83\"\r\n        [stiTooltip]=\"loc.get2('A_WebViewer', 'SaveReport')\"\r\n        tooltipPosition=\"bottom\"\r\n        (click)=\"showPdfOption()\"\r\n        >\r\n        <img\r\n          [style.margin]=\"model.isMobile() ? '0px' : '1px 5px 0px 0px'\"\r\n        [src]=\"\r\n          model.isMobile() ? model.getImage('images.ReportSave.png') : model.getImage('images.Other.DownloadPDF.png')\r\n        \"\r\n          />\r\n          @if (!model.isMobile()) {\r\n            <span>{{ loc.get2(\"Buttons\", \"Save\") }}</span>\r\n          }\r\n        </div>\r\n      }\r\n      @if (model.getBooleanSetting('showSaveButton')) {\r\n        <div class=\"save-button\" (click)=\"save()\">\r\n          <img [src]=\"model.getImage('images.Other.Save.png')\" />\r\n        </div>\r\n      }\r\n      @if (model.getBooleanSetting('showFileButton')) {\r\n        <div class=\"file-menu-button\" (click)=\"setRibbon('File')\">\r\n          <span>{{ loc.getP(\"File\") }}</span>\r\n        </div>\r\n      }\r\n      @if (model.getBooleanSetting('showHomeTab')) {\r\n        <div class=\"navigation-button\" (click)=\"setRibbon('Home')\">\r\n          <div class=\"label-container\">\r\n            <div class=\"navigation-label\">\r\n              <span>{{ loc.get2(\"Toolbars\", \"TabHome\") }}</span>\r\n            </div>\r\n          </div>\r\n          <div class=\"current-indicator {{ getClass('Home') }}\"></div>\r\n        </div>\r\n      }\r\n      @if (model.showInsertTab && model.getBooleanSetting('showInsertTab')) {\r\n        <div\r\n          class=\"navigation-button\"\r\n          (click)=\"setRibbon('Insert')\"\r\n          >\r\n          <div class=\"label-container\">\r\n            <div class=\"navigation-label\">\r\n              <span>{{ loc.getP(\"Insert\") }}</span>\r\n            </div>\r\n          </div>\r\n          <div class=\"current-indicator {{ getClass('Insert') }}\"></div>\r\n        </div>\r\n      }\r\n      @if (model.getBooleanSetting('showPreviewTab')) {\r\n        <div class=\"navigation-button\" (click)=\"setRibbon('Preview')\">\r\n          <div class=\"label-container\">\r\n            <div class=\"navigation-label\">\r\n              <span>{{ loc.get2(\"FormDesigner\", \"Preview\") }}</span>\r\n            </div>\r\n          </div>\r\n          <div class=\"current-indicator {{ getClass('Preview') }}\"></div>\r\n        </div>\r\n      }\r\n      @if (model.getBooleanSetting('showPDFPreviewTab')) {\r\n        <div\r\n          class=\"navigation-button\"\r\n          (click)=\"setRibbon('PDFPreview')\"\r\n          >\r\n          <div class=\"label-container\">\r\n            <div class=\"navigation-label\">\r\n              <span>{{ loc.getP(\"PDFPreview\") }}</span>\r\n            </div>\r\n          </div>\r\n          <div class=\"current-indicator {{ getClass('PDFPreview') }}\"></div>\r\n        </div>\r\n      }\r\n      @if ((userService.currentUser || model.embeddedMode) && model.userWasChecked) {\r\n        <div class=\"user-interface\">\r\n          <div class=\"share button\" (click)=\"setEvent('Share')\">\r\n            <img [src]=\"model.getImage('images.Share.png')\" alt=\"\" />\r\n          </div>\r\n          <div class=\"publish button\" (click)=\"setEvent('Publish')\">\r\n            <span>{{ loc.get2(\"Buttons\", \"Publish\") }}</span>\r\n          </div>\r\n          <div class=\"localization button\" (click)=\"showInfo($event, 'Localization')\" [style.padding]=\"'3px 10px'\">\r\n            <span>{{ loc.currentLocalization ? loc.currentLocalization.cultureName.toUpperCase() : \"EN\" }}</span>\r\n          </div>\r\n          @if (!model.userIsAuthorized && !model.isWebView) {\r\n            <div\r\n              class=\"login button\"\r\n              [style.padding]=\"'3px 10px'\"\r\n              (click)=\"setEvent('Login')\"\r\n              >\r\n              <span>{{ loc.get2(\"Cloud\", \"Login\") }}</span>\r\n            </div>\r\n          }\r\n          @if (!model.userIsAuthorized && !model.isWebView) {\r\n            <div class=\"signup button\" (click)=\"setEvent('Signup')\">\r\n              <span>{{ loc.get2(\"Cloud\", \"ButtonSignUp\") }}</span>\r\n            </div>\r\n          }\r\n          @if (model.userIsAuthorized || model.isWebView) {\r\n            <div\r\n              class=\"user-info button\"\r\n              (click)=\"showInfo($event, 'User')\"\r\n              >\r\n              <span>{{\r\n                userService.currentUser\r\n                ? (userService.currentUser.firstName ? userService.currentUser.firstName : \"\") +\r\n                \" \" +\r\n                (userService.currentUser.lastName ? userService.currentUser.lastName : \"\")\r\n                : \"My1 Company\"\r\n                }}</span\r\n                >@if (userService?.currentUser?.picture) {\r\n                <img\r\n                  src=\"data:image/jpeg;base64,{{ userService?.currentUser?.picture }}\"\r\n                  alt=\"\"\r\n                  />\r\n              }\r\n              @if (!userService?.currentUser?.picture) {\r\n                <div\r\n                  class=\"custom-image\"\r\n                  [style.background-color]=\"userService.getBackground(userService.currentUser)\"\r\n                  >\r\n                  <span [style.margin-top.px]=\"4\">{{\r\n                    userService.currentUser\r\n                    ? (userService.currentUser.firstName ? userService.currentUser.firstName[0] : \"\") +\r\n                    (userService.currentUser.lastName ? userService.currentUser.lastName[0] : \"\")\r\n                    : \"MC\"\r\n                  }}</span>\r\n                </div>\r\n              }\r\n            </div>\r\n          }\r\n        </div>\r\n      }\r\n    </div>\r\n    @if (model.ribbon == 'File') {\r\n      <sti-file-ribbon-component></sti-file-ribbon-component>\r\n    }\r\n    @if (model.ribbon == 'Home') {\r\n      <sti-home-ribbon-component></sti-home-ribbon-component>\r\n    }\r\n    @if (model.ribbon == 'Insert' && model.showInsertTab) {\r\n      <sti-insert-ribbon-component></sti-insert-ribbon-component>\r\n    }\r\n  </div>\r\n\r\n  <style>\r\n    .save-button img {\r\n    height: 16px;\r\n    width: 16px;\r\n  }\r\n  .save-button {\r\n  height: 30px;\r\n  width: 30px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  margin-left: 3px;\r\n  border-radius: 3px;\r\n}\r\n.save-button:hover {\r\nbackground-color: rgb(218, 218, 218);\r\n}\r\n.label-container {\r\npadding: 0px 12px;\r\n}\r\n.file-menu-button {\r\nheight: 30px;\r\nmargin-left: 3px;\r\nmin-width: 70px;\r\nbackground-color: rgb(25, 71, 138);\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: center;\r\ncolor: white;\r\nfont-size: 12px;\r\nfont-family: Arial;\r\npadding: 0px 10px;\r\n}\r\n.file-menu-button:hover {\r\nbackground-color: rgb(61, 98, 152);\r\n}\r\n.navigation-button:hover {\r\nbackground-color: rgb(218, 218, 218);\r\n}\r\n.navigation-button {\r\nheight: 30px;\r\nmin-width: 60px;\r\nmargin-left: 3px;\r\ndisplay: flex;\r\nflex-direction: column;\r\ncolor: rgb(68, 68, 68);\r\nfont-size: 12px;\r\nfont-family: Arial;\r\n}\r\n.navigation-label {\r\nheight: 27px;\r\nwidth: 100%;\r\npadding-top: 2px;\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: center;\r\nwhite-space: nowrap;\r\n}\r\n.current-indicator {\r\nheight: 3px;\r\nmargin: 0px 10px;\r\n}\r\n.navigation-button:hover .current-indicator {\r\nmargin: 0px;\r\n}\r\n.image-container {\r\nposition: absolute;\r\ntop: 43px;\r\nheight: 23px;\r\nmin-width: 83px;\r\nborder: 1px solid rgb(218, 218, 218);\r\nborder-radius: 3px;\r\ndisplay: flex;\r\nalign-items: center;\r\npadding: 0px 10px;\r\njustify-content: center;\r\nbackground-color: white;\r\nz-index: 99999999;\r\n}\r\n.image-container img {\r\nheight: 16px;\r\nwidth: 16px;\r\nmargin: 5px 0px 0px 5px;\r\n}\r\n.image-container span {\r\nfont-family: Arial;\r\nfont-size: 12px;\r\n}\r\n.image-container:hover {\r\nbackground-color: rgb(226, 226, 226);\r\n}\r\n.image-container:active {\r\nbackground-color: rgb(187, 187, 187);\r\n}\r\n.custom-image {\r\nmargin: 0px 5px;\r\nheight: 22px;\r\nwidth: 22px;\r\nfont-family: Arial;\r\nfont-size: 12px;\r\noverflow: hidden;\r\nborder-radius: 40px;\r\ncolor: White;\r\ndisplay: flex;\r\njustify-content: center;\r\n}\r\n.user-info img {\r\nwidth: 22px;\r\nheight: 22px;\r\nmargin: 0px 5px;\r\nborder-radius: 40px;\r\n}\r\n.button {\r\nheight: 30px;\r\nmin-width: 30px;\r\npadding: 3px 5px;\r\nborder-radius: 3px;\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: center;\r\nmargin-left: 3px;\r\n}\r\n.button:hover {\r\nbackground-color: rgb(218, 218, 218);\r\n}\r\n.share img {\r\nheight: 16px;\r\nwidth: 16px;\r\n}\r\n.user-interface {\r\ndisplay: flex;\r\njustify-content: flex-end;\r\nalign-items: center;\r\nheight: 30px;\r\nfont-size: 12px;\r\nfont-family: Arial;\r\ncolor: #444444;\r\nflex: 1;\r\n}\r\n.signup {\r\nbackground-color: #19478a;\r\ncolor: #ffffff;\r\npadding: 0px 17px;\r\nmargin-right: 3px;\r\n}\r\n.signup:hover {\r\nbackground-color: rgb(61, 98, 152);\r\n}\r\n.navbar {\r\nheight: 93px;\r\nwidth: 100%;\r\ndisplay: flex;\r\nflex-direction: column;\r\nbackground-color: var(--back-color);\r\ncolor: var(--text-color);\r\n}\r\na span {\r\nheight: 100%;\r\npadding: 3px;\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-items: center;\r\n}\r\n.navigation {\r\nposition: relative;\r\ndisplay: flex;\r\njustify-content: flex-start;\r\nheight: 38px;\r\nalign-items: center;\r\nbackground-color: var(--back-color);\r\nwidth: 100%;\r\npadding-top: 1px;\r\n-webkit-touch-callout: none;\r\n-webkit-user-select: none;\r\nfont-family: \"Segoe UI\";\r\n}\r\n\r\n.navigation a {\r\npadding: 0px 10px;\r\nheight: 100%;\r\ntext-decoration: none;\r\ntext-align: center;\r\nfont-size: 13px;\r\ncursor: default;\r\nmargin-right: 5px;\r\nmargin-left: 5px;\r\n}\r\n.navigation a:hover {\r\npadding: 0;\r\nbackground-color: var(--hover-color);\r\n}\r\na:hover span {\r\npadding-left: 13px;\r\npadding-right: 13px;\r\nwidth: 100%;\r\n}\r\n.current {\r\nbackground-color: rgb(25, 71, 138);\r\n}\r\n\r\n.other {\r\nbackground-color: transparent;\r\n}\r\n</style>\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiComponentResizerService } from \"../services/sti-component-resizer.service\";\r\n\r\n@Component({\r\n  selector: \"sti-page-grid-overlay\",\r\n  template: `\r\n    <div\r\n      class=\"grid-overlay\"\r\n      [style.opacity]=\"componentResizerService.isResizing || this.model.pageWithGrid ? 0.5 : 0\"\r\n      [style.padding-left.px]=\"this.paddingLeft\"\r\n      [style.padding-right.px]=\"this.paddingRight\"\r\n      [style.padding-top.px]=\"this.paddingTop\"\r\n      [style.padding-bottom.px]=\"this.paddingBottom\"\r\n      >\r\n      @for (column of columns; track $index; let i = $index) {\r\n        <div class=\"column {{ i == columns.length - 1 ? 'last' : '' }}\"></div>\r\n      }\r\n    </div>\r\n\r\n    <style>\r\n      .grid-overlay {\r\n      position: absolute;\r\n      pointer-events: none;\r\n      width: 100%;\r\n      height: 100%;\r\n      top: 0px;\r\n      left: 0px;\r\n      display: flex;\r\n      opacity: 0;\r\n      padding: 10px;\r\n      transition: opacity 0.3s ease 0s;\r\n      z-index: 1;\r\n    }\r\n\r\n    .column {\r\n    width: 100%;\r\n    margin: 0px;\r\n    position: relative;\r\n    }\r\n\r\n    .column::before {\r\n    content: \"\";\r\n    position: absolute;\r\n    left: 0px;\r\n    top: 0px;\r\n    width: 1px;\r\n    height: 100%;\r\n    background-color: rgb(234, 234, 234);\r\n    }\r\n\r\n    .column.last::after {\r\n    content: \"\";\r\n    position: absolute;\r\n    right: 0px;\r\n    top: 0px;\r\n    width: 1px;\r\n    height: 100%;\r\n    background-color: rgb(234, 234, 234);\r\n    }\r\n    </style>\r\n    `,\r\n  standalone: false\r\n})\r\nexport class StiPageGridOverlayComponent implements OnInit {\r\n  constructor(public componentResizerService: StiComponentResizerService, public model: StiModelService) { }\r\n  get paddingLeft(): number {\r\n    return this.model.lastUsedPage?.padding.left;\r\n  }\r\n  get paddingRight(): number {\r\n    return this.model.lastUsedPage?.padding.right;\r\n  }\r\n  get paddingTop(): number {\r\n    return this.model.lastUsedPage?.padding.top;\r\n  }\r\n  get paddingBottom(): number {\r\n    return this.model.lastUsedPage?.padding.bottom;\r\n  }\r\n  get columns() {\r\n    return new Array(Number(this.model.form.settings.gridColumns)).fill(3);\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { FormEventsService } from \"../services/sti-form-events-service\";\r\nimport { StiHelperService } from \"../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"sti-page-navigation\",\r\n    template: `\r\n    <div class=\"page-navigation\" [style.scale]=\"1 / model.zoom\" [style.transform]=\"getTranslate()\">\r\n      <div\r\n        class=\"button-navigation {{ !formEvents.canMoveUp ? 'disabled' : '' }}\"\r\n        [stiTooltip]=\"loc.get2('QueryBuilder', 'MoveUp')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"formEvents.moveUp()\"\r\n      >\r\n        <img\r\n          [style.filter]=\"!formEvents.canMoveUp ? 'grayscale(1)' : ''\"\r\n          [src]=\"model.getImage('images.Page.MovePageUp.png')\"\r\n        />\r\n      </div>\r\n      <div\r\n        class=\"button-navigation {{ !formEvents.canMoveDown ? 'disabled' : '' }}\"\r\n        [stiTooltip]=\"loc.get2('QueryBuilder', 'MoveDown')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"formEvents.moveDown()\"\r\n      >\r\n        <img\r\n          [style.filter]=\"!formEvents.canMoveDown ? 'grayscale(1)' : ''\"\r\n          [src]=\"model.getImage('images.Page.MovePageDown.png')\"\r\n        />\r\n      </div>\r\n      <div\r\n        class=\"button-navigation\"\r\n        [stiTooltip]=\"loc.get2('TableRibbon', 'InsertAbove')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"formEvents.insertBefore()\"\r\n      >\r\n        <img [src]=\"model.getImage('images.Page.InsertPageBefore.png')\" />\r\n      </div>\r\n      <div\r\n        class=\"button-navigation\"\r\n        [stiTooltip]=\"loc.get2('TableRibbon', 'InsertBelow')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"formEvents.insertAfter()\"\r\n      >\r\n        <img [src]=\"model.getImage('images.Page.InsertPageAfter.png')\" />\r\n      </div>\r\n      <div\r\n        class=\"button-navigation {{ !formEvents.canClear ? 'disabled' : '' }}\"\r\n        [stiTooltip]=\"loc.get2('MainMenu', 'menuEditClearContents')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"formEvents.clear()\"\r\n      >\r\n        <img\r\n          [style.filter]=\"!formEvents.canClear ? 'grayscale(1)' : ''\"\r\n          [src]=\"model.getImage('images.Page.ClearContent.png')\"\r\n        />\r\n      </div>\r\n      <div\r\n        class=\"button-navigation {{ !formEvents.canDelete ? 'disabled' : '' }}\"\r\n        [stiTooltip]=\"loc.get2('FormViewer', 'PageDelete')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        [style.border-bottom]=\"'1px solid var(--pageNavBorder-color)'\"\r\n        (click)=\"formEvents.delete(); $event.stopPropagation()\"\r\n      >\r\n        <img\r\n          [style.filter]=\"!formEvents.canDelete ? 'grayscale(1)' : ''\"\r\n          [src]=\"model.getImage('images.Page.DeletePage.png')\"\r\n        />\r\n      </div>\r\n    </div>\r\n\r\n    <style>\r\n      .page-navigation {\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .button-navigation {\r\n        background-color: var(--pageNavBackground-color);\r\n        border-top: 1px solid var(--pageNavBorder-color);\r\n        border-left: 1px solid var(--pageNavBorder-color);\r\n        border-right: 1px solid var(--pageNavBorder-color);\r\n        width: 40px;\r\n        height: 40px;\r\n        margin: 0;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        user-select: none;\r\n      }\r\n      .button-navigation img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .button-navigation:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n      .disabled {\r\n        background-color: var(--pageNavDisable-color);\r\n        pointer-events: none;\r\n      }\r\n      .disabled:hover {\r\n        background-color: var(--pageNavDisable-color);\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiPageNavigationComponent implements OnInit {\r\n  @Input() currentPage: StiFormPageElement;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public formEvents: FormEventsService,\r\n    public helper: StiHelperService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  getTranslate() {\r\n    return `translate(${\r\n      1 - this.model.zoom > 0 ? Math.abs(1 - this.model.zoom) * 25 : -(Math.abs(1 - this.model.zoom) * 25)\r\n    }px, ${1 - this.model.zoom > 0 ? Math.abs(1 - this.model.zoom) * 120 : -(Math.abs(1 - this.model.zoom) * 120)}px)`;\r\n  }\r\n  public setProperties(newPage, currentPage) {\r\n    newPage.paperKind = currentPage.paperKind;\r\n    newPage.padding = currentPage.padding;\r\n    newPage.backgroundColor = currentPage.backgroundColor;\r\n    newPage.visible = currentPage.visible;\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { AfterViewInit, Component, DoCheck, ElementRef, Input, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiFormElement } from \"../../elements/base/StiFormElement\";\r\nimport { StiFormPageElement } from \"../../elements/StiFormPageElement\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiComponentResizerService } from \"../../services/sti-component-resizer.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n    selector: \"app-page\",\r\n    templateUrl: \"./page.component.html\",\r\n    standalone: false\r\n})\r\nexport class PageComponent implements OnInit, AfterViewInit, DoCheck, OnDestroy {\r\n  BORDER_WIDTH = 2;\r\n  isInitialized = false;\r\n  PANEL_NAVIGATION_WIDTH = 40;\r\n  INNER_MARGIN = 10;\r\n  previewModeChangesObserver: Subscription;\r\n  previewModeIsInitialized = false;\r\n  @ViewChild(\"element\") pageEl: ElementRef;\r\n  @ViewChild(\"pageContainerEl\") pageContainerEl: ElementRef;\r\n\r\n  @Input() page: StiFormPageElement;\r\n\r\n  get width(): number {\r\n    return this.page.width + this.BORDER_WIDTH;\r\n  }\r\n  get height(): number {\r\n    return this.page.height + this.BORDER_WIDTH;\r\n  }\r\n  get id(): string {\r\n    return this.page.guid;\r\n  }\r\n  get elements(): StiFormElement[] {\r\n    return this.page.elements;\r\n  }\r\n  get className(): string {\r\n    return (\r\n      \"page \" +\r\n      (this.model.selectedPage == this.page && !this.model.previewMode ? \"active\" : \"\") +\r\n      \" \" +\r\n      StiModelService.PAGE_CLASS +\r\n      (this.componentResizerService.isResizing ? \" disable-text-selection\" : \"\")\r\n    );\r\n  }\r\n  get backgroundImage() {\r\n    return this.page.backgroundImage ? \"url(\" + this.page.backgroundImage + \")\" : null;\r\n  }\r\n  onContainerMouseDown(event: MouseEvent) {\r\n    if (event.target === this.pageContainerEl.nativeElement) {\r\n      this.model.selectedComponent = null;\r\n    }\r\n  }\r\n\r\n  onMouseDown(event: MouseEvent) {\r\n    this.model.selectedPage = this.page;\r\n    this.editableContent.editableContent = null;\r\n  }\r\n  public getPageIndex(): number {\r\n    return this.model.form.pages.indexOf(this.page);\r\n  }\r\n  public get zoom() {\r\n    return this.model.zoom;\r\n  }\r\n  public getLeftMargin(): number {\r\n    let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n    if (!this.isInitialized) {\r\n      return 0;\r\n    }\r\n    if (!this.previewModeIsInitialized && this.model.previewMode) {\r\n      return 0;\r\n    }\r\n    let pageContainerWidth =\r\n      this.page.width + (this.model.previewMode ? 0 : this.PANEL_NAVIGATION_WIDTH + this.INNER_MARGIN);\r\n    let freeHorizontalSpace =\r\n      workspace.clientWidth -\r\n      (workspace.clientHeight < workspace.scrollHeight || this.model.previewMode\r\n        ? 0\r\n        : this.model.zoom < 0.5 && this.model.zoom > 0.3\r\n          ? window.devicePixelRatio == 1.25\r\n            ? 8\r\n            : 10\r\n          : 10) -\r\n      40 -\r\n      pageContainerWidth * this.zoom;\r\n    let leftMargin = Math.round(freeHorizontalSpace / 2);\r\n    return freeHorizontalSpace > 0 ? Number((leftMargin / this.zoom).toFixed(2)) : 0;\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public componentResizerService: StiComponentResizerService,\r\n    public editableContent: StiEditableContentService\r\n  ) { }\r\n  ngOnDestroy(): void {\r\n    this.previewModeChangesObserver?.unsubscribe();\r\n  }\r\n  ngDoCheck(): void {\r\n    if (this.pageEl && this.page.element != this.pageEl) {\r\n      this.page.element = this.pageEl;\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.page.element = this.pageEl;\r\n    setTimeout(() => {\r\n      this.isInitialized = true;\r\n    });\r\n  }\r\n\r\n  ngOnInit(): void {\r\n\r\n    if (this.model.previewMode && !this.previewModeIsInitialized) {\r\n      this.previewModeIsInitialized = true;\r\n    }\r\n\r\n    this.previewModeChangesObserver = this.model.interfaceEvent.subscribe((event) => {\r\n      if (event.name == \"setRibbon\" && event.data?.ribbon === \"Preview\") {\r\n        setTimeout(() => {\r\n          this.previewModeIsInitialized = true;\r\n        });\r\n      } else if (event.name == \"setRibbon\" && event.data?.oldRibbon === \"Preview\") {\r\n        this.previewModeIsInitialized = false;\r\n      }\r\n    });\r\n  }\r\n}\r\n","@if (((!page.visible || page.visible) && !model.previewMode) || (page.visible && model.previewMode)) {\r\n  <div\r\n    #pageContainerEl\r\n    class=\"page-container\"\r\n    [style.width.px]=\"width + (model.viewerMode || model.previewMode ? 0 : 51)\"\r\n    [style.margin-left.px]=\"getLeftMargin()\"\r\n    (mousedown)=\"onContainerMouseDown($event)\"\r\n    [style.opacity]=\"isInitialized ? 1 : 0\"\r\n    >\r\n    <div\r\n      #element\r\n      class=\"page\"\r\n      id=\"Page\"\r\n      [id]=\"id\"\r\n      [style.padding-left.px]=\"page?.padding.left\"\r\n      [style.padding-right.px]=\"page?.padding.right\"\r\n      [style.padding-top.px]=\"page?.padding.top\"\r\n      [style.padding-bottom.px]=\"page?.padding.bottom\"\r\n      [style.background-color]=\"page.backgroundColor.toHtmlColor()\"\r\n      [style.overflow]=\"'hidden'\"\r\n      [style.width.px]=\"width\"\r\n      [style.height.px]=\"height\"\r\n      [class]=\"className\"\r\n      [style.background-image]=\"backgroundImage\"\r\n      [style.background-position]=\"'center'\"\r\n      [style.background-size]=\"'cover'\"\r\n      [style.background-repeat]=\"'no-repeat'\"\r\n      [style.margin-top.px]=\"getPageIndex() == 0 ? 0 : 10\"\r\n      (mousedown)=\"onMouseDown($event)\"\r\n      >\r\n      @for (element of elements; track $index) {\r\n        <div>\r\n          <sti-component-holder [element]=\"element\"></sti-component-holder>\r\n        </div>\r\n      }\r\n      @if (model.pageWithGrid == page || (model.lastUsedPage == page && componentResizerService.isResizing)) {\r\n        <sti-page-grid-overlay\r\n        ></sti-page-grid-overlay>\r\n      }\r\n      @if (model.showTrialTitle) {\r\n        <div class=\"trial-title\" [style.zIndex]=\"model.previewMode ? 99999 : 0\">\r\n          <span>{{ loc.getP(\"Trial\") }}</span>\r\n        </div>\r\n      }\r\n      @if (!model.viewerMode && !model.previewMode) {\r\n        <div\r\n          class=\"inline-border\"\r\n          [style.left.px]=\"page.padding.left\"\r\n          [style.top.px]=\"page.padding.top\"\r\n          [style.width.px]=\"page.contentAreaWidth\"\r\n          [style.height.px]=\"page.contentAreaHeight\"\r\n        ></div>\r\n      }\r\n      @if (!page?.visible) {\r\n        <i class=\"pi pi-eye-slash\" style=\"opacity: 0.3\"></i>\r\n      }\r\n    </div>\r\n    @if (page === model.selectedPage && !model.previewMode) {\r\n      <sti-page-navigation\r\n        [currentPage]=\"page\"\r\n        [style.visibility]=\"model.previewMode ? 'hidden' : ''\"\r\n        [style.height]=\"'100%'\"\r\n        [style.margin-top.px]=\"getPageIndex() == 0 ? 0 : 10\"\r\n      ></sti-page-navigation>\r\n    }\r\n  </div>\r\n}\r\n<style>\r\n  .page-container {\r\n  position: relative;\r\n  display: flex;\r\n}\r\n.page {\r\nposition: relative;\r\ndisplay: block;\r\nbackground: white;\r\nfont-size: 2.5rem;\r\ncolor: black;\r\nborder: 1px solid #c6c6c6;\r\nmargin-right: 10px;\r\nmargin-top: 10px;\r\nmargin-bottom: 10px;\r\n}\r\n.inline-border {\r\nposition: absolute;\r\npointer-events: none;\r\nborder: 1px solid rgb(234, 234, 234);\r\nopacity: 0.5;\r\n}\r\n.trial-title {\r\nposition: absolute;\r\npointer-events: none;\r\nuser-select: none;\r\nopacity: 0.3;\r\nfont-family: \"Segoe UI\";\r\nfont-weight: bold;\r\nfont-size: 100pt;\r\nleft: calc(50% - 135px);\r\ntop: calc(50% - 88px);\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: center;\r\n}\r\n.trial-title span {\r\ntransform: rotate(-45deg);\r\n}\r\n.hovered {\r\nborder-color: rgb(73, 108, 159);\r\n}\r\n\r\n.active {\r\nborder-color: rgb(146, 146, 146);\r\n}\r\ni {\r\nposition: absolute;\r\nright: 5px;\r\ntop: 5px;\r\n}\r\n\r\n.disable-text-selection {\r\n-webkit-touch-callout: none;\r\n-khtml-user-select: none;\r\n-moz-user-select: none;\r\n-ms-user-select: none;\r\n-webkit-touch-callout: none;\r\n-webkit-user-select: none;\r\n}\r\n</style>\r\n","import { Component, ElementRef, ViewChild } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiFormPageElement } from \"../../elements/StiFormPageElement\";\r\nimport { StiToolbarResizerService } from \"../../services/sti-toolbar-resizer.service\";\r\nimport { StiExportService } from \"../../services/sti-export.service\";\r\n@Component({\r\n  selector: \"sti-workspace\",\r\n  template: `\r\n    <div class=\"main-container\" [style.paddingLeft]=\"this.padding\" (click)=\"onClick($event)\">\r\n      <div #element class=\"workspace\" [style.transform]=\"model.getScale()\" [style.transform-origin]=\"'left top'\">\r\n        @for (page of pages; track $index) {\r\n          <app-page [page]=\"page\" (click)=\"onClick($event)\"></app-page>\r\n        }\r\n        <!-- <sti-toolbar-resizer [style.visibility]=\"this.model.previewMode ? 'hidden' : ''\"></sti-toolbar-resizer> -->\r\n      </div>\r\n    </div>\r\n\r\n    <style>\r\n      .workspace {\r\n      width: fit-content;\r\n      height: 100%;\r\n      position: relative;\r\n    }\r\n    .center {\r\n    text-align: center;\r\n    }\r\n    .main-container {\r\n    height: 100%;\r\n    width: 100%;\r\n    padding-top: 10px;\r\n    padding-right: 20px;\r\n    }\r\n    </style>\r\n    `,\r\n  standalone: false\r\n})\r\nexport class WorkspaceComponent {\r\n  @ViewChild(\"element\") workspaceEl: ElementRef;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public exportService: StiExportService,\r\n    public toolbarResizerService: StiToolbarResizerService\r\n  ) { }\r\n\r\n  get padding(): string {\r\n    if (this.toolbarResizerService.isMinimizeMode) {\r\n      return 20 + \"px\";\r\n    } else return 0 + \"px\";\r\n  }\r\n\r\n  public get pages(): StiFormPageElement[] {\r\n    return this.model.form?.pages;\r\n  }\r\n\r\n  onClick(event: MouseEvent) {\r\n    let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n    if (\r\n      !elements.find((elem) => elem?.classList.contains(\"page\")) &&\r\n      !elements.find((elem) => elem?.classList.contains(\"page-navigation\"))\r\n    ) {\r\n      this.model.selectedComponent = null;\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\n\r\n@Component({\r\n    selector: \"property-grid-navigation\",\r\n    template: `<div class=\"navigation-container\">\r\n    <div\r\n      class=\"button {{ model.currentPropertyGridMode == 'Properties' ? 'selected' : '' }}\"\r\n      (click)=\"selectMode('Properties')\"\r\n    >\r\n      <img [src]=\"model.getImage('images.Other.Properties.png')\" />\r\n      <div class=\"label\">\r\n        <span>{{ \"Properties\" }}</span>\r\n        <div class=\"current-indicator\"></div>\r\n      </div>\r\n    </div>\r\n    <div class=\"button {{ model.currentPropertyGridMode == 'Tree' ? 'selected' : '' }}\" (click)=\"selectMode('Tree')\">\r\n      <img [src]=\"model.getImage('images.Other.ReportTree.png')\" />\r\n      <div class=\"label\">\r\n        <span>{{ \"Form Tree\" }}</span>\r\n        <div class=\"current-indicator\"></div>\r\n      </div>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .navigation-container {\r\n        display: flex;\r\n        height: 34px;\r\n        -webkit-user-select: none;\r\n        align-items: center;\r\n      }\r\n      .label {\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .selected .current-indicator {\r\n        height: 3px;\r\n        width: 100%;\r\n        background-color: rgb(25, 71, 138);\r\n      }\r\n      .button {\r\n        font-family: Arial;\r\n        font-size: 12px;\r\n        min-width: 80px;\r\n        height: 26px;\r\n        border-radius: 3px;\r\n        background-color: transparent;\r\n        display: flex;\r\n        align-items: center;\r\n        margin-right: 3px;\r\n        padding-right: 10px;\r\n      }\r\n      .button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n        cursor: pointer;\r\n      }\r\n      .selected {\r\n        background-color: rgb(229, 229, 229);\r\n      }\r\n      img {\r\n        height: 16px;\r\n        width: 16px;\r\n        margin: 0px 6px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiPropertyGridNavigationComponent implements OnInit {\r\n  constructor(public loc: StiLocalizationService, public model: StiModelService) {}\r\n\r\n  selectMode(mode: string) {\r\n    if (this.model.currentPropertyGridMode != mode) {\r\n      this.model.currentPropertyGridMode = mode;\r\n      if (mode == \"Properties\") {\r\n        setTimeout(() => {\r\n          this.model.needToRefresh.next(true);\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiForm } from \"../../../elements/StiForm\";\r\nimport { StiFormPageElement } from \"../../../elements/StiFormPageElement\";\r\nimport { StiToolboxService } from \"../../../services/sti-toolbox.service\";\r\nimport { StiFormElement } from \"../../../elements/base/StiFormElement\";\r\nimport { StiPanelElement } from \"../../../elements/StiPanelElement\";\r\n\r\n@Component({\r\n  selector: \"sti-forms-tree-item\",\r\n  template: `<div class=\"item-container\" [style.left.px]=\"isFormElement ? 5 : !isPageElement && innerItems ? 13 : 15\">\r\n      <div class=\"tree-item\">\r\n        <div class=\"tree-lines\" [style.width.px]=\"innerItems ? 15 : 13\">\r\n          @if (innerItems && showInnerComponents()) {\r\n            <div\r\n              class=\"inner-elements-button\"\r\n              (click)=\"this.showInnerTree = !this.showInnerTree\"\r\n              >\r\n              <img\r\n            [src]=\"\r\n              showInnerTree\r\n                ? model.getImage('images.Other.IconCloseItem.png')\r\n                : model.getImage('images.Other.IconOpenItem.png')\r\n            \"\r\n                />\r\n              </div>\r\n            }\r\n          </div>\r\n          <div class=\"item-content {{ isCurrentSelectedItem() ? 'current' : '' }}\" (click)=\"selectItem()\">\r\n            <div class=\"item-icon\"><img [src]=\"getIconSrc()\" /></div>\r\n            <div class=\"item-label\">{{ getItemLabel() }}</div>\r\n          </div>\r\n        </div>\r\n        @if (innerItems && showInnerTree && showInnerComponents()) {\r\n          <div class=\"inner-items\">\r\n            @for (innerItem of innerItems; track $index; let i = $index) {\r\n              <sti-forms-tree-item\r\n                [item]=\"innerItem\"\r\n                [index]=\"i\"\r\n                [showTree]=\"hasSelectedComponent(innerItem)\"\r\n              ></sti-forms-tree-item>\r\n            }\r\n          </div>\r\n        }\r\n      </div>`,\r\n  styles: [\r\n    `\r\n      .item-icon {\r\n        height: 17px;\r\n      }\r\n      .item-content {\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        height: 23px;\r\n        padding: 3px;\r\n      }\r\n      .current {\r\n        background-color: lightgray;\r\n      }\r\n      .horizontal-line {\r\n        position: absolute;\r\n        height: 1px;\r\n        width: 11px;\r\n        left: 11px;\r\n        top: 11px;\r\n        background-color: lightgray;\r\n      }\r\n      .vertical-line {\r\n        position: absolute;\r\n        height: 11px;\r\n        width: 1px;\r\n        left: 11px;\r\n        top: 0px;\r\n        background-color: lightgray;\r\n      }\r\n      .tree-lines {\r\n        height: 100%;\r\n        position: relative;\r\n        width: 23px;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .item-label {\r\n        margin-left: 3px;\r\n      }\r\n      .item-container {\r\n        position: relative;\r\n        top: 0px;\r\n        font-size: 11px;\r\n        color: #444444;\r\n        font-family: Arial;\r\n        -moz-user-select: none;\r\n        -khtml-user-select: none;\r\n        -webkit-user-select: none;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .tree-item {\r\n        display: flex;\r\n        align-items: center;\r\n        height: 23px;\r\n      }\r\n\r\n      img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .inner-elements-button {\r\n        display: flex;\r\n        justify-content: flex-end;\r\n      }\r\n      .inner-elements-button img {\r\n        height: 12px;\r\n        width: 12px;\r\n        margin-top: 1px;\r\n        margin-right: 3px;\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiFormsTreeItemComponent implements OnInit, OnDestroy {\r\n  @Input() item: any;\r\n  @Input() index: number;\r\n  @Input() showTree: boolean;\r\n  public showInnerTree: boolean = false;\r\n  public get innerItems(): any[] {\r\n    return this.item?.pages ?? this.item?.elements;\r\n  }\r\n  public get isFormElement(): boolean {\r\n    return this.item instanceof StiForm;\r\n  }\r\n  public get isPageElement(): boolean {\r\n    return this.item instanceof StiFormPageElement;\r\n  }\r\n  hasSelectedComponent(element): boolean {\r\n    if (element instanceof StiFormPageElement || element instanceof StiPanelElement) {\r\n      if (element.allElements.find((element) => element == this.model.selectedComponent?.element)) {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  public get isLastIndex(): boolean {\r\n    if (this.item instanceof StiFormElement) {\r\n      let parentElement = this.model.getElementPage(this.item) ?? this.model.getElementPanel(this.item);\r\n      return parentElement?.elements?.indexOf(this.item) == parentElement?.elements?.length - 1;\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n  public showInnerComponents(): boolean {\r\n    return this.item?.pages ? true : this.model.showComponentsTab;\r\n  }\r\n  public selectItem() {\r\n    if (this.item instanceof StiForm) {\r\n      this.model.selectedPage = null;\r\n      this.model.selectedComponent = null;\r\n    } else if (this.item instanceof StiFormPageElement) {\r\n      this.model.selectedPage = this.item;\r\n    } else {\r\n      this.model.needToSelectedComponent.next(this.item);\r\n    }\r\n    this.scrollToElement();\r\n  }\r\n  public scrollToElement() {\r\n    if (this.item instanceof StiForm) {\r\n      return;\r\n    }\r\n    let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n    let page = this.item instanceof StiFormPageElement ? this.item : this.model.getElementPageForScroll(this.item);\r\n    let pageElement = document.getElementById(page.guid);\r\n    let pageElementRect = pageElement.getBoundingClientRect();\r\n    let index = this.model.form.pages.indexOf(page);\r\n    workspace.scrollTop = pageElementRect.height * index + (index != 0 ? 20 * this.model.zoom : 0);\r\n  }\r\n  public isCurrentSelectedItem() {\r\n    if (this.item instanceof StiFormPageElement) {\r\n      return this.model.selectedPage == this.item;\r\n    } else if (this.item instanceof StiForm) {\r\n      return !this.model.selectedPage && !this.model.selectedComponent;\r\n    } else {\r\n      return this.model?.selectedComponent?.element == this.item;\r\n    }\r\n  }\r\n  public getItemLabel() {\r\n    if (this.item && this.item instanceof StiForm) {\r\n      return this.item?.formName;\r\n    } else {\r\n      return this.item?.name;\r\n    }\r\n  }\r\n  public getIconSrc() {\r\n    let path;\r\n    if (this.item && this.item instanceof StiForm) {\r\n      path = \"images.Other.StiForm.png\";\r\n    } else if (this.item instanceof StiFormPageElement) {\r\n      path = \"images.Page.StiPage.png\";\r\n    } else {\r\n      let toolboxElement = this.toolboxService?.elements?.find(\r\n        (elem) => elem.id == this.toolboxService?.getToolboxId(this.item?.type)\r\n      );\r\n      path = toolboxElement?.image;\r\n    }\r\n    return this.model.getImage(path);\r\n  }\r\n  constructor(public model: StiModelService, public toolboxService: StiToolboxService) { }\r\n  ngOnDestroy(): void {\r\n    if (this.innerItems) {\r\n      let itemStateObj = this.model.formTreeInnerItemsStates?.find((item) => item?.element == this.item);\r\n      if (itemStateObj && itemStateObj.state != this.showInnerTree) {\r\n        itemStateObj.state = this.showInnerTree;\r\n      } else {\r\n        this.model.formTreeInnerItemsStates.push({ element: this.item, state: this.showInnerTree });\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    if (this.model.formTreeInnerItemsStates.find((item) => item?.element == this.item)) {\r\n      this.showInnerTree = this.model.formTreeInnerItemsStates.find((item) => item?.element == this.item).state;\r\n    }\r\n    if (this.item instanceof StiForm) {\r\n      this.showInnerTree = true;\r\n    }\r\n    if (this.showTree) {\r\n      this.showInnerTree = true;\r\n    }\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiFormPageElement } from \"../../../elements/StiFormPageElement\";\r\nimport { StiFormElement } from \"../../../elements/base/StiFormElement\";\r\n\r\n@Component({\r\n    selector: \"forms-tree\",\r\n    template: `\r\n    <div class=\"form-tree-container\">\r\n      <div class=\"search-container\">\r\n        <div class=\"search-component\">\r\n          <span class=\"input\"\r\n            ><input\r\n              type=\"text\"\r\n              [placeholder]=\"loc.get2('Editor', 'Search')\"\r\n              [value]=\"value\"\r\n              (input)=\"inputEvent($event.target.value)\"\r\n              (keyup.enter)=\"findElement()\"\r\n            />\r\n          </span>\r\n          <div class=\"search-button\" (click)=\"findElement()\">\r\n            <img [src]=\"model.getImage('images.Other.Search.png')\" />\r\n          </div>\r\n        </div>\r\n        <div\r\n          class=\"show-components-button {{ model.showComponentsTab ? 'selected' : '' }}\"\r\n          (click)=\"model.showComponentsTab = !model.showComponentsTab\"\r\n        >\r\n          <img [src]=\"model.getImage('images.Other.ComponentsTab.png')\" />\r\n        </div>\r\n      </div>\r\n      <div class=\"tree-items-container\">\r\n        <sti-forms-tree-item [item]=\"model?.form\"></sti-forms-tree-item>\r\n      </div>\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      .input {\r\n        z-index: 99999;\r\n      }\r\n      input {\r\n        height: 22px;\r\n        font-size: 12px;\r\n        width: 100%;\r\n        outline: none;\r\n        border: 0;\r\n      }\r\n      .search-button {\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        height: 100%;\r\n      }\r\n      .search-button:hover {\r\n        cursor: pointer;\r\n        background-color: var(--hover-color);\r\n      }\r\n      .disabled {\r\n        pointer-events: none;\r\n        opacity: 0.5;\r\n      }\r\n\r\n      .selected {\r\n        background-color: var(--hover-color);\r\n      }\r\n      .tree-items-container {\r\n        position: relative;\r\n        width: fit-content;\r\n      }\r\n      .container-label {\r\n        color: rgb(118, 118, 118);\r\n        font-size: 13px;\r\n        font-weight: bold;\r\n        margin-left: 5px;\r\n        margin-top: 4.5px;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .search-component {\r\n        border: 1px solid var(--inputBorder-color);\r\n        border-radius: 3px;\r\n        display: flex;\r\n        width: 100%;\r\n        align-items: center;\r\n        margin-left: 5px;\r\n        min-width: 300px;\r\n        position: relative;\r\n      }\r\n      .search-component span {\r\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif,\r\n          \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n        font-size: 12px;\r\n        padding-left: 5px;\r\n        font-weight: 500;\r\n        color: var(--text-color);\r\n        flex: 1;\r\n      }\r\n      .search-container {\r\n        display: flex;\r\n        height: 24px;\r\n        width: 100%;\r\n        margin: 5px 0px;\r\n      }\r\n      .form-tree-container {\r\n        min-width: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .show-components-button {\r\n        height: 100%;\r\n        margin: 0px 5px;\r\n        border-radius: 3px;\r\n      }\r\n      .show-components-button:hover {\r\n        background-color: var(--hover-color);\r\n        cursor: pointer;\r\n      }\r\n      img {\r\n        height: 16px;\r\n        width: 16px;\r\n        margin: 0px 4px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFormsTreeComponent implements OnInit {\r\n  public value: string = \"\";\r\n  public lastFindedItem;\r\n  public lastFindedValue;\r\n  constructor(public model: StiModelService, public loc: StiLocalizationService) {}\r\n  inputEvent(value) {\r\n    this.value = value;\r\n  }\r\n  findElement() {\r\n    (document.activeElement as HTMLElement).blur();\r\n    let names = this.getAllNames();\r\n    let resultNames = [];\r\n    names.forEach((item) => {\r\n      if (item.name.toLowerCase().indexOf(this.value.toLowerCase()) != -1) {\r\n        resultNames.push(item);\r\n      }\r\n    });\r\n    if (resultNames) {\r\n      if (resultNames.findIndex((item) => item.name == this.lastFindedItem?.name) != -1) {\r\n        let index = -1;\r\n        if (this.lastFindedValue == this.value) {\r\n          index = resultNames.findIndex((item) => item.name == this.lastFindedItem?.name);\r\n        }\r\n        if (index + 1 < resultNames.length) {\r\n          this.selectItem(resultNames[index + 1]);\r\n          this.lastFindedItem = resultNames[index + 1];\r\n          this.lastFindedValue = this.value;\r\n        } else {\r\n          this.model.showFormTreeWarningWindow = true;\r\n          this.model.formTreeWarningMessage = this.value;\r\n        }\r\n      } else {\r\n        this.selectItem(resultNames[0]);\r\n        this.lastFindedItem = resultNames[0];\r\n        this.lastFindedValue = this.value;\r\n      }\r\n    }\r\n  }\r\n  public selectItem(item) {\r\n    if (item?.name == \"Form\") {\r\n      this.model.selectedPage = null;\r\n      this.model.selectedComponent = null;\r\n    } else if (item?.element instanceof StiFormPageElement) {\r\n      this.model.selectedPage = item.element;\r\n    } else if (item?.element instanceof StiFormElement) {\r\n      this.model.needToSelectedComponent.next(item?.element);\r\n    } else {\r\n      this.model.showFormTreeWarningWindow = true;\r\n      this.model.formTreeWarningMessage = this.value;\r\n    }\r\n  }\r\n  public getAllNames() {\r\n    let names = [];\r\n    names.push({ name: \"Form\" });\r\n    this.model.form?.pages?.forEach((page) => {\r\n      names.push({ name: page.name, element: page });\r\n      page.allElements.forEach((elem) => {\r\n        names.push({ name: elem.name, element: elem });\r\n      });\r\n    });\r\n    return names;\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","export abstract class StiElementCreator {\r\n  public createPropertyEditors(properties: any[], element, model?) {}\r\n  constructor() {}\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiAddressCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({ type: \"horizontalAlignment\", property: \"contentAlignment\", label: \"\" });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"textColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"borderWeight\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderWidth\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"descriptionFont\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"descriptionColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useStreetAddress\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"StreetAddress\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useStreetAddress2\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"StreetAddress\") + \" 2\",\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useCity\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"City\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useState\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"State\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useZipCode\",\r\n      checkbox: StiLocalizationService.get(\"Components\", \"StiZipCode\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useCountry\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Country\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiBarcodeType, StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiBarcodeCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"codeString\",\r\n      label: StiLocalizationService.get(\"FormDesigner\", \"Code\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"barcodeType\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Type\"),\r\n    });\r\n    if (element.barcodeType == StiBarcodeType.QRCode) {\r\n      properties.push({\r\n        type: \"barcodeStyles\",\r\n        property: \"style\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Style\"),\r\n      });\r\n      properties.push({\r\n        type: \"simpleEnum\",\r\n        property: \"matrixSize\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"MatrixSize\"),\r\n      });\r\n      properties.push({\r\n        type: \"simpleEnum\",\r\n        property: \"errorCorrectionLevel\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"ErrorCorrectionLevel\"),\r\n      });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({ type: \"BooleanWithArrowEditor\", property: \"showBodyBrushEditor\", label: \"\" });\r\n      properties.push({ type: \"BooleanWithArrowEditor\", property: \"showEyeBallBrushEditor\", label: \"\" });\r\n      properties.push({ type: \"BooleanWithArrowEditor\", property: \"showEyeFrameBrushEditor\", label: \"\" });\r\n      properties.push({ type: \"divider\" });\r\n    }\r\n\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"foreColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    /* properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    }); */\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiButtonType } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiButtonCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"text.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Text\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"buttonType\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Type\"),\r\n    });\r\n    if (element.buttonType == StiButtonType.SendForm) {\r\n      properties.push({\r\n        type: \"autoCompleteEditor\",\r\n        property: \"formSendURL\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"URL\"),\r\n      });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"submissionMessage\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"SubmissionMessage\"),\r\n      });\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"buttonSendType\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"SendType\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"text\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"text.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"text.backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiCheckBoxCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"text.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Text\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"text\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"checkColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"CheckColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"text.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"isChecked\",\r\n      checkbox: StiLocalizationService.get(\"Dashboard\", \"InitialValue\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiComboBoxCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"MultilineEditor\",\r\n      property: \"options\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Options\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"textColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"borderWeight\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderWidth\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiDateTimeBoxType, StiDateTimeBoxValueChoise, StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiDateTimeBoxCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({ type: \"enum\", property: \"valueType\", label: StiLocalizationService.get(\"PropertyMain\", \"Type\") });\r\n    if (element.valueType == StiDateTimeBoxType.Date) {\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"dateFormat\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Format\"),\r\n      });\r\n    } else if (element.valueType == StiDateTimeBoxType.DateTime) {\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"dateTimeFormat\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Format\"),\r\n      });\r\n    } else {\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"timeFormat\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Format\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"initialState\",\r\n      label: StiLocalizationService.get(\"Dashboard\", \"InitialValue\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"textColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"borderWeight\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderWidth\"),\r\n    });\r\n    properties.push({ type: \"horizontalAlignment\", property: \"contentAlignment\", label: \"\" });\r\n\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"allowNull\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"AllowNull\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiFormPageCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"image\",\r\n      property: \"backgroundImage\",\r\n      label: StiLocalizationService.get(\"Cloud\", \"LabelPicture\"),\r\n    });\r\n    properties.push({\r\n      type: \"paperKind\",\r\n      property: \"paperKind\",\r\n      label: StiLocalizationService.get(\"FormPageSetup\", \"groupPaper\"),\r\n    });\r\n    properties.push({\r\n      type: \"pageNumberEditor\",\r\n      property: \"width\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n    });\r\n    properties.push({\r\n      type: \"pageNumberEditor\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({ type: \"color\", property: \"backgroundColor\", label: \"\" });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Margins\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiImageCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"image\",\r\n      property: \"image\",\r\n      label: StiLocalizationService.get(\"Cloud\", \"LabelPicture\"),\r\n    });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"hyperlink\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Hyperlink\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({ type: \"BooleanWithArrowEditor\", property: \"showBorderEditor\", label: \"\" });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiLabelCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"text.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Text\"),\r\n    });\r\n    properties.push({ type: \"FontEditor\", property: \"text\", label: \"\" });\r\n    properties.push({ type: \"horizontalAlignment\", property: \"text.horizontalAlignment\", label: \"\" });\r\n    properties.push({ type: \"verticalAlignment\", property: \"text.verticalAlignment\", label: \"\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"hyperlink\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Hyperlink\"),\r\n    });\r\n    properties.push({ type: \"BooleanWithArrowEditor\", property: \"showBorderEditor\", label: \"\" });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"text.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"text.backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"ExceedMarginsEditor\",\r\n      property: \"exceedMargins\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ExceedMargins\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiLineCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"lineColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"LineColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"Number\",\r\n      property: \"lineThickness\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"LineWidth\"),\r\n    });\r\n    properties.push({\r\n      type: \"verticalAlignment\",\r\n      property: \"verticalAlignment\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"VertAlignment\"),\r\n    });\r\n    properties.push({ type: \"enum\", property: \"style\", label: StiLocalizationService.get(\"PropertyMain\", \"Style\") });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    /*properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });*/\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiListBoxCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"MultilineEditor\",\r\n      property: \"options\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Options\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"allowMultiselection\",\r\n      checkbox: StiLocalizationService.get(\"Components\", \"StiMultipleSelection\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"textColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"borderWeight\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderWidth\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiMultipleSelectionCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"MultilineEditor\",\r\n      property: \"options\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Options\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"textColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"checkColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"CheckColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"Number\",\r\n      property: \"columns\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Columns\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useCustomOption\",\r\n      checkbox: StiLocalizationService.get(\"FormDictionaryDesigner\", \"CsvSeparatorOther\"),\r\n    });\r\n    if (element.useCustomOption) {\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"customOptionText\",\r\n        label: StiLocalizationService.get(\"Components\", \"StiText\"),\r\n      });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"prefix\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Prefix\"),\r\n      });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"suffix\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Suffix\"),\r\n      });\r\n    }\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment, StiNumberType, StiNumberRangeFormat } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiNumberBoxCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"NumberEditor\",\r\n      property: \"value\",\r\n      label: StiLocalizationService.get(\"Dashboard\", \"InitialValue\"),\r\n    });\r\n    properties.push({ type: \"horizontalAlignment\", property: \"contentAlignment\", label: \"\" });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"numberType\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ValueType\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    if (element.numberType == StiNumberType.Currency) {\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"thousandSeparator\",\r\n        label: StiLocalizationService.get(\"Export\", \"Separator\").replace(\":\", \"\"),\r\n      });\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"decimalDigits\",\r\n        label: StiLocalizationService.get(\"FormFormatEditor\", \"DecimalDigits\"),\r\n      });\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"currency\",\r\n        label: StiLocalizationService.get(\"FormFormatEditor\", \"Currency\"),\r\n      });\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"unitAlignment\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"UnitAlignment\"),\r\n      });\r\n      properties.push({\r\n        type: \"labelFormat\",\r\n        property: \"currencyLabelFormat\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"ShowAs\"),\r\n      });\r\n    }\r\n    if (element.numberType == StiNumberType.Decimal) {\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"unitLabel\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Unit\"),\r\n      });\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"unitAlignment\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"UnitAlignment\"),\r\n      });\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"thousandSeparator\",\r\n        label: StiLocalizationService.get(\"Export\", \"Separator\").replace(\":\", \"\"),\r\n      });\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"decimalDigits\",\r\n        label: StiLocalizationService.get(\"FormFormatEditor\", \"DecimalDigits\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"textColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"borderWeight\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderWidth\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useRange\",\r\n      checkbox: StiLocalizationService.get(\"Chart\", \"Range\"),\r\n    });\r\n    if (element.useRange) {\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"rangeFormat\",\r\n        label: StiLocalizationService.get(\"FormFormatEditor\", \"title\"),\r\n      });\r\n      if (element.rangeFormat == StiNumberRangeFormat.Digits) {\r\n        properties.push({\r\n          type: \"Number\",\r\n          property: \"maximum\",\r\n          label: StiLocalizationService.get(\"PropertyMain\", \"Maximum\"),\r\n        });\r\n      }\r\n      if (element.rangeFormat == StiNumberRangeFormat.Values) {\r\n        properties.push({\r\n          type: \"Number\",\r\n          property: \"minimum\",\r\n          label: StiLocalizationService.get(\"PropertyMain\", \"Minimum\"),\r\n        });\r\n        properties.push({\r\n          type: \"Number\",\r\n          property: \"maximum\",\r\n          label: StiLocalizationService.get(\"PropertyMain\", \"Maximum\"),\r\n        });\r\n      }\r\n    }\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment, StiSignatureType } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiPDFSignatureCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    /* properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    }); */\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"placeholder\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Placeholder\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"placeholderBackColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    /* properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    }); */\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    /* properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    }); */\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiPanelCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({ type: \"BooleanWithArrowEditor\", property: \"showBorderEditor\", label: \"\" });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiSettingsCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"image\",\r\n      property: \"reportImage\",\r\n      label: StiLocalizationService.get(\"Cloud\", \"LabelPicture\"),\r\n    });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"formName\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"FormName\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"Number\",\r\n      property: \"gridColumns\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"GridColumns\"),\r\n    });\r\n    properties.push({\r\n      type: \"Number\",\r\n      property: \"gridVerticalStep\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"GridVerticalStep\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({ type: \"defaultLabel\" });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"color\", property: \"label.color\", label: \"\" });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"innerText\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"InnerText\"),\r\n    });\r\n    properties.push({ type: \"horizontalAlignment\", property: \"innerText.contentAlignment\", label: \"\" });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"innerText.backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"innerText.borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"innerText.checkColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"CheckColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"innerText.borderWeight\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderWidth\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"culture\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Culture\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"dateTimeFormat\",\r\n      label: StiLocalizationService.get(\"FormFormatEditor\", \"DateTimeFormat\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"dateFormat\",\r\n      label:\r\n        StiLocalizationService.get(\"FormFormatEditor\", \"Date\") +\r\n        \" \" +\r\n        StiLocalizationService.get(\"PropertyMain\", \"Format\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"timeFormat\",\r\n      label:\r\n        StiLocalizationService.get(\"FormFormatEditor\", \"Time\") +\r\n        \" \" +\r\n        StiLocalizationService.get(\"PropertyMain\", \"Format\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"currency\",\r\n      label: StiLocalizationService.get(\"FormFormatEditor\", \"Currency\"),\r\n    });\r\n    properties.push({\r\n      type: \"currencyFormat\",\r\n      property: \"currencyFormat\",\r\n      label: StiLocalizationService.get(\"FormFormatEditor\", \"CurrencySymbol\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"unitAlignment\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"UnitAlignment\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"thousandSeparator\",\r\n      label: StiLocalizationService.get(\"Export\", \"Separator\").replace(\":\", \"\"),\r\n    });\r\n    properties.push({\r\n      type: \"Number\",\r\n      property: \"decimalDigits\",\r\n      label: StiLocalizationService.get(\"FormFormatEditor\", \"DecimalDigits\"),\r\n    });\r\n\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment, StiSignatureType } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiSignatureCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"currentSignatureMode\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Mode\"),\r\n    });\r\n    if (element.currentSignatureMode == \"Type\") {\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"fullName\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"FullName\"),\r\n      });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"initials\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Initials\"),\r\n      });\r\n      properties.push({\r\n        type: \"enum\",\r\n        property: \"specialFont\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Style\"),\r\n      });\r\n    }\r\n    if (element.currentSignatureMode == \"Draw\") {\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"insertedText.value\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Text\"),\r\n      });\r\n      properties.push({ type: \"horizontalAlignment\", property: \"insertedText.horizontalAlignment\", label: \"\" });\r\n      properties.push({\r\n        type: \"FontEditor\",\r\n        property: \"insertedText.font\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n      });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"insertedImage.loadedImage\",\r\n        label: StiLocalizationService.get(\"PropertyCategory\", \"ImageCategory\"),\r\n      });\r\n      properties.push({ type: \"horizontalAlignment\", property: \"insertedImage.horizontalAlignment\", label: \"\" });\r\n      properties.push({ type: \"verticalAlignment\", property: \"insertedImage.verticalAlignment\", label: \"\" });\r\n      properties.push({\r\n        type: \"checkbox\",\r\n        property: \"insertedImage.aspectRatio\",\r\n        checkbox: StiLocalizationService.get(\"PropertyMain\", \"AspectRatio\"),\r\n      });\r\n      properties.push({\r\n        type: \"checkbox\",\r\n        property: \"insertedImage.stretch\",\r\n        checkbox: StiLocalizationService.get(\"PropertyMain\", \"Stretch\"),\r\n      });\r\n    }\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiSingleSelectionCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"MultilineEditor\",\r\n      property: \"options\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Options\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"textColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"checkColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"CheckColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"Number\",\r\n      property: \"columns\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Columns\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useCustomOption\",\r\n      checkbox: StiLocalizationService.get(\"FormDictionaryDesigner\", \"CsvSeparatorOther\"),\r\n    });\r\n    if (element.useCustomOption) {\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"customOptionText\",\r\n        label: StiLocalizationService.get(\"Components\", \"StiText\"),\r\n      });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"prefix\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Prefix\"),\r\n      });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"suffix\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Suffix\"),\r\n      });\r\n    }\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiTableCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element, model) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({ type: \"tableNavigations\" });\r\n    properties.push({ type: \"divider\" });\r\n    if (element.showHeaderEditor) {\r\n      model?.currentTablePropertyHeader.next(\"Main\");\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"tableHeaderText\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Header\"),\r\n      });\r\n      properties.push({\r\n        type: \"horizontalAlignment\",\r\n        property: \"tableHeaderAlignment\",\r\n        label: \"\",\r\n      });\r\n      properties.push({\r\n        type: \"checkbox\",\r\n        property: \"useWordWrap\",\r\n        checkbox: StiLocalizationService.get(\"PropertyEnum\", \"StiTextSizeModeWordWrap\"),\r\n      });\r\n      properties.push({\r\n        type: \"color\",\r\n        property: \"tableHeaderBackgroundColor\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n      });\r\n      properties.push({\r\n        type: \"color\",\r\n        property: \"tableHeaderColor\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n      });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({\r\n        type: \"FontEditor\",\r\n        property: \"font\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n      });\r\n      properties.push({\r\n        type: \"color\",\r\n        property: \"backgroundColor\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n      });\r\n      properties.push({ type: \"BooleanWithArrowEditor\", property: \"showBorderEditor\", label: \"\" });\r\n      properties.push({ type: \"BooleanWithArrowEditor\", property: \"showGridLinesEditor\", label: \"\" });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({\r\n        type: \"nameEditor\",\r\n        property: \"name\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n      });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({\r\n        type: \"componentHeight\",\r\n        property: \"height\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n      });\r\n      properties.push({\r\n        type: \"PaddingEditor\",\r\n        property: \"padding\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n      });\r\n      properties.push({\r\n        type: \"checkbox\",\r\n        property: \"readOnly\",\r\n        checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n      });\r\n      /* if (!element.readOnly) {\r\n        properties.push({\r\n          type: \"checkbox\",\r\n          property: \"dynamicRows\",\r\n          checkbox: StiLocalizationService.get(\"PropertyMain\", \"DynamicRows\"),\r\n        });\r\n      } */\r\n      properties.push({\r\n        type: \"checkbox\",\r\n        property: \"visible\",\r\n        checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n      });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"label.value\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n      });\r\n      properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n      if (element.label.alignment != StiLabelAlignment.Top) {\r\n        properties.push({\r\n          type: \"Number\",\r\n          property: \"label.width\",\r\n          label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n        });\r\n      }\r\n      properties.push({\r\n        type: \"FontEditor\",\r\n        property: \"label\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n      });\r\n      properties.push({\r\n        type: \"color\",\r\n        property: \"label.color\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n      });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"description.value\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n      });\r\n      properties.push({\r\n        type: \"FontEditor\",\r\n        property: \"description\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n      });\r\n      properties.push({\r\n        type: \"color\",\r\n        property: \"description.color\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n      });\r\n    } else if (element.showColumnsEditor) {\r\n      model?.currentTablePropertyHeader.next(\"Columns\");\r\n      properties.push({ type: \"BooleanWithArrowEditor\", property: \"showColumnsBorderEditor\", label: \"\" });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({ type: \"TableColumnsEditor\", property: \"columns\", label: \"\" });\r\n    } else if (element.showRowsEditor) {\r\n      model?.currentTablePropertyHeader.next(\"Rows\");\r\n      properties.push({\r\n        type: \"checkbox\",\r\n        property: \"showRowLabels\",\r\n        checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n      });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({\r\n        type: \"MultilineEditor\",\r\n        property: \"rowLabels\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Labels\"),\r\n      });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({\r\n        type: \"horizontalAlignment\",\r\n        property: \"rowLabelsHorizontalAlignment\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Alignment\"),\r\n      });\r\n      properties.push({\r\n        type: \"checkbox\",\r\n        property: \"alternateRowColors\",\r\n        checkbox: StiLocalizationService.get(\"PropertyMain\", \"AlternateRowColors\"),\r\n      });\r\n      if (!element.alternateRowColors) {\r\n        properties.push({\r\n          type: \"color\",\r\n          property: \"rowHeadersBackground\",\r\n          label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n        });\r\n        properties.push({\r\n          type: \"color\",\r\n          property: \"rowHeadersColor\",\r\n          label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n        });\r\n      } else {\r\n        properties.push({\r\n          type: \"color\",\r\n          property: \"evenRowsStyle\",\r\n          label: StiLocalizationService.get(\"PropertyMain\", \"EvenRowsStyle\"),\r\n        });\r\n        properties.push({ type: \"color\", property: \"evenRowsTextColor\", label: \"\" });\r\n        properties.push({\r\n          type: \"color\",\r\n          property: \"oddRowsStyle\",\r\n          label: StiLocalizationService.get(\"PropertyMain\", \"OddRowsStyle\"),\r\n        });\r\n        properties.push({ type: \"color\", property: \"oddRowsTextColor\", label: \"\" });\r\n      }\r\n      properties.push({ type: \"BooleanWithArrowEditor\", property: \"showRowsBorderEditor\", label: \"\" });\r\n    } else if (element.showTotalsEditor) {\r\n      model?.currentTablePropertyHeader.next(\"Totals\");\r\n      properties.push({\r\n        type: \"checkbox\",\r\n        property: \"useTotals\",\r\n        checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n      });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"totalsRowHeader\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Header\"),\r\n      });\r\n      properties.push({ type: \"horizontalAlignment\", property: \"totalsRowHeaderHorizontalAlignment\", label: \"\" });\r\n      properties.push({ type: \"verticalAlignment\", property: \"totalsRowHeaderVerticalAlignment\", label: \"\" });\r\n      properties.push({ type: \"color\", property: \"totalsRowHeaderColor\", label: \"\" });\r\n      properties.push({ type: \"divider\" });\r\n      properties.push({ type: \"TableColumnsEditor\", property: \"totalsFields\", label: \"\" });\r\n    }\r\n\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiLabelAlignment } from \"../../../system/enums\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiTextBoxCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"value\",\r\n      label: StiLocalizationService.get(\"Dashboard\", \"InitialValue\"),\r\n    });\r\n    properties.push({ type: \"horizontalAlignment\", property: \"contentAlignment\", label: \"\" });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"font\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"textColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"backgroundColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BackColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"borderColor\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderColor\"),\r\n    });\r\n    properties.push({\r\n      type: \"enum\",\r\n      property: \"borderWeight\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"BorderWidth\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"mask\",\r\n      tooltip: \"A - Accepts only letters (A–Z, a-z).\\n X - Accepts spaces and most printable characters, \\nincluding all characters available on a standard \\nkeyboard and ANSI characters in 32–126 and 128–255.\\n O - The letter “O” accepts alphanumeric characters \\n(A–Z, a-z, and 0–9). \\n9 - Accepts only numeric characters (0–9).\",\r\n      label: StiLocalizationService.get(\"FormFormatEditor\", \"FormatMask\").replace(\":\", \"\"),\r\n    });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"tooltip\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ToolTip\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"readOnly\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"ReadOnly\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"required\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Required\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"isPassword\",\r\n      checkbox: StiLocalizationService.get(\"Password\", \"StiSavePasswordForm\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"useRange\",\r\n      checkbox: StiLocalizationService.get(\"Chart\", \"Range\"),\r\n    });\r\n    if (element.useRange) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"maximum\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Maximum\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"isMultiline\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Multiline\"),\r\n    });\r\n    if (element.isMultiline) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"linesCount\",\r\n        label: StiLocalizationService.get(\"Shapes\", \"Lines\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"label.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Label\"),\r\n    });\r\n    properties.push({ type: \"labelAlignment\", property: \"label.alignment\", label: \"\" });\r\n    if (element.label.alignment != StiLabelAlignment.Top) {\r\n      properties.push({\r\n        type: \"Number\",\r\n        property: \"label.width\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Width\"),\r\n      });\r\n    }\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"label\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"label.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"TextEditor\",\r\n      property: \"description.value\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Description\"),\r\n    });\r\n    properties.push({\r\n      type: \"FontEditor\",\r\n      property: \"description\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Font\"),\r\n    });\r\n    properties.push({\r\n      type: \"color\",\r\n      property: \"description.color\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"ForeColor\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiElementCreator } from \"./StiElementCreator\";\r\n\r\nexport default class StiTextCreator extends StiElementCreator {\r\n  static createPropertyEditors(properties: any[], element) {\r\n    /* properties.push({ type: \"divider\" });\r\n    properties.push({ type: \"RichTextEditor\", property: \"text\", label: \"\" }); */\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({ type: \"BooleanWithArrowEditor\", property: \"showBorderEditor\", label: \"\" });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"nameEditor\",\r\n      property: \"name\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Name\"),\r\n    });\r\n    properties.push({ type: \"divider\" });\r\n    properties.push({\r\n      type: \"componentHeight\",\r\n      property: \"height\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Height\"),\r\n    });\r\n    properties.push({\r\n      type: \"PaddingEditor\",\r\n      property: \"padding\",\r\n      label: StiLocalizationService.get(\"PropertyMain\", \"Padding\"),\r\n    });\r\n    properties.push({\r\n      type: \"checkbox\",\r\n      property: \"visible\",\r\n      checkbox: StiLocalizationService.get(\"PropertyMain\", \"Visible\"),\r\n    });\r\n    return properties;\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: \"sti-checkbox\",\r\n    template: `<div class=\"bool-editor-container {{ disabled ? 'disabled' : '' }}\">\r\n      <div class=\"bool-editor\" (click)=\"changeValue()\">\r\n        @if (value) {\r\n          <span class=\"check\"\r\n            ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 20 17\" fill=\"none\">\r\n            <path\r\n              class=\"check\"\r\n              d=\"M5 7.23529L8.15 12L14 3\"\r\n              [attr.stroke]=\"'rgb(69,69,69)'\"\r\n              fill=\"transparent\"\r\n              stroke-width=\"2\"\r\n              stroke-linecap=\"round\"\r\n              stroke-linejoin=\"round\"\r\n              /></svg\r\n            ></span>\r\n          }\r\n        </div>\r\n        @if (label) {\r\n          <span class=\"label\">{{ label }}</span>\r\n        }\r\n      </div>`,\r\n    styles: [\r\n        `\r\n      .disabled {\r\n        opacity: 0.6;\r\n        pointer-events: none;\r\n      }\r\n      .bool-editor-container {\r\n        display: flex;\r\n        align-items: center;\r\n        height: 16px;\r\n        max-width: inherit;\r\n        margin: 0.8px 0px;\r\n      }\r\n      .bool-editor:hover {\r\n        background-color: var(--hover-color);\r\n        cursor: pointer;\r\n      }\r\n      .bool-editor {\r\n        border: 1px solid var(--inputBorder-color);\r\n        background: var(--input-color);\r\n        width: 16px;\r\n        height: 16px;\r\n        color: var(--text-color);\r\n        border-radius: 3px;\r\n      }\r\n      .label {\r\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif,\r\n          \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n        margin-left: 4px;\r\n        line-height: 1;\r\n        font-size: 13px;\r\n        color: var(--property-label-color);\r\n        font-weight: normal;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiUniversalCheckboxComponent implements OnInit {\r\n  @Input() value: any;\r\n  @Input() disabled?: boolean;\r\n  @Input() label?: string;\r\n  @Output() valueChange = new EventEmitter<boolean>();\r\n  constructor() {}\r\n  changeValue() {\r\n    this.value = !this.value;\r\n    this.valueChange.emit(this.value);\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiColumnItem } from \"../../../../elements/table/StiColumnItem\";\r\n\r\n@Component({\r\n    selector: \"sti-bool-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      @if (property.type === 'checkbox') {\r\n        <sti-checkbox\r\n          [(value)]=\"value\"\r\n          [label]=\"property['checkbox']\"\r\n        ></sti-checkbox>\r\n      }\r\n    </table>\r\n    `,\r\n    styles: [``],\r\n    standalone: false\r\n})\r\nexport class StiBoolEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object?: any;\r\n  public get value() {\r\n    return this.helper.getProperty(this.object, this.property.property);\r\n  }\r\n  public set value(value) {\r\n    this.helper.setProperty(this.object, this.property.property, value);\r\n    if (!(this.object instanceof StiColumnItem)) {\r\n      this.model.needToRefresh.next(true);\r\n      this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    }\r\n  }\r\n\r\n  constructor(public model: StiModelService, public helper: StiHelperService) {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiFormElement } from \"../../../../elements/base/StiFormElement\";\r\nimport { StiFormSettings } from \"../../../../elements/settings/StiFormSettings\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiColorDialogService } from \"../../../../services/sti-color-dialog.service\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport Color from \"../../../../system/Color\";\r\n//import Color from \"../../../system/Color\";\r\n\r\n@Component({\r\n    selector: \"sti-color-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        <td colspan=\"2\">\r\n          <div\r\n            class=\"custom-color-picker\"\r\n            [stiTooltip]=\"loc.getP('Color')\"\r\n            tooltipPosition=\"bottom\"\r\n            (click)=\"showColorPicker(colorEditor, color)\"\r\n            showDelay=\"500\"\r\n            #colorEditor\r\n          >\r\n            <div class=\"preview\">\r\n              <span class=\"custom-color-preview\" [style.background-color]=\"color.toHtmlColor()\"> </span>\r\n              <span class=\"color-value\">{{ color.getStringName() }}</span>\r\n              <span class=\"select-button\"><i class=\"pi pi-chevron-down\"></i></span>\r\n            </div>\r\n          </div>\r\n        </td>\r\n      </tr>\r\n\r\n      <tr></tr>\r\n    </table>\r\n\r\n    <style>\r\n      td {\r\n        padding: 0;\r\n      }\r\n      .custom-color-picker {\r\n        width: 100%;\r\n        background-color: var(--input-color);\r\n        height: 24px;\r\n        border: 1px solid var(--inputBorder-color);\r\n        position: relative;\r\n        border-radius: 3px;\r\n      }\r\n      .custom-color-picker:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n      .custom-color-picker:focus {\r\n        background-color: var(--input-color);\r\n      }\r\n      .preview {\r\n        display: flex;\r\n        position: relative;\r\n        width: 100%;\r\n        height: 100%;\r\n      }\r\n      .pick {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 22px;\r\n      }\r\n      .color-value {\r\n        font-weight: 500;\r\n        font-size: 12px;\r\n        align-self: center;\r\n        color: var(--text-color);\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .custom-color-preview {\r\n        width: 24px;\r\n        height: 14px;\r\n        margin: 4px;\r\n        background-color: black;\r\n        border: 1px solid var(--inputBorder-color);\r\n      }\r\n      .select-button {\r\n        float: right;\r\n        margin-left: auto;\r\n        margin-right: 5px;\r\n        color: rgb(186, 185, 184);\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .i {\r\n        height: 12px;\r\n        width: 12px;\r\n        right: 3px;\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiColorEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() textColor: Color;\r\n  @Input() obj?: any;\r\n\r\n  showColorPicker(element, object) {\r\n    this.colorService.openDialog(element, object);\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public loc: StiLocalizationService,\r\n    public colorService: StiColorDialogService\r\n  ) { }\r\n  ngOnInit(): void { }\r\n  public get color(): Color {\r\n    if (this.obj instanceof StiFormElement || this.obj instanceof StiFormSettings) {\r\n      return this.helper.getProperty(this.obj, this.property.property);\r\n    } else {\r\n      return this.obj[this.property.property];\r\n    }\r\n  }\r\n}\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n    selector: \"sti-dropdown-editor\",\r\n    template: `\r\n    <div\r\n      #editor\r\n      class=\"sti-dropdown-editor\"\r\n      (click)=\"model.currentEditor = editor; editable ? '' : (showDropdownList = !showDropdownList)\"\r\n      >\r\n      <span\r\n        class=\"label\"\r\n        [attr.contenteditable]=\"editable ? 'plaintext-only' : false\"\r\n        (input)=\"setContent($event.target.textContent)\"\r\n        (blur)=\"blur()\"\r\n        [style.cursor]=\"editable ? 'text' : 'pointer'\"\r\n        [spellcheck]=\"false\"\r\n        >{{ getLabel() }}</span\r\n        >\r\n        <div\r\n          class=\"button\"\r\n          [style.cursor]=\"'pointer'\"\r\n          (click)=\"model.currentEditor = editor; editable ? (showDropdownList = !showDropdownList) : ''\"\r\n          >\r\n          <span><i class=\"pi pi-chevron-down\"></i></span>\r\n        </div>\r\n        @if (showDropdownList && model.currentEditor == editor) {\r\n          <div class=\"sti-dropdown-items\"\r\n            [style.maxWidth.px]=\"editor.offsetWidth\">\r\n            @for (item of options; track item; let idx = $index) {\r\n              <div\r\n                class=\"item {{ currentPreviewIndex == idx ? 'selected' : '' }}\"\r\n                (click)=\"selectItem(idx)\"\r\n                >\r\n                <span class=\"item-label\" [spellcheck]=\"false\">{{ item[label] ? item[label] : item }}</span>\r\n              </div>\r\n            }\r\n          </div>\r\n        }\r\n      </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .item {\r\n        cursor: pointer;\r\n        font-weight: 400;\r\n        overflow: hidden;\r\n        position: relative;\r\n        white-space: nowrap;\r\n        margin: 0;\r\n        padding: 0.429rem 0.857rem;\r\n        border: 0 none;\r\n        color: var(--text-color);\r\n        background: transparent;\r\n        transition: background-color 0.2s, box-shadow 0.2s;\r\n        border-radius: 0;\r\n      }\r\n      .item:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .selected {\r\n        background-color: rgb(239, 239, 239);\r\n      }\r\n      .sti-dropdown-editor {\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        position: relative;\r\n        height: 24px;\r\n        user-select: none;\r\n        background: var(--input-color);\r\n        border: 1px solid var(--inputBorder-color);\r\n        border-radius: 3px;\r\n        font-size: 12px;\r\n        font-weight: 500;\r\n        color: var(--text-color);\r\n      }\r\n      .sti-dropdown-editor:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n      .label {\r\n        width: 100%;\r\n        height: 100%;\r\n        padding: 3px 5px;\r\n        min-width: 22.4px;\r\n      }\r\n      .label:focus {\r\n        outline: none;\r\n      }\r\n      .button {\r\n        width: 20px;\r\n        height: 100%;\r\n        color: rgb(186, 185, 184);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .sti-dropdown-items {\r\n        position: absolute;\r\n        max-height: 400px;\r\n        overflow-y: auto;\r\n        overflow-x: hidden;\r\n        left: 0;\r\n        top: 24px;\r\n        background: var(--input-color);\r\n        min-width: 100%;\r\n        z-index: 1003;\r\n        border: 1px solid #c8c8c8;\r\n        border-radius: 3px;\r\n        font-size: 13px;\r\n        box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiDropdownEditorComponent implements OnInit, OnDestroy {\r\n  @Input() value: any;\r\n  @Input() options: any[];\r\n  @Input() optionLabel?: any;\r\n  @Input() optionValue?: any;\r\n  @Input() editable?: boolean;\r\n  @Output() valueChange = new EventEmitter<any>();\r\n  public isInitialized: boolean = false;\r\n  hideDropdownSubscription: Subscription;\r\n  public showDropdownList = false;\r\n\r\n  constructor(public model: StiModelService, private cdr: ChangeDetectorRef) { }\r\n  ngOnDestroy(): void {\r\n    this.hideDropdownSubscription.unsubscribe();\r\n  }\r\n  get currentPreviewIndex(): number {\r\n    return this.options.findIndex((option) =>\r\n      option instanceof Object ? option[this.valueName] == this.value : option == this.value\r\n    );\r\n  }\r\n  get label() {\r\n    return this.optionLabel ? this.optionLabel : \"name\";\r\n  }\r\n  get valueName() {\r\n    return this.optionValue ? this.optionValue : \"value\";\r\n  }\r\n  blur() {\r\n    this.cdr.reattach();\r\n    this.cdr.detectChanges();\r\n  }\r\n  setContent(innerText) {\r\n    this.cdr.detach();\r\n    this.value = innerText;\r\n    this.valueChange.emit(this.value);\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  getLabel() {\r\n    if (this.isInitialized) {\r\n      return this.options[this.currentPreviewIndex] instanceof Object\r\n        ? this.options[this.currentPreviewIndex][this.label]\r\n        : this.currentPreviewIndex != -1\r\n          ? this.options[this.currentPreviewIndex]\r\n          : this.value;\r\n    } else {\r\n      return \"\";\r\n    }\r\n  }\r\n  selectItem(index) {\r\n    this.value = this.options[index] instanceof Object ? this.options[index][this.valueName] : this.options[index];\r\n    this.valueChange.emit(this.value);\r\n    setTimeout(() => {\r\n      this.showDropdownList = false;\r\n    });\r\n  }\r\n  ngOnInit() {\r\n    this.isInitialized = true;\r\n    this.hideDropdownSubscription = this.model.hideActiveDropdown.subscribe((event) => {\r\n      if (this.showDropdownList) {\r\n        this.showDropdownList = false;\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiTableElement } from \"../../../../elements/StiTableElement\";\r\nimport { StiColumnItem } from \"../../../../elements/table/StiColumnItem\";\r\nimport { StiTotalsFieldItem } from \"../../../../elements/table/StiTotalsFieldItem\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { Enum } from \"../../../../system/Enum\";\r\nimport {\r\n  HatchStyle,\r\n  StiAlgorithmExpression,\r\n  StiBarcodeType,\r\n  StiButtonSendType,\r\n  StiButtonType,\r\n  StiDateTimeBoxType,\r\n  StiDateTimeBoxValueChoise,\r\n  StiLineWeight,\r\n  StiNumberType,\r\n  StiNumberRangeFormat,\r\n  StiPenStyle,\r\n  StiSignatureType,\r\n  StiThousandSeparator,\r\n  StiUnitAlignment,\r\n} from \"../../../../system/enums\";\r\nimport { StiStaticHelperService } from \"../../../../services/sti-static-helper.service\";\r\n\r\n@Component({\r\n    selector: \"sti-enum-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        @if (property.property != 'calculationAlgorithm.columntIndex') {\r\n          <td colspan=\"2\">\r\n            <sti-dropdown-editor\r\n              [options]=\"enum\"\r\n              [(value)]=\"type\"\r\n              optionLabel=\"{{ property.property == 'currency' ? 'englishName' : 'name' }}\"\r\n              optionValue=\"{{ property.property == 'currency' ? 'code' : 'value' }}\"\r\n            [editable]=\"\r\n              property.property == 'dateFormat' ||\r\n              property.property == 'timeFormat' ||\r\n              property.property == 'dateTimeFormat'\r\n            \"\r\n              (mouseover)=\"mouseOver($event.target)\"\r\n              class=\"p-inputtext-sm\"\r\n              [style]=\"{ width: '100%' }\"\r\n            ></sti-dropdown-editor>\r\n          </td>\r\n        }\r\n        @if (property.property == 'calculationAlgorithm.columntIndex') {\r\n          <td colspan=\"2\">\r\n            <sti-dropdown-editor\r\n              [options]=\"columns\"\r\n              [(value)]=\"columnIndex\"\r\n              optionLabel=\"name\"\r\n              optionValue=\"value\"\r\n              class=\"p-inputtext-sm\"\r\n              [style]=\"{ width: '100%' }\"\r\n            ></sti-dropdown-editor>\r\n          </td>\r\n        }\r\n      </tr>\r\n      @if (property.property == 'dateFormat' ||\r\n        property.property == 'timeFormat' ||\r\n        property.property == 'dateTimeFormat') {\r\n        <tr>\r\n          <span>{{formattedDateTime()}}</span>\r\n        </tr>\r\n      }\r\n    </table>\r\n    <style>\r\n      td {\r\n      padding: 0;\r\n    }\r\n    span {\r\n    margin-left: 2px;\r\n    color: var(--text-color);\r\n    font-weight: normal;\r\n    -webkit-touch-callout: none;\r\n    -webkit-user-select: none;\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiEnumEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object?: any;\r\n  @Input() index?;\r\n  items = [];\r\n\r\n  today = new Date();\r\n\r\n  constructor(public model: StiModelService, public helper: StiHelperService) { }\r\n\r\n  public get columns() {\r\n    let items = [];\r\n    if (this.model.selectedComponent.element instanceof StiTableElement) {\r\n      this.model.selectedComponent.element.columns.forEach((column, index) => {\r\n        items.push({ name: column.label, value: index + 1 });\r\n      });\r\n    }\r\n    if (this.items.length != items.length || !this.items.every((val, index) => val.name === items[index].name)) {\r\n      this.items = items;\r\n    }\r\n\r\n    return this.items;\r\n  }\r\n\r\n  mouseOver(target) {\r\n    if (\r\n      this.property.property == \"dateFormat\" ||\r\n      this.property.property == \"timeFormat\" ||\r\n      this.property.property == \"dateTimeFormat\"\r\n    ) {\r\n      target.style.backgroundColor = \"var(--input-color)\";\r\n      target.parentElement.style.backgroundColor = \"var(--input-color)\";\r\n    }\r\n  }\r\n\r\n  public formattedDateTime(): string {\r\n    return StiStaticHelperService.formatDate(this.today, this.type, this.model.form.settings.culture);\r\n  }\r\n\r\n  public get columnIndex(): number {\r\n    if (this.model.selectedComponent.element instanceof StiTableElement) {\r\n      return this.object.calculationAlgorithm.columntIndex;\r\n    }\r\n    return 0;\r\n  }\r\n  public set columnIndex(value: number) {\r\n    this.object.calculationAlgorithm.columntIndex = value;\r\n  }\r\n  public get type(): string {\r\n    if (this.property.property === \"valueType\") {\r\n      return StiDateTimeBoxType[this.model.selectedComponent.element[this.property.property]];\r\n    } else if (this.property.property === \"signatureType\") {\r\n      return StiSignatureType[this.model.selectedComponent.element[this.property.property]];\r\n    } else if (this.property.property === \"initialState\") {\r\n      return StiDateTimeBoxValueChoise[this.model.selectedComponent.element[this.property.property]];\r\n    } else if (this.property.property === \"rangeFormat\") {\r\n      return StiNumberRangeFormat[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property === \"numberType\") {\r\n      return StiNumberType[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property === \"buttonType\") {\r\n      return StiButtonType[this.model.selectedComponent.element[this.property.property]];\r\n    } else if (this.property.property === \"buttonSendType\") {\r\n      return StiButtonSendType[this.model.selectedComponent.element[this.property.property]];\r\n    } else if (this.property.property === \"thousandSeparator\") {\r\n      return StiThousandSeparator[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property === \"barcodeType\") {\r\n      return StiBarcodeType[this.model.selectedComponent.element[this.property.property]];\r\n    } else if (this.property.property === \"style\") {\r\n      return StiPenStyle[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property === \"type\") {\r\n      return this.object.type.split(\"\").reverse().slice(6, this.object.type.length).reverse().join(\"\");\r\n    } else if (this.property.property === \"currency\") {\r\n      return (\r\n        this.helper.getProperty(this.object, this.property.property) ??\r\n        this.helper.getProperty(this.model.form.settings, this.property.property)\r\n      );\r\n    } else if (this.property.property === \"currentSignatureMode\" || this.property.property === \"specialFont\") {\r\n      return this.helper.getProperty(this.object, this.property.property);\r\n    } else if (this.property.property === \"calculationAlgorithm.expression\") {\r\n      return StiAlgorithmExpression[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property === \"dateFormat\" || this.property.property === \"timeFormat\" || this.property.property === \"culture\") {\r\n      return this.helper.getProperty(this.object ?? this.model.form.settings, this.property.property);\r\n    } else if (this.property.property === \"dateTimeFormat\") {\r\n      return this.helper.getProperty(this.object, this.property.property);\r\n    } else if (this.property.property === \"innerText.borderWeight\") {\r\n      return StiLineWeight[this.model.form.settings.innerText.borderWeight];\r\n    } else if (this.property.property === \"unitAlignment\") {\r\n      return this.helper.getProperty(this.object, this.property.property) ?? this.model.form.settings.unitAlignment;\r\n    } else if (this.property.property.includes(\"BrushHatchStyle\")) {\r\n      return this.helper.getProperty(this.object, this.property.property);\r\n    } else {\r\n      return StiLineWeight[this.model.selectedComponent.element[this.property.property]];\r\n    }\r\n  }\r\n  public set type(value: string) {\r\n    if (this.property.property === \"valueType\") {\r\n      this.model.selectedComponent.element[this.property.property] = Enum.parse(StiDateTimeBoxType, value);\r\n    } else if (this.property.property === \"signatureType\") {\r\n      this.model.selectedComponent.element[this.property.property] = Enum.parse(StiSignatureType, value);\r\n    } else if (this.property.property === \"initialState\") {\r\n      this.model.selectedComponent.element[this.property.property] = Enum.parse(StiDateTimeBoxValueChoise, value);\r\n    } else if (this.property.property === \"rangeFormat\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiNumberRangeFormat, value));\r\n    } else if (this.property.property === \"numberType\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiNumberType, value));\r\n      if (this.object instanceof StiColumnItem) {\r\n        this.model.needToRefreshInnerProperties.next(true);\r\n      } else {\r\n        this.model.needToRefresh.next(true);\r\n      }\r\n    } else if (this.property.property === \"buttonType\") {\r\n      this.model.selectedComponent.element[this.property.property] = Enum.parse(StiButtonType, value);\r\n    } else if (this.property.property === \"buttonSendType\") {\r\n      this.model.selectedComponent.element[this.property.property] = Enum.parse(StiButtonSendType, value);\r\n    } else if (this.property.property === \"thousandSeparator\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiThousandSeparator, value));\r\n    } else if (this.property.property === \"barcodeType\") {\r\n      this.model.selectedComponent.element[this.property.property] = Enum.parse(StiBarcodeType, value);\r\n    } else if (this.property.property.includes(\"BrushHatchStyle\")) {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(HatchStyle, value));\r\n      this.model.needToRefreshInnerProperties.next(true);\r\n    } else if (this.property.property === \"style\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiPenStyle, value));\r\n    } else if (this.property.property === \"calculationAlgorithm.expression\") {\r\n      if (this.type != value && this.model.selectedComponent.element instanceof StiTableElement) {\r\n        let slicedField = this.model.selectedComponent.element.totalsFields.splice(this.index, 1);\r\n        this.model.selectedComponent.element.totalsFields.splice(\r\n          this.index,\r\n          0,\r\n          new StiTotalsFieldItem(StiLocalizationService.get(\"PropertyMain\", \"New Field\"), \"\", this.model.form)\r\n        );\r\n        this.setProperties(this.model.selectedComponent.element.totalsFields[this.index], slicedField[0], value);\r\n      }\r\n    } else if (this.property.property === \"currency\") {\r\n      if (this.model.selectedComponent) {\r\n        this.helper.setProperty(this.object, this.property.property, value);\r\n      } else {\r\n        this.model.form.settings.currency = value;\r\n      }\r\n    } else if (this.property.property === \"currentSignatureMode\" || this.property.property === \"specialFont\") {\r\n      this.helper.setProperty(this.object, this.property.property, value);\r\n    } else if (this.property.property === \"type\") {\r\n      if (this.type != value && this.model.selectedComponent.element instanceof StiTableElement) {\r\n        let table: StiTableElement = this.model.selectedComponent.element as StiTableElement;\r\n        let slicedColumn: StiColumnItem = table.columns.splice(this.index, 1)[0];\r\n        table.columns.splice(this.index, 0, table.createColumn(value, slicedColumn.label, slicedColumn));\r\n      }\r\n    } else if (this.property.property === \"dateFormat\" || this.property.property === \"timeFormat\" || this.property.property === \"culture\") {\r\n      this.helper.setProperty(this.object ?? this.model.form.settings, this.property.property, value);\r\n      this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    } else if (this.property.property === \"dateTimeFormat\") {\r\n      this.helper.setProperty(this.object, this.property.property, value);\r\n      this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    } else if (this.property.property === \"innerText.borderWeight\") {\r\n      this.model.form.settings.innerText.borderWeight = Enum.parse(StiLineWeight, value);\r\n    } else if (this.property.property === \"unitAlignment\") {\r\n      if (this.object) {\r\n        this.helper.setProperty(this.object, this.property.property, Enum.parse(StiUnitAlignment, value));\r\n      } else {\r\n        this.model.form.settings.unitAlignment = Enum.parse(StiUnitAlignment, value);\r\n      }\r\n      if (!(this.object instanceof StiColumnItem)) {\r\n        this.model.needToRefresh.next(true);\r\n      }\r\n    } else {\r\n      this.model.selectedComponent.element[this.property.property] = Enum.parse(StiLineWeight, value);\r\n    }\r\n    if (\r\n      this.property.property != \"type\" &&\r\n      this.property.property != \"calculationAlgorithm.expression\" &&\r\n      this.property.property != \"dateTimeFormat\" &&\r\n      this.property.property != \"dateFormat\" &&\r\n      this.property.property != \"timeFormat\" &&\r\n      this.property.property != \"thousandSeparator\" &&\r\n      this.property.property != \"numberType\" &&\r\n      this.property.property != \"unitAlignment\" &&\r\n      this.property.property != \"currency\"\r\n    ) {\r\n      this.model.needToRefresh.next(true);\r\n      this.model.needToRefreshInnerProperties.next(true);\r\n    }\r\n  }\r\n\r\n  public get enum() {\r\n    if (this.property.property === \"valueType\") {\r\n      return this.helper.dateTimeTypes;\r\n    } else if (this.property.property === \"signatureType\") {\r\n      return this.helper.signatureTypes;\r\n    } else if (this.property.property === \"initialState\") {\r\n      return this.helper.dateTimeValues;\r\n    } else if (this.property.property === \"numberType\") {\r\n      return this.helper.numberTypes;\r\n    } else if (this.property.property === \"rangeFormat\") {\r\n      return this.helper.rangeFormats;\r\n    } else if (this.property.property === \"buttonType\") {\r\n      return this.helper.buttonTypes;\r\n    } else if (this.property.property === \"buttonSendType\") {\r\n      return this.helper.buttonSendTypes;\r\n    } else if (this.property.property === \"thousandSeparator\") {\r\n      return this.helper.thousandSeparators;\r\n    } else if (this.property.property === \"barcodeType\") {\r\n      return this.helper.barcodeTypes;\r\n    } else if (this.property.property === \"style\") {\r\n      return this.helper.penStyles;\r\n    } else if (this.property.property === \"type\") {\r\n      return this.helper.columnTypes;\r\n    } else if (this.property.property === \"calculationAlgorithm.expression\") {\r\n      return this.helper.algorithmExpressions;\r\n    } else if (this.property.property === \"currency\") {\r\n      return this.helper.currencyInfo;\r\n    } else if (this.property.property === \"currentSignatureMode\") {\r\n      return this.helper.signatureEditorModes;\r\n    } else if (this.property.property === \"specialFont\") {\r\n      return this.helper.signatureSpecialFonts;\r\n    } else if (this.property.property.includes(\"BrushHatchStyle\")) {\r\n      return this.helper.hatchStyle;\r\n    } else if (this.property.property === \"dateTimeFormat\") {\r\n      return this.helper.dateTimeFormats;\r\n    } else if (this.property.property === \"dateFormat\") {\r\n      return this.helper.dateFormats;\r\n    } else if (this.property.property === \"timeFormat\") {\r\n      return this.helper.timeFormats;\r\n    } else if (this.property.property === \"culture\") {\r\n      return this.helper.cultures;\r\n    } else if (this.property.property === \"unitAlignment\") {\r\n      return this.helper.unitAlignment;\r\n    } else {\r\n      return this.helper.borderWeights;\r\n    }\r\n  }\r\n  setProperties(newColumn, changedColumn, expression?) {\r\n    if ((newColumn && changedColumn) instanceof StiTotalsFieldItem) {\r\n      newColumn.header = changedColumn.header;\r\n      newColumn.headerAlignment = changedColumn.headerAlignment;\r\n      newColumn.headerColor = changedColumn.headerColor;\r\n      newColumn.expression = \"0\";\r\n    }\r\n  }\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty, UsedFont } from \"../../../../services/objects\";\r\nimport { StiColorDialogService } from \"../../../../services/sti-color-dialog.service\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\n\r\n@Component({\r\n    selector: \"sti-font-editor\",\r\n    template: `<table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n        @if (property.property === 'this' || content.eValue?.length > 0 || isSettings()) {\r\n          <tr>\r\n            <td colspan=\"5\">\r\n              <sti-dropdown-editor\r\n                [options]=\"model.fontFamilies\"\r\n                [(value)]=\"content.font.family\"\r\n                optionLabel=\"name\"\r\n                optionValue=\"name\"\r\n                class=\"p-inputtext-sm\"\r\n                [style]=\"{ width: '100%' }\"\r\n                [stiTooltip]=\"fontFamilyTooltip\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (valueChange)=\"changeEvent()\"\r\n              ></sti-dropdown-editor>\r\n            </td>\r\n            <td colspan=\"2\">\r\n              <sti-dropdown-editor\r\n                [options]=\"helper.fontSizes\"\r\n                [(value)]=\"content.font.size\"\r\n                class=\"p-inputtext-sm\"\r\n                [style]=\"{ width: '100%' }\"\r\n                [stiTooltip]=\"fontSizeTooltip\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (valueChange)=\"changeEvent()\"\r\n              ></sti-dropdown-editor>\r\n            </td>\r\n          </tr>\r\n        }\r\n        @if (property.property === 'this' || content.eValue?.length > 0 || isSettings()) {\r\n          <tr>\r\n            <td colspan=\"2\" style=\"padding-top: 5px;\">\r\n              <sti-selectButton\r\n                [options]=\"helper.styleOptions\"\r\n                [(value)]=\"content.font.style\"\r\n                [multiple]=\"true\"\r\n                optionValue=\"value\"\r\n                [style]=\"{ height: '24px', minWidth: '90px' }\"\r\n                (onChange)=\"changeEvent()\"\r\n                >\r\n                <ng-template let-item>\r\n                  <img\r\n                    [src]=\"model.getImage(item.image)\"\r\n                    [stiTooltip]=\"loc.getP(item.value)\"\r\n                    tooltipPosition=\"bottom\"\r\n                    showDelay=\"500\"\r\n                    [style]=\"{ height: '16px', width: '16px' }\"\r\n                    />\r\n                  </ng-template>\r\n                </sti-selectButton>\r\n              </td>\r\n            </tr>\r\n          }\r\n          @if (\r\n            property.property === 'font' ||\r\n            property.property === 'descriptionFont' ||\r\n            property.property === 'insertedText.font'\r\n            ) {\r\n            <tr\r\n              >\r\n              <td colspan=\"5\">\r\n                <sti-dropdown-editor\r\n                  [options]=\"model.fontFamilies\"\r\n                  [(value)]=\"content.family\"\r\n                  optionLabel=\"name\"\r\n                  optionValue=\"name\"\r\n                  class=\"p-inputtext-sm\"\r\n                  [style]=\"{ width: '100%' }\"\r\n                  [stiTooltip]=\"loc.get2('HelpDesigner', 'FontName')\"\r\n                  tooltipPosition=\"bottom\"\r\n                  showDelay=\"500\"\r\n                  (valueChange)=\"changeEvent()\"\r\n                ></sti-dropdown-editor>\r\n              </td>\r\n              <td colspan=\"2\">\r\n                <sti-dropdown-editor\r\n                  [options]=\"helper.fontSizes\"\r\n                  [(value)]=\"content.size\"\r\n                  class=\"p-inputtext-sm\"\r\n                  [style]=\"{ width: '100%' }\"\r\n                  [stiTooltip]=\"loc.getP('FontSize')\"\r\n                  tooltipPosition=\"bottom\"\r\n                  showDelay=\"500\"\r\n                  (valueChange)=\"changeEvent()\"\r\n                ></sti-dropdown-editor>\r\n              </td>\r\n            </tr>\r\n          }\r\n          @if (\r\n            property.property === 'font' ||\r\n            property.property === 'descriptionFont' ||\r\n            property.property === 'insertedText.font'\r\n            ) {\r\n            <tr\r\n              >\r\n              <td colspan=\"2\" style=\"padding-top: 5px;\">\r\n                <sti-selectButton\r\n                  [options]=\"helper.styleOptions\"\r\n                  [(value)]=\"content.style\"\r\n                  [multiple]=\"true\"\r\n                  optionValue=\"value\"\r\n                  [style]=\"{ height: '24px', minWidth: '90px' }\"\r\n                  (onChange)=\"changeEvent()\"\r\n                  >\r\n                  <ng-template let-item>\r\n                    <img\r\n                      [src]=\"model.getImage(item.image)\"\r\n                      [stiTooltip]=\"loc.getP(item.value)\"\r\n                      tooltipPosition=\"bottom\"\r\n                      showDelay=\"500\"\r\n                      [style]=\"{ height: '16px', width: '16px' }\"\r\n                      />\r\n                    </ng-template>\r\n                  </sti-selectButton>\r\n                </td>\r\n              </tr>\r\n            }\r\n            @if (property.property == 'innerText' && (content.eValue?.length > 0 || isSettings())) {\r\n              <tr>\r\n                <td colspan=\"7\">\r\n                  <div\r\n                    class=\"custom-color-picker\"\r\n                    [stiTooltip]=\"loc.getP('Color')\"\r\n                    tooltipPosition=\"bottom\"\r\n                    (click)=\"showColorPicker(colorEditor, content.color)\"\r\n                    showDelay=\"500\"\r\n                    #colorEditor\r\n                    >\r\n                    <div class=\"preview\">\r\n                      <span class=\"custom-color-preview\" [style.background-color]=\"content.color.toHtmlColor()\"></span>\r\n                      <span class=\"color-value\">{{ content.color.getStringName() }}</span>\r\n                      <span class=\"select-button\"><i class=\"pi pi-chevron-down\"></i></span>\r\n                    </div>\r\n                  </div>\r\n                </td>\r\n              </tr>\r\n            }\r\n          </table>\r\n          <style>\r\n            td {\r\n            padding: 0;\r\n          }\r\n          .custom-color-picker {\r\n          width: 100%;\r\n          background-color: var(--input-color);\r\n          height: 24px;\r\n          border: 1px solid var(--inputBorder-color);\r\n          position: relative;\r\n          border-radius: 3px;\r\n        }\r\n        .custom-color-picker:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n      .custom-color-picker:focus {\r\n      background-color: var(--input-color);\r\n      }\r\n      .preview {\r\n      display: flex;\r\n      position: relative;\r\n      width: 100%;\r\n      height: 100%;\r\n      }\r\n      .pick {\r\n      position: absolute;\r\n      top: 0;\r\n      left: 0;\r\n      width: 100%;\r\n      height: 22px;\r\n      }\r\n      .color-value {\r\n      font-weight: 500;\r\n      font-size: 12px;\r\n      align-self: center;\r\n      color: var(--text-color);\r\n      -webkit-touch-callout: none;\r\n      -webkit-user-select: none;\r\n      }\r\n      .custom-color-preview {\r\n      width: 24px;\r\n      height: 14px;\r\n      margin: 4px;\r\n      background-color: black;\r\n      border: 1px solid var(--inputBorder-color);\r\n      }\r\n      .select-button {\r\n      float: right;\r\n      margin-left: auto;\r\n      margin-right: 5px;\r\n      color: rgb(186, 185, 184);\r\n      display: flex;\r\n      align-items: center;\r\n      }\r\n      .i {\r\n      height: 12px;\r\n      width: 12px;\r\n      right: 3px;\r\n      }\r\n      </style>`,\r\n    standalone: false\r\n})\r\nexport class StiFontEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object?: any;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService,\r\n    public colorService: StiColorDialogService\r\n  ) {}\r\n\r\n  ngOnInit(): void {}\r\n\r\n  showColorPicker(element, object) {\r\n    this.colorService.openDialog(element, object);\r\n  }\r\n  public isSettings(): boolean {\r\n    return !this.model.selectedComponent && !this.model.selectedPage;\r\n  }\r\n\r\n  public get content(): any {\r\n    return this.helper.getProperty(this.object ?? this.model.form.settings, this.property.property);\r\n  }\r\n  changeEvent() {\r\n    if (this.content.eFont) {\r\n      let currentChangableFont: UsedFont = new UsedFont(\r\n        this.content.eFont.family,\r\n        this.model.arrayOfStylesToString(this.content.eFont.style),\r\n        this.content.eFont.size\r\n      );\r\n      this.model.form.formEvents.next({ name: \"UpdateFonts\", value: currentChangableFont });\r\n    } else {\r\n      let currentChangableFont: UsedFont = new UsedFont(\r\n        this.content.family ? this.content.family : this.content.font.family,\r\n        this.model.arrayOfStylesToString(this.content.style ? this.content.style : this.content.font.style),\r\n        this.content.size ? this.content.size : this.content.font.size\r\n      );\r\n      this.model.form.formEvents.next({ name: \"UpdateFonts\", value: currentChangableFont });\r\n    }\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiChangesService } from \"../../../../services/sti-changes-service\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"sti-image-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '95%' }\">\r\n      @if (property.type === 'image') {\r\n        <tr style=\"width: 100%;\">\r\n          <td style=\"width: 25px;\" colspan=\"1\">\r\n            <div\r\n              class=\"image-upload\"\r\n              [stiTooltip]=\"loc.get2('FormDesigner', 'LoadImage').replace('...', '')\"\r\n              tooltipPosition=\"bottom\"\r\n              showDelay=\"500\"\r\n              >\r\n              <label (click)=\"imageInput.click()\">\r\n                <img [src]=\"model.getImage('images.Open.png')\" />\r\n              </label>\r\n            </div>\r\n            <input\r\n              [style.display]=\"'none'\"\r\n              type=\"file\"\r\n              accept=\".jpg, .jpeg, .png\"\r\n              (change)=\"onFileSelected($event.target)\"\r\n              #imageInput\r\n              />\r\n            </td>\r\n            @if (this.imageUrl) {\r\n              <td colspan=\"6\">\r\n                <div class=\"image-delete\" [stiTooltip]=\"loc.getP('Clear')\" tooltipPosition=\"bottom\" showDelay=\"500\">\r\n                  <label>\r\n                    <img [src]=\"model.getImage('images.StiSignatureClose.png')\" (click)=\"clear()\" />\r\n                  </label>\r\n                </div>\r\n              </td>\r\n            }\r\n          </tr>\r\n        }\r\n        @if (this.model.selectedComponent && this.imageUrl) {\r\n          <tr style=\"width: 100%;\">\r\n            <td colspan=\"7\">\r\n              <sti-checkbox [(value)]=\"object.preserveAspectRatio\" [label]=\"'Preserve Aspect Ratio'\"></sti-checkbox>\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n      <style>\r\n        td {\r\n        padding: 0;\r\n      }\r\n    \r\n      .image-upload {\r\n      background-color: var(--input-color);\r\n      width: 20px;\r\n      height: 20px;\r\n    }\r\n    .image-upload:hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    img {\r\n    height: 16px;\r\n    width: 16px;\r\n    }\r\n    label {\r\n    height: 100%;\r\n    width: 100%;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    }\r\n    .image-delete {\r\n    background-color: var(--input-color);\r\n    width: 20px;\r\n    height: 20px;\r\n    }\r\n    .image-delete:hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiImageEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object?: any;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public helper: StiHelperService,\r\n    public changesService: StiChangesService\r\n  ) {}\r\n  ngOnInit(): void {}\r\n  public get imageUrl() {\r\n    return this.helper.getProperty(this.object, this.property.property);\r\n  }\r\n  public set imageUrl(value) {\r\n    this.helper.setProperty(this.object, this.property.property, value);\r\n    this.changesService.forceChanges();\r\n  }\r\n  clear() {\r\n    this.imageUrl = \"\";\r\n  }\r\n\r\n  onFileSelected(event) {\r\n    if (event.files && event.files[0]) {\r\n      var reader = new FileReader();\r\n      reader.onload = (e: any) => {\r\n        if (this.property.property == \"reportImage\") {\r\n          this.imageUrl = e.target.result.slice(e.target.result.indexOf(\",\") + 1, e.target.result.length);\r\n        } else {\r\n          this.imageUrl = e.target.result;\r\n        }\r\n      };\r\n      reader.readAsDataURL(event.files[0]);\r\n    }\r\n  }\r\n}\r\n","import { Directive, ElementRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n    selector: \"[stiInputText]\",\r\n    standalone: false\r\n})\r\nexport class StiInputTextDirective {\r\n  constructor(private el: ElementRef) {\r\n    el.nativeElement.classList.add(\"sti-inputtext\");\r\n  }\r\n}\r\n","import { Component, Input } from \"@angular/core\";\r\nimport StiPadding from \"../../../../properties/StiPadding\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\n\r\n@Component({\r\n    selector: \"sti-padding-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr [style]=\"{ width: '100%' }\">\r\n        @for (p of PADDINGS; track p; let i = $index) {\r\n          <td [style]=\"{ minWidth: '50px' }\">\r\n            <span class=\"p-input-icon-left\">\r\n              <i [class]=\"CLASSES[i]\" [style]=\"{ position: 'absolute', left: '3px', top: '8px' }\"></i>\r\n              <input\r\n                type=\"text\"\r\n                stiInputText\r\n                [ngModel]=\"padding[p]\"\r\n                spellcheck=\"false\"\r\n                (input)=\"setPadding($event.target.value, p)\"\r\n                [style]=\"{ width: '100%', paddingLeft: '11px' }\"\r\n                />\r\n              </span>\r\n            </td>\r\n          }\r\n        </tr>\r\n      </table>\r\n    \r\n      <style>\r\n        td {\r\n        padding: 0;\r\n      }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiPaddingEditorComponent {\r\n  @Input() property: StiEditorProperty;\r\n\r\n  PADDINGS = [\"left\", \"top\", \"right\", \"bottom\"];\r\n  CLASSES = [\"pi pi-arrow-left\", \"pi pi-arrow-up\", \"pi pi-arrow-right\", \"pi pi-arrow-down\"];\r\n\r\n  constructor(public model: StiModelService) { }\r\n\r\n  public get padding(): StiPadding {\r\n    return (\r\n      this.model.selectedComponent?.element[this.property.property] ??\r\n      (this.model.selectedPage ? this.model.selectedPage[this.property.property] : this.model.form.settings.padding)\r\n    );\r\n  }\r\n\r\n  setPadding(str: string, padding: string) {\r\n    let value = !isNaN(parseFloat(str)) ? parseFloat(str) : 0;\r\n    if (this.isValid(value, padding)) {\r\n      if (value <= 0) {\r\n        this.padding[padding] = 0;\r\n        this.model.previousPadding[padding] = 0;\r\n      } else {\r\n        this.padding[padding] = value;\r\n        this.model.previousPadding[padding] = value;\r\n      }\r\n\r\n      if (padding == \"left\" || padding == \"right\") {\r\n        this.model.previousContentAreaWidth = this.model.lastUsedPage?.contentAreaWidth;\r\n      }\r\n    }\r\n  }\r\n  public isValid(value: number, padding: string): boolean {\r\n    let maxHeight = this.model.selectedPage\r\n      ? this.model.selectedPage.height\r\n      : this.model.getElementPage(this.model.selectedComponent?.element)\r\n        ? this.model.getElementPage(this.model.selectedComponent?.element).contentAreaHeight\r\n        : this.model.getElementPanel(this.model.selectedComponent?.element)\r\n          ? this.model.getElementPanel(this.model.selectedComponent?.element).contentAreaHeight\r\n          : null;\r\n    let maxWidth = this.model.selectedPage\r\n      ? this.model.selectedPage.width\r\n      : this.model.getElementPage(this.model.selectedComponent?.element)\r\n        ? this.model.getElementPage(this.model.selectedComponent?.element).contentAreaWidth\r\n        : this.model.getElementPanel(this.model.selectedComponent?.element)\r\n          ? this.model.getElementPanel(this.model.selectedComponent?.element).contentAreaWidth\r\n          : null;\r\n    if (!maxHeight || !maxWidth) {\r\n      maxHeight = this.model?.form?.pages[0].contentAreaHeight;\r\n      maxWidth = this.model?.form?.pages[0].contentAreaWidth;\r\n    }\r\n    if (maxHeight && maxWidth) {\r\n      let isValid = false;\r\n      switch (padding) {\r\n        case \"left\":\r\n          isValid = value + this.padding[\"right\"] < maxWidth;\r\n          break;\r\n        case \"right\":\r\n          isValid = value + this.padding[\"left\"] < maxWidth;\r\n          break;\r\n        case \"top\":\r\n          isValid = value + this.padding[\"bottom\"] < maxHeight;\r\n          break;\r\n        case \"bottom\":\r\n          isValid = value + this.padding[\"top\"] < maxHeight;\r\n          break;\r\n      }\r\n      return isValid;\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n}\r\n","import { Directive, ElementRef } from \"@angular/core\";\r\n\r\n@Directive({\r\n    selector: \"[stiInputTextArea]\",\r\n    standalone: false\r\n})\r\nexport class StiInputTextAreaDirective {\r\n  constructor(private el: ElementRef) {\r\n    el.nativeElement.classList.add(\"sti-inputtext\");\r\n    el.nativeElement.classList.add(\"sti-inputtextarea\");\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiTableElement } from \"../../../../elements/StiTableElement\";\r\nimport { StiCheckBoxCellItem } from \"../../../../elements/table/cells/StiCheckBoxCellItem\";\r\nimport { StiComboBoxCellItem } from \"../../../../elements/table/cells/StiComboBoxCellItem\";\r\nimport { StiNumberBoxCellItem } from \"../../../../elements/table/cells/StiNumberBoxCellItem\";\r\nimport { StiRadioButtonCellItem } from \"../../../../elements/table/cells/StiRadioButtonCellItem\";\r\nimport { StiTextBoxCellItem } from \"../../../../elements/table/cells/StiTextBoxCellItem\";\r\nimport { StiCheckBoxColumnItem } from \"../../../../elements/table/columns/StiCheckBoxColumnItem\";\r\nimport { StiComboBoxColumnItem } from \"../../../../elements/table/columns/StiComboBoxColumnItem\";\r\nimport { StiLabelColumnItem } from \"../../../../elements/table/columns/StiLabelColumnItem\";\r\nimport { StiNumberBoxColumnItem } from \"../../../../elements/table/columns/StiNumberBoxColumnItem\";\r\nimport { StiRadioButtonColumnItem } from \"../../../../elements/table/columns/StiRadioButtonColumnItem\";\r\nimport { StiTextBoxColumnItem } from \"../../../../elements/table/columns/StiTextBoxColumnItem\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\nimport { StiOptionsElement } from \"../../../../system/interfaces\";\r\n\r\n@Component({\r\n    selector: \"sti-multiline-string-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr [style]=\"{ width: '100%' }\">\r\n        <td colspan=\"7\">\r\n          <textarea\r\n            stiInputTextArea\r\n            [ngModel]=\"values\"\r\n            (input)=\"onInput($event.target.value)\"\r\n            [style]=\"{ width: '100%', resize: 'none' }\"\r\n            [style.height]=\"object ? 'max-content' : '100px'\"\r\n          ></textarea>\r\n        </td>\r\n      </tr>\r\n      <style>\r\n        tr {\r\n          padding: 3px 0px 3px 0px;\r\n        }\r\n        textarea {\r\n          font-size: 13px;\r\n          font-weight: 600;\r\n          padding: 2px 4px;\r\n        }\r\n        td {\r\n          padding: 0;\r\n        }\r\n      </style>\r\n    </table>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiMultilineStringEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object: any;\r\n\r\n  constructor(public model: StiModelService, public helper: StiHelperService, public theme: StiThemeService) {}\r\n\r\n  ngOnInit(): void {}\r\n\r\n  public get options(): string[] {\r\n    if (this.object) {\r\n      return this.object.comboBoxOptions;\r\n    } else {\r\n      return this.optionsElement.options ? this.optionsElement.options : this.optionsElement.rowLabels;\r\n    }\r\n  }\r\n\r\n  public get values(): string {\r\n    return this.options.join(\"\\n\");\r\n  }\r\n\r\n  public get optionsElement() {\r\n    return (this.model.selectedComponent.element as undefined as StiOptionsElement)\r\n      ? (this.model.selectedComponent.element as undefined as StiOptionsElement)\r\n      : this.helper.getProperty(this.model.selectedComponent.element, this.property.property);\r\n  }\r\n  onInput(value: string) {\r\n    let rows = this.optionsElement.rowLabels;\r\n    if (this.object) {\r\n      this.object.comboBoxOptions = value.split(\"\\n\");\r\n    } else {\r\n      this.optionsElement.options\r\n        ? (this.optionsElement.options = value.split(\"\\n\"))\r\n        : this.helper.setProperty(this.model.selectedComponent.element, this.property.property, value.split(\"\\n\"));\r\n      if (\"selectedOption\" in this.optionsElement) {\r\n        try {\r\n          if (this.optionsElement.options.indexOf(this.optionsElement.selectedOption) < 0) {\r\n            this.optionsElement.selectedOption = null;\r\n          }\r\n        } catch {\r\n          this.optionsElement.selectedOption = null;\r\n        }\r\n      }\r\n    }\r\n\r\n    if (\r\n      rows &&\r\n      rows != this.optionsElement.RowLabels &&\r\n      this.model.selectedComponent.element instanceof StiTableElement\r\n    ) {\r\n      let values = value.split(\"\\n\");\r\n      values.forEach(() => {\r\n        (this.model.selectedComponent.element as StiTableElement).columns.forEach((column) => {\r\n          if (column.type == \"CheckBoxColumn\" && column instanceof StiCheckBoxColumnItem) {\r\n            column.cells.push(new StiCheckBoxCellItem(\"\", false));\r\n          } else if (column.type == \"ComboBoxColumn\" && column instanceof StiComboBoxColumnItem) {\r\n            column.cells.push(new StiComboBoxCellItem(\"\", 0));\r\n          } else if (column.type == \"RadioButtonColumn\" && column instanceof StiRadioButtonColumnItem) {\r\n            column.cells.push(new StiRadioButtonCellItem(\"\", false));\r\n          } else if (column.type == \"TextBoxColumn\" && column instanceof StiTextBoxColumnItem) {\r\n            column.cells.push(new StiTextBoxCellItem(\"\", \"\"));\r\n          } else if (column.type == \"NumberBoxColumn\" && column instanceof StiNumberBoxColumnItem) {\r\n            column.cells.push(new StiNumberBoxCellItem(\"\", 0));\r\n          } else if (column.type == \"LabelColumn\" && column instanceof StiLabelColumnItem) {\r\n            column.cells.push(\"\");\r\n          }\r\n        });\r\n      });\r\n    }\r\n\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n}\r\n","import { Component, ElementRef, Input, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiNumberBoxElement } from \"../../../../elements/StiNumberBoxElement\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\nimport StiRectangleGeometryLayout from \"../../../../computed/StiRectangleGeometryLayout\";\r\n\r\n@Component({\r\n    selector: \"sti-number-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      @if (property.type === 'pageNumberEditor') {\r\n        <tr>\r\n          <td colspan=\"5\" [style]=\"{ width: '100%' }\">\r\n            <div class=\"number-box\">\r\n              <div class=\"value\">\r\n                <input\r\n                  type=\"number\"\r\n                  [(ngModel)]=\"model.selectedPage[property.property]\"\r\n                  class=\"p-inputnumber-button\"\r\n                [style]=\"{\r\n                  width: '100%',\r\n                  height: '100%',\r\n                  fontSize: '12px',\r\n                  fontWeight: '500',\r\n                  padding: '3px 5px',\r\n                  borderRadius: '3px'\r\n                }\"\r\n                  />\r\n                </div>\r\n                <div class=\"buttons\">\r\n                  <div\r\n                    class=\"button-up\"\r\n                    (mousedown)=\"setIncrementInterval()\"\r\n                    (mouseup)=\"clearTimers()\"\r\n                    (mouseleave)=\"clearTimers()\"\r\n                    >\r\n                    <i class=\"pi pi-angle-up\"></i>\r\n                  </div>\r\n                  <div\r\n                    class=\"button-down\"\r\n                    (mousedown)=\"setDecrementInterval()\"\r\n                    (mouseup)=\"clearTimers()\"\r\n                    (mouseleave)=\"clearTimers()\"\r\n                    >\r\n                    <i class=\"pi pi-angle-down\"></i>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </td>\r\n          </tr>\r\n        }\r\n    \r\n        @if (property.type === 'NumberEditor' || property.type === 'Number') {\r\n          <tr>\r\n            <td [colSpan]=\"this.property.property == 'label.width' ? 5 : 7\">\r\n              <div class=\"number-box\">\r\n                <div class=\"value\">\r\n                  <input\r\n                    type=\"number\"\r\n                    #numberInput\r\n                    (blur)=\"onLostFocus($event.currentTarget.value)\"\r\n                    (keyup.enter)=\"onLostFocus($event.currentTarget.value)\"\r\n                    [value]=\"counter\"\r\n                    class=\"p-inputnumber-button\"\r\n                [style]=\"{\r\n                  width: '100%',\r\n                  height: '100%',\r\n                  fontSize: '12px',\r\n                  fontWeight: '500',\r\n                  padding: '3px 5px',\r\n                  borderRadius: '3px'\r\n                }\"\r\n                    />\r\n                  </div>\r\n                  <div class=\"buttons\">\r\n                    <div\r\n                      class=\"button-up\"\r\n                      (mousedown)=\"setIncrementInterval()\"\r\n                      (mouseup)=\"clearTimers()\"\r\n                      (mouseleave)=\"clearTimers()\"\r\n                      >\r\n                      <i class=\"pi pi-angle-up\"></i>\r\n                    </div>\r\n                    <div\r\n                      class=\"button-down\"\r\n                      (mousedown)=\"setDecrementInterval()\"\r\n                      (mouseup)=\"clearTimers()\"\r\n                      (mouseleave)=\"clearTimers()\"\r\n                      >\r\n                      <i class=\"pi pi-angle-down\"></i>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </td>\r\n              @if (\r\n                property.type === 'Number' &&\r\n                (property.property == 'gridColumns' || property.property == 'gridVerticalStep')\r\n                ) {\r\n                <td\r\n                  >\r\n                  <div class=\"apply-button\" (click)=\"applySettings()\">\r\n                    <label>{{ loc.getP(\"Apply\") }}</label>\r\n                  </div>\r\n                </td>\r\n              }\r\n            </tr>\r\n          }\r\n        </table>\r\n    \r\n        <style>\r\n          td {\r\n          padding: 1px;\r\n        }\r\n        label {\r\n        margin: 0;\r\n        font-size: 12px;\r\n        font-weight: 500;\r\n        color: var(--text-color);\r\n        white-space: nowrap;\r\n        outline: none;\r\n        overflow: hidden;\r\n        scroll-behavior: smooth;\r\n      }\r\n      .apply-button {\r\n      height: 24px;\r\n      width: 100%;\r\n      min-width: 60px;\r\n      border-radius: 3px;\r\n      background-color: var(--hover-color);\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: center;\r\n      margin-left: 3px;\r\n    }\r\n    .apply-button:hover {\r\n    background-color: var(--active-color);\r\n    }\r\n    .value:hover {\r\n    cursor: text;\r\n    }\r\n    .image-upload > input {\r\n    display: none;\r\n    }\r\n    .number-box {\r\n    width: 100%;\r\n    height: 24px;\r\n    border: 1px solid var(--inputBorder-color);\r\n    border-radius: 3px;\r\n    background-color: var(--input-color);\r\n    position: relative;\r\n    display: flex;\r\n    }\r\n    .value {\r\n    outline: none;\r\n    width: 100%;\r\n    height: 100%;\r\n    }\r\n    .value input {\r\n    outline: none;\r\n    background-color: var(--input-color);\r\n    -moz-appearance: textfield;\r\n    color: var(--text-color);\r\n    border: 0px;\r\n    }\r\n    .value input[type=\"number\"]::-webkit-inner-spin-button,\r\n    .value input[type=\"number\"]::-webkit-outer-spin-button {\r\n    -webkit-appearance: none;\r\n    margin: 0;\r\n    opacity: 0;\r\n    }\r\n    \r\n    .value:after {\r\n    content: \"\";\r\n    position: absolute;\r\n    right: 22px;\r\n    z-index: 100;\r\n    top: 2px;\r\n    width: 1px;\r\n    height: 18px;\r\n    background-color: var(--inputBorder-color);\r\n    }\r\n    .buttons {\r\n    width: 22px;\r\n    height: 100%;\r\n    align-self: flex-end;\r\n    display: flex;\r\n    flex-direction: column;\r\n    \r\n    color: rgb(186, 185, 184);\r\n    }\r\n    .button-up {\r\n    width: 22px;\r\n    position: relative;\r\n    height: 11px;\r\n    border-bottom: 1px solid var(--inputBorder-color);\r\n    text-align: center;\r\n    }\r\n    .button-up:hover {\r\n    background-color: rgb(209, 208, 207);\r\n    }\r\n    .button-up:active {\r\n    background-color: rgb(195, 195, 195);\r\n    }\r\n    .button-down {\r\n    width: 22px;\r\n    position: relative;\r\n    height: 11px;\r\n    text-align: center;\r\n    }\r\n    .button-down:hover {\r\n    background-color: rgb(209, 208, 207);\r\n    }\r\n    .button-down:active {\r\n    background-color: rgb(195, 195, 195);\r\n    }\r\n    i {\r\n    position: absolute;\r\n    left: 5px;\r\n    height: 8px;\r\n    width: 10px;\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiNumberEditorComponent implements OnInit, OnDestroy {\r\n  @ViewChild(\"numberInput\") numberInput: ElementRef;\r\n\r\n  public interval;\r\n  public isIncrement: boolean = false;\r\n  public isDecrement: boolean = false;\r\n  public timeout;\r\n  private _gridCounter: number;\r\n\r\n  public get gridCounter(): number {\r\n    return this._gridCounter;\r\n  }\r\n  public set gridCounter(value: number) {\r\n    if (this.property.property == \"gridColumns\") {\r\n      if (value <= 12) {\r\n        this._gridCounter = 12;\r\n      } else if (this.model.form?.pages.length > 0 && value > this.model.form.pages[this.model.form.pages.length - 1].contentAreaWidth) {\r\n        this._gridCounter = this.model.form.pages[this.model.form.pages.length - 1].contentAreaWidth;\r\n      } else {\r\n        this._gridCounter = value;\r\n      }\r\n    } else {\r\n      if (value <= 1) {\r\n        this._gridCounter = 1;\r\n      } else if (this.model.form?.pages.length > 0 && value > this.model.form.pages[this.model.form.pages.length - 1].contentAreaHeight) {\r\n        this._gridCounter = this.model.form.pages[this.model.form.pages.length - 1].contentAreaHeight;\r\n      } else {\r\n        this._gridCounter = value;\r\n      }\r\n    }\r\n  }\r\n  @Input() property: StiEditorProperty;\r\n  @Input() obj?: any;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService,\r\n    public render: StiRectangleGeometryLayout\r\n  ) { }\r\n  ngOnDestroy(): void {\r\n    if (this.numberInput) {\r\n      if (this.numberInput.nativeElement.value && Number(this.numberInput.nativeElement.value) != this.counter) {\r\n        this.onLostFocus(this.numberInput.nativeElement.value);\r\n      }\r\n    }\r\n  }\r\n  ngOnInit(): void {\r\n    if (this.property.property == \"gridColumns\" || this.property.property == \"gridVerticalStep\") {\r\n      this.gridCounter = (this.helper.getProperty(this.element, this.property.property) as string)\r\n        ? parseFloat(this.helper.getProperty(this.element, this.property.property))\r\n        : this.helper.getProperty(this.element, this.property.property);\r\n    }\r\n  }\r\n\r\n  onLostFocus(value) {\r\n    if (this.property.property == \"gridColumns\" || this.property.property == \"gridVerticalStep\") {\r\n      this.gridCounter = Number(value);\r\n      return;\r\n    }\r\n    this.helper.setProperty(this.obj ?? this.element, this.property.property, Number(value));\r\n    if (this.element instanceof StiNumberBoxElement && this.element.useRange && this.property.property == \"value\") {\r\n      this.model.checkNumberRange(this.element);\r\n    } else if (this.element instanceof StiNumberBoxElement && this.property.property == \"decimalDigits\") {\r\n      this.model.needToRefresh.next(true);\r\n    }\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n\r\n  applySettings() {\r\n    this.helper.setProperty(this.element, this.property.property, this.gridCounter);\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    setTimeout(() => {\r\n      this.checkOutputs();\r\n    }, 300);\r\n  }\r\n  public checkOutputs() {\r\n    this.model.form.pages.forEach((page) => {\r\n      page.allElements.forEach((element) => {\r\n        if (element.x + element.width > page.contentAreaWidth) {\r\n          element.x = 0;\r\n        }\r\n      });\r\n    });\r\n    this.checkOnOverlay();\r\n    this.model.form.pages.forEach((page) => {\r\n      this.render.checkOutputs(page);\r\n    });\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  checkOnOverlay() {\r\n    let hasOverlayedElements = false;\r\n    this.model.form.pages.forEach((page) => {\r\n      page.allElements.forEach((element) => {\r\n        let overlayedElements = page.allElements.filter((elem) => elem.x == element.x && elem.y == element.x);\r\n        if (overlayedElements.length > 1) {\r\n          overlayedElements.forEach((overlayedElement, index) => {\r\n            if (index != 0) {\r\n              hasOverlayedElements = true;\r\n              overlayedElement.y += index;\r\n            }\r\n          });\r\n        }\r\n      });\r\n    });\r\n    if (hasOverlayedElements) {\r\n      this.model.form.allElements.forEach((element) => {\r\n        let container = this.model.getElementPage(element) ?? this.model.getElementPanel(element);\r\n        this.render.insertElement(element, container.contentAreaWidth);\r\n      });\r\n    }\r\n  }\r\n  clearTimers() {\r\n    this.isIncrement = false;\r\n    this.isDecrement = false;\r\n    clearTimeout(this.timeout);\r\n    clearInterval(this.interval);\r\n  }\r\n  iterate() {\r\n    if (this.isIncrement) {\r\n      if (this.model.selectedPage) {\r\n        this.model.selectedPage[this.property.property] += 1;\r\n      } else {\r\n        this.counter += 1;\r\n      }\r\n    } else if (this.isDecrement) {\r\n      if (this.model.selectedPage) {\r\n        this.model.selectedPage[this.property.property] -= 1;\r\n      } else {\r\n        this.counter -= 1;\r\n      }\r\n    }\r\n  }\r\n  setIncrementInterval() {\r\n    this.isIncrement = true;\r\n    this.iterate();\r\n    let this_ = this;\r\n    this.timeout = setTimeout(function () {\r\n      this_.interval = setInterval(function () {\r\n        this_.iterate();\r\n      }, 50);\r\n    }, 300);\r\n  }\r\n  setDecrementInterval() {\r\n    this.isDecrement = true;\r\n    this.iterate();\r\n    let this_ = this;\r\n    this.timeout = setTimeout(function () {\r\n      this_.interval = setInterval(function () {\r\n        this_.iterate();\r\n      }, 50);\r\n    }, 300);\r\n  }\r\n  get element(): any {\r\n    return this.model.selectedComponent?.element ?? this.model.form.settings;\r\n  }\r\n\r\n  get counter(): number {\r\n    if (this.property.property != \"gridColumns\" && this.property.property != \"gridVerticalStep\") {\r\n      if (this.obj) {\r\n        return (this.helper.getProperty(this.obj, this.property.property) as string)\r\n          ? parseFloat(this.helper.getProperty(this.obj, this.property.property))\r\n          : this.helper.getProperty(this.obj, this.property.property);\r\n      }\r\n      return this.helper.getProperty(this.element, this.property.property);\r\n    } else {\r\n      return this.gridCounter;\r\n    }\r\n  }\r\n  public validNegativeValue(): boolean {\r\n    if (this.obj instanceof StiNumberBoxElement) {\r\n      if (\r\n        this.property.property == \"value\" ||\r\n        this.property.property == \"minimum\" ||\r\n        this.property.property == \"maximum\"\r\n      ) {\r\n        return true;\r\n      } else return false;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  set counter(value: number) {\r\n    if (value < 0 && !this.validNegativeValue()) {\r\n      return;\r\n    }\r\n    if (this.property.property != \"gridColumns\" && this.property.property != \"gridVerticalStep\") {\r\n      if (this.obj) {\r\n        this.helper.setProperty(this.obj, this.property.property, value);\r\n      } else {\r\n        this.helper.setProperty(this.element, this.property.property, value);\r\n        if (this.element instanceof StiNumberBoxElement && this.element.useRange && this.property.property == \"value\") {\r\n          this.model.checkNumberRange(this.element);\r\n        }\r\n      }\r\n    } else {\r\n      this.gridCounter = value;\r\n      this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    }\r\n  }\r\n}\r\n","import { StiFormPageElement } from \"../elements/StiFormPageElement\";\r\nimport { StiModelService } from \"../services/model.service\";\r\n\r\nexport function RenderComponentsGeometry(containers: StiFormPageElement[], model: StiModelService) {\r\n  let currentRightPoint: number = 0;\r\n  let currentBottomPoint: number = 0;\r\n  let maxContainerWidth: number;\r\n  let maxContainerHeight: number;\r\n  let paddingLeft: number;\r\n  let paddingTop: number;\r\n  let paddingBot: number;\r\n  let paddingRight: number;\r\n  let previousElement;\r\n  let currentColumnWidth: number;\r\n  let previousColumnWidth: number;\r\n  let maxContainerWidthInColumns: number = 12;\r\n  let columns: number;\r\n  containers.forEach((container) => {\r\n    maxContainerHeight = container.height;\r\n    maxContainerWidth = container.contentAreaWidth;\r\n    currentRightPoint = 0;\r\n    currentBottomPoint = 0;\r\n    paddingLeft = container.padding.left;\r\n    paddingTop = container.padding.top;\r\n    paddingBot = container.padding.bottom;\r\n    paddingRight = container.padding.right;\r\n    previousColumnWidth = (model.previousContentAreaWidth - 2) / maxContainerWidthInColumns;\r\n    currentColumnWidth = (container.contentAreaWidth - 2) / maxContainerWidthInColumns;\r\n    container.elements.forEach((element) => {\r\n      if (element.render) {\r\n        if (!element.hasGeometry) {\r\n          if (currentRightPoint == 0 && currentBottomPoint == 0) {\r\n            element.x = currentRightPoint;\r\n            element.y = currentBottomPoint;\r\n            element.hasGeometry = true;\r\n            currentRightPoint += element.width;\r\n          } else {\r\n            if (currentRightPoint + element.width <= maxContainerWidth) {\r\n              element.x = currentRightPoint;\r\n              element.y = currentBottomPoint;\r\n              element.hasGeometry = true;\r\n              currentRightPoint += element.width;\r\n            } else {\r\n              currentBottomPoint += previousElement.computedHeight;\r\n              currentRightPoint = 0;\r\n              element.x = currentRightPoint;\r\n              element.y = currentBottomPoint;\r\n              element.hasGeometry = true;\r\n              currentRightPoint += element.width;\r\n            }\r\n          }\r\n\r\n        } else if (element.hasGeometry) {\r\n          if (container.contentAreaWidth != model.previousContentAreaWidth) {\r\n            if (element.x > 0) {\r\n              columns = Math.round(element.x / previousColumnWidth);\r\n              element.x = columns * currentColumnWidth;\r\n              columns = Math.round(element.width / previousColumnWidth);\r\n              element.width = columns * currentColumnWidth;\r\n            } else {\r\n              columns = Math.round(element.width / previousColumnWidth);\r\n              element.width = columns * currentColumnWidth;\r\n            }\r\n          } else {\r\n            if (currentRightPoint == 0 && currentBottomPoint == 0) {\r\n              currentRightPoint = element.x;\r\n              element.y = currentBottomPoint;\r\n              currentRightPoint += element.width;\r\n            } else {\r\n              if (currentRightPoint <= element.x && element.x + element.width <= maxContainerWidth) {\r\n                currentRightPoint = element.x;\r\n                element.y = currentBottomPoint;\r\n                currentRightPoint += element.width;\r\n              } else {\r\n                currentBottomPoint += previousElement.computedHeight;\r\n                currentRightPoint = element.x;\r\n                element.y = currentBottomPoint;\r\n                currentRightPoint += element.width;\r\n              }\r\n            }\r\n          }\r\n        }\r\n        previousElement = element;\r\n      }\r\n    });\r\n  });\r\n\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { RenderComponentsGeometry } from \"../../../../computed/RenderComponentsGeometry\";\r\nimport { PaperKind } from \"../../../../system/enums\";\r\nimport StiPagePaperKind from \"../../../../properties/StiPagePaperKind\";\r\n\r\n@Component({\r\n    selector: \"sti-paper-kind-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      @if (property.type === 'paperKind') {\r\n        <tr>\r\n          <td colspan=\"5\" [style]=\"{ width: '100%' }\">\r\n            <sti-dropdown-editor\r\n              [options]=\"values\"\r\n              [(value)]=\"kind\"\r\n              class=\"p-inputtext-sm\"\r\n              optionValue=\"kind\"\r\n              optionLabel=\"name\"\r\n              [style]=\"{ width: '100%', height: '24px' }\"\r\n            ></sti-dropdown-editor>\r\n          </td>\r\n        </tr>\r\n      }\r\n    </table>\r\n    <style>\r\n      td {\r\n      padding: 0;\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiPaperKindEditorComponent implements OnInit {\r\n  public enum = PaperKind;\r\n  public kinds = StiPagePaperKind.availableStandardKinds();\r\n  public values = Object.values(this.kinds);\r\n  public obj = this.values.map((it) => PaperKind[it.kind]);\r\n  public filteredValues;\r\n  @Input() property: StiEditorProperty;\r\n  constructor(public model: StiModelService) {}\r\n  ngOnInit(): void {}\r\n\r\n  public get paperKind(): StiPagePaperKind {\r\n    StiPagePaperKind.fromStandardPaperKind(9);\r\n\r\n    return this.model.selectedPage[this.property.property];\r\n  }\r\n\r\n  public get kind() {\r\n    return this.model.selectedPage.paperKind.kind;\r\n  }\r\n\r\n  public set kind(value: PaperKind) {\r\n    this.model.selectedPage.paperKind = StiPagePaperKind.fromStandardPaperKind(value);\r\n    RenderComponentsGeometry(this.model.form.pages, this.model);\r\n    this.model.previousContentAreaWidth = this.model.selectedPage.contentAreaWidth;\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\n\r\n@Component({\r\n    selector: \"sti-vertical-alignment-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        <td colspan=\"2\" [style]=\"{ width: '38%' }\">\r\n          <sti-selectButton\r\n            [options]=\"helper.verticalAlignment\"\r\n            [(value)]=\"alignment\"\r\n            optionValue=\"value\"\r\n            [style]=\"{ height: '24px', minWidth: '90px' }\"\r\n          >\r\n            <ng-template let-item>\r\n              <img\r\n                [src]=\"model.getImage(item.image)\"\r\n                [stiTooltip]=\"loc.getP(item.name)\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                [style]=\"{ height: '16px', width: '16px' }\"\r\n              />\r\n            </ng-template>\r\n          </sti-selectButton>\r\n        </td>\r\n      </tr>\r\n    </table>\r\n\r\n    <style>\r\n      input {\r\n        font-size: 13px;\r\n        font-weight: 600;\r\n        padding: 2px 4px;\r\n      }\r\n      .valid {\r\n        border-color: rgb(0, 128, 0);\r\n      }\r\n      td {\r\n        padding: 0;\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiVerticalAlignmentEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  public hasName: boolean = false;\r\n  public required: boolean = false;\r\n  get object(): any {\r\n    return this.model.selectedComponent?.element ?? this.model.form.settings;\r\n  }\r\n  public get alignment() {\r\n    return this.helper.getProperty(this.object, this.property.property);\r\n  }\r\n  public set alignment(value) {\r\n    this.helper.setProperty(this.object, this.property.property, value);\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiLabelElement } from \"../../../../elements/StiLabelElement\";\r\nimport { StiTableElement } from \"../../../../elements/StiTableElement\";\r\nimport { StiTotalsFieldItem } from \"../../../../elements/table/StiTotalsFieldItem\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiExpressionService } from \"../../../../services/sti-expression.service\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\nimport { StiSingleSelectionElement } from \"../../../../elements/StiSingleSelectionElement\";\r\nimport { StiMultipleSelectionElement } from \"../../../../elements/StiMultipleSelectionElement\";\r\n\r\n@Component({\r\n    selector: \"sti-text-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      @if (property.property != 'font' && content?.length >= 0) {\r\n        <tr>\r\n          <td colspan=\"7\" [style.width]=\"'100%'\">\r\n            <input\r\n              type=\"text\"\r\n              stiInputText\r\n              [stiTooltip]=\"property.tooltip\"\r\n              [(ngModel)]=\"content\"\r\n              class=\"{{ disabled ? 'disabled' : '' }}\"\r\n              spellcheck=\"false\"\r\n              [style]=\"{ width: '100%' }\"\r\n            [attr.maxLength]=\"\r\n              property.property == 'this' && this.model.selectedComponent.element.maximum\r\n                ? this.model.selectedComponent.element.maximum\r\n                : null\r\n            \"\r\n              />\r\n            </td>\r\n            @if (haveExpression) {\r\n              <td>\r\n                <div class=\"expression-image\" (click)=\"setInfo()\">\r\n                  <img [src]=\"model.getImage('images.Properties.Expression.png')\" />\r\n                </div>\r\n              </td>\r\n            }\r\n          </tr>\r\n        }\r\n      </table>\r\n      <style>\r\n        tr {\r\n        padding: 3px 0px 3px 0px;\r\n      }\r\n      td {\r\n      padding: 0;\r\n    }\r\n    .disabled {\r\n    background-color: lightgray;\r\n    pointer-events: none;\r\n    }\r\n    .expression-image {\r\n    height: 23.6px;\r\n    width: 23.6px;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    cursor: pointer;\r\n    border: 1px solid var(--inputBorder-color);\r\n    border-radius: 3px;\r\n    margin-left: 3px;\r\n    margin-right: 0px;\r\n    float: right;\r\n    }\r\n    img {\r\n    height: 16px;\r\n    width: 16px;\r\n    }\r\n    .expression-image:hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiTextEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object?: any;\r\n  @Input() disabled?: boolean;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public expressionService: StiExpressionService\r\n  ) { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  public get haveExpression() {\r\n    return (this.model.selectedComponent?.element instanceof StiLabelElement &&\r\n      this.property.property == \"text.value\") ||\r\n      (this.model.selectedComponent?.element instanceof StiTableElement && this.property.property == \"expression\")\r\n      ? true\r\n      : false;\r\n  }\r\n  setInfo() {\r\n    if (this.object instanceof StiLabelElement) {\r\n      this.model.currentExpressionInfo = 3;\r\n    } else if (this.object instanceof StiTotalsFieldItem) {\r\n      this.model.currentExpressionInfo = 2;\r\n    } else {\r\n      this.model.currentExpressionInfo = 1;\r\n    }\r\n    this.expressionService.currentSelectedObject = this.object;\r\n    this.model.showExpressionEditor = true;\r\n  }\r\n  public get content() {\r\n    return this.helper.getProperty(this.object, this.property.property);\r\n  }\r\n  public set content(value) {\r\n    if (this.property.property == \"customOptionText\") {\r\n      if (this.object instanceof StiSingleSelectionElement) {\r\n        if (this.object.selectedOption == this.object.customOptionText) {\r\n          this.object.selectedOption = value;\r\n        }\r\n      } else if (this.object instanceof StiMultipleSelectionElement) {\r\n        if (this.object.selectedOptions.indexOf(this.object?.customOptionText) >= 0) {\r\n          this.object.selectedOptions?.forEach((option) => {\r\n            if (this.object.options?.indexOf(option) == -1) {\r\n              this.object.selectedOptions?.splice(this.object.selectedOptions.indexOf(option), 1);\r\n            }\r\n          });\r\n          this.object.selectedOptions.push(value);\r\n        }\r\n      }\r\n    }\r\n    this.helper.setProperty(this.object, this.property.property, value);\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\n\r\n@Component({\r\n    selector: \"sti-name-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      @if (property.type === 'nameEditor') {\r\n        <tr>\r\n          <td colspan=\"7\">\r\n            <input\r\n              type=\"text\"\r\n              #nameEditor\r\n              stiInputText\r\n              [ngModel]=\"name\"\r\n              spellcheck=\"false\"\r\n              (input)=\"onInput($event.target.value)\"\r\n              (focus)=\"onFocus()\"\r\n              (blur)=\"onBlur()\"\r\n              [style]=\"{ width: '100%' }\"\r\n              />\r\n              @if (hasName) {\r\n                <span style=\"color: #a80000; vertical-align:middle;\">Name is used.</span>\r\n              }\r\n              @if (required) {\r\n                <span style=\"color: #a80000; vertical-align:middle;\">This field is required.</span>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n    \r\n        <tr></tr>\r\n      </table>\r\n    \r\n      <style>\r\n        input {\r\n        font-size: 12px;\r\n        font-weight: 500;\r\n        padding: 3px 5px;\r\n      }\r\n      .valid {\r\n      border-color: rgb(0, 128, 0);\r\n    }\r\n    td {\r\n    padding: 0;\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiNameEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @ViewChild(\"nameEditor\") nameEditor: ElementRef;\r\n  constructor(public model: StiModelService) { }\r\n  public hasName: boolean = false;\r\n  public required: boolean = false;\r\n  public get name(): string {\r\n    return (\r\n      this.model.selectedComponent?.element[this.property.property] ?? (this.model.selectedPage ? this.model.selectedPage[this.property.property] : \"\")\r\n    );\r\n  }\r\n  ngOnInit(): void { }\r\n  onInput(name: string) {\r\n    this.hasName = false;\r\n    this.required = false;\r\n    if (name) {\r\n      this.nameEditor.nativeElement?.classList.remove(\"ng-invalid\");\r\n      this.model.form.pages.forEach((page) => {\r\n        if (page.name == name && page != this.model.selectedPage) {\r\n          this.hasName = true;\r\n        }\r\n        page.allElements.forEach((element) => {\r\n          if (element.name == name && element != this.model.selectedComponent.element) {\r\n            this.hasName = true;\r\n          }\r\n        });\r\n      });\r\n      if (this.hasName == false && this.isValid(name)) {\r\n        if (this.model.selectedPage) {\r\n          this.model.selectedPage.name = name;\r\n        } else {\r\n          this.model.selectedComponent.element.name = name;\r\n        }\r\n        this.nameEditor.nativeElement?.classList.remove(\"ng-invalid\");\r\n      } else {\r\n        this.nameEditor.nativeElement?.classList.add(\"ng-invalid\");\r\n      }\r\n    } else {\r\n      this.required = true;\r\n      this.nameEditor.nativeElement?.classList.add(\"ng-invalid\");\r\n    }\r\n  }\r\n  onFocus() {\r\n    this.nameEditor.nativeElement?.classList.add(\"valid\");\r\n  }\r\n  onBlur() {\r\n    this.nameEditor.nativeElement?.classList.remove(\"valid\");\r\n  }\r\n  isValid(name: string): boolean {\r\n    let valid = true;\r\n    let chars = name.trim().split(\"\");\r\n    let isValid = true;\r\n    chars.forEach((char) => {\r\n      if (!this.isLetterOrDigit(char)) {\r\n        valid = false;\r\n      }\r\n    });\r\n    return valid;\r\n  }\r\n  isLetterOrDigit(char): boolean {\r\n    let numberPattern = new RegExp(/^\\d+$/);\r\n    let isNumber = numberPattern.test(char);\r\n    let isDivider = char == \"-\" || char == \"_\";\r\n    return char.toLowerCase() != char.toUpperCase() || isNumber || isDivider;\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\n\r\n@Component({\r\n    selector: \"sti-horizontal-alignment-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        <td colspan=\"2\" [style]=\"{ width: '38%' }\">\r\n          <sti-selectButton\r\n            [options]=\"helper.justifyOptions\"\r\n            [(value)]=\"alignment\"\r\n            optionValue=\"value\"\r\n            [style]=\"{ height: '24px', minWidth: '90px' }\"\r\n          >\r\n            <ng-template let-item>\r\n              <img\r\n                [src]=\"model.getImage(item.image)\"\r\n                [stiTooltip]=\"loc.getP(item.name)\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                [style]=\"{ height: '16px', width: '16px' }\"\r\n              />\r\n            </ng-template>\r\n          </sti-selectButton>\r\n        </td>\r\n      </tr>\r\n    </table>\r\n\r\n    <style>\r\n      td {\r\n        padding: 0;\r\n      }\r\n      input {\r\n        font-size: 13px;\r\n        font-weight: 600;\r\n        padding: 2px 4px;\r\n      }\r\n      .valid {\r\n        border-color: rgb(0, 128, 0);\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiHorizontalAlignmentEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object: any;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  public hasName: boolean = false;\r\n  public required: boolean = false;\r\n  public get alignment() {\r\n    return this.helper.getProperty(this.object, this.property.property);\r\n  }\r\n  public set alignment(value) {\r\n    this.helper.setProperty(this.object, this.property.property, value);\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport StiRectangleGeometryLayout from \"../../../../computed/StiRectangleGeometryLayout\";\r\nimport { StiFormSettings } from \"../../../../elements/settings/StiFormSettings\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\nimport { StiLabelAlignment } from \"../../../../system/enums\";\r\n\r\n@Component({\r\n    selector: \"sti-label-alignment-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        <td colspan=\"2\" [style]=\"{ width: '38%' }\">\r\n          <sti-selectButton\r\n            [options]=\"helper.labelAlignment\"\r\n            [(value)]=\"alignment\"\r\n            optionValue=\"value\"\r\n            [style]=\"{ height: '24px', minWidth: '90px' }\"\r\n            >\r\n            <ng-template let-item>\r\n              <img\r\n                [src]=\"model.getImage(item.image)\"\r\n                [stiTooltip]=\"loc.getP(item.name)\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                [style]=\"{ height: '16px', width: '16px' }\"\r\n                />\r\n              </ng-template>\r\n            </sti-selectButton>\r\n          </td>\r\n        </tr>\r\n      </table>\r\n      @if (!isTopAlignment && hasVerticalAlignment) {\r\n        <table\r\n          [style.margin-top.px]=\"2\"\r\n          class=\"sti-clear\"\r\n          [style]=\"{ width: '100%' }\"\r\n          >\r\n          <tr>\r\n            <td colspan=\"2\" [style]=\"{ width: '38%' }\">\r\n              <sti-selectButton\r\n                [options]=\"helper.verticalAlignment\"\r\n                [(value)]=\"verticalAlignment\"\r\n                optionValue=\"value\"\r\n                [style]=\"{ height: '24px', minWidth: '90px' }\"\r\n                >\r\n                <ng-template let-item>\r\n                  <img\r\n                    [src]=\"model.getImage(item.image)\"\r\n                    [stiTooltip]=\"loc.getP(item.name)\"\r\n                    tooltipPosition=\"bottom\"\r\n                    showDelay=\"500\"\r\n                    [style]=\"{ height: '16px', width: '16px' }\"\r\n                    />\r\n                  </ng-template>\r\n                </sti-selectButton>\r\n              </td>\r\n            </tr>\r\n          </table>\r\n        }\r\n    \r\n        <style>\r\n          td {\r\n          padding: 0;\r\n        }\r\n        input {\r\n        font-size: 13px;\r\n        font-weight: 600;\r\n        padding: 2px 4px;\r\n      }\r\n      .valid {\r\n      border-color: rgb(0, 128, 0);\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiLabelAlignmentEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public render: StiRectangleGeometryLayout,\r\n    public loc: StiLocalizationService\r\n  ) {\r\n    this.prop = { type: \"verticalAlignment\", property: \"label.verticalAlignment\", label: \"verticalAlignment\" };\r\n  }\r\n  public hasName: boolean = false;\r\n  public required: boolean = false;\r\n  public prop: StiEditorProperty;\r\n\r\n  public get hasVerticalAlignment() {\r\n    return !(this.obj instanceof StiFormSettings) && this.obj.label?.isUnchangedVAlign() ? false : true;\r\n  }\r\n\r\n  get obj(): any {\r\n    return this.model.selectedComponent?.element ?? this.model.form.settings;\r\n  }\r\n  public get verticalAlignment() {\r\n    return this.helper.getProperty(this.obj, this.prop.property);\r\n  }\r\n  public set verticalAlignment(value) {\r\n    this.helper.setProperty(this.obj, this.prop.property, value);\r\n  }\r\n  public get alignment() {\r\n    return this.helper.getProperty(this.obj, this.property.property);\r\n  }\r\n  public set alignment(value) {\r\n    this.helper.setProperty(this.obj, this.property.property, value);\r\n    this.model.needToRefresh.next(true);\r\n  }\r\n  public get isTopAlignment(): boolean {\r\n    return this.alignment && this.alignment == StiLabelAlignment.Top ? true : false;\r\n  }\r\n  ngOnInit(): void { }\r\n}\r\n","import { animate, group, state, style, transition, trigger } from \"@angular/animations\";\r\n\r\nexport const SlideInOutAnimation = [\r\n  trigger(\"slideInOut\", [\r\n    state(\r\n      \"in\",\r\n      style({\r\n        \"max-height\": \"600px\",\r\n        /* opacity: \"1\", */\r\n        visibility: \"visible\",\r\n        overflow: \"initial\",\r\n      })\r\n    ),\r\n    state(\r\n      \"out\",\r\n      style({\r\n        \"max-height\": \"0px\",\r\n        /* opacity: \"0\", */\r\n        visibility: \"hidden\",\r\n        overflow: \"hidden\",\r\n      })\r\n    ),\r\n    transition(\"in => out\", [\r\n      group([\r\n        /*  animate(\r\n          \"500ms ease-in-out\",\r\n          style({\r\n            opacity: \"0\",\r\n          })\r\n        ), */\r\n        animate(\r\n          \"300ms ease-in-out\",\r\n          style({\r\n            \"max-height\": \"0px\",\r\n          })\r\n        ),\r\n        animate(\r\n          \"200ms ease-in-out\",\r\n          style({\r\n            visibility: \"hidden\",\r\n            overflow: \"hidden\",\r\n          })\r\n        ),\r\n      ]),\r\n    ]),\r\n    transition(\"out => in\", [\r\n      group([\r\n        animate(\r\n          \"650ms ease-in-out\",\r\n          style({\r\n            visibility: \"visible\",\r\n            overflow: \"initial\",\r\n          })\r\n        ),\r\n        animate(\r\n          \"450ms ease-in-out\",\r\n          style({\r\n            \"max-height\": 600,\r\n          })\r\n        ),\r\n        /* animate(\r\n          \"500ms ease-in-out\",\r\n          style({\r\n            opacity: \"1\",\r\n          })\r\n        ), */\r\n      ]),\r\n    ]),\r\n  ]),\r\n];\r\n\r\nexport const RotateAnimation = [\r\n  trigger(\"rotatedState\", [\r\n    state(\"default\", style({ transform: \"rotate(0)\" })),\r\n    state(\"rotated\", style({ transform: \"rotate(90deg)\" })),\r\n    transition(\"rotated => default\", animate(\"300ms linear\")),\r\n    transition(\"default => rotated\", animate(\"300ms linear\")),\r\n  ]),\r\n];\r\nexport const fileNavigationAnimation = [\r\n  trigger(\"fileNavigation\", [\r\n    state(\r\n      \"in\",\r\n      style({\r\n        width: \"170px\",\r\n        visibility: \"visible\",\r\n      })\r\n    ),\r\n    state(\r\n      \"out\",\r\n      style({\r\n        width: \"0px\",\r\n        visibility: \"hidden\",\r\n      })\r\n    ),\r\n    transition(\"* => in\", [animate(\"100ms\")]),\r\n    transition(\"* => out\", [animate(\"100ms\")]),\r\n  ]),\r\n];\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport StiInnerBorder from \"../../../../../properties/StiInnerBorder\";\r\nimport { StiBorder } from \"../../../../../properties/StiBorder\";\r\nimport { StiModelService } from \"../../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../../services/theme.service\";\r\n\r\n@Component({\r\n    selector: \"sti-border-sides-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        @if (property.property != 'gridLines') {\r\n          <td colspan=\"7\">\r\n            <div class=\"button-group\">\r\n              <div\r\n              class=\"button {{\r\n                object.drawTop && object.drawLeft && object.drawBottom && object.drawRight ? 'active' : ''\r\n              }}\"\r\n                [stiTooltip]=\"loc.get2('PropertyEnum', 'ChartGridLinesAll')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"setAll()\"\r\n                >\r\n                <img [src]=\"theme.getIcon('All')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n              class=\"button {{\r\n                !object.drawTop && !object.drawLeft && !object.drawBottom && !object.drawRight ? 'active' : ''\r\n              }}\"\r\n                [stiTooltip]=\"loc.get2('PropertyEnum', 'BorderStyleNone')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"setNone()\"\r\n                >\r\n                <img [src]=\"theme.getIcon('None')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ object.drawTop ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.getP('Top')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawTop')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Top')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ object.drawLeft ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.getP('Left')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawLeft')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Left')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ object.drawBottom ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.getP('Bottom')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawBottom')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Bottom')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ object.drawRight ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.getP('Right')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawRight')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Right')\" alt=\"\" />\r\n              </div>\r\n            </div>\r\n          </td>\r\n        }\r\n        @if (property.property == 'gridLines') {\r\n          <td colspan=\"7\">\r\n            <div class=\"button-group\">\r\n              <div\r\n                class=\"button {{ object.drawHorizontal && object.drawVertical ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.get2('PropertyEnum', 'ChartGridLinesAll')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"setAll()\"\r\n                >\r\n                <img [src]=\"theme.getIcon('GridAll')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ !object.drawHorizontal && !object.drawVertical ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.get2('PropertyEnum', 'BorderStyleNone')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"setNone()\"\r\n                >\r\n                <img [src]=\"theme.getIcon('GridNone')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ object.drawHorizontal ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.get2('PropertyEnum', 'StiOrientationHorizontal')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawHorizontal')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Horizontal')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ object.drawVertical ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.get2('PropertyEnum', 'StiOrientationVertical')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawVertical')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Vertical')\" alt=\"\" />\r\n              </div>\r\n            </div>\r\n          </td>\r\n        }\r\n      </tr>\r\n    </table>\r\n    <style>\r\n      td {\r\n      text-align: end;\r\n    }\r\n    tr {\r\n    padding: 3px 0px 3px 0px;\r\n    }\r\n    .active {\r\n    background-color: var(--active-color) !important;\r\n    }\r\n    .active:hover {\r\n    background-color: var(--active-color) !important;\r\n    }\r\n    .button-group {\r\n    display: flex;\r\n    width: 100%;\r\n    flex-direction: row;\r\n    justify-content: start;\r\n    }\r\n    .button {\r\n    height: 22px;\r\n    width: 28px;\r\n    background-color: var(--back-color);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    }\r\n    .button img {\r\n    height: 16px;\r\n    width: 16px;\r\n    }\r\n    .button:hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    .button:active {\r\n    background-color: var(--active-color);\r\n    }\r\n    .draw-grid-all {\r\n    background: var(--gridAll-icon);\r\n    }\r\n    .draw-grid-none {\r\n    background: var(--gridNone-icon);\r\n    }\r\n    .draw-horizontal {\r\n    background: var(--gridHorizontal-icon);\r\n    }\r\n    .draw-vertical {\r\n    background: var(--gridVertical-icon);\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiBorderSidesEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object: any;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  public get borderAlignments() {\r\n    let alignments = this.helper.getProperty(this.model.selectedComponent.element, this.property.property);\r\n    return alignments.values;\r\n  }\r\n  public set borderAlignments(value) {\r\n    this.helper.getProperty(this.model.selectedComponent.element, this.property.property).addValues(value);\r\n  }\r\n  setAll() {\r\n    if (this.object instanceof StiBorder) {\r\n      this.object.drawTop = true;\r\n      this.object.drawLeft = true;\r\n      this.object.drawBottom = true;\r\n      this.object.drawRight = true;\r\n    } else if (this.object instanceof StiInnerBorder) {\r\n      this.object.drawHorizontal = true;\r\n      this.object.drawVertical = true;\r\n    }\r\n  }\r\n  setNone() {\r\n    if (this.object instanceof StiBorder) {\r\n      this.object.drawTop = false;\r\n      this.object.drawLeft = false;\r\n      this.object.drawBottom = false;\r\n      this.object.drawRight = false;\r\n    } else if (this.object instanceof StiInnerBorder) {\r\n      this.object.drawHorizontal = false;\r\n      this.object.drawVertical = false;\r\n    }\r\n  }\r\n  changeState(value) {\r\n    this.object[value] = !this.object[value];\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../../services/theme.service\";\r\nimport { SlideInOutAnimation } from \"../../../../animations/animations\";\r\n\r\n@Component({\r\n    selector: \"sti-table-border-editor\",\r\n    template: `\r\n    <div [@slideInOut]=\"state ? 'in' : 'out'\" class=\"border-editor\">\r\n      <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n        @for (prop of properties; track prop; let i = $index) {\r\n          <tr>\r\n            @if (prop.label) {\r\n              <td>\r\n                <div class=\"label\" [style.margin-top.px]=\"i == '0' ? 5 : 0\">\r\n                  {{ prop.label }}\r\n                </div>\r\n              </td>\r\n            }\r\n            <td>\r\n              @if (prop.type === 'borderAlignment') {\r\n                <sti-border-sides-editor\r\n                  [property]=\"prop\"\r\n                  [object]=\"object\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-border-sides-editor>\r\n              }\r\n              @if (prop.type === 'color') {\r\n                <sti-color-editor\r\n                  [property]=\"prop\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [obj]=\"object?.pen\"\r\n                ></sti-color-editor>\r\n              }\r\n              @if (prop.type === 'enum') {\r\n                <sti-enum-editor\r\n                  [property]=\"prop\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [object]=\"object?.pen\"\r\n                ></sti-enum-editor>\r\n              }\r\n              @if (prop.type === 'Number') {\r\n                <sti-number-editor [obj]=\"object?.pen\" [property]=\"prop\"></sti-number-editor>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </div>\r\n    <style>\r\n      tr {\r\n      padding: 3px 0px 3px 0px;\r\n    }\r\n    .label {\r\n    font-size: 13px;\r\n    font-weight: normal;\r\n    min-width: 150px;\r\n    white-space: nowrap;\r\n    color: var(--property-label-color);\r\n    -webkit-touch-callout: none;\r\n    -webkit-user-select: none;\r\n    }\r\n    .border-editor {\r\n    overflow: hidden;\r\n    }\r\n    </style>\r\n    `,\r\n    animations: [SlideInOutAnimation],\r\n    standalone: false\r\n})\r\nexport class StiTableBorderEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() state: boolean;\r\n  @Input() object: any;\r\n  public properties = [];\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    this.properties = [];\r\n    this.properties.push({\r\n      type: \"borderAlignment\",\r\n      property: this.getProperty(this.property.property),\r\n      label: this.loc.getP(\"Sides\"),\r\n    });\r\n    this.properties.push({ type: \"color\", property: \"color\", label: this.loc.getP(\"Color\") });\r\n    this.properties.push({ type: \"Number\", property: \"width\", label: this.loc.getP(\"LineWidth\") });\r\n    this.properties.push({ type: \"enum\", property: \"style\", label: this.loc.getP(\"Style\") });\r\n    //\r\n  }\r\n  public getProperty(property) {\r\n    if (property == \"showBorderEditor\") {\r\n      return \"border\";\r\n    } else if (property == \"showColumnsBorderEditor\") {\r\n      return \"columnHeadersBorder\";\r\n    } else if (property == \"showRowsBorderEditor\") {\r\n      return \"rowHeadersBorder\";\r\n    } else {\r\n      return \"gridLines\";\r\n    }\r\n  }\r\n  public get content() {\r\n    return this.helper.getProperty(this.model.selectedComponent.element, this.property.property);\r\n  }\r\n  public set content(value) {\r\n    this.helper.setProperty(this.model.selectedComponent.element, this.property.property, value);\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { Enum } from \"../../../../system/Enum\";\r\nimport {\r\n  StiBodyBrush,\r\n  StiQRCodeBodyShapeType,\r\n  StiQRCodeErrorCorrectionLevel,\r\n  StiQRCodeEyeBallShapeType,\r\n  StiQRCodeEyeFrameShapeType,\r\n  StiQRCodeSize,\r\n} from \"../../../../system/enums\";\r\n\r\n@Component({\r\n    selector: \"sti-simple-enum-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        <td colspan=\"2\">\r\n          <sti-dropdown-editor\r\n            [options]=\"enum\"\r\n            [(value)]=\"type\"\r\n            class=\"p-inputtext-sm\"\r\n            [style]=\"{ width: '100%' }\"\r\n          ></sti-dropdown-editor>\r\n        </td>\r\n      </tr>\r\n    </table>\r\n\r\n    <style>\r\n      td {\r\n        padding: 0;\r\n      }\r\n      span {\r\n        margin-left: 2px;\r\n        color: var(--text-color);\r\n        font-weight: normal;\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiSimpleEnumEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object?: any;\r\n\r\n  public get type() {\r\n    if (this.property.property == \"matrixSize\") {\r\n      return StiQRCodeSize[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property == \"errorCorrectionLevel\") {\r\n      return StiQRCodeErrorCorrectionLevel[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property.includes(\"BrushType\")) {\r\n      return StiBodyBrush[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property == \"bodyShapeType\") {\r\n      return StiQRCodeBodyShapeType[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property == \"eyeBallShapeType\") {\r\n      return StiQRCodeEyeBallShapeType[this.helper.getProperty(this.object, this.property.property)];\r\n    } else if (this.property.property == \"eyeFrameShapeType\") {\r\n      return StiQRCodeEyeFrameShapeType[this.helper.getProperty(this.object, this.property.property)];\r\n    }\r\n  }\r\n  public set type(value) {\r\n    if (this.property.property == \"matrixSize\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiQRCodeSize, value, false));\r\n    } else if (this.property.property == \"errorCorrectionLevel\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiQRCodeErrorCorrectionLevel, value));\r\n    } else if (this.property.property.includes(\"BrushType\")) {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiBodyBrush, value));\r\n    } else if (this.property.property == \"bodyShapeType\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiQRCodeBodyShapeType, value));\r\n    } else if (this.property.property == \"eyeBallShapeType\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiQRCodeEyeBallShapeType, value));\r\n    } else if (this.property.property == \"eyeFrameShapeType\") {\r\n      this.helper.setProperty(this.object, this.property.property, Enum.parse(StiQRCodeEyeFrameShapeType, value));\r\n    }\r\n    this.model.needToRefreshInnerProperties.next(true);\r\n  }\r\n  public get enum() {\r\n    if (this.property.property == \"matrixSize\") {\r\n      return this.helper.dataMatrixSize;\r\n    } else if (this.property.property == \"errorCorrectionLevel\") {\r\n      return this.helper.errorCorrectionLevel;\r\n    } else if (this.property.property.includes(\"BrushType\")) {\r\n      return this.helper.bodyBrush;\r\n    } else if (this.property.property == \"bodyShapeType\") {\r\n      return this.helper.bodyShapeType;\r\n    } else if (this.property.property == \"eyeBallShapeType\") {\r\n      return this.helper.eyeBallShapeType;\r\n    } else if (this.property.property == \"eyeFrameShapeType\") {\r\n      return this.helper.eyeFrameShapeType;\r\n    }\r\n  }\r\n\r\n  constructor(public model: StiModelService, public helper: StiHelperService) {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiBarcodeElement } from \"../../../../elements/StiBarcodeElement\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\nimport { StiBodyBrush } from \"../../../../system/enums\";\r\nimport { SlideInOutAnimation } from \"../../../animations/animations\";\r\n\r\n@Component({\r\n    selector: \"sti-barcode-shape-editor\",\r\n    template: `\r\n    <div [@slideInOut]=\"state ? 'in' : 'out'\" class=\"barcode-editor\">\r\n      <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n        @for (prop of properties; track prop; let i = $index) {\r\n          <tr>\r\n            @if (prop.label) {\r\n              <td>\r\n                <div class=\"label\" [style.margin-top.px]=\"i == '0' ? 5 : 0\">\r\n                  {{ prop.label }}\r\n                </div>\r\n              </td>\r\n            }\r\n            <td [style.width]=\"'100%'\">\r\n              @if (prop.type === 'color') {\r\n                <sti-color-editor\r\n                  [property]=\"prop\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [obj]=\"object\"\r\n                ></sti-color-editor>\r\n              }\r\n              @if (prop.type === 'simpleEnum') {\r\n                <sti-simple-enum-editor\r\n                  [property]=\"prop\"\r\n                  [object]=\"object\"\r\n                  [style]=\"{ width: '100%' }\"\r\n                ></sti-simple-enum-editor>\r\n              }\r\n              @if (prop.type === 'enum') {\r\n                <sti-enum-editor\r\n                  [property]=\"prop\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [object]=\"object\"\r\n                ></sti-enum-editor>\r\n              }\r\n              @if (prop.type === 'checkbox') {\r\n                <sti-bool-editor\r\n                  [property]=\"prop\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-bool-editor>\r\n              }\r\n              @if (prop.type === 'Number') {\r\n                <sti-number-editor [obj]=\"object\" [property]=\"prop\"></sti-number-editor>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </div>\r\n    <style>\r\n      tr {\r\n      padding: 3px 0px 3px 0px;\r\n    }\r\n    .label {\r\n    font-size: 13px;\r\n    font-weight: normal;\r\n    min-width: 120px;\r\n    white-space: nowrap;\r\n    color: var(--text-color);\r\n    -webkit-touch-callout: none;\r\n    -webkit-user-select: none;\r\n    }\r\n    .barcode-editor {\r\n    overflow: hidden;\r\n    }\r\n    </style>\r\n    `,\r\n    animations: [SlideInOutAnimation],\r\n    standalone: false\r\n})\r\nexport class StiBarcodeShapeEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() state: boolean;\r\n  @Input() object: StiBarcodeElement;\r\n  public properties = [];\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    this.updateProperties();\r\n    this.model.needToRefreshInnerProperties.subscribe(() => this.updateProperties());\r\n    //\r\n  }\r\n  updateProperties() {\r\n    this.properties = [];\r\n    this.properties.push({\r\n      type: \"simpleEnum\",\r\n      property: `${this.getStartType(this.property.property)}BrushType`,\r\n      label: this.loc.getP(`${this.getMiddleType(this.property.property)}Brush`),\r\n    });\r\n    if (\r\n      this.object[`${this.getStartType(this.property.property)}BrushType`] == StiBodyBrush.Solid ||\r\n      this.object[`${this.getStartType(this.property.property)}BrushType`] == StiBodyBrush.Glass\r\n    ) {\r\n      this.properties.push({\r\n        type: \"color\",\r\n        property: `${this.getStartType(this.property.property)}BrushColor`,\r\n        label: this.loc.getP(\"Color\"),\r\n      });\r\n    }\r\n    if (this.object[`${this.getStartType(this.property.property)}BrushType`] == StiBodyBrush.Hatch) {\r\n      this.properties.push({\r\n        type: \"color\",\r\n        property: `${this.getStartType(this.property.property)}BrushForeColor`,\r\n        label: this.loc.getP(\"ForeColor\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"color\",\r\n        property: `${this.getStartType(this.property.property)}BrushBackColor`,\r\n        label: this.loc.getP(\"BackColor\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"enum\",\r\n        property: `${this.getStartType(this.property.property)}BrushHatchStyle`,\r\n        label: this.loc.getP(\"Style\"),\r\n      });\r\n    }\r\n    if (\r\n      this.object[`${this.getStartType(this.property.property)}BrushType`] == StiBodyBrush.Gradient ||\r\n      this.object[`${this.getStartType(this.property.property)}BrushType`] == StiBodyBrush.Glare\r\n    ) {\r\n      this.properties.push({\r\n        type: \"Number\",\r\n        property: `${this.getStartType(this.property.property)}BrushAngle`,\r\n        label: this.loc.getP(\"Angle\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"color\",\r\n        property: `start${this.getMiddleType(this.property.property)}BrushColor`,\r\n        label: this.loc.getP(\"StartColor\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"color\",\r\n        property: `end${this.getMiddleType(this.property.property)}BrushColor`,\r\n        label: this.loc.getP(\"EndColor\"),\r\n      });\r\n    }\r\n    this.properties.push({\r\n      type: \"simpleEnum\",\r\n      property: `${this.getStartType(this.property.property)}ShapeType`,\r\n      label: this.loc.getP(`${this.getMiddleType(this.property.property)}Shape`),\r\n    });\r\n    if (this.object[`${this.getStartType(this.property.property)}BrushType`] == StiBodyBrush.Glare) {\r\n      this.properties.push({\r\n        type: \"Number\",\r\n        property: `${this.getStartType(this.property.property)}BrushFocus`,\r\n        label: this.loc.getP(\"Focus\"),\r\n      });\r\n    }\r\n    if (this.object[`${this.getStartType(this.property.property)}BrushType`] == StiBodyBrush.Glass) {\r\n      this.properties.push({\r\n        type: \"Number\",\r\n        property: `${this.getStartType(this.property.property)}BrushBlend`,\r\n        label: this.loc.getP(\"Blend\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"checkbox\",\r\n        property: `${this.getStartType(this.property.property)}BrushDrawHatch`,\r\n        label: this.loc.getP(\"DrawHatch\"),\r\n      });\r\n    }\r\n  }\r\n  public getMiddleType(property) {\r\n    if (property == \"showBodyBrushEditor\") {\r\n      return \"Body\";\r\n    } else if (property == \"showEyeBallBrushEditor\") {\r\n      return \"EyeBall\";\r\n    } else {\r\n      return \"EyeFrame\";\r\n    }\r\n  }\r\n  public getStartType(property) {\r\n    if (property == \"showBodyBrushEditor\") {\r\n      return \"body\";\r\n    } else if (property == \"showEyeBallBrushEditor\") {\r\n      return \"eyeBall\";\r\n    } else {\r\n      return \"eyeFrame\";\r\n    }\r\n  }\r\n  public get content() {\r\n    return this.helper.getProperty(this.model.selectedComponent.element, this.property.property);\r\n  }\r\n  public set content(value) {\r\n    this.helper.setProperty(this.model.selectedComponent.element, this.property.property, value);\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\nimport { RotateAnimation, SlideInOutAnimation } from \"../../../animations/animations\";\r\n\r\n@Component({\r\n    selector: \"boolean-with-arrow-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        <td colspan=\"7\">\r\n          <div class=\"boolean-button\" (click)=\"changeState()\">\r\n            <div class=\"arrow\" [@rotatedState]=\"state\">\r\n              <span class=\"select-button\"><i class=\"pi pi-chevron-right\"></i></span>\r\n            </div>\r\n            <div class=\"content\">{{ content }}</div>\r\n          </div>\r\n          @if (!isBarcodeShape) {\r\n            <sti-table-border-editor\r\n              [property]=\"property\"\r\n              [state]=\"state == 'default' ? false : true\"\r\n              [object]=\"getObject()\"\r\n            ></sti-table-border-editor>\r\n          }\r\n          @if (isBarcodeShape) {\r\n            <sti-barcode-shape-editor\r\n              [property]=\"property\"\r\n              [state]=\"state == 'default' ? false : true\"\r\n              [object]=\"getObject()\"\r\n            ></sti-barcode-shape-editor>\r\n          }\r\n        </td>\r\n      </tr>\r\n    </table>\r\n    <style>\r\n      i {\r\n      width: 10px;\r\n      height: 10px;\r\n    }\r\n    .arrow {\r\n    width: 20px;\r\n    text-align: center;\r\n    cursor: default;\r\n    -webkit-touch-callout: none;\r\n    -webkit-user-select: none;\r\n    }\r\n    \r\n    .content {\r\n    cursor: default;\r\n    -webkit-touch-callout: none;\r\n    -webkit-user-select: none;\r\n    }\r\n    .boolean-button {\r\n    width: 100%;\r\n    height: 22px;\r\n    display: flex;\r\n    flex-direction: row;\r\n    color: var(--text-color);\r\n    background-color: var(--hover-color);\r\n    border-top: 2px solid var(--toolbarResizerBorder-color);\r\n    }\r\n    </style>\r\n    `,\r\n    animations: [RotateAnimation, SlideInOutAnimation],\r\n    standalone: false\r\n})\r\nexport class StiBooleanWithArrowEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  private _state: string;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    this._state = this.model.selectedComponent.element[this.property.property] == true ? \"rotated\" : \"default\";\r\n  }\r\n  public get isBarcodeShape(): boolean {\r\n    return this.property.property == \"showBodyBrushEditor\" ||\r\n      this.property.property == \"showEyeBallBrushEditor\" ||\r\n      this.property.property == \"showEyeFrameBrushEditor\"\r\n      ? true\r\n      : false;\r\n  }\r\n\r\n  public get content() {\r\n    if (!this.isBarcodeShape) {\r\n      return this.property.property == \"showGridLinesEditor\"\r\n        ? this.loc.get2(\"Chart\", \"GridLines\")\r\n        : this.loc.getP(\"Border\");\r\n    } else {\r\n      if (this.property.property == \"showBodyBrushEditor\") {\r\n        return this.loc.getP(\"BodyBrush\");\r\n      } else if (this.property.property == \"showEyeBallBrushEditor\") {\r\n        return this.loc.getP(\"EyeBallBrush\");\r\n      } else {\r\n        return this.loc.getP(\"EyeFrameBrush\");\r\n      }\r\n    }\r\n  }\r\n  public getObject(): any {\r\n    if (this.property.property == \"showGridLinesEditor\") {\r\n      return this.helper.getProperty(this.model.selectedComponent.element, \"gridLines\");\r\n    } else if (this.property.property == \"showBorderEditor\") {\r\n      return this.helper.getProperty(this.model.selectedComponent.element, \"border\");\r\n    } else if (this.property.property == \"showColumnsBorderEditor\") {\r\n      return this.helper.getProperty(this.model.selectedComponent.element, \"columnHeadersBorder\");\r\n    } else if (this.property.property == \"showRowsBorderEditor\") {\r\n      return this.helper.getProperty(this.model.selectedComponent.element, \"rowHeadersBorder\");\r\n    } else {\r\n      return this.model.selectedComponent?.element;\r\n    }\r\n  }\r\n  public get state(): string {\r\n    return this._state;\r\n  }\r\n  public set state(value: string) {\r\n    this._state = value;\r\n  }\r\n  changeState() {\r\n    this.model.selectedComponent.element[this.property.property] =\r\n      !this.model.selectedComponent.element[this.property.property];\r\n    this.state = this.state == \"default\" ? \"rotated\" : \"default\";\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../../services/sti-helper.service\";\r\nimport { StiThemeService } from \"../../../../../services/theme.service\";\r\n\r\n@Component({\r\n    selector: \"sti-table-item-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        <td colspan=\"7\">\r\n          <button (click)=\"changeEditor()\">Edit</button>\r\n        </td>\r\n      </tr>\r\n    </table>\r\n    <style>\r\n      td {\r\n        text-align: end;\r\n      }\r\n      tr {\r\n        padding: 3px 0px 3px 0px;\r\n      }\r\n      button {\r\n        width: 45px;\r\n        height: 22px;\r\n        padding: 3px 6px;\r\n        text-decoration: none;\r\n        font-weight: 600;\r\n        font-size: 12px;\r\n        color: var(--text-color);\r\n        text-align: center;\r\n        justify-content: center;\r\n        background-color: var(--input-color);\r\n        border-top: 2px solid var(--toolbarResizerBorder-color);\r\n        border-left: 1px solid var(--toolbarResizerBorder-color);\r\n        border-right: 1px solid var(--toolbarResizerBorder-color);\r\n        border-bottom: 1px solid var(--toolbarResizerBorder-color);\r\n        border-radius: 3px;\r\n      }\r\n      button:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiTableItemEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n\r\n  constructor(public model: StiModelService, public helper: StiHelperService, public theme: StiThemeService) { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  changeEditor() {\r\n    this.model.selectedComponent.element[this.property.property] =\r\n      !this.model.selectedComponent.element[this.property.property];\r\n    this.model.needToRefresh.next(true);\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiHelperService } from \"../../../services/sti-helper.service\";\r\n\r\n@Component({\r\n    selector: \"sti-select-button-editor\",\r\n    template: `\r\n    <sti-selectButton\r\n      [options]=\"helper.labelFormat\"\r\n      [(value)]=\"value\"\r\n      optionLabel=\"name\"\r\n      optionValue=\"value\"\r\n      [style]=\"{ height: '24px', width: '100%' }\"\r\n    >\r\n    </sti-selectButton>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiSelectButtonEditorComponent implements OnInit {\r\n  @Input() propertyType: string;\r\n  @Input() property: string;\r\n  @Input() object: any;\r\n\r\n  constructor(public model: StiModelService, public helper: StiHelperService) {}\r\n\r\n  ngOnInit() {}\r\n\r\n  set value(value: any) {\r\n    if (this.object) {\r\n      this.helper.setProperty(this.object, this.property, value);\r\n    } else {\r\n      this.model.form.settings[this.property] = value;\r\n    }\r\n  }\r\n\r\n  get value(): any {\r\n    return this.helper.getProperty(this.object, this.property) ?? this.model.form.settings[this.property];\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: \"sti-divider\",\r\n    template: `<div class=\"divider\"></div>`,\r\n    styles: [\r\n        `\r\n      .divider {\r\n        width: 100%;\r\n        height: 0.9px;\r\n        background-color: rgba(171, 170, 169, 0.3);\r\n        margin-bottom: 1px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiDividerComponent implements OnInit {\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiTableElement } from \"../../../../../elements/StiTableElement\";\r\nimport { StiComboBoxColumnItem } from \"../../../../../elements/table/columns/StiComboBoxColumnItem\";\r\nimport { StiLabelColumnItem } from \"../../../../../elements/table/columns/StiLabelColumnItem\";\r\nimport { StiNumberBoxColumnItem } from \"../../../../../elements/table/columns/StiNumberBoxColumnItem\";\r\nimport { StiColumnItem } from \"../../../../../elements/table/StiColumnItem\";\r\nimport { StiTotalsFieldItem } from \"../../../../../elements/table/StiTotalsFieldItem\";\r\nimport { StiModelService } from \"../../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../../services/theme.service\";\r\nimport { StiNumberType } from \"../../../../../system/enums\";\r\nimport { SlideInOutAnimation } from \"../../../../animations/animations\";\r\n\r\n@Component({\r\n    selector: \"sti-table-column-editor\",\r\n    template: `\r\n    <div [@slideInOut]=\"state ? 'in' : 'out'\" class=\"column-editor\">\r\n      <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n        @for (property of properties; track property) {\r\n          <tr>\r\n            @if (property.label) {\r\n              <td [style.vertical-align]=\"property.type == 'FontEditor' ? 'top' : ''\">\r\n                <div class=\"label\" [style.margin-top.px]=\"index == '0' ? 5 : 0\">\r\n                  {{ property.label }}\r\n                </div>\r\n              </td>\r\n            }\r\n            <td [colSpan]=\"property.type === 'divider' ? 8 : ''\">\r\n              @if (property.type === 'FontEditor') {\r\n                <sti-font-editor\r\n                  [object]=\"column\"\r\n                  [property]=\"property\"\r\n                ></sti-font-editor>\r\n              }\r\n              @if (property.type === 'TextEditor') {\r\n                <sti-text-editor\r\n                  [object]=\"column\"\r\n                  [property]=\"property\"\r\n                  [disabled]=\"needToDisable(property)\"\r\n                ></sti-text-editor>\r\n              }\r\n              @if (property.type === 'horizontalAlignment') {\r\n                <sti-horizontal-alignment-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [object]=\"column\"\r\n                ></sti-horizontal-alignment-editor>\r\n              }\r\n              @if (property.type === 'color') {\r\n                <sti-color-editor\r\n                  [obj]=\"column\"\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-color-editor>\r\n              }\r\n              @if (property.type === 'enum') {\r\n                <sti-enum-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [object]=\"column\"\r\n                  [index]=\"index\"\r\n                ></sti-enum-editor>\r\n              }\r\n              @if (property.type === 'checkbox') {\r\n                <sti-bool-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [object]=\"column\"\r\n                ></sti-bool-editor>\r\n              }\r\n              @if (property.type === 'MultilineEditor') {\r\n                <sti-multiline-string-editor\r\n                  [property]=\"property\"\r\n                  [object]=\"column\"\r\n                ></sti-multiline-string-editor>\r\n              }\r\n              @if (property.type === 'Number') {\r\n                <sti-number-editor\r\n                  [obj]=\"column\"\r\n                  [property]=\"property\"\r\n                ></sti-number-editor>\r\n              }\r\n              @if (property.type === 'labelFormat') {\r\n                <sti-select-button-editor\r\n                  [propertyType]=\"property.type\"\r\n                  [object]=\"column\"\r\n                  [property]=\"property.property\"\r\n                  >\r\n                </sti-select-button-editor>\r\n              }\r\n              @if (property.type === 'divider') {\r\n                <sti-divider></sti-divider>\r\n              }\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    </div>\r\n    <style>\r\n      tr {\r\n      padding: 3px 0px 3px 0px;\r\n    }\r\n    .label {\r\n    font-size: 13px;\r\n    font-weight: normal;\r\n    min-width: 150px;\r\n    white-space: nowrap;\r\n    color: var(--property-label-color);\r\n    -webkit-touch-callout: none;\r\n    -webkit-user-select: none;\r\n    }\r\n    .column-editor {\r\n    overflow: hidden;\r\n    }\r\n    img {\r\n    height: 16px;\r\n    width: 16px;\r\n    vertical-align: bottom;\r\n    }\r\n    </style>\r\n    `,\r\n    animations: [SlideInOutAnimation],\r\n    standalone: false\r\n})\r\nexport class StiTableColumnEditorComponent implements OnInit {\r\n  @Input() column;\r\n  @Input() state: boolean;\r\n  @Input() index;\r\n  @Input() expression?;\r\n  public properties = [];\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n\r\n  ngOnInit(): void {\r\n    this.updateProperties();\r\n    this.model.needToRefreshInnerProperties.subscribe(() => this.updateProperties());\r\n  }\r\n  public needToDisable(property) {\r\n    if (this.column instanceof StiLabelColumnItem || this.column instanceof StiTotalsFieldItem) {\r\n      if (this.column.prefix.length > 0 && property.property == \"suffix\") {\r\n        return true;\r\n      } else if (this.column.suffix.length > 0 && property.property == \"prefix\") {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  updateProperties() {\r\n    this.properties = [];\r\n    if (this.column instanceof StiColumnItem) {\r\n      this.properties.push({ type: \"enum\", property: \"type\", label: this.loc.getP(\"Type\") });\r\n      this.properties.push({ type: \"TextEditor\", property: \"label\", label: this.loc.getP(\"Label\") });\r\n      if (this.column instanceof StiLabelColumnItem) {\r\n        this.properties.push({ type: \"TextEditor\", property: \"expression\", label: this.loc.getP(\"Expression\") });\r\n      }\r\n      this.properties.push({ type: \"divider\" });\r\n      this.properties.push({ type: \"FontEditor\", property: \"font\", label: this.loc.getP(\"Header\") });\r\n      this.properties.push({ type: \"color\", property: \"headerBackColor\", label: this.loc.getP(\"BackColor\") });\r\n      this.properties.push({ type: \"color\", property: \"headerForeColor\", label: this.loc.getP(\"ForeColor\") });\r\n      this.properties.push({\r\n        type: \"horizontalAlignment\",\r\n        property: \"headerAlignment\",\r\n        label: this.loc.getP(\"Alignment\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"checkbox\",\r\n        property: \"useWordWrap\",\r\n        checkbox: StiLocalizationService.get(\"PropertyEnum\", \"StiTextSizeModeWordWrap\"),\r\n        label: \" \",\r\n      });\r\n      this.properties.push({ type: \"divider\" });\r\n      if (!(this.column instanceof StiComboBoxColumnItem)) {\r\n        this.properties.push({\r\n          type: \"horizontalAlignment\",\r\n          property: \"cellAlignment\",\r\n          label: this.loc.getP(\"Cell\") + \" \" + this.loc.getP(\"Alignment\"),\r\n        });\r\n      }\r\n      if (this.column instanceof StiComboBoxColumnItem) {\r\n        this.properties.push({\r\n          type: \"MultilineEditor\",\r\n          property: \"comboBoxOptions\",\r\n          label: this.loc.getP(\"Options\"),\r\n        });\r\n      }\r\n      if (this.column instanceof StiNumberBoxColumnItem || this.column instanceof StiLabelColumnItem) {\r\n        if (this.column instanceof StiNumberBoxColumnItem) {\r\n          this.properties.push({\r\n            type: \"enum\",\r\n            property: \"numberType\",\r\n            label: StiLocalizationService.get(\"PropertyMain\", \"ValueType\"),\r\n          });\r\n        }\r\n        this.properties.push({\r\n          type: \"enum\",\r\n          property: \"thousandSeparator\",\r\n          label: this.loc.get2(\"Export\", \"Separator\").replace(\":\", \"\"),\r\n        });\r\n        this.properties.push({\r\n          type: \"Number\",\r\n          property: \"decimalDigits\",\r\n          label: this.loc.get2(\"FormFormatEditor\", \"DecimalDigits\").replace(\":\", \"\"),\r\n        });\r\n        if (this.column instanceof StiLabelColumnItem) {\r\n          this.properties.push({\r\n            type: \"TextEditor\",\r\n            property: \"prefix\",\r\n            label: StiLocalizationService.get(\"PropertyMain\", \"Prefix\"),\r\n          });\r\n          this.properties.push({\r\n            type: \"TextEditor\",\r\n            property: \"suffix\",\r\n            label: StiLocalizationService.get(\"PropertyMain\", \"Suffix\"),\r\n          });\r\n        }\r\n        if (this.column instanceof StiNumberBoxColumnItem && this.column.numberType == StiNumberType.Decimal) {\r\n          this.properties.push({\r\n            type: \"TextEditor\",\r\n            property: \"unitLabel\",\r\n            label: StiLocalizationService.get(\"PropertyMain\", \"Unit\"),\r\n          });\r\n          this.properties.push({\r\n            type: \"enum\",\r\n            property: \"unitAlignment\",\r\n            label: StiLocalizationService.get(\"PropertyMain\", \"UnitAlignment\"),\r\n          });\r\n        } else if (this.column instanceof StiNumberBoxColumnItem && this.column.numberType == StiNumberType.Currency) {\r\n          this.properties.push({\r\n            type: \"enum\",\r\n            property: \"currency\",\r\n            label: StiLocalizationService.get(\"FormFormatEditor\", \"Currency\"),\r\n          });\r\n          this.properties.push({\r\n            type: \"enum\",\r\n            property: \"unitAlignment\",\r\n            label: StiLocalizationService.get(\"PropertyMain\", \"UnitAlignment\"),\r\n          });\r\n          this.properties.push({\r\n            type: \"labelFormat\",\r\n            property: \"currencyLabelFormat\",\r\n            label: StiLocalizationService.get(\"PropertyMain\", \"ShowAs\"),\r\n          });\r\n        }\r\n      }\r\n\r\n      this.properties.push({ type: \"color\", property: \"backgroundColor\", label: this.loc.getP(\"BackColor\") });\r\n      this.properties.push({ type: \"color\", property: \"cellBackColor\", label: this.loc.getP(\"CellBackColor\") });\r\n      this.properties.push({ type: \"color\", property: \"cellForeColor\", label: this.loc.getP(\"CellForeColor\") });\r\n      if (!(this.column instanceof StiLabelColumnItem)) {\r\n        this.properties.push({ type: \"color\", property: \"cellBorderColor\", label: this.loc.getP(\"BorderColor\") });\r\n      }\r\n    } else if (this.column instanceof StiTotalsFieldItem) {\r\n      this.properties.push({ type: \"TextEditor\", property: \"header\", label: this.loc.getP(\"Header\") });\r\n      this.properties.push({ type: \"TextEditor\", property: \"expression\", label: this.loc.getP(\"Expression\") });\r\n      this.properties.push({\r\n        type: \"horizontalAlignment\",\r\n        property: \"headerAlignment\",\r\n        label: this.loc.getP(\"HeaderAlignment\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"horizontalAlignment\",\r\n        property: \"valueAlignment\",\r\n        label: this.loc.getP(\"Value\") + \" \" + this.loc.getP(\"Alignment\"),\r\n      });\r\n      this.properties.push({ type: \"color\", property: \"headerColor\", label: \" \" });\r\n      this.properties.push({\r\n        type: \"enum\",\r\n        property: \"thousandSeparator\",\r\n        label: this.loc.get2(\"Export\", \"Separator\").replace(\":\", \"\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"Number\",\r\n        property: \"decimalDigits\",\r\n        label: this.loc.get2(\"FormFormatEditor\", \"DecimalDigits\").replace(\":\", \"\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"prefix\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Prefix\"),\r\n      });\r\n      this.properties.push({\r\n        type: \"TextEditor\",\r\n        property: \"suffix\",\r\n        label: StiLocalizationService.get(\"PropertyMain\", \"Suffix\"),\r\n      });\r\n    }\r\n  }\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiTableElement } from \"../../../../../elements/StiTableElement\";\r\nimport { StiTotalsFieldItem } from \"../../../../../elements/table/StiTotalsFieldItem\";\r\nimport { StiModelService } from \"../../../../../services/model.service\";\r\nimport { StiMouseService } from \"../../../../../services/mouse.service\";\r\nimport { StiEditorProperty } from \"../../../../../services/objects\";\r\nimport { StiColumnDraggableService } from \"../../../../../services/sti-column-draggable.service\";\r\nimport { StiHelperService } from \"../../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../../services/theme.service\";\r\nimport { RotateAnimation } from \"../../../../animations/animations\";\r\n\r\n@Component({\r\n    selector: \"sti-table-columns-editor\",\r\n    template: `\r\n    <table class=\"sti-clear drop-area\" [style]=\"{ width: '100%' }\">\r\n      @if (draggableService.isDragging && !draggableService.fromTable) {\r\n        <tr>\r\n          <td [style]=\"{ height: '3px', width: '100%' }\" (mousemove)=\"draggableService.insertIndex = 0\">\r\n            <div\r\n              class=\"drag-preview\"\r\n              [style.margin-bottom]=\"'-5px'\"\r\n              [style.height.px]=\"draggableService.insertIndex == 0 ? 6 : 0\"\r\n              >\r\n              @if (draggableService.insertIndex == 0) {\r\n                <div class=\"middle-part\"></div>\r\n              }\r\n            </div>\r\n          </td>\r\n        </tr>\r\n      }\r\n    \r\n      @for (item of items; track item; let i = $index) {\r\n        <tr>\r\n          @if ((!draggableService.fromTable && draggableService.item != item) || draggableService.fromTable) {\r\n            <td\r\n              colspan=\"7\"\r\n              >\r\n              <div\r\n                #booleanButton\r\n                class=\"boolean-button\"\r\n                [style.max-width.px]=\"getMaxWidth()\"\r\n                (click)=\"changeState(i)\"\r\n                (mouseover)=\"overIndex = i\"\r\n                (mouseleave)=\"overIndex = null\"\r\n                (mousedown)=\"onHeaderClick($event, item)\"\r\n                (mousemove)=\"!draggableService.fromTable ? (draggableService.insertIndex = i + 1) : return\"\r\n                >\r\n                <div class=\"arrow\" [@rotatedState]=\"arrayOfStates[i]\">\r\n                  <span class=\"select-button\"><i class=\"pi pi-chevron-right\"></i></span>\r\n                </div>\r\n                <div class=\"content\">\r\n                  {{\r\n                  this.property.property == \"columns\"\r\n                  ? item.label\r\n                  ? item.label\r\n                  : \"Column \" + (i + 1)\r\n                  : item.header\r\n                  ? item.header\r\n                  : \"Total Field \" + (i + 1)\r\n                  }}\r\n                </div>\r\n                @if (draggableService.insertIndex == -1) {\r\n                  <div class=\"delete\">\r\n                    @if (overIndex == i) {\r\n                      <div class=\"delete-button\" (click)=\"deleteItem(i)\">\r\n                        <img [src]=\"model.getImage('images.Ribbon.Delete.png')\" />\r\n                      </div>\r\n                    }\r\n                  </div>\r\n                }\r\n              </div>\r\n              <sti-table-column-editor\r\n                [column]=\"item\"\r\n                [state]=\"arrayOfStates[i] == 'default' ? false : true\"\r\n                [index]=\"i\"\r\n                [expression]=\"item?.calculationAlgorithm?.expression\"\r\n              ></sti-table-column-editor>\r\n              <div\r\n                class=\"drag-preview\"\r\n                [style.height.px]=\"!draggableService.fromTable && draggableService.insertIndex == i + 1 ? 6 : 0\"\r\n                >\r\n                @if (!draggableService.fromTable && draggableService.insertIndex == i + 1) {\r\n                  <div class=\"middle-part\"></div>\r\n                }\r\n              </div>\r\n            </td>\r\n          }\r\n        </tr>\r\n      }\r\n      <tr [style.text-align]=\"'start'\">\r\n        <td>\r\n          <button #addButton class=\"add-button\" [disabled]=\"disabled\" (click)=\"addItem($event, addButton)\">\r\n            <!--addItem()-->\r\n            {{\r\n            this.property.property == \"columns\"\r\n            ? loc.get2(\"FormDictionaryDesigner\", \"ColumnNew\")\r\n            : loc.get2(\"FormDictionaryDesigner\", \"NewItem\")\r\n            }}\r\n          </button>\r\n        </td>\r\n      </tr>\r\n    </table>\r\n    <style>\r\n      .middle-part {\r\n      position: absolute;\r\n      width: 100%;\r\n      left: 0;\r\n      top: 50%;\r\n      border-bottom: 3px solid rgb(198, 198, 198);\r\n    }\r\n    tr {\r\n    padding: 3px 0px 3px 0px;\r\n    }\r\n    i {\r\n    width: 10px;\r\n    height: 10px;\r\n    }\r\n    .arrow {\r\n    width: 20px;\r\n    text-align: center;\r\n    cursor: default;\r\n    -webkit-touch-callout: none;\r\n    -webkit-user-select: none;\r\n    }\r\n    .content {\r\n    cursor: default;\r\n    -webkit-touch-callout: none;\r\n    -webkit-user-select: none;\r\n    flex: 1;\r\n    overflow: hidden;\r\n    }\r\n    .delete {\r\n    width: 45px;\r\n    display: flex;\r\n    height: 100%;\r\n    }\r\n    .delete-button {\r\n    width: 22px;\r\n    height: 100%;\r\n    border-radius: 3px;\r\n    background-color: var(--hover-color);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    }\r\n    .delete-button img {\r\n    height: 16px;\r\n    width: 16px;\r\n    }\r\n    .delete-button:hover {\r\n    background-color: var(--columnDeleteHover-color);\r\n    }\r\n    .delete-button:active {\r\n    background-color: var(--hover-color);\r\n    }\r\n    .boolean-button {\r\n    width: 100%;\r\n    height: 22px;\r\n    margin-top: 2px;\r\n    display: flex;\r\n    flex-direction: row;\r\n    color: var(--text-color);\r\n    background-color: var(--hover-color);\r\n    border-top: 2px solid var(--toolbarResizerBorder-color);\r\n    }\r\n    \r\n    .drag-preview {\r\n    width: 100%;\r\n    margin-bottom: -3px;\r\n    background-color: transparent;\r\n    position: relative;\r\n    transition: height 50ms ease-in-out;\r\n    }\r\n    .add-button {\r\n    min-width: 100px;\r\n    min-height: 22px;\r\n    padding: 3px 6px;\r\n    margin-top: 5px;\r\n    text-decoration: none;\r\n    font-weight: 600;\r\n    font-size: 12px;\r\n    color: var(--text-color);\r\n    text-align: center;\r\n    justify-content: center;\r\n    background-color: var(--input-color);\r\n    border-top: 2px solid var(--toolbarResizerBorder-color);\r\n    border-left: 1px solid var(--toolbarResizerBorder-color);\r\n    border-right: 1px solid var(--toolbarResizerBorder-color);\r\n    border-bottom: 1px solid var(--toolbarResizerBorder-color);\r\n    border-radius: 3px;\r\n    }\r\n    .add-button:not([disabled]):hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    .add-button[disabled] {\r\n    opacity: 0.7;\r\n    pointer-events: none;\r\n    background-color: var(--hover-color);\r\n    }\r\n    .add-button:active {\r\n    background-color: var(--active-color);\r\n    }\r\n    </style>\r\n    `,\r\n    animations: [RotateAnimation],\r\n    standalone: false\r\n})\r\nexport class StiTableColumnsEditorComponent implements OnInit {\r\n  public overIndex;\r\n  @Input() property: StiEditorProperty;\r\n  @ViewChild(\"booleanButton\") booleanButton: ElementRef;\r\n  public getMaxWidth() {\r\n    return this.model.propertyGridWidth - 20;\r\n  }\r\n  arrayOfStates = [];\r\n  public widthDifference: number;\r\n  public minWidth: number = 40;\r\n  public isDrag: boolean = false;\r\n\r\n  public get disabled() {\r\n    return this.property.property != \"columns\" &&\r\n      this.model?.selectedComponent?.element instanceof StiTableElement &&\r\n      this.model?.selectedComponent?.element.columns.length == 0\r\n      ? true\r\n      : false;\r\n  }\r\n  public draggableItem: number;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService,\r\n    public draggableService: StiColumnDraggableService,\r\n    public mouseService?: StiMouseService\r\n  ) { }\r\n  ngOnInit(): void {\r\n    if (this.items.length != this.arrayOfStates.length) {\r\n      this.items.forEach(() => {\r\n        this.arrayOfStates.push(\"default\");\r\n      });\r\n      this.model.currentContentEditableItem.subscribe((index) => this.refreshState(index));\r\n    }\r\n  }\r\n\r\n  public get items(): any[] {\r\n    return this.helper.getProperty(this.model.selectedComponent.element, this.property.property);\r\n  }\r\n\r\n  onHeaderClick(event: MouseEvent, item: any) {\r\n    event.preventDefault();\r\n    this.draggableService.startX = event[\"offsetX\"];\r\n    this.draggableService.startY = event[\"offsetY\"];\r\n    this.draggableService.containerWidth = this.booleanButton?.nativeElement.offsetWidth;\r\n    this.draggableService.onHeaderClick(event, item, this.items);\r\n  }\r\n\r\n  refreshState(index) {\r\n    if (this.arrayOfStates.length != this.items.length) {\r\n      this.arrayOfStates = [];\r\n      this.items.forEach(() => {\r\n        this.arrayOfStates.push(\"default\");\r\n      });\r\n    }\r\n    this.arrayOfStates.forEach((state, i) => {\r\n      if (i != index) {\r\n        this.arrayOfStates[i] = \"default\";\r\n      } else {\r\n        this.arrayOfStates[i] = \"rotated\";\r\n      }\r\n    });\r\n  }\r\n  changeState(i) {\r\n    if (!this.isDrag) {\r\n      this.arrayOfStates[i] = this.arrayOfStates[i] == \"default\" ? \"rotated\" : \"default\";\r\n    }\r\n  }\r\n\r\n  addItem(event, element) {\r\n    if (this.model.selectedComponent.element instanceof StiTableElement) {\r\n      if (this.property.property == \"columns\") {\r\n        this.model.selectedComponent.element.addColumnLikeLast();\r\n        this.model.showColumnPreview(this.items.length - 1);\r\n      } else {\r\n        this.helper.addTotalMenuItems = null;\r\n        this.model.toggleTieredMenu(element);\r\n      }\r\n    }\r\n  }\r\n  deleteItem(i) {\r\n    this.items.splice(i, 1);\r\n  }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../../../services/theme.service\";\r\n\r\n@Component({\r\n    selector: \"sti-exceed-margins-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <tr>\r\n        @if (property.property != 'gridLines') {\r\n          <td colspan=\"7\">\r\n            <div class=\"button-group\">\r\n              <div\r\n              class=\"button {{\r\n                margins.drawTop && margins.drawLeft && margins.drawBottom && margins.drawRight ? 'active' : ''\r\n              }}\"\r\n                [stiTooltip]=\"loc.get2('PropertyEnum', 'ChartGridLinesAll')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"setAll()\"\r\n                >\r\n                <img [src]=\"theme.getIcon('All')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n              class=\"button {{\r\n                !margins.drawTop && !margins.drawLeft && !margins.drawBottom && !margins.drawRight ? 'active' : ''\r\n              }}\"\r\n                [stiTooltip]=\"loc.get2('PropertyEnum', 'BorderStyleNone')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"setNone()\"\r\n                >\r\n                <img [src]=\"theme.getIcon('None')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ margins.drawTop ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.getP('Top')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawTop')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Top')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ margins.drawLeft ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.getP('Left')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawLeft')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Left')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ margins.drawBottom ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.getP('Bottom')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawBottom')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Bottom')\" alt=\"\" />\r\n              </div>\r\n              <div\r\n                class=\"button {{ margins.drawRight ? 'active' : '' }}\"\r\n                [stiTooltip]=\"loc.getP('Right')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (click)=\"changeState('drawRight')\"\r\n                >\r\n                <img [src]=\"theme.getIcon('Right')\" alt=\"\" />\r\n              </div>\r\n            </div>\r\n          </td>\r\n        }\r\n      </tr>\r\n    </table>\r\n    <style>\r\n      td {\r\n      text-align: end;\r\n    }\r\n    tr {\r\n    padding: 3px 0px 3px 0px;\r\n    }\r\n    .active {\r\n    background-color: var(--active-color) !important;\r\n    }\r\n    .active:hover {\r\n    background-color: var(--active-color) !important;\r\n    }\r\n    .button-group {\r\n    display: flex;\r\n    width: 100%;\r\n    flex-direction: row;\r\n    justify-content: start;\r\n    }\r\n    .button {\r\n    height: 22px;\r\n    width: 28px;\r\n    background-color: var(--back-color);\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    }\r\n    .button img {\r\n    height: 16px;\r\n    width: 16px;\r\n    }\r\n    .button:hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    .button:active {\r\n    background-color: var(--active-color);\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiExceedMarginsEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() object: any;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  public get margins() {\r\n    return this.helper.getProperty(this.object, this.property.property);\r\n  }\r\n  setAll() {\r\n    this.margins.drawTop = true;\r\n    this.margins.drawLeft = true;\r\n    this.margins.drawBottom = true;\r\n    this.margins.drawRight = true;\r\n  }\r\n  setNone() {\r\n    this.margins.drawTop = false;\r\n    this.margins.drawLeft = false;\r\n    this.margins.drawBottom = false;\r\n    this.margins.drawRight = false;\r\n  }\r\n  changeState(value) {\r\n    this.margins[value] = !this.margins[value];\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import {\r\n  AfterContentChecked,\r\n  AfterViewInit,\r\n  Component,\r\n  DoCheck,\r\n  ElementRef,\r\n  Input,\r\n  OnChanges,\r\n  OnInit,\r\n  SimpleChanges,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { StiBarcodeService } from \"../../../../services/sti-barcode.service\";\r\n\r\n@Component({\r\n    selector: \"sti-svg-image\",\r\n    template: `\r\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 168 168\" width=\"50\" height=\"50\" x=\"0\" y=\"0\">\r\n      <g #content></g>\r\n    </svg>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiSvgImageComponent implements AfterViewInit, OnChanges {\r\n  @ViewChild(\"content\") content: ElementRef;\r\n\r\n  @Input() svg: string;\r\n\r\n  constructor(public barcodeService: StiBarcodeService) { }\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (this.content) {\r\n      this.content.nativeElement.innerHTML = this.svg;\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.content.nativeElement.innerHTML = this.svg;\r\n  }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiBarcodeElement } from \"../../../../elements/StiBarcodeElement\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiBarcodeService } from \"../../../../services/sti-barcode.service\";\r\n\r\n@Component({\r\n    selector: \"sti-barcode-style-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      <div class=\"current-barcode\" (click)=\"showPreview($event)\">\r\n        <sti-svg-image [svg]=\"currentBarcode\"></sti-svg-image>\r\n      </div>\r\n    </table>\r\n    <style>\r\n      .current-barcode {\r\n        height: min-content;\r\n        width: min-content;\r\n        padding: 3px 3px 0 3px;\r\n      }\r\n      .current-barcode:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n      .current-barcode:active {\r\n        background-color: var(--active-color);\r\n      }\r\n    </style>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiBarcodeStyleEditorComponent implements OnInit {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() element: StiBarcodeElement;\r\n\r\n  public get currentBarcode() {\r\n    return this.barcodeService.barcodeStyles.find((element) => element.value == this.element?.style).innerHtml;\r\n  }\r\n  constructor(public model: StiModelService, public barcodeService: StiBarcodeService) {}\r\n  showPreview(event) {\r\n    let element = document.querySelector(\".current-barcode\");\r\n    let elementRect = this.model.getPositionRelativeToForm(element);\r\n    let propertyGrid = document.querySelector(\".properties\");\r\n    let propertyGridRect = this.model.getPositionRelativeToForm(propertyGrid);\r\n    this.barcodeService.previewWidth = propertyGridRect.width - (elementRect.left - propertyGridRect.left);\r\n    this.barcodeService.previewY = elementRect.bottom;\r\n    this.barcodeService.previewX = elementRect.left;\r\n    this.barcodeService.showBarcodePreview = true;\r\n  }\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiTableElement } from \"../../../../../elements/StiTableElement\";\r\nimport { StiModelService } from \"../../../../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../../../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"table-navigation\",\r\n    template: `\r\n    <div class=\"table-property-header\">\r\n      <a (click)=\"setTablePropertyHeader('Main')\"\r\n        ><span [class]=\"getClass('Main')\">{{ loc.get2(\"FormOptions\", \"Main\") }}</span></a\r\n      >\r\n      <a (click)=\"setTablePropertyHeader('Columns')\"\r\n        ><span [class]=\"getClass('Columns')\">{{ loc.getP(\"Columns\") }}</span></a\r\n      >\r\n      <a (click)=\"setTablePropertyHeader('Rows')\"\r\n        ><span [class]=\"getClass('Rows')\">{{ loc.getP(\"Rows\") }}</span></a\r\n      >\r\n      <a (click)=\"setTablePropertyHeader('Totals')\"\r\n        ><span [class]=\"getClass('Totals')\" (click)=\"setTablePropertyHeader('Totals')\">{{\r\n          loc.getP(\"Totals\")\r\n        }}</span></a\r\n      >\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      .table-property-header {\r\n        display: flex;\r\n        height: 30px;\r\n        align-items: center;\r\n        background-color: var(--back-color);\r\n        width: 100%;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        font-family: \"Segoe UI\";\r\n        font-size: 13px;\r\n      }\r\n      a span {\r\n        height: 100%;\r\n        padding: 3px;\r\n        padding-top: 6px;\r\n        align-items: center;\r\n        justify-items: center;\r\n      }\r\n\r\n      .table-property-header a {\r\n        height: 100%;\r\n        width: 100%;\r\n        text-decoration: none;\r\n        text-align: center;\r\n        font-size: 13px;\r\n        cursor: default;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .table-property-header a:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n      a:hover span {\r\n        width: 100%;\r\n      }\r\n      .current {\r\n        color: var(--text-color);\r\n        font-weight: bold;\r\n        border-bottom: 2px solid rgb(42, 115, 197);\r\n      }\r\n\r\n      .other {\r\n        color: var(--text-color);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class TableNavigationComponent implements OnInit {\r\n  constructor(public loc: StiLocalizationService, public model: StiModelService) {\r\n    model.currentTablePropertyHeader.subscribe((header) => {\r\n      this.model.currentTableHeader = header;\r\n    });\r\n  }\r\n  setTablePropertyHeader(header) {\r\n    this.model.currentTableHeader = header;\r\n    if (this.model.selectedComponent.element instanceof StiTableElement) {\r\n      if (header == \"Columns\") {\r\n        this.model.selectedComponent.element.showColumnsEditor = true;\r\n      } else if (header == \"Rows\") {\r\n        this.model.selectedComponent.element.showRowsEditor = true;\r\n      } else if (header == \"Totals\") {\r\n        this.model.selectedComponent.element.showTotalsEditor = true;\r\n      } else {\r\n        this.model.selectedComponent.element.showHeaderEditor = true;\r\n      }\r\n    }\r\n    this.model.needToRefresh.next(true);\r\n  }\r\n  getClass(header: string) {\r\n    return this.model.currentTableHeader == header ? \"current\" : \"other\";\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport StiRectangleGeometryLayout from \"../../../../computed/StiRectangleGeometryLayout\";\r\nimport { StiFormElement } from \"../../../../elements/base/StiFormElement\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiMouseService } from \"../../../../services/mouse.service\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\n\r\n@Component({\r\n    selector: \"sti-component-height-editor\",\r\n    template: `\r\n    <table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n      @if (property.type === 'componentHeight') {\r\n        <tr>\r\n          <td colspan=\"5\" [style]=\"{ width: '100%' }\">\r\n            <div class=\"number-box\">\r\n              <div class=\"value\">\r\n                <input\r\n                  type=\"number\"\r\n                  (blur)=\"onLostFocus($event)\"\r\n                  (keyup.enter)=\"onLostFocus($event)\"\r\n                  [value]=\"value\"\r\n                  class=\"p-inputnumber-button\"\r\n                [style]=\"{\r\n                  width: '100%',\r\n                  height: '100%',\r\n                  fontSize: '12px',\r\n                  fontWeight: '500',\r\n                  padding: '3px 5px',\r\n                  borderRadius: '3px'\r\n                }\"\r\n                  />\r\n                </div>\r\n                <div class=\"buttons\">\r\n                  <div\r\n                    class=\"button-up\"\r\n                    (mousedown)=\"setIncDec(model.form.settings.gridVerticalStep)\"\r\n                    (mouseup)=\"clear()\"\r\n                    (mouseleave)=\"clear()\"\r\n                    >\r\n                    <i class=\"pi pi-angle-up\"></i>\r\n                  </div>\r\n                  <div\r\n                    class=\"button-down\"\r\n                    (mousedown)=\"setIncDec(-model.form.settings.gridVerticalStep)\"\r\n                    (mouseup)=\"clear()\"\r\n                    (mouseleave)=\"clear()\"\r\n                    >\r\n                    <i class=\"pi pi-angle-down\"></i>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n            </td>\r\n          </tr>\r\n        }\r\n      </table>\r\n    `,\r\n    styles: [\r\n        `\r\n      .value:hover {\r\n        cursor: text;\r\n      }\r\n      .image-upload > input {\r\n        display: none;\r\n      }\r\n      .number-box {\r\n        width: 100%;\r\n        height: 24px;\r\n        border: 1px solid var(--inputBorder-color);\r\n        border-radius: 3px;\r\n        background-color: var(--input-color);\r\n        position: relative;\r\n        display: flex;\r\n      }\r\n      .value {\r\n        outline: none;\r\n        width: 100%;\r\n        height: 100%;\r\n      }\r\n      .value input {\r\n        outline: none;\r\n        background-color: var(--input-color);\r\n        -moz-appearance: textfield;\r\n        color: var(--text-color);\r\n        border: 0px;\r\n      }\r\n      .value input[type=\"number\"]::-webkit-inner-spin-button,\r\n      .value input[type=\"number\"]::-webkit-outer-spin-button {\r\n        -webkit-appearance: none;\r\n        margin: 0;\r\n        opacity: 0;\r\n      }\r\n\r\n      .value:after {\r\n        content: \"\";\r\n        position: absolute;\r\n        right: 22px;\r\n        z-index: 100;\r\n        top: 2px;\r\n        width: 1px;\r\n        height: 18px;\r\n        background-color: var(--inputBorder-color);\r\n      }\r\n      .buttons {\r\n        width: 22px;\r\n        height: 100%;\r\n        align-self: flex-end;\r\n        display: flex;\r\n        flex-direction: column;\r\n\r\n        color: rgb(186, 185, 184);\r\n      }\r\n      .button-up {\r\n        width: 22px;\r\n        position: relative;\r\n        height: 11px;\r\n        border-bottom: 1px solid var(--inputBorder-color);\r\n        text-align: center;\r\n      }\r\n      .button-up:hover {\r\n        background-color: rgb(209, 208, 207);\r\n      }\r\n      .button-up:active {\r\n        background-color: rgb(195, 195, 195);\r\n      }\r\n      .button-down {\r\n        width: 22px;\r\n        position: relative;\r\n        height: 11px;\r\n        text-align: center;\r\n      }\r\n      .button-down:hover {\r\n        background-color: rgb(209, 208, 207);\r\n      }\r\n      .button-down:active {\r\n        background-color: rgb(195, 195, 195);\r\n      }\r\n      i {\r\n        position: absolute;\r\n        left: 5px;\r\n        height: 8px;\r\n        width: 9px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiComponentHeightEditorComponent implements OnInit, OnDestroy {\r\n  @Input() property: StiEditorProperty;\r\n  @Input() element?: StiFormElement;\r\n  mouseUpSubscription: Subscription;\r\n  public buttonDown = 0;\r\n  public mouseOver = false;\r\n  public focused = false;\r\n  private incTimeout: any;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public render: StiRectangleGeometryLayout,\r\n    public mouseService: StiMouseService\r\n  ) { }\r\n  ngOnDestroy(): void {\r\n    this.mouseUpSubscription?.unsubscribe();\r\n  }\r\n\r\n  public get value(): number {\r\n    return this.helper.getProperty(this.element, this.property.property);\r\n  }\r\n  public set value(val: number) {\r\n    this.helper.setProperty(this.element, this.property.property, this.checkValue(val));\r\n    let container = this.model.getElementPage(this.element) ?? this.model.getElementPanel(this.element);\r\n    this.render.insertElement(this.element, container.contentAreaWidth);\r\n  }\r\n\r\n  onLostFocus(object) {\r\n    if (this.checkValue(Number(object.currentTarget.value)) != this.value) {\r\n      this.value = Number(object.currentTarget.value);\r\n    } else {\r\n      this.model.needToRefresh.next(true);\r\n      this.clear();\r\n    }\r\n    this.model.formEvents.next({ name: \"ValueChanged\" });\r\n  }\r\n  checkValue(value: number): number {\r\n    let container = this.model.getElementPage(this.element) ?? this.model.getElementPanel(this.element);\r\n    let otherElements = Array.from(container.elements);\r\n    otherElements.splice(otherElements.indexOf(this.element), 1);\r\n    let freeAreaHeight = this.render.getFreeToBottomResizeArea(this.element, otherElements);\r\n    let oldValue = this.helper.getProperty(this.element, this.property.property);\r\n    let roundValue =\r\n      Math.round(value / this.model.form.settings.gridVerticalStep) * this.model.form.settings.gridVerticalStep;\r\n    if (roundValue <= this.element.geometry.minHeight) {\r\n      return this.element.geometry.minHeight;\r\n    } else if (roundValue >= oldValue + freeAreaHeight) {\r\n      return oldValue + freeAreaHeight;\r\n    } else {\r\n      return roundValue;\r\n    }\r\n  }\r\n\r\n  clear() {\r\n    setTimeout(() => {\r\n      this.buttonDown = 0;\r\n    }, 0);\r\n  }\r\n  setIncDec(value: number) {\r\n    if (this.incTimeout) {\r\n      clearTimeout(this.incTimeout);\r\n      this.incTimeout = null;\r\n    }\r\n    setTimeout(() => {\r\n      this.value += value;\r\n      this.buttonDown = value;\r\n      this.incDecTimer();\r\n      this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    }, 0);\r\n  }\r\n\r\n  public incDecTimer(first = true) {\r\n    let this_ = this;\r\n    this.incTimeout = setTimeout(\r\n      () => {\r\n        if (this_.buttonDown != 0) {\r\n          this_.value += this_.buttonDown;\r\n          this_.incDecTimer(false);\r\n          this.model.formEvents.next({ name: \"ValueChanged\" });\r\n        }\r\n      },\r\n      first ? 400 : 50\r\n    );\r\n  }\r\n  ngOnInit() {\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe(() => {\r\n      this.buttonDown = 0;\r\n    });\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n    selector: \"sti-autoComplete\",\r\n    template: `\r\n    <div class=\"autoComplete-container\">\r\n      <div class=\"autoComplete-input\">\r\n        <input type=\"text\" [value]=\"value\" (input)=\"inputEvent($event.target.value)\" (blur)=\"blurEvent($event)\" />\r\n        <div class=\"autoComplete-select-button\" (click)=\"showItemsList = !showItemsList; showCompleteItemsList = false\">\r\n          <i class=\"pi pi-chevron-down\"></i>\r\n        </div>\r\n      </div>\r\n      @if (showItemsList) {\r\n        <div\r\n          class=\"autoComplete-list-container\"\r\n          [style.border]=\"items.length == 0 ? 'none' : '1px solid #c8c8c8'\"\r\n          >\r\n          @for (item of items; track item) {\r\n            <div class=\"list-item\" (click)=\"selectItem(item)\">\r\n              <span class=\"label\">{{ item }}</span>\r\n              @if (item != 'cloud.stimulsoft.com') {\r\n                <span class=\"delete-button\" (click)=\"removeItem(item, $event)\"\r\n                  ><img [src]=\"model.getImage('images.Other.CloseForm.png')\"\r\n                /></span>\r\n              }\r\n            </div>\r\n          }\r\n        </div>\r\n      }\r\n      @if (showCompleteItemsList) {\r\n        <div\r\n          class=\"autoComplete-list-container\"\r\n          [style.border]=\"completeItems.length == 0 ? 'none' : '1px solid #c8c8c8'\"\r\n          >\r\n          @for (option of completeItems; track option) {\r\n            <div class=\"list-item\" (click)=\"selectItem(option)\">\r\n              <span class=\"label\">{{ option }}</span>\r\n            </div>\r\n          }\r\n        </div>\r\n      }\r\n    </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .list-item {\r\n        display: flex;\r\n        align-items: center;\r\n        font-weight: normal;\r\n        font-size: 12px;\r\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif,\r\n          \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n        width: 100%;\r\n        color: #333333;\r\n        padding: 0.429rem 0.857rem;\r\n      }\r\n      .list-item:hover {\r\n        background: #eaeaea;\r\n        cursor: pointer;\r\n      }\r\n      .label {\r\n        width: 100%;\r\n      }\r\n      .autoComplete-container {\r\n        position: relative;\r\n      }\r\n      .autoComplete-list-container {\r\n        position: absolute;\r\n        top: 24px;\r\n        z-index: 1001;\r\n        width: 100%;\r\n        border-radius: 3px;\r\n        border: 1px solid #c8c8c8;\r\n        background-color: white;\r\n        overflow: auto;\r\n        max-height: 400px;\r\n        box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\r\n      }\r\n      .autoComplete-container {\r\n        height: 24px;\r\n        width: 100%;\r\n        border-radius: 3px;\r\n        border: 1px solid rgb(107, 107, 107);\r\n        margin-top: 1px;\r\n      }\r\n      .autoComplete-input {\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .autoComplete-input input {\r\n        width: 100%;\r\n        outline: none;\r\n        border: 0;\r\n        height: 100%;\r\n        border-radius: 3px;\r\n        font-size: 12px;\r\n        font-weight: 500;\r\n        padding: 3px 5px;\r\n      }\r\n      .autoComplete-select-button {\r\n        width: 22px;\r\n        height: 24px;\r\n        display: flex;\r\n        justify-content: center;\r\n        align-items: center;\r\n        color: lightgray;\r\n      }\r\n      .autoComplete-select-button:hover {\r\n        cursor: pointer;\r\n      }\r\n      img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .delete-button:hover img {\r\n        filter: saturate(500%) contrast(100%) brightness(900%) invert(900%) sepia(50%);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiAutoCompleteComponent implements OnInit, OnDestroy {\r\n  @Input() value: string;\r\n  @Input() items: any[];\r\n  @Output() valueChange: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n  showItemsList: boolean;\r\n  showCompleteItemsList: boolean;\r\n  completeItems: any[] = [];\r\n  isSearching: boolean = false;\r\n  delay: number = 300;\r\n  timeout;\r\n  hideSubscription: Subscription;\r\n  constructor(public model: StiModelService) {}\r\n  ngOnDestroy(): void {\r\n    this.hideSubscription.unsubscribe();\r\n    this.checkUpdates();\r\n  }\r\n  blurEvent(event) {\r\n    this.checkUpdates();\r\n  }\r\n  selectItem(item) {\r\n    this.value = item;\r\n    this.valueChange.emit(this.value);\r\n    this.showItemsList = false;\r\n    this.showCompleteItemsList = false;\r\n  }\r\n  inputEvent(value) {\r\n    this.showItemsList = false;\r\n    this.isSearching = true;\r\n    this.showCompleteItemsList = false;\r\n    this.value = value;\r\n    this.valueChange.emit(this.value);\r\n    this.filterItems(value);\r\n    setTimeout(() => {\r\n      this.isSearching = false;\r\n    });\r\n  }\r\n  clearTimeout() {\r\n    if (this.timeout) {\r\n      clearTimeout(this.timeout);\r\n      this.timeout = null;\r\n    }\r\n  }\r\n  removeItem(url, event) {\r\n    event.stopPropagation();\r\n\r\n    if (url == this.value && this.model.isCloudMode) {\r\n      this.value = \"cloud.stimulsoft.com\";\r\n    }\r\n    this.model.enteredUrls.splice(this.model.enteredUrls.indexOf(url), 1);\r\n    this.updateStore();\r\n  }\r\n  checkUpdates() {\r\n    if (this.value.length > 0 && !this.items.find((item) => item == this.value)) {\r\n      if (this.model.enteredUrls.length == 20) {\r\n        this.model.enteredUrls.splice(19, 1);\r\n      }\r\n      this.model.enteredUrls.splice(0, 0, this.value);\r\n      this.updateStore();\r\n    }\r\n  }\r\n  filterItems(query) {\r\n    this.completeItems = [];\r\n    let filtered: any[] = [];\r\n    for (let i = 0; i < this.items.length; i++) {\r\n      let item = this.items[i];\r\n      if (item.toLowerCase().indexOf(query.toLowerCase()) == 0) {\r\n        filtered.push(item);\r\n      }\r\n    }\r\n\r\n    this.completeItems = filtered;\r\n    if (query && filtered) {\r\n      setTimeout(() => {\r\n        if (!this.isSearching) {\r\n          this.showCompleteItemsList = true;\r\n        }\r\n      }, this.delay);\r\n    }\r\n  }\r\n  updateStore() {\r\n    localStorage.removeItem(\"StiButtonLinks\");\r\n    localStorage.setItem(\"StiButtonLinks\", this.model.enteredUrls.toString());\r\n  }\r\n  ngOnInit() {\r\n    this.hideSubscription = this.model.hideActiveAutocompleteList.subscribe(() => {\r\n      if (this.showItemsList || this.showCompleteItemsList) {\r\n        this.showCompleteItemsList = false;\r\n        this.showItemsList = false;\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiEditorProperty } from \"../../../../services/objects\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiHelperService } from \"../../../../services/sti-helper.service\";\r\n\r\n@Component({\r\n    selector: \"auto-complete-editor\",\r\n    template: `<table class=\"sti-clear\" [style]=\"{ width: '100%' }\">\r\n    <tr>\r\n      <td colspan=\"2\">\r\n        <sti-autoComplete [(value)]=\"value\" [items]=\"items\"></sti-autoComplete>\r\n      </td>\r\n    </tr>\r\n\r\n    <tr></tr>\r\n  </table>`,\r\n    styles: [\r\n        `\r\n      td {\r\n        padding: 0;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class AutoCompleteEditorComponent implements OnInit {\r\n  @ViewChild(\"autoComplete\") autoComplete: ElementRef;\r\n\r\n  @Input() property: StiEditorProperty;\r\n  @Input() obj?: any;\r\n\r\n  constructor(public model: StiModelService, public helper: StiHelperService) {}\r\n  public get items() {\r\n    return this.model.enteredUrls;\r\n  }\r\n  public get value(): string {\r\n    return this.helper.getProperty(this.obj, this.property.property);\r\n  }\r\n  public set value(val: string) {\r\n    let endValue;\r\n    if (val.indexOf(\",\") != -1) {\r\n      endValue = val.replace(/[\\s,]/g, \"\");\r\n    }\r\n    this.helper.setProperty(this.obj, this.property.property, endValue ?? val);\r\n  }\r\n  ngOnInit() {\r\n    if (this.value && !this.items.find((item) => item == this.value)) {\r\n      this.model.enteredUrls.push(this.value);\r\n    }\r\n  }\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { StiToolboxService } from \"../../../services/sti-toolbox.service\";\r\nimport { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport { StiFormPageElement } from \"../../../elements/StiFormPageElement\";\r\n\r\n@Component({\r\n    selector: \"sti-form-elements-dropdown\",\r\n    template: `\r\n    <div class=\"form-elements-dropdown-container\">\r\n      <div class=\"form-elements-dropdown\" #dropdown (click)=\"showDropdown()\">\r\n        <span>{{ getCurrentItemText() }}</span>\r\n        <i class=\"pi pi-chevron-down\"></i>\r\n        @if (items && model.showFormElementsList) {\r\n          <div\r\n            class=\"form-elements-list-container\"\r\n            [style.width.px]=\"dropdown.offsetWidth\"\r\n            >\r\n            @for (item of model.sortFormElementsList ? sortItems(items) : items; track item) {\r\n              <div\r\n                class=\"form-elements-list-item {{ isSelected(item) ? 'selected' : '' }}\"\r\n                (click)=\"selectItem(item)\"\r\n                >\r\n                <span>{{ getItemText(item) }}</span>\r\n              </div>\r\n            }\r\n          </div>\r\n        }\r\n      </div>\r\n      <div\r\n        class=\"sort-button {{ model.sortFormElementsList ? 'selected' : '' }}\"\r\n        (click)=\"model.sortFormElementsList = !model.sortFormElementsList\"\r\n        >\r\n        <img [src]=\"model.getImage('images.Other.Alphabetical.png')\" />\r\n      </div>\r\n    </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      i {\r\n        margin-top: 2px;\r\n      }\r\n      .selected {\r\n        background-color: rgb(238, 238, 238);\r\n      }\r\n      .form-elements-list-item {\r\n        font-size: 13px;\r\n        padding-left: 5px;\r\n        height: 28px;\r\n        display: flex;\r\n        align-items: center;\r\n        border-radius: 3px;\r\n      }\r\n\r\n      .form-elements-dropdown-container {\r\n        display: flex;\r\n        width: 100%;\r\n        margin: 5px 0px 4px 0px;\r\n      }\r\n      .form-elements-list-container {\r\n        position: absolute;\r\n        max-height: 300px;\r\n        background-color: white;\r\n        padding: 1px;\r\n        top: 24px;\r\n        left: 0px;\r\n        width: 250px;\r\n        z-index: 99999;\r\n        border: 1px solid #c8c8c8;\r\n        overflow-y: auto;\r\n        overflow-x: hidden;\r\n        border-radius: 3px;\r\n        font-size: 13px;\r\n        box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\r\n      }\r\n      .form-elements-dropdown {\r\n        width: 100%;\r\n        position: relative;\r\n        display: flex;\r\n        min-width: 300px;\r\n        height: 24px;\r\n        -webkit-user-select: none;\r\n        align-items: center;\r\n        background-color: white;\r\n        margin-left: 5px;\r\n        border-radius: 3px;\r\n        border: 1px solid var(--inputBorder-color);\r\n      }\r\n      .form-elements-dropdown:hover {\r\n        background-color: var(--hover-color);\r\n        cursor: pointer;\r\n      }\r\n      .form-elements-list-item:hover {\r\n        background-color: var(--hover-color);\r\n        cursor: pointer;\r\n      }\r\n      .form-elements-dropdown span {\r\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif,\r\n          \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n        font-size: 12px;\r\n        font-weight: 500;\r\n        color: var(--text-color);\r\n        flex: 1;\r\n        padding-left: 5px;\r\n      }\r\n      i {\r\n        color: rgb(186, 185, 184);\r\n        margin-right: 5px;\r\n      }\r\n      img {\r\n        width: 16px;\r\n        height: 16px;\r\n        margin: 0px 4px;\r\n      }\r\n      .sort-button {\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 0px 5px;\r\n      }\r\n      .sort-button:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFormElementsDropdownComponent implements OnInit, OnDestroy {\r\n  items: any[] = [\r\n    { name: \"Form\", label: \"Form\" },\r\n    { name: \"Page\", label: \"Page\" },\r\n  ];\r\n  changeSubscription: Subscription;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public toolboxService: StiToolboxService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  ngOnDestroy(): void {\r\n    this.changeSubscription.unsubscribe();\r\n  }\r\n  selectItem(item) {\r\n    if (item?.label == \"Form\") {\r\n      this.model.selectedPage = null;\r\n      this.model.selectedComponent = null;\r\n      setTimeout(() => {\r\n        this.model.needToRefresh.next(true);\r\n      });\r\n    } else if (item?.element instanceof StiFormPageElement) {\r\n      this.model.selectedPage = item.element;\r\n      setTimeout(() => {\r\n        this.model.needToRefresh.next(true);\r\n      });\r\n    } else {\r\n      this.model.needToSelectedComponent.next(item.element);\r\n      setTimeout(() => {\r\n        this.model.needToRefresh.next(true);\r\n      });\r\n    }\r\n  }\r\n  getItemText(item) {\r\n    return item ? `${item?.name} : ${item?.label}` : \"\";\r\n  }\r\n  getCurrentItemText() {\r\n    if (this.items) {\r\n      if (this.model?.selectedComponent) {\r\n        let item = this.items?.find((item) => item?.element == this.model.selectedComponent?.element);\r\n        return this.getItemText(item);\r\n      } else if (this.model?.selectedPage) {\r\n        let item = this.items?.find((item) => item?.element == this.model.selectedPage);\r\n        return this.getItemText(item);\r\n      } else {\r\n        let item = this.items?.find((item) => item?.label == \"Form\");\r\n        return this.getItemText(item);\r\n      }\r\n    }\r\n  }\r\n  fillItems() {\r\n    this.items = [];\r\n    this.items.push({ name: this.model.form?.formName ? this.model.form?.formName : \"Form\", label: \"Form\" });\r\n    this.model.form?.pages?.forEach((page) => {\r\n      this.items.push({ name: page.name, label: this.getLabel(page), element: page });\r\n      page.allElements.forEach((elem) => {\r\n        this.items.push({ name: elem.name, label: this.getLabel(elem), element: elem });\r\n      });\r\n    });\r\n  }\r\n  showDropdown() {\r\n    if (!this.model.showFormElementsList) {\r\n      this.fillItems();\r\n      this.model.showFormElementsList = true;\r\n    } else {\r\n      this.model.showFormElementsList = false;\r\n    }\r\n  }\r\n  getLabel(element) {\r\n    let toolboxElement = this.toolboxService?.elements?.find(\r\n      (elem) => elem.id == this.toolboxService.getToolboxId(element.type)\r\n    );\r\n    return element.type == \"StiPageElement\"\r\n      ? this.loc.get2(\"Components\", \"StiPage\")\r\n      : this.loc.get2(toolboxElement?.category ? toolboxElement?.category : \"Components\", toolboxElement?.caption) ??\r\n          element.type;\r\n  }\r\n  isSelected(item) {\r\n    if (this.model.selectedComponent) {\r\n      return item.element == this.model.selectedComponent.element;\r\n    } else if (this.model.selectedPage) {\r\n      return item.element == this.model.selectedPage;\r\n    } else {\r\n      return item.label == \"Form\";\r\n    }\r\n  }\r\n\r\n  sortItems(items) {\r\n    let sortedItems = [];\r\n    items.forEach((item) => {\r\n      sortedItems.push(item);\r\n    });\r\n    return sortedItems.sort(function (a, b): number {\r\n      const nameA = a.name.toUpperCase();\r\n      const nameB = b.name.toUpperCase();\r\n      if (nameA < nameB) {\r\n        return -1;\r\n      }\r\n      if (nameA > nameB) {\r\n        return 1;\r\n      }\r\n\r\n      return 0;\r\n    });\r\n  }\r\n  ngOnInit() {\r\n    this.fillItems();\r\n    this.changeSubscription = this.model.formEvents.subscribe((e) => {\r\n      if (e.name == \"FormChanged\" || e.name == \"SelectedComponentChanged\" || e.name == \"SelectedPageChanged\") {\r\n        this.fillItems();\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { StiAddressElement } from \"../../../elements/StiAddressElement\";\r\nimport { StiBarcodeElement } from \"../../../elements/StiBarcodeElement\";\r\nimport { StiButtonElement } from \"../../../elements/StiButtonElement\";\r\nimport { StiCheckBoxElement } from \"../../../elements/StiCheckBoxElement\";\r\nimport { StiComboBoxElement } from \"../../../elements/StiComboBoxElement\";\r\nimport { StiDateTimeBoxElement } from \"../../../elements/StiDateTimeBoxElement\";\r\nimport { StiFormPageElement } from \"../../../elements/StiFormPageElement\";\r\nimport { StiImageElement } from \"../../../elements/StiImageElement\";\r\nimport { StiLabelElement } from \"../../../elements/StiLabelElement\";\r\nimport StiLineElement from \"../../../elements/StiLineElement\";\r\nimport { StiListBoxElement } from \"../../../elements/StiListBoxElement\";\r\nimport { StiMultipleSelectionElement } from \"../../../elements/StiMultipleSelectionElement\";\r\nimport { StiNumberBoxElement } from \"../../../elements/StiNumberBoxElement\";\r\nimport { StiPDFSignatureElement } from \"../../../elements/StiPDFSignatureElement\";\r\nimport { StiPanelElement } from \"../../../elements/StiPanelElement\";\r\nimport { StiSignatureElement } from \"../../../elements/StiSignatureElement\";\r\nimport { StiSingleSelectionElement } from \"../../../elements/StiSingleSelectionElement\";\r\nimport { StiTableElement } from \"../../../elements/StiTableElement\";\r\nimport { StiTextBoxElement } from \"../../../elements/StiTextBoxElement\";\r\nimport { StiTextElement } from \"../../../elements/StiTextElement\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiHelperService } from \"../../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\nimport StiAddressCreator from \"../creators/StiAddressCreator\";\r\nimport StiBarcodeCreator from \"../creators/StiBarcodeCreator\";\r\nimport StiButtonCreator from \"../creators/StiButtonCreator\";\r\nimport StiCheckBoxCreator from \"../creators/StiCheckBoxCreator\";\r\nimport StiComboBoxCreator from \"../creators/StiComboBoxCreator\";\r\nimport StiDateTimeBoxCreator from \"../creators/StiDateTimeBoxCreator\";\r\nimport StiFormPageCreator from \"../creators/StiFormPageCreator\";\r\nimport StiImageCreator from \"../creators/StiImageCreator\";\r\nimport StiLabelCreator from \"../creators/StiLabelCreator\";\r\nimport StiLineCreator from \"../creators/StiLineCreator\";\r\nimport StiListBoxCreator from \"../creators/StiListBoxCreator\";\r\nimport StiMultipleSelectionCreator from \"../creators/StiMultipleSelectionCreator\";\r\nimport StiNumberBoxCreator from \"../creators/StiNumberBoxEditor\";\r\nimport StiPDFSignatureCreator from \"../creators/StiPDFSignatureCreator\";\r\nimport StiPanelCreator from \"../creators/StiPanelCreator\";\r\nimport StiSettingsCreator from \"../creators/StiSettingsCreator\";\r\nimport StiSignatureCreator from \"../creators/StiSignatureCreator\";\r\nimport StiSingleSelectionCreator from \"../creators/StiSingleSelectionCreator\";\r\nimport StiTableCreator from \"../creators/StiTableCreator\";\r\nimport StiTextBoxCreator from \"../creators/StiTextBoxCreator\";\r\nimport StiTextCreator from \"../creators/StiTextCreator\";\r\n\r\n@Component({\r\n  selector: \"property-grid\",\r\n  template: ` <div style=\"width: 100%;\">\r\n      <!--   <span *ngIf=\"this.model.selectedComponent\">{{\r\n      loc.get2(\r\n      helper.getLocalizationCategory(model.selectedComponent?.element.type),\r\n      helper.getLocalizationKey(model.selectedComponent?.element.type)\r\n      )\r\n    }}</span>\r\n    <span *ngIf=\"this.model.selectedPage\">{{\r\n      loc.get2(\"Components\", helper.getLocalizationKey(model.selectedPage?.type))\r\n    }}</span>\r\n    <span *ngIf=\"model.selectedComponent == null && model.selectedPage == null\">{{ loc.getP(\"FormSettings\") }}</span> -->\r\n    <sti-form-elements-dropdown></sti-form-elements-dropdown>\r\n    <table class=\"sti-clear p-component property-grid\">\r\n      @for (property of properties; track $index) {\r\n        <tr>\r\n          @if (\r\n            property.type != 'BooleanWithArrowEditor' &&\r\n            property.type != 'TableColumnsEditor' &&\r\n            property.type != 'tableNavigations' &&\r\n            hasValue(property.property)\r\n            ) {\r\n            <td\r\n              [colSpan]=\"property.type != 'divider' && property.type != 'defaultLabel' ? 1 : 2\"\r\n          [style]=\"{\r\n            padding: property.type != 'divider' && property.type != 'defaultLabel' ? '5px 0px 0px 5px' : '0px',\r\n            verticalAlign: 'top'\r\n          }\"\r\n              >\r\n              @if (property.type === 'divider') {\r\n                <sti-divider></sti-divider>\r\n              }\r\n              @if (property.type === 'defaultLabel') {\r\n                <span>{{ loc.getP(\"DefaultSettings\") }}</span>\r\n              }\r\n              @if (property.label) {\r\n                <div class=\"label\">\r\n                  {{ property.label.replace(\":\", \"\") }}\r\n                </div>\r\n              }\r\n            </td>\r\n          }\r\n          @if (property.type != 'divider' && hasValue(property.property)) {\r\n            <td\r\n          [colSpan]=\"\r\n            property.type == 'BooleanWithArrowEditor' ||\r\n            property.type == 'TableColumnsEditor' ||\r\n            property.type == 'tableNavigations'\r\n              ? 8\r\n              : ''\r\n          \"\r\n              [style]=\"{ width: '100%', padding: '0px 2px 0 px 2 px' }\"\r\n              >\r\n              @if (property.type === 'tableNavigations') {\r\n                <table-navigation [style]=\"{ width: '100%' }\"></table-navigation>\r\n              }\r\n              @if (property.type === 'autoCompleteEditor') {\r\n                <auto-complete-editor\r\n                  [property]=\"property\"\r\n                  [obj]=\"object\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></auto-complete-editor>\r\n              }\r\n              @if (property.type === 'checkbox') {\r\n                <sti-bool-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [object]=\"object\"\r\n                ></sti-bool-editor>\r\n              }\r\n              @if (property.type === 'nameEditor') {\r\n                <sti-name-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-name-editor>\r\n              }\r\n              @if (property.type === 'color') {\r\n                <sti-color-editor\r\n                  [property]=\"property\"\r\n                  [obj]=\"object\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-color-editor>\r\n              }\r\n              @if (property.type === 'horizontalAlignment') {\r\n                <sti-horizontal-alignment-editor\r\n                  [property]=\"property\"\r\n                  [object]=\"object\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-horizontal-alignment-editor>\r\n              }\r\n              @if (property.type === 'verticalAlignment') {\r\n                <sti-vertical-alignment-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-vertical-alignment-editor>\r\n              }\r\n              @if (property.type === 'componentHeight') {\r\n                <sti-component-height-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  [element]=\"object\"\r\n                  >\r\n                </sti-component-height-editor>\r\n              }\r\n              @if (property.type === 'labelAlignment') {\r\n                <sti-label-alignment-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                  >\r\n                </sti-label-alignment-editor>\r\n              }\r\n              @if (property.type === 'enum') {\r\n                <sti-enum-editor\r\n                  [property]=\"property\"\r\n                  [object]=\"object\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-enum-editor>\r\n              }\r\n              @if (property.type === 'simpleEnum') {\r\n                <sti-simple-enum-editor\r\n                  [property]=\"property\"\r\n                  [object]=\"object\"\r\n                  [style]=\"{ width: '95%' }\"\r\n                ></sti-simple-enum-editor>\r\n              }\r\n              @if (property.type === 'FontEditor') {\r\n                <sti-font-editor\r\n                  [object]=\"object\"\r\n                  [property]=\"property\"\r\n                ></sti-font-editor>\r\n              }\r\n              @if (property.type === 'image') {\r\n                <sti-image-editor\r\n                  [object]=\"object\"\r\n                  [property]=\"property\"\r\n                ></sti-image-editor>\r\n              }\r\n              @if (property.type === 'customDate') {\r\n                <sti-initial-value-datetime-box-editor\r\n                  [property]=\"property\"\r\n                  [object]=\"object\"\r\n                ></sti-initial-value-datetime-box-editor>\r\n              }\r\n              @if (property.type === 'barcodeStyles') {\r\n                <sti-barcode-style-editor\r\n                  [property]=\"property\"\r\n                  [element]=\"object\"\r\n                ></sti-barcode-style-editor>\r\n              }\r\n              @if (property.type === 'PaddingEditor') {\r\n                <sti-padding-editor [property]=\"property\"></sti-padding-editor>\r\n              }\r\n              @if (property.type === 'MultilineEditor') {\r\n                <sti-multiline-string-editor\r\n                  [property]=\"property\"\r\n                ></sti-multiline-string-editor>\r\n              }\r\n              @if (\r\n                property.type === 'NumberEditor' || property.type === 'pageNumberEditor' || property.type === 'Number'\r\n                ) {\r\n                <sti-number-editor\r\n                  [property]=\"property\"\r\n                  [obj]=\"object\"\r\n                ></sti-number-editor>\r\n              }\r\n              @if (property.type === 'paperKind' && this.model.selectedPage) {\r\n                <sti-paper-kind-editor\r\n                  [property]=\"property\"\r\n                ></sti-paper-kind-editor>\r\n              }\r\n              @if (property.type === 'TextEditor') {\r\n                <sti-text-editor\r\n                  [object]=\"object\"\r\n                  [property]=\"property\"\r\n                  [disabled]=\"needToDisable(property)\"\r\n                ></sti-text-editor>\r\n              }\r\n              @if (property.type === 'TableItemEditor') {\r\n                <sti-table-item-editor\r\n                  [property]=\"property\"\r\n                ></sti-table-item-editor>\r\n              }\r\n              @if (property.type === 'TableBorderEditor') {\r\n                <sti-table-border-editor\r\n                  [property]=\"property\"\r\n                ></sti-table-border-editor>\r\n              }\r\n              @if (property.type === 'BooleanWithArrowEditor') {\r\n                <boolean-with-arrow-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '100%' }\"\r\n                ></boolean-with-arrow-editor>\r\n              }\r\n              @if (property.type === 'TableColumnsEditor') {\r\n                <sti-table-columns-editor\r\n                  [property]=\"property\"\r\n                  [style]=\"{ width: '100%' }\"\r\n                ></sti-table-columns-editor>\r\n              }\r\n              @if (property.type === 'ExceedMarginsEditor') {\r\n                <sti-exceed-margins-editor\r\n                  [property]=\"property\"\r\n                  [object]=\"object\"\r\n                  [style]=\"{ width: '100%' }\"\r\n                ></sti-exceed-margins-editor>\r\n              }\r\n              @if (property.type === 'labelFormat' || property.type === 'currencyFormat') {\r\n                <sti-select-button-editor\r\n                  [propertyType]=\"property.type\"\r\n                  [property]=\"property.property\"\r\n                  [object]=\"object\"\r\n                  [style.height.px]=\"24\"\r\n                  [style.display]=\"'flex'\"\r\n                  >\r\n                </sti-select-button-editor>\r\n              }\r\n            </td>\r\n          }\r\n        </tr>\r\n      }\r\n    </table>\r\n    </div>`,\r\n  styles: [\r\n    `\r\n      .table-property-header {\r\n        width: 100%;\r\n        display: flex;\r\n        margin-bottom: -3px;\r\n      }\r\n      .table-property-header span {\r\n        flex: 1;\r\n        display: flex;\r\n        font-size: 13px;\r\n        justify-content: center;\r\n        align-items: center;\r\n        margin: 0;\r\n        font-weight: normal;\r\n        border-bottom: 3px solid transparent;\r\n      }\r\n      .table-property-header span:hover {\r\n        background-color: var(--hover-color);\r\n        color: rgb(85, 121, 174);\r\n      }\r\n      .table-property-header .current {\r\n        color: rgb(118, 118, 118);\r\n        font-weight: 600;\r\n        border-color: var(--text-color);\r\n        z-index: 1;\r\n      }\r\n\r\n      .table-property-header .other {\r\n        color: var(--text-color);\r\n      }\r\n      .property-grid {\r\n        position: relative;\r\n      }\r\n      .property-grid-resizer {\r\n        height: 100%;\r\n        min-width: 8px;\r\n      }\r\n      .property-grid-resizer:hover {\r\n        cursor: ew-resize;\r\n      }\r\n      table {\r\n        width: 100%;\r\n        font-size: 13px;\r\n        font-weight: 600;\r\n        -webkit-user-select: none;\r\n      }\r\n\r\n      span {\r\n        color: rgb(118, 118, 118);\r\n        font-size: 13px;\r\n        font-weight: bold;\r\n        margin-left: 5px;\r\n        margin-top: 15px;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .label {\r\n        font-size: 13px;\r\n        font-weight: normal;\r\n        min-width: 120px;\r\n        color: var(--property-label-color);\r\n        white-space: nowrap;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiPropertyGridComponent implements OnInit, OnDestroy {\r\n  private savedTableJson: string;\r\n  public propertiesComponents: [];\r\n  public startWidth;\r\n  public startX;\r\n  public isDrag: boolean = false;\r\n  public properties = [];\r\n  public get isTable(): boolean {\r\n    return this.model?.selectedComponent?.element instanceof StiTableElement ? true : false;\r\n  }\r\n  public get object(): any {\r\n    if (this.model.selectedComponent) {\r\n      return this.model.selectedComponent.element;\r\n    } else if (this.model.selectedPage) {\r\n      return this.model.selectedPage;\r\n    } else {\r\n      return this.model.form.settings;\r\n    }\r\n  }\r\n  hasValue(property: string): boolean {\r\n    if (\r\n      (property?.includes(\"label\") || property?.includes(\"description\")) &&\r\n      !property?.includes(\"value\") &&\r\n      this.object != this.model.form.settings\r\n    ) {\r\n      if (property.includes(\"label\")) {\r\n        let value = this.helper.getProperty(this.object, \"label.value\");\r\n        if (value) {\r\n          return true;\r\n        } else return false;\r\n      } else {\r\n        if (this.object instanceof StiAddressElement) {\r\n          return true;\r\n        }\r\n        let value = this.helper.getProperty(this.object, \"description.value\");\r\n        if (value) {\r\n          return true;\r\n        } else return false;\r\n      }\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n  refreshSubscription: Subscription;\r\n  refreshFromLocalizationSubscription: Subscription;\r\n  constructor(public model: StiModelService, public helper: StiHelperService, public loc: StiLocalizationService) { }\r\n  ngOnDestroy(): void {\r\n    this.refreshSubscription?.unsubscribe();\r\n    this.refreshFromLocalizationSubscription?.unsubscribe();\r\n  }\r\n  ngOnInit(): void {\r\n    this.refreshSubscription = this.model.needToRefresh.subscribe(() => this.updateProperties());\r\n    this.refreshFromLocalizationSubscription = StiLocalizationService.needToRefresh.subscribe(() => {\r\n      this.updateProperties();\r\n    });\r\n  }\r\n  public needToDisable(property) {\r\n    if (this.object instanceof StiSingleSelectionElement || this.object instanceof StiMultipleSelectionElement) {\r\n      if (this.object.prefix.length > 0 && property.property == \"suffix\") {\r\n        return true;\r\n      } else if (this.object.suffix.length > 0 && property.property == \"prefix\") {\r\n        return true;\r\n      } else {\r\n        return false;\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  back() {\r\n    if (this.model.selectedComponent.element instanceof StiTableElement) {\r\n      this.model.selectedComponent.element.showHeaderEditor = false;\r\n      this.model.selectedComponent.element.showColumnsEditor = false;\r\n      this.model.selectedComponent.element.showRowsEditor = false;\r\n      this.model.selectedComponent.element.showTotalsEditor = false;\r\n      this.model.needToRefresh.next(true);\r\n    }\r\n  }\r\n\r\n  private checkTableProperties() {\r\n    if (this.model.selectedComponent?.element instanceof StiTableElement) {\r\n      let tableJson = (this.model.selectedComponent?.element).saveToJsonObject({}).serialize();\r\n      if (tableJson != this.savedTableJson) {\r\n        this.savedTableJson = tableJson;\r\n        this.model.form.formEvents.next({ name: \"ValueChanged\" });\r\n      }\r\n      setTimeout(() => {\r\n        this.checkTableProperties();\r\n      }, 500);\r\n    } else {\r\n      this.savedTableJson = null;\r\n    }\r\n  }\r\n\r\n  public updateProperties() {\r\n    this.properties = [];\r\n    this.checkTableProperties();\r\n\r\n    if (this.model.selectedComponent?.element instanceof StiCheckBoxElement) {\r\n      StiCheckBoxCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiTextBoxElement) {\r\n      StiTextBoxCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiNumberBoxElement) {\r\n      StiNumberBoxCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiComboBoxElement) {\r\n      StiComboBoxCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiListBoxElement) {\r\n      StiListBoxCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiSingleSelectionElement) {\r\n      StiSingleSelectionCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiMultipleSelectionElement) {\r\n      StiMultipleSelectionCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiLineElement) {\r\n      StiLineCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiSignatureElement) {\r\n      StiSignatureCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiPDFSignatureElement) {\r\n      StiPDFSignatureCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiPanelElement) {\r\n      StiPanelCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiDateTimeBoxElement) {\r\n      StiDateTimeBoxCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiTableElement) {\r\n      StiTableCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element, this.model);\r\n    } else if (this.model.selectedComponent?.element instanceof StiImageElement) {\r\n      StiImageCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiButtonElement) {\r\n      StiButtonCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiBarcodeElement) {\r\n      StiBarcodeCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiTextElement) {\r\n      StiTextCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiLabelElement) {\r\n      StiLabelCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedComponent?.element instanceof StiAddressElement) {\r\n      StiAddressCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedPage instanceof StiFormPageElement) {\r\n      StiFormPageCreator.createPropertyEditors(this.properties, this.model.selectedComponent?.element);\r\n    } else if (this.model.selectedPage == null && this.model.selectedComponent == null && this.model.form) {\r\n      StiSettingsCreator.createPropertyEditors(this.properties, this.model.form.settings);\r\n    }\r\n  }\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n    selector: \"app-properties\",\r\n    template: `\r\n    <div class=\"property-grid-resizer\" (mousedown)=\"onMouseDown($event)\"></div>\r\n    <div class=\"property-grid-container\">\r\n      <div class=\"property-grid-components\">\r\n        @if (model.currentPropertyGridMode == 'Tree') {\r\n          <forms-tree></forms-tree>\r\n        }\r\n        @if (model.currentPropertyGridMode == 'Properties') {\r\n          <property-grid></property-grid>\r\n        }\r\n      </div>\r\n      <div class=\"property-grid-navigation\">\r\n        <property-grid-navigation></property-grid-navigation>\r\n      </div>\r\n    </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .property-grid-resizer {\r\n        height: 100%;\r\n        min-width: 8px;\r\n      }\r\n      .property-grid-resizer:hover {\r\n        cursor: ew-resize;\r\n      }\r\n      .property-grid-container {\r\n        display: flex;\r\n        flex-direction: column;\r\n        width: 100%;\r\n      }\r\n      .property-grid-components {\r\n        flex: 1;\r\n        overflow-y: scroll;\r\n        scroll-behavior: smooth;\r\n      }\r\n      * {\r\n        scrollbar-width: thin;\r\n        scrollbar-color: var(--thumb-color), var(--back-color);\r\n      }\r\n\r\n      *::-webkit-scrollbar {\r\n        -webkit-appearance: none;\r\n        background-color: var(--back-color);\r\n        height: 10px;\r\n        width: 10px;\r\n        outline: none;\r\n      }\r\n\r\n      *::-webkit-scrollbar-button {\r\n        -webkit-appearance: none;\r\n        height: 3px;\r\n        width: 3px;\r\n      }\r\n\r\n      *::-webkit-scrollbar-thumb {\r\n        -webkit-appearance: none;\r\n        background-color: var(--thumb-color);\r\n        height: 10px;\r\n        min-width: 25px;\r\n        max-width: 80%;\r\n        border-radius: 4px;\r\n        border: 2px solid var(--back-color);\r\n      }\r\n\r\n      *::-webkit-scrollbar-thumb:hover {\r\n        background-color: var(--trackHover-color);\r\n        height: 10px;\r\n      }\r\n\r\n      *::-webkit-scrollbar-track {\r\n        -webkit-appearance: none;\r\n        background-color: var(--back-color);\r\n        border: 1px solid var(--back-color);\r\n      }\r\n      *::-webkit-scrollbar-corner {\r\n        background-color: var(--back-color);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class PropertiesComponent implements OnInit, OnDestroy {\r\n  public startWidth;\r\n  public startX;\r\n  public isDrag: boolean = false;\r\n\r\n  mouseUpSubscription: Subscription;\r\n  mouseMoveSubscription: Subscription;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public mouseService: StiMouseService,\r\n    public helper: StiHelperService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  ngOnDestroy(): void {\r\n    this.mouseUpSubscription?.unsubscribe();\r\n    this.mouseMoveSubscription?.unsubscribe();\r\n  }\r\n  ngOnInit(): void {\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.drag(event);\r\n    });\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe((event: MouseEvent) => {\r\n      this.endDrag(event);\r\n    });\r\n  }\r\n\r\n  onMouseDown(event) {\r\n    event.preventDefault();\r\n\r\n    this.startWidth = this.model.propertyGridWidth;\r\n    this.startX = event.clientX;\r\n\r\n    this.isDrag = true;\r\n  }\r\n\r\n  drag(event) {\r\n    if (this.isDrag) {\r\n      let delta = event.clientX - this.startX;\r\n      if (this.startWidth - delta >= 500) {\r\n        this.model.propertyGridWidth = 500;\r\n      } else if (this.startWidth - delta <= 220) {\r\n        this.model.propertyGridWidth = 220;\r\n      } else {\r\n        this.model.propertyGridWidth = this.startWidth - delta;\r\n      }\r\n    }\r\n  }\r\n  endDrag(event) {\r\n    this.isDrag = false;\r\n  }\r\n}\r\n","import { AfterViewChecked, AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiDraggableService } from \"../services/sti-draggable.service\";\r\n\r\n@Component({\r\n    selector: \"sti-draggable-element-container\",\r\n    template: `\r\n    <div\r\n      #element\r\n      style=\"position: absolute; z-index: 999; background-color:rgb(226,226,226); opacity:0.7; userSelect:none;\"\r\n      [style.visibility]=\"model.draggingElement ? 'visible' : 'hidden'\"\r\n      [style.left.px]=\"draggableService.left\"\r\n      [style.top.px]=\"draggableService.top\"\r\n      [style.width.px]=\"model.draggingElement?.width\"\r\n      [style.height.px]=\"model.draggingElement?.height\"\r\n      [style.transform]=\"model.getScale()\"\r\n      [style.transform-origin]=\"'left top'\"\r\n    >\r\n      <sti-component-holder [element]=\"model.draggingElement\"></sti-component-holder>\r\n    </div>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiDraggableElementContainerComponent implements OnInit, AfterViewInit, AfterViewChecked {\r\n  @ViewChild(\"element\") container: ElementRef;\r\n  constructor(public draggableService: StiDraggableService, public model: StiModelService) {}\r\n\r\n  ngOnInit() {}\r\n  ngAfterViewChecked(): void {}\r\n  ngAfterViewInit(): void {}\r\n}\r\n","import { Component, OnInit, ComponentFactoryResolver } from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport { StiToolbarResizerService } from \"../services/sti-toolbar-resizer.service\";\r\nimport { StiToolboxService } from \"../services/sti-toolbox.service\";\r\n\r\n@Component({\r\n    selector: \"sti-toolbox\",\r\n    template: `\r\n    <div class=\"elements\" id=\"Elements\" hidden=\"false\">\r\n      @if (this.isMaximize) {\r\n        <p>Elements</p>\r\n      }\r\n      @for (element of toolboxService.elements; track element) {\r\n        <sti-toolbox-element [element]=\"element\"></sti-toolbox-element>\r\n      }\r\n      <!-- <sti-draggable-element-container></sti-draggable-element-container> -->\r\n      @if (toolboxService.isToolboxOutlineElementsDividerEnabled() && model.getBooleanSetting('showSetupToolbox')) {\r\n        <div\r\n          class=\"divider\"\r\n          [style.height.px]=\"4\"\r\n          [style.width.px]=\"28\"\r\n          >\r\n          <div [style.height.px]=\"1\" [style.width.px]=\"22\" [style.border-bottom]=\"'1px solid rgb(170,170,170)'\"></div>\r\n        </div>\r\n      }\r\n      @if (model.getBooleanSetting('showSetupToolbox')) {\r\n        <div\r\n          class=\"element\"\r\n          (click)=\"model.showToolboxSetup = true\"\r\n          [stiTooltip]=\"loc.get2('FormDesigner', 'SetupToolbox')\"\r\n          tooltipPosition=\"right\"\r\n          showDelay=\"500\"\r\n          >\r\n          <img [src]=\"model.getImage('images.Other.SmallSetupToolbox.png')\" style=\"pointer-events: none\" />\r\n        </div>\r\n      }\r\n    </div>\r\n    <!-- <sti-toolbar-resizer [style.visibility]=\"this.model.previewMode ? 'hidden' : ''\"></sti-toolbar-resizer> -->\r\n    `,\r\n    styles: [\r\n        `\r\n      .elements {\r\n        width: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n        font-size: 18px;\r\n        justify-content: flex-start;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .divider {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      p {\r\n        margin-top: 1px;\r\n        margin-bottom: 3px;\r\n        margin-left: 5px;\r\n        font-weight: 500;\r\n        color: var(--text-color);\r\n      }\r\n      .element {\r\n        width: 28px;\r\n        height: 28px;\r\n        background-color: inherit;\r\n        color: var(--text-color);\r\n        border-radius: 3px;\r\n        display: flex;\r\n        flex-wrap: nowrap;\r\n        font-size: 13px;\r\n        font-weight: 500;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n\r\n      .element:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n\r\n      .element.active {\r\n        background-color: var(--active-color);\r\n      }\r\n      img {\r\n        vertical-align: sub;\r\n        width: 16px;\r\n        height: 16px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiToolboxComponent implements OnInit {\r\n  get isMaximize(): boolean {\r\n    return this.toolbarResizerService.isMaximizeMode;\r\n  }\r\n\r\n  constructor(\r\n    private resolver: ComponentFactoryResolver,\r\n    public model: StiModelService,\r\n    public toolboxService: StiToolboxService,\r\n    public toolbarResizerService: StiToolbarResizerService,\r\n    public loc: StiLocalizationService\r\n  ) { }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiThemeService } from \"../../services/theme.service\";\r\nimport { StiFormCheckerService } from \"../../services/sti-form-checker.service\";\r\n\r\n@Component({\r\n    selector: \"sti-footer\",\r\n    templateUrl: \"./footer.component.html\",\r\n    standalone: false\r\n})\r\nexport class StiFooterComponent implements OnInit {\r\n  public currentTheme;\r\n  public isIncrement: boolean = false;\r\n  public isDecrement: boolean = false;\r\n  public timeout;\r\n  public interval;\r\n  public get themes() {\r\n    return StiModelService.THEMES;\r\n  }\r\n  public get cloud() {\r\n    return this.loc.getP(\"StimulsoftCloud\");\r\n  }\r\n  public get size() {\r\n    return this.model.zoom <= 1\r\n      ? (this.model.zoom * 100).toFixed(0)\r\n      : (100 + ((this.model.zoom - 1) / 3) * 100).toFixed(0);\r\n  }\r\n  public get calculatedSize() {\r\n    return (this.model.zoom * 100).toFixed(0);\r\n  }\r\n  public get isMobileViewer(): boolean {\r\n    return this.model.isMobile() && this.model.viewerMode;\r\n  }\r\n  public get step() {\r\n    return this.model.zoom <= 1 ? 10 : 1;\r\n  }\r\n  setSize(value: number) {\r\n    if (value <= 100) {\r\n      (this.model.zoom = value / 100).toFixed(1);\r\n    } else {\r\n      setTimeout(() => {\r\n        this.model.zoom = Number((1 + ((value - 100) / 100) * 3).toFixed(1));\r\n      });\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public theme: StiThemeService,\r\n    public loc: StiLocalizationService,\r\n    public formCheckerService: StiFormCheckerService\r\n  ) {\r\n    this.model.isMobileViewer.subscribe(() => {\r\n      setTimeout(() => {\r\n        this.zoomByWidth();\r\n      });\r\n    });\r\n    this.model.formEvents.subscribe((e) => {\r\n      if (e.name == \"SetZoomByPageWidth\") {\r\n        this.zoomByWidth();\r\n      } else if (e.name == \"SetZoomByOnePage\") {\r\n        this.zoomByOnePage();\r\n      } else if (e.name == \"SetDefaultZoom\") {\r\n        this.setDefaultZoom();\r\n      }\r\n    });\r\n  }\r\n  zoomByWidth() {\r\n    let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n    let width = workspace[\"offsetWidth\"];\r\n    let pageElem = document.querySelectorAll(\".page-container\")[0];\r\n    let pagetWithMaxWidth = this.model.form.pages.reduce((acc, curr) => (acc.width > curr.width ? acc : curr));\r\n    this.model.zoom = width / (pagetWithMaxWidth.width + 30);\r\n    setTimeout(() => {\r\n      let rect = this.model.getPositionRelativeToForm(pageElem);\r\n\r\n      if (this.isMobileViewer) {\r\n        if (workspace.scrollLeft != workspace.scrollWidth - rect.width - 6) {\r\n          workspace.scrollLeft = workspace.scrollWidth - rect.width - 6;\r\n        }\r\n      } else {\r\n        if (workspace.scrollLeft != (workspace.scrollWidth - rect.width) / 2) {\r\n          workspace.scrollLeft = (workspace.scrollWidth - rect.width) / 2;\r\n        }\r\n      }\r\n    }, 0);\r\n  }\r\n  setDefaultZoom() {\r\n    this.model.zoom = 1;\r\n  }\r\n  zoomByOnePage() {\r\n    let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n    let height = workspace[\"offsetHeight\"];\r\n    let elementWithMaxHeight = this.model.form.pages.reduce((acc, curr) => (acc.height > curr.height ? acc : curr));\r\n    let width = workspace[\"offsetWidth\"];\r\n    let elementWithMaxWidth = this.model.form.pages.reduce((acc, curr) => (acc.width > curr.width ? acc : curr));\r\n    let currentCoef =\r\n      height / (elementWithMaxHeight.height + 25) >\r\n        width / (elementWithMaxWidth.width + (this.model.previewMode ? 0 : 60))\r\n        ? width / (elementWithMaxWidth.width + (this.model.previewMode ? 0 : 60))\r\n        : height / (elementWithMaxHeight.height + 25);\r\n    this.model.zoom = currentCoef;\r\n  }\r\n  changeTheme() {\r\n    this.theme.currentTheme = this.currentTheme;\r\n  }\r\n  clearTimers() {\r\n    this.isIncrement = false;\r\n    this.isDecrement = false;\r\n    clearTimeout(this.timeout);\r\n    clearInterval(this.interval);\r\n  }\r\n  iterate() {\r\n    if (this.isIncrement) {\r\n      this.model.zoom += 0.1;\r\n    } else if (this.isDecrement) {\r\n      this.model.zoom -= 0.1;\r\n    }\r\n  }\r\n  setIncrementInterval() {\r\n    this.isIncrement = true;\r\n    this.iterate();\r\n    let this_ = this;\r\n    this.timeout = setTimeout(function () {\r\n      this_.interval = setInterval(function () {\r\n        this_.iterate();\r\n      }, 50);\r\n    }, 300);\r\n  }\r\n  setDecrementInterval() {\r\n    this.isDecrement = true;\r\n    this.iterate();\r\n    let this_ = this;\r\n    this.timeout = setTimeout(function () {\r\n      this_.interval = setInterval(function () {\r\n        this_.iterate();\r\n      }, 50);\r\n    }, 300);\r\n  }\r\n  ngOnInit(): void { }\r\n}\r\n","<div class=\"sti-footer\">\r\n  <div class=\"cloud-content\">\r\n    @if (formCheckerService.hasIssue) {\r\n      <div\r\n        class=\"warnings-container\"\r\n        (click)=\"formCheckerService.displayFormsChecker()\"\r\n        >\r\n        <div class=\"vertical-line\"></div>\r\n        <div class=\"warning-panel\">\r\n          <img [src]=\"model.getImage('images.Form_Checker.Warning.png')\" />\r\n          <span class=\"warnings-count\">{{ formCheckerService.issuesCount }}</span>\r\n        </div>\r\n      </div>\r\n    }\r\n    @if (model.isCloudMode && model.viewerMode && model.basePlanIsTrial) {\r\n      <a\r\n        href=\"https://cloud.stimulsoft.com/\"\r\n        target=\"_blank\"\r\n        >{{ cloud }}</a\r\n        >\r\n      }\r\n    </div>\r\n    @if (model.getBooleanSetting('showZoomButtons')) {\r\n      <div class=\"zoom-buttons\">\r\n        @if (!isMobileViewer) {\r\n          <div class=\"vertical-line\"></div>\r\n        }\r\n        <div\r\n          class=\"button\"\r\n          [stiTooltip]=\"loc.get2('Zoom', 'PageWidth')\"\r\n          tooltipPosition=\"top\"\r\n          showDelay=\"500\"\r\n          (click)=\"zoomByWidth()\"\r\n          >\r\n          <img [src]=\"model.getImage('images.Other.ZoomWidth.png')\" alt=\"\" />\r\n        </div>\r\n        <div\r\n          class=\"button\"\r\n          [stiTooltip]=\"loc.get2('Zoom', 'OnePage')\"\r\n          tooltipPosition=\"top\"\r\n          showDelay=\"500\"\r\n          (click)=\"zoomByOnePage()\"\r\n          >\r\n          <img [src]=\"model.getImage('images.Other.ZoomSize.png')\" alt=\"\" />\r\n        </div>\r\n        <div\r\n          class=\"button\"\r\n          [stiTooltip]=\"loc.get2('Zoom', 'ZoomTo100')\"\r\n          tooltipPosition=\"top\"\r\n          showDelay=\"500\"\r\n          (click)=\"setDefaultZoom()\"\r\n          >\r\n          <img [src]=\"model.getImage('images.Other.Zoom100.png')\" alt=\"\" />\r\n        </div>\r\n        @if (!isMobileViewer) {\r\n          <div class=\"vertical-line\"></div>\r\n        }\r\n        @if (!isMobileViewer) {\r\n          <label> {{ calculatedSize }}%</label>\r\n        }\r\n        @if (!isMobileViewer) {\r\n          <div\r\n            class=\"button\"\r\n            [stiTooltip]=\"loc.get2('FormViewer', 'Zoom') + ' -'\"\r\n            tooltipPosition=\"top\"\r\n            showDelay=\"500\"\r\n            (mousedown)=\"setDecrementInterval()\"\r\n            (mouseup)=\"clearTimers()\"\r\n            (mouseleave)=\"clearTimers()\"\r\n            >\r\n            <img [src]=\"model.getImage('images.Other.ZoomMinus.png')\" alt=\"\" />\r\n          </div>\r\n        }\r\n        @if (!isMobileViewer) {\r\n          <input\r\n            type=\"range\"\r\n            min=\"10\"\r\n            max=\"200\"\r\n            [step]=\"step\"\r\n            [value]=\"size\"\r\n            (input)=\"setSize($event.target.value)\"\r\n            />\r\n        }\r\n        @if (!isMobileViewer) {\r\n          <div class=\"slider-vertical-line\"></div>\r\n        }\r\n        @if (!isMobileViewer) {\r\n          <div\r\n            class=\"button\"\r\n            [stiTooltip]=\"loc.get2('FormViewer', 'Zoom') + ' +'\"\r\n            tooltipPosition=\"left\"\r\n            showDelay=\"500\"\r\n            (mousedown)=\"setIncrementInterval()\"\r\n            (mouseup)=\"clearTimers()\"\r\n            (mouseleave)=\"clearTimers()\"\r\n            >\r\n            <img [src]=\"model.getImage('images.Other.ZoomPlus.png')\" alt=\"\" />\r\n          </div>\r\n        }\r\n      </div>\r\n    }\r\n\r\n    <!-- <p-dropdown\r\n    [options]=\"helper.themes\"\r\n    [(ngModel)]=\"currentTheme\"\r\n    optionLabel=\"name\"\r\n    optionValue=\"name\"\r\n    [style]=\"{ width: '100px',marginTop:'3px',marginRight:'5px' }\"\r\n    (onChange)=\"changeTheme()\"\r\n  ></p-dropdown> -->\r\n</div>\r\n<style>\r\n  .zoom-buttons {\r\n  width: fit-content;\r\n  display: flex;\r\n  position: relative;\r\n}\r\n.warnings-count {\r\nmargin-left: 5px;\r\nfont-size: 12px;\r\n}\r\n.warning-panel {\r\ndisplay: flex;\r\nalign-items: center;\r\npadding: 0px 10px;\r\nborder-radius: 3px;\r\nheight: 100%;\r\n}\r\n.warnings-container {\r\ndisplay: flex;\r\nposition: absolute;\r\nalign-items: center;\r\ntop: 0;\r\nright: 0;\r\nheight: 100%;\r\n}\r\n.warning-panel:hover {\r\nbackground-color: rgb(18, 64, 120);\r\n}\r\nimg {\r\nheight: 16px;\r\nwidth: 16px;\r\n}\r\n.cloud-content {\r\nflex: 1;\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: center;\r\nposition: relative;\r\n}\r\n.vertical-line {\r\nheight: 32px;\r\nwidth: 1px;\r\nmargin-left: 3px;\r\nmargin-right: 3px;\r\nborder-right: 1px solid rgb(149, 171, 205);\r\n}\r\n.slider-vertical-line {\r\nposition: absolute;\r\nheight: 11px;\r\nwidth: 1px;\r\nmargin-left: 3px;\r\nmargin-right: 3px;\r\ntop: 11px;\r\nright: 84px;\r\nbackground-color: white;\r\npointer-events: none;\r\n}\r\na {\r\nfont-size: 16px;\r\nfont-family: Arial;\r\ncursor: pointer;\r\ncolor: white;\r\ntext-decoration: none;\r\n}\r\nspan {\r\nfont-size: 18px;\r\nfont-weight: bold;\r\ncolor: rgb(255, 255, 255);\r\n}\r\n.button {\r\nheight: 31px;\r\nwidth: 32px;\r\nbackground-color: rgb(25, 71, 138);\r\ndisplay: flex;\r\nalign-items: center;\r\njustify-content: center;\r\n}\r\n.button:hover {\r\nbackground-color: rgb(18, 64, 120);\r\n}\r\n.button:active {\r\nbackground-color: rgb(0, 32, 80);\r\n}\r\n.sti-footer {\r\nwidth: 100%;\r\nheight: 32px;\r\ndisplay: flex;\r\njustify-content: flex-end;\r\nborder-top: 1px solid var(--formBorder-color);\r\n-webkit-touch-callout: none;\r\n-webkit-user-select: none;\r\nbackground-color: rgb(25, 71, 138);\r\nfont-family: \"Segoe UI\";\r\nposition: relative;\r\n}\r\n\r\n.sti-footer input[type=\"range\"] {\r\nmargin-top: 3px;\r\nmargin-right: 3px;\r\nmargin-left: 3px;\r\nwidth: 100px;\r\n-webkit-appearance: none;\r\nbackground-color: rgb(25, 71, 138);\r\n}\r\n\r\n.sti-footer input[type=\"range\"]:focus {\r\noutline: none;\r\n}\r\n\r\ninput[type=\"range\"]::-webkit-slider-runnable-track {\r\nwidth: 100%;\r\nheight: 2px;\r\ncursor: default;\r\nbox-shadow: 0px 0px 0px rgb(255, 255, 255);\r\nbackground: linear-gradient(to bottom, rgb(38, 87, 170) 0%, rgb(98, 135, 199) 50%);\r\nborder-radius: 0px;\r\nborder: 0px solid rgb(255, 255, 255);\r\n}\r\ninput[type=\"range\"]::-moz-range-track {\r\nwidth: 100%;\r\nheight: 2px;\r\ncursor: default;\r\nbox-shadow: 0px 0px 0px rgb(255, 255, 255);\r\nbackground: linear-gradient(to bottom, rgb(38, 87, 170) 0%, rgb(98, 135, 199) 50%);\r\nborder-radius: 0px;\r\nborder: 0px solid rgb(255, 255, 255);\r\n}\r\n\r\ninput[type=\"range\"]::-webkit-slider-thumb {\r\nheight: 15px;\r\nwidth: 15px;\r\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABESURBVHgBxY/dCQAgCIStCRyhUdukNmmERrKTfsAHe/WD4/BOBJMAcsj0IaqsTrdzfNPF0t4KBobmKdTZ3EBQoKF+swXwnjPbHIqL4gAAAABJRU5ErkJggg==\");\r\n    background-repeat: no-repeat;\r\n    background-position: center;\r\n    cursor: default;\r\n    -webkit-appearance: none;\r\n    margin-top: -6px;\r\n    z-index: 11;\r\n  }\r\n  input[type=\"range\"]::-moz-range-thumb {\r\nheight: 15px;\r\nwidth: 15px;\r\n    background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAKCAYAAAB4zEQNAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABESURBVHgBxY/dCQAgCIStCRyhUdukNmmERrKTfsAHe/WD4/BOBJMAcsj0IaqsTrdzfNPF0t4KBobmKdTZ3EBQoKF+swXwnjPbHIqL4gAAAABJRU5ErkJggg==\");\r\n    background-repeat: no-repeat;\r\n    background-position: center;\r\n    cursor: default;\r\n    -webkit-appearance: none;\r\n    margin-top: -6px;\r\n    border: 0;\r\n    background-color: transparent;\r\n  }\r\n\r\n  input[type=\"range\"]:focus::-webkit-slider-runnable-track {\r\n}\r\n\r\ninput[type=\"range\"]:-webkit-slider-thumb:focus {\r\n}\r\n\r\n.sti-footer label {\r\nmargin-top: 7px;\r\nmargin-left: 5px;\r\nwidth: 35px;\r\nvertical-align: sub;\r\nfont-size: 12px;\r\nfont-weight: bold;\r\ncolor: rgb(255, 255, 255);\r\n}\r\n</style>\r\n","import { AfterViewInit, Component, ElementRef, NgZone, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport ResizeObserver from \"resize-observer-polyfill\";\r\nimport StiRectangleGeometryLayout from \"../computed/StiRectangleGeometryLayout\";\r\nimport { StiFormElement } from \"../elements/base/StiFormElement\";\r\nimport { StiModelService } from \"../services/model.service\";\r\n\r\n@Component({\r\n    selector: \"sti-clone-element-container\",\r\n    template: `\r\n    <div\r\n      #clone\r\n      style=\"position: absolute; top:-9999px; left:-9999px; z-index: -1; opacity:0;white-space:nowrap; userSelect:none;\"\r\n      [style.width]=\"'min-content'\"\r\n      [style.height]=\"'auto'\"\r\n      [style.max-width.px]=\"maxWidth\"\r\n    >\r\n      <sti-component-holder [element]=\"element\" [isClone]=\"this.isClone\"></sti-component-holder>\r\n    </div>\r\n  `,\r\n    standalone: false\r\n})\r\nexport class StiCloneElementContainerComponent implements OnInit, AfterViewInit, OnDestroy {\r\n  public isClone: boolean = true;\r\n  public observer;\r\n  public lastUpdatedElement: any;\r\n  @ViewChild(\"clone\") clone: ElementRef;\r\n\r\n  constructor(public model: StiModelService, private zone: NgZone, public render: StiRectangleGeometryLayout) {\r\n    model.formEvents.subscribe((e) => {\r\n      if (e.name == \"ElementToUpdateChanged\" || e.name == \"SelectedComponentChanged\") {\r\n        this.updateObservable();\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnInit() {}\r\n\r\n  ngAfterViewInit(): void {\r\n    this.observer = new ResizeObserver((entries) => {\r\n      for (let entry of entries) {\r\n        const cr = entry.contentRect;\r\n        let element;\r\n        if (this.model.draggingElement && this.model.draggingElement != this.lastUpdatedElement) {\r\n          element = this.model.draggingElement;\r\n        } else if (this.model.elementToUpdate != null) {\r\n          element = this.model.elementToUpdate;\r\n        } else {\r\n          this.model.form?.pages.forEach((page) => {\r\n            page.allElements.forEach((component) => {\r\n              if (component === this.element) {\r\n                element = component;\r\n              }\r\n            });\r\n          });\r\n        }\r\n\r\n        this.zone.run(() => {\r\n          this.updateElement(element, cr);\r\n        });\r\n      }\r\n    });\r\n    this.observer?.observe(this.clone?.nativeElement);\r\n  }\r\n\r\n  updateElement(component: StiFormElement, cr: any) {\r\n    if (!component || component.type == \"TextElement\") {\r\n      return;\r\n    }\r\n    if (this.model.draggingElement && this.model.draggingElement == this.lastUpdatedElement) {\r\n      return;\r\n    }\r\n    if (this.lastUpdatedElement != component) {\r\n      this.lastUpdatedElement = component;\r\n    }\r\n    if (this.model.elementToUpdate == null) {\r\n      let bottomElements = [];\r\n      let freeAreaHeight;\r\n      let currentPage = this.model.getElementPage(this.model.selectedComponent?.element);\r\n      let currentPanel = this.model.getElementPanel(this.model.selectedComponent?.element);\r\n      currentPage?.elements?.forEach((elem) => {\r\n        if (elem.y >= this.model.selectedComponent.element.geometry.bottom) {\r\n          bottomElements.push(elem);\r\n        }\r\n      });\r\n      if (bottomElements.length > 0) {\r\n        let maxBottomPoint = Math.max(...bottomElements.map((elem) => elem.geometry.bottom));\r\n        freeAreaHeight = (currentPage?.contentAreaHeight || currentPanel?.height) - maxBottomPoint;\r\n      } else {\r\n        freeAreaHeight =\r\n          (currentPage?.contentAreaHeight || currentPanel?.height) -\r\n          this.model.selectedComponent?.element.geometry.bottom;\r\n      }\r\n    }\r\n\r\n    let parentContainer = component.getParent(this.model.form) ?? this.model.form.pages[0];\r\n    let sizeChanged = false;\r\n\r\n    let minHeight =\r\n      Number(((Math.round(cr.height) / this.currentVerticalStep) % 1).toFixed(2)) <= 0.5 &&\r\n      Math.round(cr.height) != parentContainer[\"contentAreaHeight\"]\r\n        ? Math.floor(cr.height / this.currentVerticalStep) * this.currentVerticalStep\r\n        : Math.ceil(cr.height / this.currentVerticalStep) * this.currentVerticalStep;\r\n    if (\r\n      component.geometry.minHeight != minHeight &&\r\n      minHeight <= parentContainer[\"contentAreaHeight\"] &&\r\n      minHeight != 0 &&\r\n      Math.abs(component.geometry.minHeight - minHeight) > 1\r\n    ) {\r\n      component.geometry.minHeight = minHeight;\r\n      sizeChanged = true;\r\n    } else if (minHeight >= parentContainer[\"contentAreaHeight\"] - component.geometry.y) {\r\n      component.geometry.minHeight = parentContainer[\"contentAreaHeight\"] - component.geometry.y;\r\n      sizeChanged = true;\r\n    }\r\n\r\n    if (parentContainer) {\r\n      let columnWidth = parentContainer.getColumnWidth(this.model.form.settings.gridColumns);\r\n      let minWidth = Math.max(\r\n        Math.min(Math.ceil(Number(cr.width.toFixed(2)) / columnWidth) * columnWidth, this.maxWidth),\r\n        columnWidth\r\n      );\r\n\r\n      if (minWidth != component.geometry.minWidth) {\r\n        component.geometry.minWidth = minWidth;\r\n        sizeChanged = true;\r\n      }\r\n\r\n      if (sizeChanged && this.model.draggingElement != component) {\r\n        this.render.insertElement(component);\r\n        this.render.checkOutputs(this.model.getElementPage(component));\r\n      }\r\n    } else {\r\n      component.geometry.minWidth = Math.max(cr.width, 2);\r\n    }\r\n\r\n    this.model.elementToUpdate = null;\r\n  }\r\n\r\n  updateObservable(): void {\r\n    this.observer?.unobserve(this.clone?.nativeElement);\r\n    this.observer?.observe(this.clone?.nativeElement);\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.observer?.unobserve(this.clone?.nativeElement);\r\n  }\r\n\r\n  get element(): StiFormElement {\r\n    return this.model.draggingElement\r\n      ? this.model.draggingElement\r\n      : this.model.elementToUpdate ?? this.model.selectedComponent?.element;\r\n  }\r\n\r\n  get maxWidth() {\r\n    return this.model?.draggingElement\r\n      ? this.model?.form?.pages[0].contentAreaWidth - this.element?.x\r\n      : this.element?.getParent(this.model.form)?.contentAreaWidth - this.element?.x;\r\n  }\r\n\r\n  get currentVerticalStep(): number {\r\n    return this.model.form?.settings?.gridVerticalStep != 1 ? this.model.form?.settings?.gridVerticalStep : 5;\r\n  }\r\n}\r\n","import { Component, HostListener, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiFormPageElement } from \"../../elements/StiFormPageElement\";\r\nimport { StiExportService } from \"../../services/sti-export.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"sti-modal-agree-window\",\r\n    template: `\r\n    <div class=\"modal-window\" [style.height]=\"'150px'\">\r\n      <div class=\"nav\">\r\n        <span>{{\r\n          model.showModalWindow ? loc.get2(\"Permissions\", \"ItemForms\") : loc.get2(\"MainMenu\", \"menuViewOptions\")\r\n        }}</span>\r\n      </div>\r\n      <div class=\"content\">\r\n        @if (model.showModalWindow) {\r\n          <img [src]=\"model.getImage('images.Other.Question.png')\" />\r\n        }\r\n        @if (model.showModalWindow) {\r\n          <p>{{ loc.get2(\"Questions\", \"qnPageDelete\") }}</p>\r\n        }\r\n        @if (exportService.showModalWindow) {\r\n          <div class=\"options\">\r\n            <sti-checkbox [(value)]=\"exportService.useReadOnly\" [label]=\"loc.getP('ReadOnly')\"></sti-checkbox>\r\n            <sti-checkbox [(value)]=\"exportService.usePdfA\" [label]=\"loc.get2('Export', 'PdfACompliance')\"></sti-checkbox>\r\n          </div>\r\n        }\r\n      </div>\r\n      <div class=\"buttons\" [style.padding-right.px]=\"3\" [style.align-self]=\"'flex-end'\">\r\n        <div class=\"button accept\" (click)=\"accept()\">\r\n          <span>\r\n            {{\r\n            model.showModalWindow\r\n            ? loc.get2(\"Buttons\", \"Yes\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n            : loc.get2(\"Gui\", \"barname_ok\")\r\n            }}\r\n          </span>\r\n        </div>\r\n        <div class=\"button cancel\" (click)=\"cancel()\">\r\n          <span>\r\n            {{\r\n            model.showModalWindow\r\n            ? loc.get2(\"Buttons\", \"No\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n            : loc.getP(\"Cancel\")\r\n            }}\r\n          </span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .options {\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n        width: 100%;\r\n        padding-left: 10px;\r\n      }\r\n      sti-checkbox {\r\n        margin-top: 5px;\r\n        margin-bottom: 5px;\r\n      }\r\n      .modal-window {\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        position: absolute;\r\n        top: calc(50% - 75px);\r\n        left: calc(50% - 150px);\r\n        padding: 0px;\r\n        font-family: \"Segoe UI\";\r\n        background-color: var(--back-color);\r\n        width: 300px;\r\n        height: 110px;\r\n        z-index: 9999999;\r\n        border-radius: 5px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        outline: 1px solid rgb(81, 92, 106);\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n      }\r\n      .nav {\r\n        width: 100%;\r\n        height: 30px;\r\n        background-color: rgb(81, 92, 106);\r\n        border-top-left-radius: 4px;\r\n        border-top-right-radius: 4px;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .nav span {\r\n        width: 100%;\r\n        margin-left: 10px;\r\n        color: white;\r\n        font-size: 13px;\r\n        font-family: \"Arial\";\r\n      }\r\n      .close {\r\n        height: 100%;\r\n        width: 40px;\r\n        border-top-right-radius: 5px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close:hover {\r\n        background-color: rgb(200, 60, 49);\r\n      }\r\n      .close:active {\r\n        background-color: rgb(196, 43, 28);\r\n      }\r\n      .close img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .content {\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        flex: 1;\r\n        padding: 10px;\r\n      }\r\n      .content img {\r\n        margin-left: 10px;\r\n        margin-right: 10px;\r\n        width: 32px;\r\n        height: 32px;\r\n      }\r\n      p {\r\n        font-size: 12px;\r\n        font-family: \"Arial\";\r\n        color: var(--text-color);\r\n      }\r\n      .buttons {\r\n        align-self: flex-end;\r\n        padding-bottom: 5px;\r\n        height: 32px;\r\n        display: flex;\r\n        padding-right: 3px;\r\n      }\r\n      .button {\r\n        width: 80px;\r\n        height: 24px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 0px 5px;\r\n      }\r\n      .button span {\r\n        font-size: 12px;\r\n        font-family: \"Arial\";\r\n        cursor: default;\r\n        margin: 0;\r\n        padding: 0;\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .cancel {\r\n        background-color: rgb(221, 221, 221);\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .cancel:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiModalAgreeWindowComponent implements OnInit {\r\n  @HostListener(\"document:keydown\", [\"$event\"])\r\n  handleKeyboardEvent(e: KeyboardEvent) {\r\n    if (e.code === \"Enter\") {\r\n      this.delete();\r\n    } else if (e.code === \"Escape\") {\r\n      this.cancel();\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public exportService: StiExportService,\r\n    public loc: StiLocalizationService\r\n  ) { }\r\n\r\n  delete() {\r\n    this.model.form.pages.forEach((page) => {\r\n      if (page === this.model.selectedPage) {\r\n        this.model.form.pages.splice(this.model.form.pages.indexOf(page), 1);\r\n        this.model.selectedPage = null;\r\n      }\r\n    });\r\n    if (this.model.form.pages.length == 0) {\r\n      let page1 = new StiFormPageElement(this.model.form);\r\n      this.model.form.pages.push(page1);\r\n      this.model.lastUsedPage = page1;\r\n    }\r\n    this.model.showModalWindow = false;\r\n  }\r\n  accept() {\r\n    if (this.model.showModalWindow) {\r\n      this.delete();\r\n    } else {\r\n      this.exportService.exportToPdf();\r\n      this.exportService.showModalWindow = false;\r\n    }\r\n  }\r\n  cancel() {\r\n    this.model.showModalWindow = false;\r\n    this.exportService.showModalWindow = false;\r\n  }\r\n  ngOnInit(): void { }\r\n}\r\n","import {\r\n  AfterViewChecked,\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  OnInit,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport { StiPen } from \"../properties/StiPen\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiColumnDraggableService } from \"../services/sti-column-draggable.service\";\r\n\r\n@Component({\r\n    selector: \"sti-draggable-column-container\",\r\n    template: `\r\n    @if (draggableService.isDragging) {\r\n      <div\r\n        #element\r\n        style=\"position: absolute; z-index: 999; background-color:rgb(226,226,226); opacity:0.7; userSelect:none;\"\r\n        [style.visibility]=\"draggableService.isDragging ? 'visible' : 'hidden'\"\r\n        [style.transform]=\"model.getScale()\"\r\n        [style.transform-origin]=\"'left top'\"\r\n        [style.left]=\"draggableService.left\"\r\n        [style.top]=\"draggableService.top\"\r\n        [style.width.px]=\"draggableService.fromTable ? draggableService?.item?.width : columnWidth\"\r\n        [style.height]=\"draggableService.fromTable ? 'auto' : '22px'\"\r\n        [style.pointer-events]=\"'none'\"\r\n        >\r\n        @if (draggableService.fromTable) {\r\n          <div>\r\n            <table [style.border]=\"getBorder(draggableService?.parentElement?.gridLines?.pen)\">\r\n              <tr>\r\n                <th\r\n                  [style.border]=\"getBorder(draggableService?.parentElement?.gridLines?.pen)\"\r\n                  [style]=\"draggableService.parentElement.font.htmlStyle()\"\r\n                  [style.height.px]=\"getColumnHeight('th')\"\r\n                  >\r\n                  {{ draggableService.itemLabel }}\r\n                </th>\r\n              </tr>\r\n              @for (row of draggableService.parentElement.rowLabelsContentEditable; track row; let i = $index) {\r\n                <tr>\r\n                  <td\r\n                    [style]=\"draggableService.parentElement.font.htmlStyle()\"\r\n                    [style.border]=\"getBorder(draggableService?.parentElement?.gridLines?.pen)\"\r\n                    [style.height.px]=\"getColumnHeight('td')\"\r\n                    >\r\n                    <sti-table-column-component\r\n                      [column]=\"draggableService.item\"\r\n                      [index]=\"i\"\r\n                      [element]=\"draggableService.parentElement\"\r\n                    ></sti-table-column-component>\r\n                  </td>\r\n                </tr>\r\n              }\r\n            </table>\r\n          </div>\r\n        }\r\n        @if (!draggableService.fromTable) {\r\n          <div class=\"boolean-button\">\r\n            <div class=\"arrow\">></div>\r\n            <div class=\"content\">\r\n              {{ draggableService.itemLabel }}\r\n            </div>\r\n          </div>\r\n        }\r\n      </div>\r\n    }\r\n    `,\r\n    styles: [\r\n        `\r\n      table {\r\n        width: 100%;\r\n        border-collapse: collapse;\r\n      }\r\n      th {\r\n        padding: 5px;\r\n      }\r\n      td {\r\n        padding: 4px;\r\n      }\r\n      .arrow {\r\n        width: 30px;\r\n        text-align: center;\r\n        cursor: default;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n\r\n      .content {\r\n        cursor: default;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        flex: 1;\r\n      }\r\n      .boolean-button {\r\n        width: 100%;\r\n        font-size: 12px;\r\n        height: 100%;\r\n        font-weight: 600;\r\n        display: flex;\r\n        padding-top: 2px;\r\n        flex-direction: row;\r\n        color: var(--text-color);\r\n        background-color: var(--hover-color);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiDraggableColumnContainerComponent implements OnInit, AfterViewInit, AfterViewChecked {\r\n  @ViewChild(\"element\") container: ElementRef;\r\n  constructor(\r\n    public draggableService: StiColumnDraggableService,\r\n    public model: StiModelService,\r\n    private cdref: ChangeDetectorRef\r\n  ) {}\r\n  ngOnInit() {}\r\n  public getBorder(pen: StiPen): string {\r\n    return pen.toHtmlBorder();\r\n  }\r\n  public get columnWidth() {\r\n    let booleanButton = document.querySelector(\".boolean-button\");\r\n    return booleanButton ? booleanButton.clientWidth : \"max-content\";\r\n  }\r\n  public getColumnHeight(type: string) {\r\n    if (this.draggableService?.fromTable) {\r\n      if (type == \"td\") {\r\n        let parentElement = document.getElementById(this.draggableService.parentElement.guid);\r\n        let tdElements = parentElement.getElementsByClassName(\"sti-table-td\");\r\n        return tdElements[0].clientHeight;\r\n      } else {\r\n        let parentElement = document.getElementById(this.draggableService.parentElement.guid);\r\n        let thElements = parentElement.getElementsByClassName(\"sti-table-th\");\r\n        return thElements[0].clientHeight;\r\n      }\r\n    } else {\r\n      return;\r\n    }\r\n  }\r\n  ngAfterViewChecked(): void {\r\n    // setTimeout(() => {\r\n    this.draggableService.containerHeight = this.container?.nativeElement.offsetHeight;\r\n    this.draggableService.containerWidth = this.container?.nativeElement.offsetWidth;\r\n    this.cdref.detectChanges();\r\n    // }, 0);\r\n  }\r\n  ngAfterViewInit(): void {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\n//import { StiModelService } from \"../../services/model.service\";\r\n\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiUserService } from \"../../services/sti-user-service\";\r\n\r\n@Component({\r\n    selector: \"sti-about-window-component\",\r\n    template: `\r\n    <div class=\"about-window\">\r\n      <div class=\"close-bar\">\r\n        <div class=\"close-button\" (click)=\"close()\"><img [src]=\"model.getImage('images.Other.CloseForm.png')\" /></div>\r\n      </div>\r\n      <div class=\"content\">\r\n        <span [style.margin-bottom]=\"'20px'\" [style.color]=\"'rgb(0,112,184)'\" [style.font-size]=\"'24px'\"\r\n          >Stimulsoft PDF Forms</span\r\n        >\r\n        <img [src]=\"model.getImage('images.Other.About.png')\" alt=\"\" />\r\n        <span [style.margin-top]=\"'20px'\">{{ copyright }}</span>\r\n        <span>Version: {{ version }} from {{ releaseDate }}, Angular</span>\r\n        <span> All rights reserved</span>\r\n        <span [style.font-weight]=\"'bold'\" [style.color]=\"!hasLicense ? 'red' : ''\">{{\r\n          userMail + (userMail && !hasLicense ? \", \" : \"\") + (!hasLicense ? \"Trial Version\" : \"\")\r\n        }}</span>\r\n        <a href=\"http://stimulsoft.com\" target=\"_blank\">www.stimulsoft.com</a>\r\n      </div>\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      a {\r\n        margin-top: 15px;\r\n        font-size: 12px;\r\n        color: rgb(58, 144, 255);\r\n      }\r\n      span {\r\n        margin: 10px;\r\n        font-size: 12px;\r\n      }\r\n      .about-window {\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        font-family: \"Arial\";\r\n        position: absolute;\r\n        z-index: 1000;\r\n        left: calc(50% - 275px);\r\n        top: calc(50% - 190px);\r\n        background-color: rgb(255, 255, 255);\r\n        width: 550px;\r\n        height: 380px;\r\n        border-radius: 5px;\r\n        border: 1px solid rgb(25, 71, 138);\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        padding: 0;\r\n      }\r\n      .close-bar {\r\n        height: 30px;\r\n        width: 100%;\r\n        display: flex;\r\n        flex-direction: row-reverse;\r\n      }\r\n      .close-button {\r\n        padding: 0;\r\n        margin: 0;\r\n        border-top-right-radius: 5px;\r\n        height: 30px;\r\n        width: 30px;\r\n        background-color: rgb(255, 255, 255);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(232, 17, 35);\r\n      }\r\n      .close-button:hover img {\r\n        filter: brightness(0) invert(1);\r\n      }\r\n      .content {\r\n        display: flex;\r\n        flex-direction: column;\r\n        height: 100%;\r\n        align-items: center;\r\n      }\r\n      img {\r\n        height: 100px;\r\n        width: 100px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiAboutWindowComponent implements OnInit {\r\n  public get align() {\r\n    return \"start\";\r\n  }\r\n  public get version() {\r\n    return this.model.assemblyInfo\r\n      ? this.model.assemblyInfo[\"version\"].slice(0, this.model.assemblyInfo[\"version\"].lastIndexOf(\".\"))\r\n      : \"2022.4.1\";\r\n  }\r\n  public get releaseDate() {\r\n    return this.model.assemblyInfo ? this.model.assemblyInfo[\"creationDate\"] : \" 27 Semptember 2022\";\r\n  }\r\n  public get copyright() {\r\n    return this.model.assemblyInfo ? this.model.assemblyInfo[\"copyright\"] : \"\";\r\n  }\r\n  public get userMail() {\r\n    return this.userService.currentUser\r\n      ? this.userService.currentUser.userName\r\n      : this.model.userName\r\n        ? this.model.userName\r\n        : \"\";\r\n  }\r\n  public get hasLicense() {\r\n    return this.userService.licenseProducts.find(\r\n      (product) =>\r\n        product.ident == \"Ultimate\" ||\r\n        product.ident == \"FormsWeb\" ||\r\n        product.ident == 1 ||\r\n        product.ident == 4 ||\r\n        product.ident == \"BICloud\" ||\r\n        product.ident == 18\r\n    );\r\n  }\r\n  constructor(public model: StiModelService, public userService: StiUserService) { }\r\n\r\n  close() {\r\n    this.model.showAboutWindow = false;\r\n  }\r\n  ngOnInit(): void { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiBarcodeElement } from \"../../../../elements/StiBarcodeElement\";\r\nimport { StiModelService } from \"../../../../services/model.service\";\r\nimport { StiBarcodeService } from \"../../../../services/sti-barcode.service\";\r\n\r\n@Component({\r\n  selector: \"sti-barcode-styles-preview\",\r\n  template: `\r\n    <div\r\n      #element\r\n      class=\"container\"\r\n      [style.visibility]=\"barcodeService.showBarcodePreview ? 'visible' : 'hidden'\"\r\n      [style.left.px]=\"barcodeService.previewX\"\r\n      [style.top.px]=\"barcodeService.previewY\"\r\n      [style.width.px]=\"barcodeService.previewWidth ? barcodeService.previewWidth : 192\"\r\n      >\r\n      <table class=\"sti-clear\" [style.width]=\"'100%'\">\r\n        @for (row of rows; track $index; let i = $index) {\r\n          <tr class=\"row-container\">\r\n            @for (item of itemsInRows; track $index; let ind = $index) {\r\n              <td\r\n            class=\"{{ items[i * itemsInRows.length + ind] ? '' : 'disabled' }} {{\r\n              currentItem && i * itemsInRows.length + ind + 1 == currentItem.style ? 'active' : ''\r\n            }}\"\r\n                (click)=\"selectStyle(i * itemsInRows.length + ind + 1)\"\r\n                >\r\n                @if (items[i * itemsInRows.length + ind]) {\r\n                  <sti-svg-image\r\n                    [svg]=\"items[i * itemsInRows.length + ind].innerHtml\"\r\n                  ></sti-svg-image>\r\n                }\r\n              </td>\r\n            }\r\n          </tr>\r\n        }\r\n      </table>\r\n    </div>\r\n    <style>\r\n      .container {\r\n      position: absolute;\r\n      z-index: 999;\r\n      background-color: var(--back-color);\r\n      -webkit-touch-callout: none;\r\n      -webkit-user-select: none;\r\n      width: 192px;\r\n      height: 233px;\r\n      border: 1px solid lightgray;\r\n      border-radius: 3px;\r\n      overflow-y: scroll;\r\n      overflow-x: hidden;\r\n      box-shadow: 0 3px 6px 0 rgb(0 0 0 / 16%);\r\n    }\r\n    .row-container {\r\n    display: flex;\r\n    width: 100%;\r\n    }\r\n\r\n    td {\r\n    flex: 1;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    padding: 3px 3px 0 3px;\r\n    }\r\n    td:hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    td:active {\r\n    background-color: var(--active-color);\r\n    }\r\n    .active {\r\n    background-color: rgb(190, 230, 253);\r\n    }\r\n    .disabled {\r\n    pointer-events: none;\r\n    }\r\n    </style>\r\n    `,\r\n  standalone: false\r\n})\r\nexport class StiBarcodeStylesPreviewComponent implements OnInit {\r\n  public itemWidth: number = 57;\r\n  public get items() {\r\n    return this.barcodeService.barcodeStyles;\r\n  }\r\n  public get itemsInRows() {\r\n    let items = new Array(Math.floor((this.barcodeService.previewWidth - 10) / this.itemWidth)).fill(1);\r\n    return items.length >= 1 ? items : new Array(1).fill(1);\r\n  }\r\n  public get rows() {\r\n    return new Array(Math.ceil(this.items.length / this.itemsInRows.length)).fill(2);\r\n  }\r\n  public get currentItem() {\r\n    return this.model.selectedComponent?.element && this.model.selectedComponent?.element instanceof StiBarcodeElement\r\n      ? this.model.selectedComponent?.element\r\n      : null;\r\n  }\r\n  constructor(public barcodeService: StiBarcodeService, public model: StiModelService) { }\r\n  selectStyle(index) {\r\n    this.currentItem.style = index;\r\n    this.barcodeService.showBarcodePreview = false;\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { AfterViewInit, Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { StiHttpClientService } from \"../../services/http-client.service\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\n@Component({\r\n    selector: \"sti-pdf-preview\",\r\n    template: ` @if (src) {<embed [src]=\"src\" style=\"width: 100%;height: 100%\" type=\"application/pdf\" />} `,\r\n    styles: [``],\r\n    standalone: false\r\n})\r\nexport class StiPdfPreviewComponent implements OnInit, AfterViewInit, OnDestroy {\r\n  public src;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public sanitizer: DomSanitizer,\r\n    public httpService: StiHttpClientService\r\n  ) {}\r\n  ngOnDestroy(): void {\r\n    if (this.model.selectedComponent) {\r\n      this.model.selectedComponent.element.needToSelectComponent = true;\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      let currentForm = this.model.currentFormState;\r\n      let data = {\r\n        action: \"GeneratePDF\",\r\n        form: currentForm,\r\n        settings: {\r\n          usePdfA: false,\r\n          readOnly: false,\r\n        },\r\n      };\r\n      this.httpService.post(this.model.requestUrl, data, \"byteArray\", { showProgress: true }).subscribe((data) => {\r\n        let pdfBytes = new Int8Array(data as ArrayBuffer);\r\n        this.model.showProgress = false;\r\n        let blob = new Blob([pdfBytes], { type: \"application/pdf\" });\r\n        let toolbar = this.model.isWebView ? \"#toolbar=0\" : \"\";\r\n        this.src = this.sanitizer.bypassSecurityTrustResourceUrl(URL.createObjectURL(blob) + toolbar);\r\n      });\r\n    }, 0);\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiToolboxService } from \"../../services/sti-toolbox.service\";\r\n\r\n@Component({\r\n    selector: \"sti-navbar-group-preview-component\",\r\n    template: `<div\r\n      class=\"parent-group-container\"\r\n      [style.visibility]=\"model.showGroupPreview ? 'visible' : 'hidden'\"\r\n      [style.left.px]=\"toolboxService.previewX\"\r\n      [style.top.px]=\"toolboxService.previewY\"\r\n      [style.width]=\"'max-content'\"\r\n      >\r\n      @if (toolboxService.currentGroup == 'Others') {\r\n        <div class=\"toolbox-content\">\r\n          @for (element of toolboxService.otherGroup; track element) {\r\n            <sti-toolbox-element\r\n              [forGroup]=\"true\"\r\n              [element]=\"element\"\r\n            ></sti-toolbox-element>\r\n          }\r\n        </div>\r\n      }\r\n      @if (toolboxService.currentGroup == 'Input') {\r\n        <div class=\"toolbox-content\">\r\n          @for (element of toolboxService.inputGroup; track element) {\r\n            <sti-toolbox-element\r\n              [forGroup]=\"true\"\r\n              [element]=\"element\"\r\n            ></sti-toolbox-element>\r\n          }\r\n        </div>\r\n      }\r\n      @if (toolboxService.currentGroup == 'Selection') {\r\n        <div class=\"toolbox-content\">\r\n          @for (element of toolboxService.selectionGroup; track element) {\r\n            <sti-toolbox-element\r\n              [forGroup]=\"true\"\r\n              [element]=\"element\"\r\n            ></sti-toolbox-element>\r\n          }\r\n        </div>\r\n      }\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      .parent-group-container {\r\n        position: absolute;\r\n        z-index: 999;\r\n        background-color: var(--back-color);\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        height: max-content;\r\n        padding: 1px 2px;\r\n        border: 1px solid lightgray;\r\n        border-radius: 3px;\r\n        overflow: hidden;\r\n        box-shadow: 0 3px 6px 0 rgb(0 0 0 / 16%);\r\n      }\r\n      .toolbox-content {\r\n        height: max-content;\r\n        width: max-content;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class NavbarGroupPreviewComponent implements OnInit {\r\n  constructor(\r\n    public toolboxService: StiToolboxService,\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiLocalStorageService } from \"../services/sti-local-storage.service\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport { StiToolboxService } from \"../services/sti-toolbox.service\";\r\n\r\n@Component({\r\n    selector: \"sti-setup-toolbox-component\",\r\n    template: `\r\n    <div class=\"modal-window\">\r\n      <div class=\"modal-window-navbar\">\r\n        <span [style.flex]=\"1\">{{ loc.get2(\"FormDesigner\", \"SetupToolbox\") }}</span>\r\n        <div class=\"close-button\" (click)=\"model.showToolboxSetup = false\">\r\n          <img [src]=\"model.getImage('images.Other.CloseForm.png')\" />\r\n        </div>\r\n      </div>\r\n      <div class=\"toolbox-elements-preview\">\r\n        <ul>\r\n          @for (element of toolboxService.elements; track element) {\r\n            <li\r\n              [style.display]=\"element.caption == 'Divider' ? 'none' : ''\"\r\n              [style.padding.px]=\"toolboxService.isEnabledFromSettings(element) ? 3 : 0\"\r\n              >\r\n              @if (toolboxService.isEnabledFromSettings(element)) {\r\n                <div class=\"setup-toolbox-item\">\r\n                  <sti-checkbox [(value)]=\"element.enabled\" [label]=\"\"></sti-checkbox>\r\n                  <img [src]=\"model.getImage(element.image)\" alt=\"\" />\r\n                  <span>{{\r\n                    element.caption != \"Input\" || element.caption != \"Other\" || element.caption != \"Selection\"\r\n                    ? loc.get2(element.category ? element.category : \"Components\", element.caption)\r\n                    : loc.getP(element.caption)\r\n                  }}</span>\r\n                </div>\r\n              }\r\n            </li>\r\n          }\r\n        </ul>\r\n      </div>\r\n      <div class=\"setup-options\">\r\n        <sti-checkbox\r\n          [(value)]=\"showToolbox\"\r\n          [label]=\"loc.get2('MainMenu', 'menuViewShowToolbox').replace('.', '')\"\r\n          [style.margin-bottom.px]=\"15\"\r\n          [style.color]=\"'var(--text-color)'\"\r\n        ></sti-checkbox>\r\n        <sti-checkbox\r\n          [(value)]=\"showInsertTab\"\r\n          [label]=\"loc.get2('MainMenu', 'menuViewShowInsertTab').replace('.', '')\"\r\n          [style.color]=\"'var(--text-color)'\"\r\n        ></sti-checkbox>\r\n      </div>\r\n      <div class=\"setup-accept\">\r\n        <div class=\"accept button\" (click)=\"acceptChanges()\">\r\n          <span [style.margin-left.px]=\"0\">{{ loc.get2(\"Buttons\", \"Ok\").replace(\"&amp\", \"\").replace(\";\", \"\") }}</span>\r\n        </div>\r\n        <div class=\"cancel button\" (click)=\"model.showToolboxSetup = false\">\r\n          <span [style.margin-left.px]=\"0\">{{ loc.getP(\"Cancel\") }}</span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .setup-toolbox-item {\r\n        display: flex;\r\n        position: relative;\r\n        align-items: center;\r\n      }\r\n      .pi {\r\n        font-size: 0.825rem;\r\n        color: var(--text-color);\r\n      }\r\n      .modal-window-navbar {\r\n        display: flex;\r\n        height: 30px;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n        -webkit-user-select: none;\r\n        color: white;\r\n        align-items: center;\r\n      }\r\n      .modal-window-navbar span {\r\n        font-size: 13px;\r\n      }\r\n      .close-button {\r\n        height: 30px;\r\n        width: 30px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n      .modal-window {\r\n        background-color: var(--back-color);\r\n        position: absolute;\r\n        left: calc(50% - 150px);\r\n        top: calc(50% - 222px);\r\n        z-index: 999;\r\n        width: 300px;\r\n        height: 444px;\r\n        overflow: hidden;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        border: 1px solid rgb(25, 71, 138);\r\n        color: var(--text-color);\r\n        font-size: 13px;\r\n        border-radius: 5px;\r\n        font-family: \"Arial\";\r\n        -webkit-user-select: none;\r\n      }\r\n      ul {\r\n        list-style: none;\r\n        margin: 0;\r\n        padding-left: 6px;\r\n        padding-top: 3px;\r\n      }\r\n      li {\r\n        display: flex;\r\n        position: relative;\r\n        padding: 3px;\r\n        align-items: center;\r\n      }\r\n      /*li::before {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 0px;\r\n        left: -8px;\r\n        border-left: 1px dotted lightgray;\r\n        width: 1px;\r\n        height: 100%;\r\n      }\r\n      li::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 17px;\r\n        left: -10px;\r\n        border-left: 1px dotted lightgray;\r\n        width: 16px;\r\n        height: 12px;\r\n        transform: rotate(90deg);\r\n      }*/\r\n      .toolbox-elements-preview {\r\n        margin: 10px;\r\n        border: 1px solid lightgray;\r\n        border-radius: 3px;\r\n        height: 300px;\r\n        overflow-y: scroll;\r\n      }\r\n      .setup-options {\r\n        padding-left: 10px;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      img {\r\n        margin-left: 3px;\r\n        height: 16px;\r\n        width: 15px;\r\n      }\r\n      span {\r\n        margin-left: 5px;\r\n        font-size: 12px;\r\n      }\r\n      .button {\r\n        height: 24px;\r\n        width: 80px;\r\n        border-radius: 3px;\r\n        margin: 3px 5px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border: 1px solid transparent;\r\n      }\r\n      .accept:active {\r\n        background-color: rgb(53, 93, 160);\r\n        border-color: rgb(38, 76, 125);\r\n      }\r\n      .cancel:active {\r\n        background-color: rgb(226, 226, 226);\r\n        border-color: rgb(131, 131, 131);\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .cancel {\r\n        background-color: rgb(221, 221, 221);\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .cancel:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n      .setup-accept {\r\n        padding: 8px;\r\n        display: flex;\r\n        align-items: flex-end;\r\n        justify-content: flex-end;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiSetupToolboxComponent implements OnInit {\r\n  private _showToolbox: boolean;\r\n  private _showInsertTab: boolean;\r\n\r\n  public get showToolbox(): boolean {\r\n    return this._showToolbox;\r\n  }\r\n\r\n  public set showToolbox(value: boolean) {\r\n    if (value == false && !this.showInsertTab) {\r\n      this._showInsertTab = true;\r\n      this._showToolbox = value;\r\n    } else {\r\n      this._showToolbox = value;\r\n    }\r\n  }\r\n\r\n  public get showInsertTab(): boolean {\r\n    return this._showInsertTab;\r\n  }\r\n\r\n  public set showInsertTab(value: boolean) {\r\n    if (value == false && !this.showToolbox) {\r\n      this._showToolbox = true;\r\n      this._showInsertTab = value;\r\n    } else {\r\n      this._showInsertTab = value;\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public toolboxService: StiToolboxService,\r\n    public stiLocalStorage: StiLocalStorageService\r\n  ) { }\r\n\r\n  acceptChanges() {\r\n    this.toolboxService.unusedElements = [];\r\n    this.toolboxService.elements.forEach((element) => {\r\n      if (!element.enabled && element.caption != \"Divider\") {\r\n        this.toolboxService.unusedElements.push(element.id);\r\n      }\r\n    });\r\n    this.stiLocalStorage.setItem(\"StiToolboxSetup\", JSON.stringify(this.toolboxService.unusedElements));\r\n    this.stiLocalStorage.setItem(\"StiShowInsertTab\", JSON.stringify(this.showInsertTab));\r\n    this.stiLocalStorage.setItem(\"StiShowToolbox\", JSON.stringify(this.showToolbox));\r\n    // document.cookie = \"StiToolboxSetup=\" + this.toolboxService.unusedElements.join();\r\n    this.model.showInsertTab = this.showInsertTab;\r\n    this.toolboxService.showToolbox = this.showToolbox;\r\n    this.model.showToolboxSetup = false;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this._showInsertTab = this.model.showInsertTab;\r\n    this._showToolbox = this.toolboxService.showToolbox;\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiHttpClientService } from \"../services/http-client.service\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiHelperService } from \"../services/sti-helper.service\";\r\nimport { StiLocalStorageService } from \"../services/sti-local-storage.service\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport { StiUserService } from \"../services/sti-user-service\";\r\n\r\n@Component({\r\n  selector: \"sti-localization-preview\",\r\n  template: `\r\n    <div\r\n      class=\"parent-localization-container\"\r\n      [style.visibility]=\"userService.showLocalizationPreview ? 'visible' : 'hidden'\"\r\n      [style.left.px]=\"userService.previewX\"\r\n      [style.top.px]=\"userService.previewY\"\r\n      [style.width.px]=\"loc.localizationList?.length > 0 ? 465 : 155\"\r\n      >\r\n      <div class=\"default\" [style.width.px]=\"loc.localizationList?.length > 0 ? 460 : 155\">\r\n        <div class=\"item\" (click)=\"setEvent('Default')\" [style.margin.px]=\"1\">\r\n          <span>{{ loc.getP(\"Default\") }}</span>\r\n        </div>\r\n        @if (loc.localizationList?.length > 0) {\r\n          <div\r\n            class=\"item {{ loc.defaultLocalization?.language == loc.currentLocalization?.language ? 'current' : '' }}\"\r\n            [style.margin.px]=\"1\"\r\n            (click)=\"setEvent('Default')\"\r\n            >\r\n            <span>{{ loc.defaultLocalization?.description }}</span>\r\n          </div>\r\n        }\r\n      </div>\r\n      @if (loc.localizationList?.length > 0) {\r\n        <div class=\"localization-list\">\r\n          <table class=\"sti-clear\" [style.width]=\"'100%'\">\r\n            @for (row of rows; track $index; let i = $index) {\r\n              <tr class=\"row-container\">\r\n                @for (item of itemsInRow; track $index; let ind = $index) {\r\n                  <td>\r\n                    @if (items[i * itemsInRow.length + ind]) {\r\n                      <div\r\n                (click)=\"\r\n                  model.isWebView\r\n                    ? setEvent(items[i * itemsInRow.length + ind]?.language)\r\n                    : setEvent(items[i * itemsInRow.length + ind]?.fileName)\r\n                \"\r\n                class=\"item {{\r\n                  items[i * itemsInRow.length + ind]?.language == loc.currentLocalization?.language ? 'current' : ''\r\n                }}\"\r\n                        >\r\n                        <span>{{ items[i * itemsInRow.length + ind]?.description }}</span>\r\n                      </div>\r\n                    }\r\n                  </td>\r\n                }\r\n              </tr>\r\n            }\r\n          </table>\r\n        </div>\r\n      }\r\n    </div>\r\n    `,\r\n  styles: [\r\n    `\r\n      table {\r\n        border-spacing: 2px;\r\n      }\r\n      td {\r\n        padding: 0;\r\n        max-width: 150px;\r\n        height: 32px;\r\n      }\r\n      .parent-localization-container {\r\n        position: absolute;\r\n        z-index: 999;\r\n        background-color: var(--back-color);\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        height: max-content;\r\n        padding: 1px;\r\n        border: 1px solid #c6c6c6;\r\n        border-radius: 3px;\r\n        font-size: 12px;\r\n        font-family: \"Arial\";\r\n        color: #444444;\r\n        overflow: hidden;\r\n        max-height: 600px;\r\n        box-shadow: 0 0px 7px 0 rgb(0 0 0 / 30%);\r\n      }\r\n      .localization-list {\r\n        width: 460px;\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        padding-top: 1px;\r\n      }\r\n      .default {\r\n        width: 460px;\r\n        display: flex;\r\n        flex-wrap: wrap;\r\n        padding-bottom: 1px;\r\n        border-bottom: 1px dotted #c6c6c6;\r\n      }\r\n      .item {\r\n        width: 151.2px;\r\n        border-radius: 3px;\r\n        height: 32px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        background-color: var(--back-color);\r\n        border: 1px solid #c6c6c6;\r\n      }\r\n      .item:hover {\r\n        background-color: rgb(218, 218, 218);\r\n        border-color: #c6c6c6;\r\n      }\r\n      .current {\r\n        background-color: rgb(229, 229, 229);\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiLocalizationPreviewComponent implements OnInit {\r\n  constructor(\r\n    public model: StiModelService,\r\n    public httpService: StiHttpClientService,\r\n    public userService: StiUserService,\r\n    public loc: StiLocalizationService,\r\n    public helper: StiHelperService,\r\n    public stiLocalStorage: StiLocalStorageService\r\n  ) { }\r\n  public itemWidth: number = 150;\r\n\r\n  public get items() {\r\n    return this.loc.localizationList ? this.loc.localizationList : [];\r\n  }\r\n\r\n  public get itemsInRow() {\r\n    return new Array(3).fill(1);\r\n  }\r\n  public get rows() {\r\n    return this.items ? new Array(Math.ceil(this.items.length / this.itemsInRow.length)).fill(2) : new Array(0).fill(0);\r\n  }\r\n  setEvent(event: string) {\r\n    let localization;\r\n    if (event != \"Default\") {\r\n      localization = this.loc.localizationList?.find((item) =>\r\n        this.model.isWebView ? item.language == event : item.fileName == event\r\n      );\r\n    } else {\r\n      localization = this.loc.defaultLocalization;\r\n    }\r\n    this.loc.currentLocalization = localization;\r\n    if (event == \"Default\") {\r\n      this.httpService\r\n        .post(\"\", {\r\n          action: \"InterfaceEvent\",\r\n          event: \"LocalizationButtonClick\",\r\n          localization: this.model.isWebView\r\n            ? this.loc.defaultLocalization.language\r\n            : this.loc.defaultLocalization.fileName,\r\n        })\r\n        .subscribe(() => { });\r\n      this.loc.currentLocalization = this.loc.defaultLocalization;\r\n    } else {\r\n      this.httpService\r\n        .post(\"\", { action: \"InterfaceEvent\", event: \"LocalizationButtonClick\", localization: event })\r\n        .subscribe(() => { });\r\n      this.loc.currentLocalization = this.loc.localizationList?.find((item) =>\r\n        this.model.isWebView ? item.language == event : item.fileName == event\r\n      );\r\n    }\r\n    this.stiLocalStorage.setItem(\"StiFormsLocalization\", JSON.stringify(this.loc.currentLocalization));\r\n    this.httpService\r\n      .post(this.model.requestUrl, { action: \"GetLocalization\", localization: localization.cultureName })\r\n      .subscribe((data) => {\r\n        StiLocalizationService.setLocalization(data.localization);\r\n        this.model.needToRefresh.next(true);\r\n        this.helper.updateHelper();\r\n      });\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiHttpClientService } from \"../services/http-client.service\";\r\nimport { StiModelService } from \"../services/model.service\";\r\nimport { StiLocalizationService } from \"../services/sti-localization.service\";\r\nimport { StiUserService } from \"../services/sti-user-service\";\r\n\r\n@Component({\r\n    selector: \"sti-user-info\",\r\n    template: `\r\n    <div\r\n      class=\"parent-user-info-container\"\r\n      [style.visibility]=\"userService.showUserInfo ? 'visible' : 'hidden'\"\r\n      [style.left.px]=\"userService.previewX\"\r\n      [style.top.px]=\"userService.previewY\"\r\n      [style.width.px]=\"350\"\r\n      >\r\n      <div class=\"user-info\">\r\n        <div class=\"user-image\">\r\n          @if (userService?.currentUser?.picture) {\r\n            <img\r\n              [style.width.px]=\"82\"\r\n              [style.height.px]=\"82\"\r\n              src=\"data:image/jpeg;base64,{{ userService?.currentUser?.picture }}\"\r\n              alt=\"\"\r\n              />\r\n          }\r\n          @if (!userService?.currentUser?.picture) {\r\n            <div\r\n              class=\"custom-image\"\r\n              [style.background-color]=\"userService.getBackground(userService.currentUser)\"\r\n              >\r\n              <span [style.margin-top.px]=\"11\">{{\r\n                userService.currentUser\r\n                ? (userService.currentUser.firstName ? userService.currentUser.firstName[0] : \"\") +\r\n                (userService.currentUser.lastName ? userService.currentUser.lastName[0] : \"\")\r\n                : \"MC\"\r\n              }}</span>\r\n            </div>\r\n          }\r\n        </div>\r\n        <div class=\"info\">\r\n          <span [style.font-size.px]=\"18\" [style.font-weight]=\"'bold'\">{{\r\n            userService.currentUser\r\n            ? (userService.currentUser.firstName ? userService.currentUser.firstName : \"\") +\r\n            \" \" +\r\n            (userService.currentUser.lastName ? userService.currentUser.lastName : \"\")\r\n            : \"My1 Company\"\r\n          }}</span>\r\n          <span>{{\r\n            userService.currentUser\r\n            ? userService.currentUser.userName\r\n            ? userService.currentUser.userName\r\n            : \"\"\r\n            : userInfo.mail\r\n          }}</span>\r\n          <span class=\"link\" (click)=\"setEvent('Cloud')\">{{ loc.get2(\"Cloud\", \"Cloud\") }}</span>\r\n          <span class=\"link\" (click)=\"setEvent('Account')\">{{ loc.get2(\"Cloud\", \"Account\") }}</span>\r\n        </div>\r\n      </div>\r\n      <div class=\"logout\">\r\n        <div class=\"logout-button\" (click)=\"setEvent('Logout')\">\r\n          <span>{{ loc.get2(\"Cloud\", \"ButtonLogout\") }}</span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .parent-user-info-container {\r\n        position: absolute;\r\n        z-index: 999;\r\n        background-color: var(--back-color);\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        height: max-content;\r\n        padding: 1px;\r\n        border: 1px solid #c6c6c6;\r\n        border-radius: 3px;\r\n        overflow: hidden;\r\n        font-family: \"Segoe UI\";\r\n        box-shadow: 0 0px 7px 0 rgb(0 0 0 / 30%);\r\n      }\r\n      .user-info {\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n        overflow: hidden;\r\n      }\r\n      .info {\r\n        display: flex;\r\n        flex-direction: column;\r\n        font-size: 13px;\r\n        align-items: start;\r\n        justify-content: center;\r\n      }\r\n      .info span {\r\n        margin: 3px;\r\n      }\r\n      .user-image {\r\n        padding: 15px;\r\n      }\r\n      .user-image img {\r\n        border-radius: 40px;\r\n      }\r\n      .logout {\r\n        width: 100%;\r\n        height: 60px;\r\n        display: flex;\r\n        justify-content: flex-end;\r\n        align-items: flex-end;\r\n        padding: 10px;\r\n      }\r\n      .logout-button {\r\n        height: 24px;\r\n        min-width: 60px;\r\n        background-color: rgb(61, 107, 186);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        font-size: 13px;\r\n        padding: 0px 10px;\r\n        color: white;\r\n      }\r\n      .logout-button:hover {\r\n        background-color: rgb(67, 119, 208);\r\n      }\r\n      .link {\r\n        color: #5a83ad;\r\n        border-bottom: 1px solid transparent;\r\n      }\r\n      .link:hover {\r\n        border-color: #5a83ad;\r\n      }\r\n      span {\r\n        width: max-content;\r\n      }\r\n      .custom-image {\r\n        height: 82px;\r\n        width: 82px;\r\n        border-radius: 40px;\r\n        margin: 0 5px 0 5px;\r\n        color: White;\r\n        font-size: 42px;\r\n        display: flex;\r\n        justify-content: center;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiUserInfoComponent implements OnInit {\r\n  constructor(\r\n    public model: StiModelService,\r\n    public httpService: StiHttpClientService,\r\n    public userService: StiUserService,\r\n    public loc: StiLocalizationService\r\n  ) {}\r\n  public get userInfo() {\r\n    return { name: \"My1 Company\", mail: \"Stimulsoft130@gmail.com\" };\r\n  }\r\n  setEvent(event: string) {\r\n    if (event == \"Logout\") {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"LogoutButtonClick\" }).subscribe(() => {\r\n        if (!this.model.isWebView) {\r\n          this.model.userIsAuthorized = false;\r\n          this.userService.licenseProducts = [];\r\n          this.userService.currentUser = \"empty\";\r\n          this.userService.checkLicense();\r\n        }\r\n      });\r\n    } else if (event == \"Account\") {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"AccountButtonClick\" }).subscribe(() => {});\r\n    } else if (event == \"Cloud\") {\r\n      this.httpService.post(\"\", { action: \"InterfaceEvent\", event: \"CloudButtonClick\" }).subscribe(() => {});\r\n    }\r\n    this.userService.showUserInfo = false;\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n  selector: \"sti-trial-bar\",\r\n  template: `\r\n    <div class=\"trial-bar\">\r\n      @if (!model.disableCloseButton) {\r\n        <div class=\"close-button\" (click)=\"model.showTrialBar = !model.showTrialBar\">\r\n          <img [style.width.px]=\"16\" [style.height.px]=\"16\" [src]=\"model.getImage('images.Other.CloseForm.png')\" alt=\"\" />\r\n        </div>\r\n      }\r\n      <div class=\"trial-info\">\r\n        <span>{{\r\n          \"Trial version for product evaluation only. A license is required to develop or deploy with Stimulsoft.\"\r\n        }}</span>\r\n      </div>\r\n      <div class=\"trial-update-button\" (click)=\"upgradeClick()\">\r\n        <span>{{ loc.getP(\"Upgrade\") }}</span>\r\n      </div>\r\n    </div>\r\n    `,\r\n  styles: [\r\n    `\r\n      .trial-bar {\r\n        width: 100%;\r\n        height: 30px;\r\n        background-color: rgb(251, 244, 225);\r\n        display: flex;\r\n        align-items: center;\r\n        font-size: 12px;\r\n        font-family: Arial;\r\n      }\r\n      .trial-info {\r\n        width: 100%;\r\n        padding-left: 12px;\r\n      }\r\n      .close-button {\r\n        margin-left: 12px;\r\n        width: 24px;\r\n        height: 24px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border-radius: 3px;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .trial-update-button {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border-radius: 3px;\r\n        margin: 0px 12px;\r\n        height: 24px;\r\n        width: 80px;\r\n        background-color: rgb(221, 221, 221);\r\n      }\r\n      .trial-update-button:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiTrialBarComponent implements OnInit {\r\n  constructor(public loc: StiLocalizationService, public model: StiModelService) { }\r\n\r\n  ngOnInit() { }\r\n  upgradeClick() {\r\n    window.open(\"https://www.stimulsoft.com/en/online-store#embedded/forms/web\", \"_blank\");\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiUserService } from \"../../services/sti-user-service\";\r\nimport { StiHttpClientService } from \"../../services/http-client.service\";\r\n\r\n@Component({\r\n    selector: \"sti-trial-modal-window\",\r\n    template: `\r\n    <div class=\"trial-modal\">\r\n      <div class=\"trial-navigation\">\r\n        <div class=\"designer-info\">\r\n          <span>{{ loc.getP(\"Designer\") }}</span>\r\n        </div>\r\n        <div class=\"close-button\" (click)=\"upgradeClick()\">\r\n          <i class=\"pi pi-times\"></i>\r\n        </div>\r\n      </div>\r\n      <div class=\"trial-info\">\r\n        <div class=\"trial-image\">\r\n          <img class=\"warning-image\" [src]=\"model.getImage('images.Other.Warning.png')\" alt=\"\" />\r\n        </div>\r\n        <div class=\"trial-alert\">\r\n          <span>{{ loc.getP(userService.trialMessage) }}</span>\r\n        </div>\r\n      </div>\r\n      <div class=\"close-container\">\r\n        <div class=\"agree-button\" (click)=\"upgradeClick()\">\r\n          <span>{{ loc.get2(\"Buttons\", \"Ok\").replace(\"&amp\", \"\").replace(\";\", \"\") }}</span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      .pi {\r\n        font-size: 0.825rem;\r\n        color: var(--text-color);\r\n      }\r\n      .trial-modal {\r\n        cursor: default;\r\n        z-index: 9999;\r\n        width: 550px;\r\n        height: 290px;\r\n        position: absolute;\r\n        left: calc(50% - 225px);\r\n        top: calc(50% - 145px);\r\n        display: flex;\r\n        flex-direction: column;\r\n        border: 1px solid rgb(28, 71, 134);\r\n        background-color: #ffffff;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n      }\r\n      .trial-navigation {\r\n        width: 100%;\r\n        height: 31px;\r\n        display: flex;\r\n      }\r\n      .designer-info {\r\n        padding-left: 15px;\r\n        width: 100%;\r\n        height: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: start;\r\n      }\r\n      .designer-info span {\r\n        font-size: 15px;\r\n        font-weight: bold;\r\n        color: rgb(28, 71, 134);\r\n      }\r\n      .close-button {\r\n        height: 24px;\r\n        width: 28px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .trial-info {\r\n        height: 173px;\r\n        width: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .trial-image {\r\n        height: 132px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .warning-image {\r\n        width: 112px;\r\n        height: 112px;\r\n      }\r\n      .trial-alert {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        flex: 1;\r\n      }\r\n      .trial-alert span {\r\n        font-size: 16px;\r\n        color: rgb(28, 71, 134);\r\n      }\r\n      .close-container {\r\n        display: flex;\r\n        width: 100%;\r\n        justify-content: center;\r\n        flex: 1;\r\n        padding-top: 20px;\r\n      }\r\n      .agree-button {\r\n        width: 200px;\r\n        height: 30px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border-radius: 3px;\r\n        background-color: rgb(28, 71, 134);\r\n      }\r\n      .agree-button:hover {\r\n        background-color: rgb(59, 98, 155);\r\n      }\r\n      .agree-button span {\r\n        color: white;\r\n        font-size: 14px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTrialModalWindowComponent implements OnInit {\r\n  constructor(\r\n    public loc: StiLocalizationService,\r\n    public model: StiModelService,\r\n    public userService: StiUserService,\r\n    public httpService: StiHttpClientService\r\n  ) {}\r\n  upgradeClick() {\r\n    if (this.model.canCloseTrialWindow) {\r\n      this.model.showTrialModalWindow = !this.model.showTrialModalWindow;\r\n    } else {\r\n      if (this.model.isWebView) {\r\n        this.httpService\r\n          .post(\"\", {\r\n            action: \"InterfaceEvent\",\r\n            event: \"ExpiredTrialButtonClick\",\r\n            data: { message: this.userService.trialMessage },\r\n          })\r\n          .subscribe(() => {});\r\n      } else {\r\n        window.location.href = \"https://www.stimulsoft.com/en/online-store#embedded/forms/ultimate\";\r\n      }\r\n    }\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiForm } from \"../../elements/StiForm\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiUndoService } from \"../../services/sti-undo-service\";\r\n\r\n@Component({\r\n    selector: \"sti-file-new-content\",\r\n    template: `\r\n    <div class=\"file-new-container\">\r\n      <div class=\"file-new-navigation\" (click)=\"createNew()\">\r\n        <div>\r\n          <img [src]=\"model.getImage('images.Other.BlankReport.png')\" alt=\"\" />\r\n        </div>\r\n        <span>{{ blankForm }} </span>\r\n      </div>\r\n      <div class=\"divider\"></div>\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      .file-new-container {\r\n        width: 100%;\r\n        height: 100%;\r\n        padding-left: 20px;\r\n        background-color: white;\r\n        -webkit-user-select: none;\r\n      }\r\n      .file-new-navigation {\r\n        height: 250px;\r\n        width: 200px;\r\n\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n        align-items: center;\r\n      }\r\n      .file-new-navigation:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .file-new-navigation img {\r\n        height: 203px;\r\n        width: 144px;\r\n      }\r\n      .divider {\r\n        margin: 20px 0px;\r\n        height: 1px;\r\n        width: calc(100% - 20px);\r\n        background-color: rgb(198, 198, 198);\r\n      }\r\n      img {\r\n        margin: 12px 12px 0px;\r\n      }\r\n      span {\r\n        height: 25px;\r\n        font-family: \"Arial\";\r\n        font-size: 12px;\r\n        display: flex;\r\n        align-items: flex-end;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFileNewContentComponent implements OnInit {\r\n  public blankForm = \"Blank Form\";\r\n  constructor(public model: StiModelService, public undoService: StiUndoService) { }\r\n  createNew() {\r\n    this.model.form.attachedFiles = [];\r\n    this.model.ribbon = \"Home\";\r\n    if (\r\n      this.model.currentFormState &&\r\n      this.model.currentFormState !== this.model.lastSavedFormState &&\r\n      this.undoService.undos.length > 1\r\n    ) {\r\n      this.model.showSaveDialog = true;\r\n      this.model.saveDialogFromNew = true;\r\n      this.model.saveDialogFromOpen = false;\r\n    } else {\r\n      let form = new StiForm();\r\n      this.model.form = form;\r\n    }\r\n    this.model.formEvents.next({ name: \"New\" });\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiForm } from \"../../elements/StiForm\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiUndoService } from \"../../services/sti-undo-service\";\r\n\r\n@Component({\r\n    selector: \"sti-file-open-content\",\r\n    template: `\r\n    <div class=\"file-open-container\">\r\n      <div class=\"file-open-navigation\">\r\n        <div class=\"navigation-item\" (click)=\"open()\">\r\n          <div class=\"navigation-icon\">\r\n            <img [src]=\"model.getImage('images.Other.FileMenu.Open.png')\" alt=\"\" />\r\n          </div>\r\n          <span>{{ browse }}</span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      .file-open-container {\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n        padding: 10px 30px;\r\n      }\r\n      .file-open-navigation {\r\n        width: 260px;\r\n        border-right: 1px solid rgb(218, 218, 218);\r\n      }\r\n\r\n      .navigation-item {\r\n        display: flex;\r\n        height: 50px;\r\n        width: 250px;\r\n        background-color: white;\r\n        border-radius: 3px;\r\n      }\r\n      .navigation-item:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .navigation-icon {\r\n        padding: 0px 10px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      img {\r\n        width: 32px;\r\n        height: 32px;\r\n      }\r\n      span {\r\n        height: 100%;\r\n        padding: 0px 20px 0px 10px;\r\n        display: flex;\r\n        align-items: center;\r\n        font-size: 12px;\r\n        font-family: \"Arial\";\r\n        cursor: default;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFileOpenContentComponent implements OnInit {\r\n  public browse = StiLocalizationService.get(\"ReportOpen\", \"Browse\");\r\n  constructor(public model: StiModelService, public undoService: StiUndoService) { }\r\n  open() {\r\n    this.model.form.attachedFiles = [];\r\n    this.model.ribbon = \"Home\";\r\n    if (\r\n      this.model.currentFormState &&\r\n      this.model.currentFormState !== this.model.lastSavedFormState &&\r\n      this.undoService.undos.length >= 2\r\n    ) {\r\n      this.model.showSaveDialog = true;\r\n      this.model.saveDialogFromNew = false;\r\n      this.model.saveDialogFromOpen = true;\r\n    } else {\r\n      this.model.interfaceEvent.next({ name: \"FormOpen\" });\r\n    }\r\n  }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import {\r\n  AfterViewChecked,\r\n  AfterViewInit,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  OnChanges,\r\n  OnInit,\r\n  SimpleChanges,\r\n} from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"sti-file-save-content\",\r\n    template: `\r\n    <div class=\"{{ isSmallWindow ? 'small-file-save-container' : 'file-save-container' }}\">\r\n      <div class=\"{{ isSmallWindow ? 'small-file-save-navigation' : 'file-save-navigation' }}\">\r\n        <div class=\"navigation-item\">\r\n          <div class=\"navigation-icon\">\r\n            <img [src]=\"model.getImage('images.Other.FileMenu.Open.png')\" alt=\"\" />\r\n          </div>\r\n          <span>{{ browse }}</span>\r\n        </div>\r\n      </div>\r\n      <div class=\"content\">\r\n        <div class=\"{{ isSmallWindow ? 'small-save-container' : 'save-container' }}\">\r\n          <!-- <div class=\"save-container-navigation\">\r\n            <label>{{\r\n              model.currentSelectedFileOption != \"SaveAs\"\r\n                ? loc.getP(model.currentSelectedFileOption)\r\n                : loc.get2(\"MainMenu\", \"menuFileSaveAs\").replace(\"...\", \"\")\r\n            }}</label>\r\n            <div class=\"close-button\" (click)=\"close()\">\r\n              <img [src]=\"model.getImage('images.Other.ClosePanel.png')\" alt=\"\" />\r\n            </div>\r\n          </div> -->\r\n          <div class=\"save-input\">\r\n            <span>{{ name }}</span>\r\n            <input type=\"text\" spellcheck=\"false\" [(ngModel)]=\"model.fileName\" />\r\n          </div>\r\n          <div class=\"save-buttons-container\">\r\n            <div class=\"button accept\" (click)=\"saveFile()\">\r\n              <span>{{ save }}</span>\r\n            </div>\r\n            <!-- <div class=\"button cancel\" (click)=\"close()\">\r\n              <span>{{ cancel }}</span>\r\n            </div> -->\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      .content {\r\n        width: 100%;\r\n      }\r\n      .file-save-container {\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n        padding: 10px 30px;\r\n      }\r\n      .small-file-save-container {\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n        padding: 10px 30px;\r\n        flex-direction: column;\r\n        align-items: center;\r\n        border-right: 1px solid rgb(218, 218, 218);\r\n      }\r\n      .file-save-navigation {\r\n        min-width: 150px;\r\n        width: 50%;\r\n        max-width: 260px;\r\n        padding-right: 10px;\r\n        border-right: 1px solid rgb(218, 218, 218);\r\n      }\r\n      .small-file-save-navigation {\r\n        min-width: 150px;\r\n        width: 100%;\r\n        max-width: 260px;\r\n      }\r\n      .navigation-item {\r\n        display: flex;\r\n        height: 50px;\r\n        min-width: 130px;\r\n        background-color: rgb(229, 229, 229);\r\n        border-radius: 3px;\r\n      }\r\n      .navigation-item:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .navigation-icon {\r\n        padding: 0px 10px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .save-container {\r\n        max-width: 500px;\r\n        height: 50px;\r\n        background-color: white;\r\n        margin-left: 10px;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .small-save-container {\r\n        max-width: 500px;\r\n        height: 50px;\r\n        background-color: white;\r\n        margin-top: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      img {\r\n        width: 32px;\r\n        height: 32px;\r\n      }\r\n      span {\r\n        height: 100%;\r\n        padding: 0px 20px 0px 10px;\r\n        display: flex;\r\n        align-items: center;\r\n        font-size: 12px;\r\n        font-family: \"Arial\";\r\n        cursor: default;\r\n      }\r\n      label {\r\n        font-size: 13px;\r\n        font-weight: bold;\r\n        color: rgb(25, 71, 138);\r\n        font-family: \"Arial\";\r\n        flex: 1;\r\n        padding-left: 15px;\r\n      }\r\n      .save-container-navigation {\r\n        height: 30px;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .close-button {\r\n        width: 28px;\r\n        height: 28px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .close-button img {\r\n        width: 16px;\r\n        height: 16px;\r\n      }\r\n      .save-input {\r\n        display: flex;\r\n        align-items: center;\r\n        flex: 1;\r\n        padding: 0px 10px;\r\n      }\r\n      .save-input input {\r\n        width: 100%;\r\n        height: 24px;\r\n        border: 1px solid rgb(171, 171, 171);\r\n        background-color: white;\r\n        color: rgb(68, 68, 68);\r\n        font-size: 12px;\r\n        border-radius: 3px;\r\n        padding: 0px 0px 0px 4px;\r\n        outline: none;\r\n      }\r\n      .save-buttons-container {\r\n        height: 58px;\r\n        width: fit-content;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: flex-end;\r\n      }\r\n      .button {\r\n        width: 80px;\r\n        height: 24px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 0px 10px;\r\n      }\r\n      .button span {\r\n        margin: 0;\r\n        padding: 0;\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n        margin-right: 0px;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .cancel {\r\n        background-color: rgb(221, 221, 221);\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .cancel:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFileSaveContentComponent implements OnInit, AfterViewInit {\r\n  public name = StiLocalizationService.get(\"PropertyMain\", \"Name\");\r\n  public save = StiLocalizationService.get(\"PropertyMain\", \"Save\");\r\n  public cancel = StiLocalizationService.get(\"PropertyMain\", \"Cancel\");\r\n  public browse = StiLocalizationService.get(\"ReportOpen\", \"Browse\");\r\n  public isSmallWindow: boolean = false;\r\n\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public loc: StiLocalizationService,\r\n    private cdr: ChangeDetectorRef\r\n  ) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    let element = document.getElementsByClassName(\"file-save-container\")[0];\r\n    let isSmall: boolean = element ? element.clientWidth < 450 : window.innerWidth < 450 + 170;\r\n    if (isSmall != this.isSmallWindow) {\r\n      this.isSmallWindow = isSmall;\r\n      this.cdr.detach();\r\n      setTimeout(() => {\r\n        this.cdr.reattach();\r\n      });\r\n    }\r\n  }\r\n  close() {\r\n    this.model.ribbon = \"Home\";\r\n  }\r\n  saveFile() {\r\n    this.model.saveLastFormState();\r\n    this.model.ribbon = \"Home\";\r\n    this.model.interfaceEvent.next({ name: \"FormSaveAs\", data: { form: this.model.form, name: this.model.fileName } });\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"sti-file-menu-content\",\r\n    template: ` <div class=\"file-menu-container\">\r\n      <div class=\"current-option-label\">\r\n        <span>{{\r\n          model.currentSelectedFileOption != \"SaveAs\"\r\n          ? loc.getP(model.currentSelectedFileOption)\r\n          : loc.get2(\"MainMenu\", \"menuFileSaveAs\").replace(\"...\", \"\")\r\n        }}</span>\r\n      </div>\r\n      @if (isCurrent('New')) {\r\n        <sti-file-new-content></sti-file-new-content>\r\n      }\r\n      @if (isCurrent('Open')) {\r\n        <sti-file-open-content></sti-file-open-content>\r\n      }\r\n      @if (isCurrent('SaveAs')) {\r\n        <sti-file-save-content></sti-file-save-content>\r\n      }\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      sti-file-new-content,\r\n      sti-file-open-content,\r\n      sti-file-save-content {\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .file-menu-container {\r\n        height: 100%;\r\n        width: 100%;\r\n        background-color: white;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .current-option-label {\r\n        padding: 30px;\r\n        width: 100%;\r\n      }\r\n      .current-option-label span {\r\n        font-size: 36px;\r\n        font-family: \"Arial\";\r\n        color: #8f8f8f;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFileMenuContentComponent implements OnInit {\r\n  constructor(public model: StiModelService, public loc: StiLocalizationService) {}\r\n  isCurrent(content) {\r\n    return content == this.model.currentSelectedFileOption ? true : false;\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: \"sti-file-menu\",\r\n    template: `\r\n    <div class=\"file-menu\">\r\n      <div class=\"shadow-file-menu\"></div>\r\n      <sti-file-menu-content></sti-file-menu-content>\r\n    </div>\r\n  `,\r\n    styles: [\r\n        `\r\n      .file-menu {\r\n        position: absolute;\r\n        left: 0;\r\n        top: 0;\r\n        height: inherit;\r\n        width: inherit;\r\n        z-index: 9999999;\r\n        background-color: white;\r\n        display: flex;\r\n        -moz-user-select: none;\r\n        -khtml-user-select: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .shadow-file-menu {\r\n        min-width: 170px;\r\n        height: 100%;\r\n      }\r\n      sti-file-menu-content {\r\n        width: 100%;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFileMenuComponent implements OnInit {\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { fileNavigationAnimation } from \"../animations/animations\";\r\n\r\n@Component({\r\n    selector: \"sti-file-menu-navigation\",\r\n    template: `<div [@fileNavigation]=\"model.fileMenuMode ? 'in' : 'out'\" class=\"file-navigation\">\r\n      <div class=\"back-button-container\">\r\n        <div class=\"back-button\" (click)=\"model.ribbon = 'Home'\">\r\n          <img [src]=\"model.getImage('images.Other.Back.png')\" />\r\n        </div>\r\n      </div>\r\n      @for (item of helper.fileMenuItems; track item) {\r\n        <div class=\"option {{ item.name == 'Divider' ? 'divider-container' : '' }} {{item.name == model.currentSelectedFileOption ? 'current' : ''}}\"\r\n          (click)=\"setEvent(item.name)\">\r\n          @if (item.name != 'Divider') {\r\n            <div class=\"item\">\r\n              <div class=\"image-container\" [style.min-height.px]=\"36\">\r\n                @if (item.image) {\r\n                  <img [src]=\"model.getImage(item.image)\" />\r\n                }\r\n              </div>\r\n              <span>{{ item.caption }}</span>\r\n            </div>\r\n          }\r\n          @if (item.name == 'Divider') {\r\n            <div class=\"divider\"></div>\r\n          }\r\n        </div>\r\n      }\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      .file-navigation {\r\n        -webkit-user-select: none;\r\n        width: 0px;\r\n        height: inherit;\r\n        background-color: rgb(25, 71, 138);\r\n        z-index: 99999999;\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n      }\r\n      .back-button {\r\n        padding: 20px 0px 0px 9px;\r\n      }\r\n      .back-button img {\r\n        width: 32px;\r\n        height: 32px;\r\n        opacity: 1;\r\n      }\r\n      .back-button img:hover {\r\n        opacity: 0.7;\r\n      }\r\n      .divider {\r\n        height: 1px;\r\n        width: 100%;\r\n        border: 0;\r\n        background-color: #ffffff;\r\n      }\r\n      .divider-container {\r\n        padding: 5px 25px !important;\r\n        pointer-events: none;\r\n      }\r\n      .option {\r\n        width: 100%;\r\n        height: max-content;\r\n        padding: 3px 0px;\r\n      }\r\n      .option:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .item {\r\n        display: flex;\r\n        width: 100%;\r\n        align-items: center;\r\n      }\r\n      .image-container {\r\n        width: 50px;\r\n        text-align: center;\r\n      }\r\n      .current {\r\n        background-color: #11315f;\r\n      }\r\n      img {\r\n        height: 32px;\r\n        width: 32px;\r\n      }\r\n      span {\r\n        color: white;\r\n        font-size: 12px;\r\n        font-family: Arial;\r\n        cursor: default;\r\n        white-space: nowrap;\r\n      }\r\n    `,\r\n    ],\r\n    animations: [fileNavigationAnimation],\r\n    standalone: false\r\n})\r\nexport class StiFileMenuNavigationComponent implements OnInit {\r\n  constructor(public model: StiModelService, public helper: StiHelperService) { }\r\n  setEvent(name: string) {\r\n    if (name == \"About\") {\r\n      this.model.ribbon = \"Home\";\r\n      this.model.showAboutWindow = true;\r\n    } else if (name == \"Save\") {\r\n      this.model.saveLastFormState();\r\n      this.model.ribbon = \"Home\";\r\n      this.model.interfaceEvent.next({ name: \"FormSave\", data: { form: this.model.form, name: this.model.fileName } });\r\n    } else if (name == \"SaveAs\" || name == \"Open\" || name == \"New\") {\r\n      this.model.currentSelectedFileOption = name;\r\n    }\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiForm } from \"../../elements/StiForm\";\r\nimport { StiHttpClientService } from \"../../services/http-client.service\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiExportService } from \"../../services/sti-export.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"sti-file-save-dialog\",\r\n    template: `<div class=\"save-dialog\">\r\n    <div class=\"save-dialog-navigation\">\r\n      <label>{{ designer }}</label>\r\n      <div class=\"close-button\" (click)=\"close('Cancel')\">\r\n        <img [src]=\"model.getImage('images.Other.CloseForm.png')\" alt=\"\" />\r\n      </div>\r\n    </div>\r\n    <div class=\"text-content\">\r\n      <img [src]=\"model.getImage('images.Other.Question.png')\" />\r\n      <span>{{ question }}</span>\r\n    </div>\r\n    <div class=\"buttons-container\">\r\n      <div class=\"button accept\" (click)=\"save()\">\r\n        <span>{{ yes }}</span>\r\n      </div>\r\n      <div class=\"button cancel\" (click)=\"close('No')\">\r\n        <span>{{ no }}</span>\r\n      </div>\r\n      <div class=\"button cancel\" (click)=\"close('Cancel')\" [style.margin-right.px]=\"10\">\r\n        <span>{{ cancel }}</span>\r\n      </div>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .save-dialog {\r\n        width: 500px;\r\n        height: 150px;\r\n        position: absolute;\r\n        z-index: 9999999;\r\n        left: calc(50% - 250px);\r\n        top: calc(50% - 70px);\r\n        background-color: white;\r\n        cursor: default;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        border: 1px solid rgb(25, 71, 138);\r\n        display: flex;\r\n        border-top-right-radius: 5px;\r\n        border-top-left-radius: 5px;\r\n        flex-direction: column;\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .save-dialog-navigation {\r\n        height: 30px;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n        -webkit-user-select: none;\r\n      }\r\n      .text-content {\r\n        flex: 1;\r\n        padding: 20px 10px;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .text-content span {\r\n        font-size: 13px;\r\n        margin: 12px 0px;\r\n      }\r\n      .text-content img {\r\n        margin-left: 10px;\r\n        margin-right: 10px;\r\n        width: 32px;\r\n        height: 32px;\r\n      }\r\n      .close-button {\r\n        width: 28px;\r\n        height: 28px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n      label {\r\n        font-size: 13px;\r\n        color: white;\r\n        font-family: \"Arial\";\r\n        flex: 1;\r\n        display: flex;\r\n        align-items: center;\r\n        margin-left: 10px;\r\n      }\r\n      .buttons-container {\r\n        height: 50px;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: flex-end;\r\n      }\r\n      .button {\r\n        width: 80px;\r\n        height: 24px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 0px 5px;\r\n      }\r\n      span {\r\n        height: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        font-size: 12px;\r\n        font-family: \"Arial\";\r\n        cursor: default;\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .cancel {\r\n        background-color: rgb(221, 221, 221);\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .cancel:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFileSaveDialogComponent implements OnInit {\r\n  public designer = StiLocalizationService.get(\"Permissions\", \"ItemForms\");\r\n  public yes = StiLocalizationService.get(\"PropertyMain\", \"Yes\");\r\n  public no = StiLocalizationService.get(\"PropertyMain\", \"No\");\r\n  public cancel = StiLocalizationService.get(\"PropertyMain\", \"Cancel\");\r\n  public get question() {\r\n    return this.model.showSaveDialog\r\n      ? StiLocalizationService.get(\"Questions\", \"qnSaveChanges\").replace(\r\n        \"{0}\",\r\n        StiLocalizationService.get(\"Dialogs\", \"StiForm\")\r\n      )\r\n      : \"Would you like to save the form to Stimulsoft Cloud?\";\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public httpService: StiHttpClientService,\r\n    public exportService: StiExportService\r\n  ) { }\r\n  close(option) {\r\n    if (this.model.showSaveDialog) {\r\n      this.model.showSaveDialog = false;\r\n      if (option === \"No\") {\r\n        if (this.model.saveDialogFromNew) {\r\n          this.model.interfaceEvent.next({ name: \"FormNew\" });\r\n        } else if (this.model.saveDialogFromOpen) {\r\n          this.model.interfaceEvent.next({ name: \"FormOpen\" });\r\n        }\r\n      }\r\n    } else {\r\n      this.model.showSaveDialogFromCloud = false;\r\n      if (option === \"No\") {\r\n        this.exportService.showModalWindow = !this.exportService.showModalWindow;\r\n      }\r\n    }\r\n  }\r\n\r\n  save() {\r\n    if (this.model.showSaveDialog) {\r\n      this.model.form.attachedFiles = [];\r\n      this.model.saveLastFormState();\r\n      this.model.interfaceEvent.next({ name: \"FormSave\", data: { form: this.model.form, name: this.model.fileName } });\r\n      this.model.showSaveDialog = false;\r\n      if (this.model.saveDialogFromNew) {\r\n        this.model.interfaceEvent.next({ name: \"FormNew\" });\r\n      } else if (this.model.saveDialogFromOpen) {\r\n        this.model.interfaceEvent.next({ name: \"FormOpen\" });\r\n      }\r\n    } else {\r\n      let currentForm = this.model.form.saveToReportJsonObject().serialize();\r\n      this.httpService\r\n        .post(\"\", { action: \"InterfaceEvent\", event: \"SaveToCloudButtonClick\", data: { form: currentForm } })\r\n        .subscribe(() => { });\r\n      this.model.showSaveDialogFromCloud = false;\r\n    }\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiButtonElement } from \"../../elements/StiButtonElement\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"button-message-window\",\r\n    template: `\r\n    <div #messageWindow [style.left]=\"left\" [style.top]=\"top\" class=\"message-window\">\r\n      <div class=\"navigation\">\r\n        <div class=\"navigation-title\">\r\n          <span>{{ loc.get2(\"Permissions\", \"ItemForms\") }}</span>\r\n        </div>\r\n        @if (!model.showErrorWindow) {\r\n          <div\r\n            class=\"close-button\"\r\n            (click)=\"model.showButtonMessageWindow = !model.showButtonMessageWindow\"\r\n            >\r\n            <img [src]=\"model.getImage('images.Other.CloseForm.png')\" />\r\n          </div>\r\n        }\r\n      </div>\r\n      <div class=\"content\">\r\n        <span>{{ model.errorWindowMessage }}</span>\r\n      </div>\r\n      <div class=\"accept-container\">\r\n        @if (!model.sendedFromButton) {\r\n          <div\r\n            class=\"accept button\"\r\n            (click)=\"model.showButtonMessageWindow = false; model.showErrorWindow = false\"\r\n            >\r\n            <span>{{ loc.get2(\"Buttons\", \"Ok\").replace(\"&amp\", \"\").replace(\";\", \"\") }}</span>\r\n          </div>\r\n        }\r\n        @if (model.sendedFromButton) {\r\n          <div class=\"error button\" (click)=\"retry()\">\r\n            <span>{{ loc.get2(\"PropertyEnum\", \"DialogResultRetry\") }}</span>\r\n          </div>\r\n        }\r\n        @if (model.sendedFromButton) {\r\n          <div\r\n            class=\"error button\"\r\n            (click)=\"model.showButtonMessageWindow = false; model.showErrorWindow = false; model.sendedFromButton = false\"\r\n            >\r\n            <span>{{ loc.get2(\"PropertyMain\", \"Cancel\") }}</span>\r\n          </div>\r\n        }\r\n      </div>\r\n    </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .message-window {\r\n        position: absolute;\r\n        z-index: 99999999;\r\n        background-color: var(--back-color);\r\n        border: 1px solid rgb(25, 71, 138);\r\n        min-width: 250px;\r\n        max-width: 1000px;\r\n        min-height: 130px;\r\n        max-height: 1000px;\r\n        top: calc(50% - 65px);\r\n        display: flex;\r\n        flex-direction: column;\r\n        overflow: hidden;\r\n        border-radius: 5px;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n      }\r\n      .navigation {\r\n        height: 30px;\r\n        width: 100%;\r\n        display: flex;\r\n        justify-content: flex-end;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n      }\r\n      .navigation-title {\r\n        flex: 1;\r\n        color: white;\r\n        font-family: Arial;\r\n        font-size: 13px;\r\n        display: flex;\r\n        align-items: center;\r\n        padding-left: 10px;\r\n        -moz-user-select: none;\r\n        -khtml-user-select: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .close-button {\r\n        width: 30px;\r\n        height: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .close-button:active {\r\n        background-color: var(--active-color);\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n      .content {\r\n        width: 100%;\r\n        height: 100%;\r\n        flex: 1;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        padding: 10px;\r\n      }\r\n      .content span {\r\n        color: var(--text-color);\r\n        font-size: 12px;\r\n        font-family: \"Segoe UI\";\r\n        word-wrap: break-word;\r\n        cursor: default;\r\n        user-select: none;\r\n      }\r\n      .accept-container {\r\n        height: 50px;\r\n        width: 100%;\r\n        display: flex;\r\n        justify-content: center;\r\n        align-items: center;\r\n      }\r\n      .accept {\r\n        width: 80px;\r\n        height: 30px;\r\n      }\r\n      .error {\r\n        width: 70px;\r\n        height: 30px;\r\n        margin: 5px;\r\n      }\r\n      .button {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .button:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .button span {\r\n        font-size: 12px;\r\n        font-family: \"Segoe UI\";\r\n        cursor: default;\r\n        user-select: none;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiButtonMessageWindowComponent implements OnInit, AfterViewInit {\r\n  @ViewChild(\"messageWindow\") messageWindow: ElementRef;\r\n  public windowWidth: number = 250;\r\n  public windowHeight: number = 130;\r\n\r\n  public get left() {\r\n    if (this.messageWindow) {\r\n      return `calc(50% - ${this.windowWidth / 2}px)`;\r\n    } else {\r\n      return `calc(50% - 125px)`;\r\n    }\r\n  }\r\n  public get top() {\r\n    if (this.messageWindow) {\r\n      return `calc(50% - ${this.windowHeight / 2}px)`;\r\n    } else {\r\n      return `calc(50% - 65px)`;\r\n    }\r\n  }\r\n  constructor(public model: StiModelService, public loc: StiLocalizationService) {}\r\n  retry() {\r\n    this.model.showButtonMessageWindow = false;\r\n    this.model.showErrorWindow = false;\r\n    this.model.sendedFromButton = false;\r\n    this.model.retryButtonRequest.next(this.model.currentUsedButtonElement);\r\n  }\r\n  ngAfterViewInit(): void {\r\n    if (this.messageWindow) {\r\n      this.windowWidth = this.messageWindow.nativeElement.offsetWidth;\r\n      this.windowHeight = this.messageWindow.nativeElement.offsetHeight;\r\n    }\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: \"sti-cloud-navbar\",\r\n    template: `<div class=\"cloud-navbar\">\r\n    <div [style.height]=\"'100%'\" [style.width.px]=\"100\">\r\n      <svg\r\n        version=\"1.1\"\r\n        id=\"Layer_1\"\r\n        xmlns=\"http://www.w3.org/2000/svg\"\r\n        xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n        x=\"0px\"\r\n        y=\"0px\"\r\n        viewBox=\"0 0 2171 800\"\r\n        style=\"enable-background:new 0 0 2171 800;\"\r\n        xml:space=\"preserve\"\r\n      >\r\n        <style type=\"text/css\">\r\n          .st0 {\r\n            opacity: 0.9;\r\n            fill: #5d7bae;\r\n          }\r\n          .st1 {\r\n            opacity: 0.8;\r\n            fill: #5da0df;\r\n          }\r\n          .st2 {\r\n            fill: none;\r\n          }\r\n        </style>\r\n        <title>logo_800</title>\r\n        <polyline class=\"st0\" points=\"1072.6,224.9 1424.1,224.9 1124.4,686 773.1,686 1072.6,224.9 1072.6,224.9 \" />\r\n        <polyline class=\"st1\" points=\"1025.8,122.6 1377.3,122.6 1077.7,583.7 726.3,583.7 1025.8,122.6 1025.8,122.6 \" />\r\n        <g>\r\n          <polyline points=\"352,333 316,333 316,440.8 269,511.9 269,333 211.2,333 211.2,297 375.8,297 \t\" />\r\n          <line class=\"st2\" x1=\"211.2\" y1=\"404\" x2=\"375.8\" y2=\"404\" />\r\n          <polygon points=\"485.9,297.1 438.1,368 438.1,511.8 485.9,511.8 \t\" />\r\n          <polygon\r\n            points=\"562,510.9 562,297.1 622,297.1 682,428 743,297.1 803,297.1 803,511.8 755.1,511.8 755.1,369 682.1,500\r\n\t\t610.1,368.9 610.1,439.8 \t\"\r\n          />\r\n          <path\r\n            d=\"M865,369l48-72v131.3c0,0,0,47.7,48.4,47.7s48.6-48.3,48.6-48.3V297h48v131.2c0,0,1.6,83.7-96.5,83.7S865,428.3,865,428.3\r\n\t\tV369z\"\r\n          />\r\n          <polygon points=\"1127,297 1175,297 1175,476.9 1260.8,476.9 1237.1,511.9 1127,511.9 \t\" />\r\n          <polygon\r\n            points=\"1950.1,297.1 1950.1,332.9 1854,332.9 1854,381.1 1939.1,381.1 1914.3,415.9 1854,415.9 1854,512 1806.1,512\r\n\t\t1806.1,297.1 \t\"\r\n          />\r\n          <polygon\r\n            points=\"2064.9,333 2006.1,333 2006.1,297.1 2171,297.1 2147.1,333 2111.9,333 2111.9,512 2065.1,512 \t\"\r\n          />\r\n          <path\r\n            d=\"M1478.9,321.3l-24.5,35.8l-58.5-24l-2,0.1c0,0-21.8,1.5-21.8,22.5s33.9,32.5,33.9,32.5s30.8,7.9,50,24s22.1,27.5,22.1,39.8\r\n\t\ts-1.3,28.9-23,44.3s-53.3,15.8-59.4,15.8c-17.8,0.2-35.4-3.2-51.9-9.9c-25.1-10.1-30.9-13.8-30.9-13.8l23.9-36.1l58.5,23.9h6.3\r\n\t\tc0,0,29.5-1.1,29.5-23.1s-36.3-33-36.3-33s-42.6-10-59-32.6c-6.3-8.6-11-15.4-11-29.5s5.5-38.8,35.1-51.6c8.4-3.6,18.4-9,34.8-9\r\n\t\ts42.5,9.4,48.4,11.1S1478.9,321.3,1478.9,321.3z\"\r\n          />\r\n          <path\r\n            d=\"M141,356.8L82.5,333h-2.9c0,0-20.6,3.3-20.6,22.3s21.9,29.5,41.8,35.9s31.8,11.4,48.3,26s16,29.6,16,34.1\r\n\t\ts0.8,31.5-25.1,45.9c-25.9,14.4-47.8,14.8-56.4,14.8s-35.8-2.8-52.8-9.9S0,488.3,0,488.3l24.3-36l61.3,24.5h5.6\r\n\t\tc0,0,27.1-2.9,27.1-22.3s-18.1-28.9-42.4-36.5S12,393.1,12,357.9S45.1,297,82.5,297c25,0,82.5,23.9,82.5,23.9L141,356.8z\"\r\n          />\r\n          <path\r\n            d=\"M1642,299h-7.3c0,0-97.8,1.8-97.8,99.3v11.8c0,0-3.8,85.9,91.7,97.8c1.3,0.2,19.2,0,19.2,0s92.2-6.5,92.2-95.8\r\n\t\tS1693.7,304.7,1642,299z M1638.4,474c-31.3,0-56.6-31.3-56.6-70s25.3-70,56.6-70s56.6,31.3,56.6,70S1669.7,474,1638.4,474z\"\r\n          />\r\n        </g>\r\n      </svg>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .cloud-navbar {\r\n        height: 38px;\r\n        width: 100%;\r\n        z-index: 99999999999;\r\n        background: white;\r\n        border-bottom: 1px solid rgb(198, 198, 198);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiCloudNavbarComponent implements OnInit {\r\n  constructor() {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiClipboardService } from \"../../services/sti-clipboard-sevice\";\r\nimport { FormEventsService } from \"../../services/sti-form-events-service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiUndoService } from \"../../services/sti-undo-service\";\r\n\r\n@Component({\r\n    selector: \"sti-context-menu-window\",\r\n    template: `\r\n    <div [style.left.px]=\"model.contextMenuX\" [style.top.px]=\"model.contextMenuY\" class=\"context-menu\">\r\n      @if ((model.selectedComponent || clipboardService.hasCopy) && !model.selectedPage) {\r\n        <div\r\n          class=\"context-menu-container\"\r\n          >\r\n          <div\r\n            class=\"context-menu-item {{ undoService.undos.length < 2 ? 'disabled' : '' }}\"\r\n            (click)=\"undoService.undo(); model.showContextMenu = false\"\r\n            >\r\n            <img [src]=\"model.getImage('images.Ribbon.Undo.png')\" /><span>{{\r\n            loc.get2(\"MainMenu\", \"menuEditUndo\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n          }}</span>\r\n        </div>\r\n        <div\r\n          class=\"context-menu-item {{ undoService.redos.length < 1 ? 'disabled' : '' }}\"\r\n          (click)=\"undoService.redo(); model.showContextMenu = false\"\r\n          >\r\n          <img [src]=\"model.getImage('images.Ribbon.Redo.png')\" /><span>{{\r\n          loc.get2(\"MainMenu\", \"menuEditRedo\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n        }}</span>\r\n      </div>\r\n      <div\r\n        class=\"context-menu-item {{ !clipboardService.hasCopy ? 'disabled' : '' }}\"\r\n        (click)=\"pasteElement($event)\"\r\n        >\r\n        <img [src]=\"model.getImage('images.Ribbon.Paste.png')\" /><span>{{\r\n        loc.get2(\"MainMenu\", \"menuEditPaste\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n      }}</span>\r\n    </div>\r\n    <div class=\"context-menu-item {{ clipboardService.canCopy ? 'disabled' : '' }}\" (click)=\"copyElement()\">\r\n      <img [src]=\"model.getImage('images.Ribbon.Copy.png')\" /><span>{{\r\n      loc.get2(\"MainMenu\", \"menuEditCopy\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n    }}</span>\r\n    </div>\r\n    <div class=\"context-menu-item {{ clipboardService.canCopy ? 'disabled' : '' }}\" (click)=\"cutElement()\">\r\n      <img [src]=\"model.getImage('images.Ribbon.Cut.png')\" /><span>{{\r\n      loc.get2(\"MainMenu\", \"menuEditCut\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n    }}</span>\r\n    </div>\r\n    <div class=\"context-menu-item\" (click)=\"formEvents.deleteComponent()\">\r\n      <img [src]=\"model.getImage('images.Ribbon.Delete.png')\" /><span>{{ loc.get2(\"Buttons\", \"Delete\") }}</span>\r\n    </div>\r\n    </div>\r\n    }\r\n    \r\n    <!-- //////////////////////////////////////////////////////////////////// -->\r\n    \r\n    @if (model.selectedPage) {\r\n      <div class=\"context-menu-container\">\r\n        @if (clipboardService.hasCopy) {\r\n          <div class=\"context-menu-item\" (click)=\"pasteElement($event)\">\r\n            <img [src]=\"model.getImage('images.Ribbon.Paste.png')\" /><span>{{\r\n            loc.get2(\"MainMenu\", \"menuEditPaste\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n          }}</span>\r\n        </div>\r\n      }\r\n      <div class=\"context-menu-item {{ !formEvents.canMoveUp ? 'disabled' : '' }}\" (click)=\"formEvents.moveUp()\">\r\n        <img [src]=\"model.getImage('images.Page.MovePageUp.png')\" /><span>{{\r\n        loc.get2(\"QueryBuilder\", \"MoveUp\")\r\n      }}</span>\r\n    </div>\r\n    <div class=\"context-menu-item {{ !formEvents.canMoveDown ? 'disabled' : '' }}\" (click)=\"formEvents.moveDown()\">\r\n      <img [src]=\"model.getImage('images.Page.MovePageDown.png')\" /><span>{{\r\n      loc.get2(\"QueryBuilder\", \"MoveDown\")\r\n    }}</span>\r\n    </div>\r\n    <div class=\"context-menu-item\" (click)=\"formEvents.insertBefore()\">\r\n      <img [src]=\"model.getImage('images.Page.InsertPageBefore.png')\" /><span>{{\r\n      loc.get2(\"TableRibbon\", \"InsertAbove\")\r\n    }}</span>\r\n    </div>\r\n    <div class=\"context-menu-item\" (click)=\"formEvents.insertAfter()\">\r\n      <img [src]=\"model.getImage('images.Page.InsertPageAfter.png')\" /><span>{{\r\n      loc.get2(\"TableRibbon\", \"InsertBelow\")\r\n    }}</span>\r\n    </div>\r\n    <div class=\"context-menu-item {{ !formEvents.canClear ? 'disabled' : '' }}\" (click)=\"formEvents.clear()\">\r\n      <img [src]=\"model.getImage('images.Page.ClearContent.png')\" /><span>{{\r\n      loc.get2(\"MainMenu\", \"menuEditClearContents\")\r\n    }}</span>\r\n    </div>\r\n    <div class=\"context-menu-item {{ !formEvents.canDelete ? 'disabled' : '' }}\" (click)=\"formEvents.delete()\">\r\n      <img [src]=\"model.getImage('images.Page.DeletePage.png')\" /><span>{{\r\n      loc.get2(\"FormViewer\", \"PageDelete\")\r\n    }}</span>\r\n    </div>\r\n    </div>\r\n    }\r\n    </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .context-menu {\r\n        position: absolute;\r\n        z-index: 999999999999999;\r\n        background-color: var(--back-color);\r\n        min-height: 20px;\r\n        max-height: 380px;\r\n        min-width: 200px;\r\n        display: flex;\r\n        border: 1px solid #c6c6c6;\r\n        color: #444444;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        cursor: default;\r\n        font-family: Arial;\r\n        font-size: 12px;\r\n        padding: 1px;\r\n      }\r\n      .context-menu-container {\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n        -webkit-user-select: none;\r\n      }\r\n      .context-menu-item {\r\n        display: flex;\r\n        width: 100%;\r\n        height: 26px;\r\n        align-items: center;\r\n        border-radius: 3px;\r\n      }\r\n      .context-menu-item:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .context-menu-item img {\r\n        height: 16px;\r\n        width: 16px;\r\n        margin-left: 10px;\r\n        margin-right: 10px;\r\n      }\r\n      .context-menu-item span {\r\n        margin-right: 10px;\r\n      }\r\n      .disabled {\r\n        opacity: 0.5;\r\n        pointer-events: none;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class ContextMenuWindowComponent implements OnInit {\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public formEvents: FormEventsService,\r\n    public loc: StiLocalizationService,\r\n    public undoService: StiUndoService,\r\n    public clipboardService: StiClipboardService\r\n\r\n  ) { }\r\n  ngOnInit() { }\r\n\r\n  public pasteElement(event) {\r\n    this.model.showContextMenu = false;\r\n    this.clipboardService.pasteElement(event);\r\n  }\r\n\r\n  public copyElement() {\r\n    this.model.showContextMenu = false;\r\n    this.clipboardService.copyElement();\r\n  }\r\n\r\n  public cutElement() {\r\n    this.model.showContextMenu = false;\r\n    this.clipboardService.cutElement();\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"expression-help-window\",\r\n    template: `<div class=\"help-window\">\r\n    <div class=\"navigation\">\r\n      <span>{{ loc.get2(\"HelpDesigner\", \"StimulsoftHelp\") }}</span>\r\n      <div class=\"close-button\" (click)=\"model.showHelpWindow = false\">\r\n        <img [src]=\"model.getImage('images.Other.CloseForm.png')\" alt=\"\" />\r\n      </div>\r\n    </div>\r\n    <div class=\"content\">\r\n      <div class=\"item-info\">{{ itemInfo }}</div>\r\n      <div class=\"general-info\">{{ generalInfo }}</div>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .pi {\r\n        font-size: 0.825rem;\r\n        color: var(--text-color);\r\n      }\r\n      .help-window {\r\n        position: absolute;\r\n        height: 500px;\r\n        width: 620px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        left: calc(50% - 310px);\r\n        top: calc(50% - 250px);\r\n        z-index: 9999999;\r\n        background: var(--back-color);\r\n        border: 1px solid rgb(25, 71, 138);\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        font-family: Arial;\r\n        border-radius: 5px;\r\n        font-size: 12px;\r\n      }\r\n      .navigation {\r\n        height: 30px;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n      }\r\n      .navigation span {\r\n        padding-left: 10px;\r\n        color: white;\r\n        flex: 1;\r\n      }\r\n      .item-info {\r\n        margin-bottom: 10px;\r\n      }\r\n      .close-button {\r\n        height: 30px;\r\n        width: 30px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .content {\r\n        height: 100%;\r\n        width: 100%;\r\n        overflow-y: scroll;\r\n        padding: 0px 10px;\r\n        word-wrap: auto;\r\n        white-space: pre-wrap;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiExpressionHelpWindowComponent implements OnInit {\r\n  constructor(public model: StiModelService, public loc: StiLocalizationService) {}\r\n  get itemInfo() {\r\n    if (this.model.currentExpressionInfo == 1) {\r\n      return `Supports list operations: adding, subtracting and multiplying lists, list and value.\r\nExample:\r\n    { Col( 'Qty' ) * Col( 'Price' ) }\r\n    { ( Col( 'Fahrenheit degrees' ) - 32 ) * 5 / 9 }\r\nAvailable functions:\r\n    Count,\r\n    Min,\r\n    Max,\r\n    Sum,\r\n    Value,\r\n    Cell,\r\n    Total,\r\n    Col`;\r\n    } else if (this.model.currentExpressionInfo == 2) {\r\n      return `Example:\r\n  { Sum( Col( 'Final price' ) ) }\r\n  { ( Total( 'Tax' ) + 1 ) * Total( 'Price' ) }\r\nAvailable functions:\r\n  Count,\r\n  Min,\r\n  Max,\r\n  Sum,\r\n  Value,\r\n  Cell,\r\n  Total,\r\n  Col,\r\n  Row`;\r\n    } else if (this.model.currentExpressionInfo == 3) {\r\n      return `Multiple expressions, enclosed in { and }, are supported.\r\nExample:\r\n    \"Tax is { Value( 'Tax' ) * 100}%, total is { Value( 'Tax' ) * Value( 'Subtotal' ) } dollars\",\r\n    evaluates to \"Tax is 15%, total is 230 dollars\"\r\nAvailable functions:\r\n    Count,\r\n    Min,\r\n    Max,\r\n    Sum,\r\n    Value,\r\n    Cell,\r\n    Total,\r\n    Col,\r\n    Row`;\r\n    } else {\r\n      return \"\";\r\n    }\r\n  }\r\n  get generalInfo() {\r\n    return `Expressions : used in Label element, Labels column and Totals fields of Table element.\r\n|\r\n|- Values: numbers: 1, 2.3, -4.5.\r\n|          strings: 'text'.\r\n|          lists: returned from some functions.\r\n|\r\n|- Operators: JS-style type casting is applied when possible.\r\n|   |\r\n|   |- \"+\" : when applied to numbers:            2 + 3 = 5\r\n|   |        when applied to strings:            'abc' + 'def' = 'abcdef'\r\n|   |        in Labels column expressions, when applied to lists of same size: [ 1, 2, 3 ] + [ 4, 5, 6 ] = [ 5, 7, 9 ].\r\n|   |        in Labels column expressions, when applied to list and number:    [ 1, 2, 3 ] + 8 = [ 9, 10, 11 ].\r\n|   |\r\n|   |- \"-\" : when applied to numbers:            2 - 3 = 5\r\n|   |        in Labels column expressions, when applied to lists of same size: [ 1, 2, 3 ] - [ 4, 5, 6 ] = [ -3, -3, -3 ].\r\n|   |        in Labels column expressions, when applied to list and number:    [ 1, 2, 3 ] - 8 = [ -7, -6, -5 ].\r\n|   |\r\n|   |- \"*\" : when applied to numbers:            2 * 3 = 6\r\n|   |        in Labels column expressions, when applied to lists of same size: [ 1, 2, 3 ] * [ 4, 5, 6 ] = [ 4, 10, 18 ].\r\n|   |        in Labels column expressions, when applied to list and number:    [ 1, 2, 3 ] * 8 = [ 8, 16, 24 ].\r\n|   |\r\n|   |- \"/\" : when applied to numbers: 2 / 3 = 0.666667.\r\n|   |\r\n|   |- \"(\" and \")\" : operations order.\r\n|\r\n|- Functions:\r\n    |\r\n    |- Value( name ) - value of NumberBox, TextBox or Label element.\r\n    |                  For Label element - value of the last expression,\r\n    |                  for ex., value of Label with text \"Price: {2 * 100} dollars\" is 200.\r\n    |\r\n    |- Count( list ) - number of items in the list.\r\n    |\r\n    |- Min( list ) - the smallest number in list.\r\n    |\r\n    |- Max( list ) - the largest number in list.\r\n    |\r\n    |- Sum( list ) - sum of all numbers in list.\r\n    |\r\n    |- Cell( oneBasedColumnIndex, oneBasedRowIndex, 'tableName' ) - number value of specified cell.\r\n    |                                                               Cell must be from either NumberBox column or Label column.\r\n    |                                                               Parameter 'tableName' can be omitted if function is used\r\n    |                                                               in the same table (for ex., in Totals field's expression)\r\n    |                                                               as the specified cell.\r\n    |\r\n    |- Total( totalsFieldID, 'tableName' ) - value of Table's Totals field.\r\n    |                                        totalsFieldID - either one-based index or header text of desired totals field.\r\n    |                                        Parameter 'tableName' can be omitted if function is used\r\n    |                                        in the same table (for ex., in Totals field's expression)\r\n    |                                        as the specified totals field.\r\n    |\r\n    |- Col( columnID, 'tableName' ) - list of numbers which are cell values from specified column.\r\n    |                                 columnID - either one-based index or label text of desired column.\r\n    |                                 Only NumberBox and Label columns are supported.\r\n    |                                 Parameter 'tableName' can be omitted if function is used\r\n    |                                 in the same table (for ex., in Totals field's expression)\r\n    |                                 as the specified column.\r\n    |\r\n    |\r\n    |- Row( rowID, 'tableName' ) - list of numbers which are cell values from specified row.\r\n                                  rowID - either one-based index or label text of desired row.\r\n                                  Only cells from NumberBox or Label columns are included.\r\n                                  Parameter 'tableName' can be omitted if function is used\r\n                                  in the same table (for ex., in Totals field's expression)\r\n                                  as the specified row.\r\n                                  Not available in Label column expressions.\r\n  `;\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'sti-login',\r\n    template: `\r\n  <div id=\"cd334261b95f4a98802f0b2b478f726e\" class=\"stiJsViewerForm\"\r\n\tstyle=\"z-index: 21; width: 380px; background-color: white; left: 0px; opacity: 1;\"\r\n  [style.left.px]=\"window.innerWidth / 2 - 140\"\r\n  [style.top.px]=\"window.innerHeight / 2 - 200\">\r\n\t<div class=\"stiJsViewerAuthFormHeader\" style=\"position: relative;\">\r\n\t\t<table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\tcellspacing=\"0\" style=\"width: 100%;\">\r\n\t\t\t<tbody>\r\n\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t<td class=\"stiJsViewerAuthFormCaption\"\r\n\t\t\t\t\t\tstyle=\"text-align: left; padding: 45px 133px 45px 33px;\">{{loginInfo.AuthorizationWindowTitleLogin.toUpperCase()}}</td>\r\n\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\tstyle=\"vertical-align: top; width: 30px; text-align: right; padding: 2px 2px 1px 1px;\"><div\r\n\t\t\t\t\t\t\tclass=\"stiJsViewerStandartSmallButton stiJsViewerStandartSmallButtonDefault\"\r\n\t\t\t\t\t\t\tstyle=\"font-family: Arial; height: 23px; box-sizing: content-box; display: none;\">\r\n\t\t\t\t\t\t\t<table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\t\t\t\t\t\tcellspacing=\"0\" style=\"width: 100%; height: 100%;\">\r\n\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"line-height: 0; text-align: center; padding: 0px 4px;\"><img\r\n\t\t\t\t\t\t\t\t\t\t\tsrc=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTA2LTI0VDA4OjQ2OjI5KzAzOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wNy0wMVQxMDozNTowNyswMzowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wNy0wMVQxMDozNTowNyswMzowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0YjZhYjUxMi05NWZlLWNlNDQtYmRhMC02OTk3M2JhMzRiYTMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NGI2YWI1MTItOTVmZS1jZTQ0LWJkYTAtNjk5NzNiYTM0YmEzIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NGI2YWI1MTItOTVmZS1jZTQ0LWJkYTAtNjk5NzNiYTM0YmEzIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0YjZhYjUxMi05NWZlLWNlNDQtYmRhMC02OTk3M2JhMzRiYTMiIHN0RXZ0OndoZW49IjIwMTktMDYtMjRUMDg6NDY6MjkrMDM6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChXaW5kb3dzKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz51X1j6AAAAq0lEQVQ4jc1SsREDIQyTswMLQOmZKNmBUThaz+QSjk2cKp/8QT75++ZV+mSdJJvMDFfwuLR9T4Gcs5VSpmJKKZZznuaTADNjjAER2cgiYmMMMPPkgFZXEBFTVXjvQURorYGZEWOkvwQAoNZqvXcAQAgBKaVpeRlhU6Y3/+hXlgIiYq01hBDgvUfvfdfJYYRX/s/Mq9lXB6oK59yOGGMk5xxU9beDs7jhK5/FE4xzWvcg3Y20AAAAAElFTkSuQmCC\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"width: 16px; height: 16px; margin: 0px 2px;\"></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t</div></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</tbody>\r\n\t\t</table>\r\n\t\t<img\r\n\t\t\tsrc=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAAAqCAYAAAAqLWAgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplNzEwYmIyZC01NmUyLTc2NDItOGUyMi01YmE3MjYwOWZiZTMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjY0N0Q0REE5RTA2MTFFN0EwMEY4MTlBNDU0RjlFNjMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjY0N0Q0RDk5RTA2MTFFN0EwMEY4MTlBNDU0RjlFNjMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTYxZDc3OWMtYjFkYS00NDQyLTgxZWYtMzU2ZDQ0Nzk0N2IyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmU3MTBiYjJkLTU2ZTItNzY0Mi04ZTIyLTViYTcyNjA5ZmJlMyIv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\"\r\n\t\t\tstyle=\"position: absolute; top: 50px; right: 42px; width: 87px; height: 21px;\">\r\n\t</div>\r\n\t<div class=\"stiJsViewerAuthFormContainer\"\r\n\t\tstyle=\"overflow: hidden; padding: 0px;\">\r\n\t\t<div>\r\n\t\t\t<table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\t\tcellspacing=\"0\" style=\"width: 100%;\">\r\n\t\t\t\t<tbody>\r\n\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\" style=\"width: 50%;\"><table\r\n\t\t\t\t\t\t\t\tclass=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\t\t\t\t\t\tcellspacing=\"0\" style=\"margin: 0px auto;\">\r\n\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\"></tr>\r\n\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"><table\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tcellspacing=\"0\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"line-height: 0; background-color: rgb(242, 241, 241); width: 30px; text-align: center;\"><img\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDM1MiwgMjAyMC8wMS8zMC0xNTo1MDozOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjEgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNGQzNFQTREQTQ2OTExRUFBQzFBQjcwQUVCQUVFNURFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNGQzNFQTRFQTQ2OTExRUFBQzFBQjcwQUVCQUVFNURFIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0ZDM0VBNEJBNDY5MTFFQUFDMUFCNzBBRUJBRUU1REUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0ZDM0VBNENBNDY5MTFFQUFDMUFCNzBBRUJBRUU1REUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7qFruUAAAApUlEQVR42mL8//8/AwhIeXQzIAFXIE4FYlkgfgzEs4F4N0zy2Y5SuEIWBkzgDMTtSHwlJP5udMVMWAxIZ8AOUrEJYjNAFocBssQa8BiHAY+JNWAWDgPmEGvAHiCuAuL7QPwHSoP4u7AZwILDtl24NBBywRkojkMTj0OSI+gFEMgF4iAoOwjKZyDFC4xAXAHEmkDsD+WTZADMdYGkhgHJYBgYABBgAAcgHJxJDtSoAAAAAElFTkSuQmCC\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"vertical-align: middle; opacity: 0.8; width: 16px; height: 16px;\"></td>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"><input\r\n                              [(ngModel)]=\"login\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"null\" title=\"{{loginInfo.AuthorizationTextUserName}}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"stiJsViewerTextBox stiJsViewerTextBoxDefault\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"{{loginInfo.AuthorizationTextUserName}}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"font-family: Arial; width: 280px; height: 30px; line-height: 21px; box-sizing: content-box; background-color: rgb(242, 241, 241); border: none;\"></td>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"padding-top: 17px;\"><table\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tcellspacing=\"0\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"line-height: 0; background-color: rgb(242, 241, 241); width: 30px; text-align: center;\"><img\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDYuMC1jMDAyIDc5LjE2NDM1MiwgMjAyMC8wMS8zMC0xNTo1MDozOCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjEgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkNBNjE4NDExQTQ2OTExRUE4Qjg4OUQyMDc0MzI4QjQzIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkNBNjE4NDEyQTQ2OTExRUE4Qjg4OUQyMDc0MzI4QjQzIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Q0E2MTg0MEZBNDY5MTFFQThCODg5RDIwNzQzMjhCNDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Q0E2MTg0MTBBNDY5MTFFQThCODg5RDIwNzQzMjhCNDMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6i/NOXAAAA5UlEQVR42mKUdO9igAI7II4CYi0o/xoQLwXiwwx4AAuUzgLiJDQ5EyieB8TTcBnABMS2UM0TgNgSiPvQ1CRBXYfTgGgoex0Q/wbijVjUReEzAObnQCDmBGJ/LOq0CIUBCBRCMUmACRrahMBbfAYsI8IAWVzhwMyr4voQ6hVDAoZYQsPCAYiPAPEfmAsYoPFcBMRngPg7FD/GYogNELsghx1yIB6CYmQQjSNgQd5+AMR5LAScvRQphpCBFBD/gIUBoQC8DMRfoGGADASB+BsxBuAzxIKJhDSzDEs+YWAiMeFhGAIQYABSSCj4eeytwAAAAABJRU5ErkJggg==\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"vertical-align: middle; opacity: 0.8; width: 16px; height: 16px;\"></td>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"><input\r\n                              [(ngModel)]=\"password\"\r\n                              (keydown)=\"keydown($event)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname=\"null\" title=\"{{loginInfo.AuthorizationTextPassword}}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"stiJsViewerTextBox stiJsViewerTextBoxDefault\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"{{loginInfo.AuthorizationTextPassword}}\" type=\"password\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"font-family: Arial; width: 280px; height: 30px; line-height: 21px; box-sizing: content-box; background-color: rgb(242, 241, 241); border: none;\"></td>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"><table\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tcellspacing=\"0\" style=\"width: 100%;\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"padding-top: 20px;\"><div\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"stiJsViewerLoginButton stiJsViewerLoginButtonDefault\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"font-family: Arial; height: 40px; box-sizing: content-box; min-width: 80px; cursor: pointer; margin: 8px 0px 80px; display: inline-block;\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n                                (click)=\"doLogin()\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcellspacing=\"0\" style=\"width: 100%; height: 100%;\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstyle=\"padding: 0px 10px; white-space: nowrap; text-align: center;\">{{loginInfo.AuthorizationWindowTitleLogin}}</td>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div></td>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t</table></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\" colspan=\"2\"\r\n\t\t\t\t\t\t\tstyle=\"text-align: center;\"><div\r\n\t\t\t\t\t\t\t\tstyle=\"width: 380px; margin: 0px auto;\"></div></td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</tbody>\r\n\t\t\t</table>\r\n\t\t</div>\r\n\t</div>\r\n\t<div class=\"stiJsViewerFormButtonsPanel\" style=\"display: none;\">\r\n\t\t<table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\tcellspacing=\"0\">\r\n\t\t\t<tbody>\r\n\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\" style=\"padding: 12px;\"><div\r\n\t\t\t\t\t\t\tclass=\"stiJsViewerFormButtonTheme stiJsViewerFormButtonThemeDefault\"\r\n\t\t\t\t\t\t\tstyle=\"font-family: Arial; height: 23px; box-sizing: content-box; min-width: 80px;\">\r\n\t\t\t\t\t\t\t<table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\t\t\t\t\t\tcellspacing=\"0\" style=\"width: 100%; height: 100%;\">\r\n\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"padding: 0px 10px; white-space: nowrap; text-align: center; width: 100%;\">OK</td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t</div></td>\r\n\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\tstyle=\"padding: 12px 12px 12px 0px;\"><div\r\n\t\t\t\t\t\t\tclass=\"stiJsViewerFormButton stiJsViewerFormButtonDefault\"\r\n\t\t\t\t\t\t\tstyle=\"font-family: Arial; height: 23px; box-sizing: content-box; min-width: 80px;\">\r\n\t\t\t\t\t\t\t<table class=\"stiJsViewerClearAllStyles\" cellpadding=\"0\"\r\n\t\t\t\t\t\t\t\tcellspacing=\"0\" style=\"width: 100%; height: 100%;\">\r\n\t\t\t\t\t\t\t\t<tbody>\r\n\t\t\t\t\t\t\t\t\t<tr class=\"stiJsViewerClearAllStyles\">\r\n\t\t\t\t\t\t\t\t\t\t<td class=\"stiJsViewerClearAllStyles\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"padding: 0px 10px; white-space: nowrap; text-align: center; width: 100%;\">Cancel</td>\r\n\t\t\t\t\t\t\t\t\t</tr>\r\n\t\t\t\t\t\t\t\t</tbody>\r\n\t\t\t\t\t\t\t</table>\r\n\t\t\t\t\t\t</div></td>\r\n\t\t\t\t</tr>\r\n\t\t\t</tbody>\r\n\t\t</table>\r\n\t</div>\r\n</div>\r\n<style>\r\n  .stiJsViewerMainPanel *, .stiJsViewerMainPanel *:before, .stiJsViewerMainPanel *:after {\r\n    box-sizing: content-box;\r\n    border-collapse: initial;\r\n}\r\n\r\n.stiJsViewerForm {\r\n    position: absolute;\r\n    border: 1px solid #19478a;\r\n    background: #ffffff;\r\n    -moz-box-shadow: 0px 0px 7px rgba(0,0,0,0.6);\r\n    -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n    box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n    cursor: default;\r\n    -moz-user-select: none;\r\n    -khtml-user-select: none;\r\n    -webkit-user-select: none;\r\n    -ms-user-select: none;\r\n    text-align: left;\r\n    color: #202020;\r\n}\r\n\r\n.stiJsViewerClearAllStyles {\r\n    padding: 0px;\r\n    margin: 0px;\r\n    border: 0px;\r\n    margin-top: 0px;\r\n    margin-bottom: 0px;\r\n    margin-left: 0px;\r\n    margin-right: 0px;\r\n    line-height: normal;\r\n}\r\n\r\n.stiJsViewerAuthFormCaption {\r\n    font-family: Arial;\r\n    color: #7a8d8e;\r\n    font-size: 28px;\r\n}\r\n\r\n.stiJsViewerAuthFormContainer {\r\n    padding: 5px 10px 0px 10px;\r\n    background: #ffffff;\r\n    overflow-y: auto;\r\n    overflow-x: hidden;\r\n}\r\n\r\n.stiJsViewerTextBoxDefault {\r\n    border-radius: 3px;\r\n    border: 1px solid #ababab;\r\n}\r\n\r\n.stiJsViewerTextBox {\r\n    font-size: 12px;\r\n    margin: 0px;\r\n    padding: 0px 0px 0px 4px;\r\n    -webkit-border-radius: 0px;\r\n    outline: none;\r\n    background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(hsla(0,0%,100%,0)), to(hsla(0,0%,100%,0)));\r\n    background-image: -webkit-linear-gradient(hsla(0,0%,100%,0), hsla(0,0%,100%,0));\r\n    background: #ffffff;\r\n    color: #202020;\r\n}\r\n\r\n.stiJsViewerLoginButtonDefault {\r\n    background: #19478a;\r\n}\r\n\r\n.stiJsViewerLoginButton {\r\n    border: none;\r\n    border-radius: 3px;\r\n    height: 40px;\r\n    color: white;\r\n    cursor: default;\r\n    font-family: Arial;\r\n    font-size: 19px;\r\n    width: 100%;\r\n    -moz-user-select: none;\r\n    -khtml-user-select: none;\r\n    -webkit-user-select: none;\r\n    -ms-user-select: none;\r\n}\r\n\r\n.stiJsViewerLoginButton:hover {\r\n    background: #3b629b;\r\n}\r\n</style>\r\n  `,\r\n    standalone: false\r\n})\r\n\r\nexport class StiLoginComponent implements OnInit {\r\n\r\n  @Input() loginInfo: any;\r\n\r\n  @Output() onLogin = new EventEmitter();\r\n\r\n  public login: string;\r\n  public password: string;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit() { }\r\n\r\n  get window() {\r\n    return window;\r\n  }\r\n\r\n  doLogin() {\r\n    if (this.login?.length > 0 && this.password?.length > 0) {\r\n      this.onLogin.emit({ login: this.login, password: this.password });\r\n    }\r\n  }\r\n\r\n  keydown(event: any) {\r\n    if (event.key === 'Enter') {\r\n      this.doLogin();\r\n    }\r\n  }\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { StiColumnItem } from \"../../elements/table/StiColumnItem\";\r\nimport { SlideInOutAnimation } from \"../animations/animations\";\r\n\r\n@Component({\r\n    selector: \"sti-cells-preview\",\r\n    template: `<div [@slideInOut]=\"state ? 'in' : 'out'\">\r\n      @for (cell of cells; track cell; let i = $index) {\r\n        <div\r\n          class=\"cell-field\"\r\n          (dblclick)=\"addCell(i)\"\r\n          (mousedown)=\"startDragEvent($event, i)\"\r\n          >\r\n          <span>{{ \"Cell - \" + (i + 1) }}</span>\r\n        </div>\r\n      }\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      .cell-field {\r\n        font-family: \"Segoe UI\";\r\n        color: var(--text-color);\r\n        font-size: 13px;\r\n        -webkit-user-select: none;\r\n        padding: 3px 2px 3px 5px;\r\n        margin-left: 25px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n      }\r\n      .cell-field:hover {\r\n        background-color: rgb(240, 240, 240);\r\n      }\r\n    `,\r\n    ],\r\n    animations: [SlideInOutAnimation],\r\n    standalone: false\r\n})\r\nexport class StiCellsPreviewComponent implements OnInit {\r\n  @Input() state: boolean;\r\n  @Input() object: StiColumnItem;\r\n  @Output() cellClick = new EventEmitter<any>();\r\n  @Output() startCellDrag = new EventEmitter<any>();\r\n  constructor() {}\r\n  public get cells() {\r\n    return new Array(this.object?.eParent?.rowLabels?.length).fill(1);\r\n  }\r\n  addCell(index) {\r\n    this.cellClick.emit({ column: this.object, index: index + 1 });\r\n  }\r\n  startDragEvent(event, index) {\r\n    this.startCellDrag.emit({ object: this.object, index: index + 1, event: event, isCell: true });\r\n  }\r\n  getValue(index) {\r\n    return this.object[\"cells\"][index].value;\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { StiTableElement } from \"../../elements/StiTableElement\";\r\nimport { StiColumnItem } from \"../../elements/table/StiColumnItem\";\r\nimport { StiTotalsFieldItem } from \"../../elements/table/StiTotalsFieldItem\";\r\nimport { RotateAnimation, SlideInOutAnimation } from \"../animations/animations\";\r\n\r\n@Component({\r\n  selector: \"sti-columns-preview\",\r\n  template: ` <div [@slideInOut]=\"state ? 'in' : 'out'\">\r\n      @for (column of columns; track $index; let i = $index) {\r\n        <div class=\"column-field\">\r\n          <div\r\n            class=\"field-content\"\r\n            [style.padding]=\"!isColumn(column) ? '3px 2px 3px 5px' : '3px 2px 3px 0px'\"\r\n            (click)=\"isColumn(column) ? changeState(column) : ''\"\r\n            (mousedown)=\"startItemDrag({ object: column, event: $event })\"\r\n            (dblclick)=\"!isColumn(column) ? addTotal(column) : ''\"\r\n            >\r\n            @if (isColumn(column)) {\r\n              <div class=\"arrow\" [@rotatedState]=\"getState(column)\">\r\n                <i class=\"pi pi-chevron-right\"></i>\r\n              </div>\r\n            }\r\n            <span>{{ column.label ? column.label : column.header ? column.header : \"Column \" + (i + 1) }}</span>\r\n          </div>\r\n          @if (isColumn(column)) {\r\n            <sti-cells-preview\r\n              (cellClick)=\"addCell($event)\"\r\n              (startCellDrag)=\"startItemDrag($event)\"\r\n              [object]=\"column\"\r\n              [state]=\"getState(column) == 'default' ? false : true\"\r\n            ></sti-cells-preview>\r\n          }\r\n        </div>\r\n      }\r\n    </div>`,\r\n  styles: [\r\n    `\r\n      .field-content {\r\n        display: flex;\r\n        border-radius: 3px;\r\n        padding: 2px 5px;\r\n        margin-left: 5px;\r\n      }\r\n      .field-content:hover {\r\n        background-color: rgb(240, 240, 240);\r\n      }\r\n      .arrow {\r\n        width: 20px;\r\n        cursor: default;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .arrow .pi {\r\n        font-size: 0.625rem;\r\n      }\r\n      .column-field {\r\n        font-family: \"Segoe UI\";\r\n        color: var(--text-color);\r\n        font-size: 13px;\r\n        -webkit-user-select: none;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n    `,\r\n  ],\r\n  animations: [SlideInOutAnimation, RotateAnimation],\r\n  standalone: false\r\n})\r\nexport class StiColumnsPreviewComponent implements OnInit {\r\n  @Input() state: boolean;\r\n  @Input() object: StiTableElement;\r\n  @Output() fieldClick = new EventEmitter<any | StiTotalsFieldItem>();\r\n  @Output() startFieldDrag = new EventEmitter<any>();\r\n  public arrayOfStates = [];\r\n  public get columns() {\r\n    let columns = [];\r\n    this.object.columns.forEach((column) => {\r\n      columns.push(column);\r\n    });\r\n    this.object.totalsFields.forEach((total) => {\r\n      columns.push(total);\r\n    });\r\n    return columns;\r\n  }\r\n  isColumn(column) {\r\n    return column instanceof StiColumnItem;\r\n  }\r\n  constructor() { }\r\n  addTotal(column) {\r\n    this.fieldClick.emit(column);\r\n  }\r\n  addCell(cellObject) {\r\n    this.fieldClick.emit(cellObject);\r\n  }\r\n  startItemDrag(dragObject) {\r\n    this.startFieldDrag.emit(dragObject);\r\n  }\r\n  ngOnInit() {\r\n    this.columns?.forEach((field) => {\r\n      if (this.isColumn(field)) {\r\n        this.arrayOfStates.push({ element: field, state: \"default\" });\r\n      }\r\n    });\r\n  }\r\n  getState(element) {\r\n    return this.arrayOfStates.find((item) => item.element == element).state;\r\n  }\r\n  changeState(element) {\r\n    let index = this.arrayOfStates.findIndex((item) => item.element == element);\r\n    this.arrayOfStates[index].state == \"default\"\r\n      ? (this.arrayOfStates[index].state = \"rotated\")\r\n      : (this.arrayOfStates[index].state = \"default\");\r\n  }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { StiFormElement } from \"../../elements/base/StiFormElement\";\r\nimport { StiLabelElement } from \"../../elements/StiLabelElement\";\r\nimport { StiNumberBoxElement } from \"../../elements/StiNumberBoxElement\";\r\nimport { StiTableElement } from \"../../elements/StiTableElement\";\r\nimport { StiTextBoxElement } from \"../../elements/StiTextBoxElement\";\r\nimport { StiTotalsFieldItem } from \"../../elements/table/StiTotalsFieldItem\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\nimport { StiExpressionService } from \"../../services/sti-expression.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiDraggableExpressionObject, StiExpressionSample } from \"../../system/interfaces\";\r\nimport { RotateAnimation } from \"../animations/animations\";\r\nimport { StiColumnItem } from \"../../elements/table/StiColumnItem\";\r\n\r\n@Component({\r\n    selector: \"sti-expression-editor\",\r\n    template: `<div\r\n      class=\"expression-editor-container\"\r\n      [style.left.px]=\"expressionService.componentX\"\r\n      [style.top.px]=\"expressionService.componentY\"\r\n      [style.pointer-events]=\"model.showHelpWindow ? 'none' : ''\"\r\n      >\r\n      <div class=\"header-navigation\" (mousedown)=\"startDrag($event)\">\r\n        <span>{{ loc.get2(\"FormTitles\", \"ExpressionEditorForm\") }}</span>\r\n        <div class=\"nav-button\" (click)=\"showInfo()\"><img [src]=\"model.getImage('images.Other.HelpIcon.png')\" /></div>\r\n        <div class=\"nav-button\" (click)=\"model.showExpressionEditor = false\">\r\n          <img [src]=\"model.getImage('images.Other.CloseForm.png')\" />\r\n          <!-- <i class=\"pi pi-times\"></i> -->\r\n        </div>\r\n      </div>\r\n      <div\r\n        class=\"expression-preview {{ expressionService.isDragging ? 'dragging-over' : '' }}\"\r\n        (click)=\"expressionRef.focus()\"\r\n        >\r\n        <label\r\n          [id]=\"'expressionLabel'\"\r\n          #expressionRef\r\n          contenteditable=\"plaintext-only\"\r\n          (mouseup)=\"getCaret()\"\r\n          (input)=\"setContent($event.target.textContent)\"\r\n          (blur)=\"expressionString = $event.target.textContent\"\r\n          (keyup)=\"getCaret()\"\r\n          spellcheck=\"false\"\r\n          [textContent]=\"expressionString\"\r\n          [style.cursor]=\"expressionService.isDragging ? 'default' : 'text'\"\r\n        ></label>\r\n      </div>\r\n      <div class=\"expression-navigation\">\r\n        <div\r\n          class=\"expression-functions column\"\r\n          [style.width]=\"currentSelectedMode == 'functions' || currentSelectedMode == 'systemVariable' ? '100%' : '30%'\"\r\n          >\r\n          <div class=\"column-content\">\r\n            <span\r\n              class=\"column-item {{ currentSelectedMode == 'functions' ? 'selected' : '' }}\"\r\n              (click)=\"changeMode('functions')\"\r\n              >\r\n              {{ loc.getP(\"Functions\") }}\r\n            </span>\r\n            <span\r\n              class=\"column-item {{ currentSelectedMode == 'elements' ? 'selected' : '' }}\"\r\n              (click)=\"changeMode('elements')\"\r\n              >\r\n              {{ loc.get2(\"Report\", \"Components\") }}\r\n            </span>\r\n            <span\r\n              class=\"column-item {{ currentSelectedMode == 'systemVariable' ? 'selected' : '' }}\"\r\n              (click)=\"changeMode('systemVariable')\"\r\n              >\r\n              {{ loc.getP(\"SystemVariable\") }}\r\n            </span>\r\n            <span\r\n              class=\"column-item {{ currentSelectedMode == 'operators' ? 'selected' : '' }}\"\r\n              (click)=\"changeMode('operators')\"\r\n              >\r\n              {{ loc.get2(\"MathFormula\", \"Operators\") }}\r\n            </span>\r\n          </div>\r\n        </div>\r\n        @if (currentSelectedMode == 'functions' || currentSelectedMode == 'systemVariable') {\r\n          <div\r\n            class=\"expression-operators column\"\r\n            >\r\n            @if (currentSelectedMode == 'functions') {\r\n              <div class=\"column-content\">\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'value' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('value')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Value', event: $event })\"\r\n                  (dblclick)=\"addFunction('Value')\"\r\n                  >\r\n                  {{ \"Value()\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'count' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('count')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Count', event: $event })\"\r\n                  (dblclick)=\"addFunction('Count')\"\r\n                  >\r\n                  {{ \"Count()\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'min' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('min')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Min', event: $event })\"\r\n                  (dblclick)=\"addFunction('Min')\"\r\n                  >\r\n                  {{ \"Min()\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'max' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('max')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Max', event: $event })\"\r\n                  (dblclick)=\"addFunction('Max')\"\r\n                  >\r\n                  {{ \"Max()\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'sum' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('sum')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Sum', event: $event })\"\r\n                  (dblclick)=\"addFunction('Sum')\"\r\n                  >\r\n                  {{ \"Sum()\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'cell' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('cell')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Cell', event: $event })\"\r\n                  (dblclick)=\"addFunction('Cell')\"\r\n                  >\r\n                  {{ \"Cell()\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'total' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('total')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Total', event: $event })\"\r\n                  (dblclick)=\"addFunction('Total')\"\r\n                  >\r\n                  {{ \"Total()\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'col' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('col')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Col', event: $event })\"\r\n                  (dblclick)=\"addFunction('Col')\"\r\n                  >\r\n                  {{ \"Col()\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'row' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('row')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Row', event: $event })\"\r\n                  (dblclick)=\"addFunction('Row')\"\r\n                  >\r\n                  {{ \"Row()\" }}\r\n                </span>\r\n              </div>\r\n            }\r\n            @if (currentSelectedMode == 'systemVariable') {\r\n              <div class=\"column-content\">\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'line' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('line')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Line', event: $event })\"\r\n                  (dblclick)=\"addFunction('Line')\"\r\n                  >\r\n                  {{ \"Line\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'today' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('today')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Today', event: $event })\"\r\n                  (dblclick)=\"addFunction('Today')\"\r\n                  >\r\n                  {{ \"Today\" }}\r\n                </span>\r\n                <span\r\n                  class=\"column-item {{ currentSelectedFunction == 'time' ? 'selected' : '' }}\"\r\n                  (click)=\"changeCurrentFuction('time')\"\r\n                  (mousedown)=\"startExpressionDragging({ object: 'Time', event: $event })\"\r\n                  (dblclick)=\"addFunction('Time')\"\r\n                  >\r\n                  {{ \"Time\" }}\r\n                </span>\r\n              </div>\r\n            }\r\n          </div>\r\n        }\r\n        <div class=\"expression-fields column\">\r\n          @if (currentSelectedMode == 'functions' || currentSelectedMode == 'systemVariable') {\r\n            <div\r\n              class=\"column-content\"\r\n              >\r\n              @for (sample of samples; track sample) {\r\n                <div class=\"sample-item\">\r\n                  <span>{{ sample }}</span>\r\n                </div>\r\n              }\r\n              <div class=\"sample-item\" [style.padding]=\"'15px 0px'\">\r\n                <span>{{ title }}</span>\r\n              </div>\r\n            </div>\r\n          }\r\n          @if (currentSelectedMode == 'operators') {\r\n            <div class=\"column-content\">\r\n              <span\r\n                class=\"operator-item\"\r\n                [stiTooltip]=\"loc.get2('Shapes', 'Plus')\"\r\n                tooltipPosition=\"bottom\"\r\n                showDelay=\"500\"\r\n                (dblclick)=\"addOperator('+')\"\r\n                (mousedown)=\"startExpressionDragging({ object: '+', event: $event })\"\r\n                >+</span\r\n                >\r\n                <span\r\n                  class=\"operator-item\"\r\n                  [stiTooltip]=\"loc.get2('Shapes', 'Minus')\"\r\n                  tooltipPosition=\"bottom\"\r\n                  showDelay=\"500\"\r\n                  (mousedown)=\"startExpressionDragging({ object: '-', event: $event })\"\r\n                  (dblclick)=\"addOperator('-')\"\r\n                  >-</span\r\n                  >\r\n                  <span\r\n                    class=\"operator-item\"\r\n                    [stiTooltip]=\"loc.get2('Shapes', 'Multiply')\"\r\n                    tooltipPosition=\"bottom\"\r\n                    showDelay=\"500\"\r\n                    (mousedown)=\"startExpressionDragging({ object: '*', event: $event })\"\r\n                    (dblclick)=\"addOperator('*')\"\r\n                    >*</span\r\n                    >\r\n                    <span\r\n                      class=\"operator-item\"\r\n                      [stiTooltip]=\"loc.get2('Shapes', 'Division')\"\r\n                      tooltipPosition=\"bottom\"\r\n                      showDelay=\"500\"\r\n                      (mousedown)=\"startExpressionDragging({ object: '/', event: $event })\"\r\n                      (dblclick)=\"addOperator('/')\"\r\n                      >/</span\r\n                      >\r\n                    </div>\r\n                  }\r\n                  @if (currentSelectedMode == 'elements') {\r\n                    <div class=\"column-content\">\r\n                      @for (field of fields; track field) {\r\n                        <div>\r\n                          <div\r\n                            class=\"column-item field\"\r\n                            [style.padding]=\"isTable(field) ? '4px 5px 4px 0px' : '4px 5px'\"\r\n                            (click)=\"isTable(field) ? changeState(field) : ''\"\r\n                            (mousedown)=\"!isTable(field) ? startExpressionDragging({ object: field, event: $event }) : ''\"\r\n                            (dblclick)=\"!isTable(field) ? addValue(field) : ''\"\r\n                            >\r\n                            @if (isTable(field)) {\r\n                              <div class=\"arrow\" [@rotatedState]=\"getState(field)\">\r\n                                <i class=\"pi pi-chevron-right\"></i>\r\n                              </div>\r\n                            }\r\n                            <span>{{ field.name }}</span>\r\n                          </div>\r\n                          @if (isTable(field)) {\r\n                            <sti-columns-preview\r\n                              [object]=\"field\"\r\n                              (fieldClick)=\"nestedFieldClick($event)\"\r\n                              (startFieldDrag)=\"startExpressionDragging($event)\"\r\n                              [state]=\"getState(field) == 'default' ? false : true\"\r\n                            ></sti-columns-preview>\r\n                          }\r\n                        </div>\r\n                      }\r\n                    </div>\r\n                  }\r\n                </div>\r\n              </div>\r\n              <div class=\"footer-navigation\">\r\n                <div class=\"footer-button accept\" (click)=\"save()\" [style.margin-right.px]=\"0\">\r\n                  <span>{{ loc.get2(\"Buttons\", \"Save\") }}</span>\r\n                </div>\r\n                <div class=\"footer-button cancel\" (click)=\"model.showExpressionEditor = false\">\r\n                  <span>{{ loc.getP(\"Cancel\") }}</span>\r\n                </div>\r\n              </div>\r\n            </div>`,\r\n    styles: [\r\n        `\r\n      .arrow {\r\n        width: 20px;\r\n        cursor: default;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .arrow .pi {\r\n        font-size: 0.625rem;\r\n      }\r\n      .pi {\r\n        font-size: 0.825rem;\r\n      }\r\n      .selected {\r\n        background-color: #e5e5e5;\r\n      }\r\n      .expression-editor-container {\r\n        position: absolute;\r\n        font-size: 13px;\r\n        font-family: \"Arial\";\r\n        color: var(--text-color);\r\n        min-height: 480px;\r\n        width: 700px;\r\n        border-radius: 5px;\r\n        left: calc(50% - 350px);\r\n        top: calc(50% - 250px);\r\n        display: flex;\r\n        flex-direction: column;\r\n        border: 1px solid rgb(28, 71, 134);\r\n        background-color: #ffffff;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        z-index: 999;\r\n      }\r\n      .header-navigation {\r\n        display: flex;\r\n        height: 40px;\r\n        align-items: center;\r\n        padding-left: 15px;\r\n        padding-right: 5px;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n        color: white;\r\n        -webkit-user-select: none;\r\n      }\r\n      .header-navigation span {\r\n        width: 100%;\r\n        font-size: 17px;\r\n        -webkit-user-select: none;\r\n        cursor: default;\r\n      }\r\n      .nav-button {\r\n        height: 24px;\r\n        width: 28px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        align-self: start;\r\n        margin-top: 5px;\r\n      }\r\n      .nav-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .nav-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n      .expression-preview {\r\n        width: calc(100% - 20px);\r\n        margin: 10px 10px 5px 10px;\r\n        padding: 5px;\r\n        background-color: rgb(250, 250, 250);\r\n        border: 1px solid lightgray;\r\n        height: 135px;\r\n        -webkit-user-select: text;\r\n        display: flex;\r\n      }\r\n      .expression-preview label {\r\n        -webkit-user-select: text;\r\n        font-size: 13px;\r\n        outline: none;\r\n        height: 100%;\r\n        width: 100%;\r\n        overflow: auto;\r\n      }\r\n      .dragging-over {\r\n        background-color: rgb(235, 235, 235) !important;\r\n        border: 1px dashed black !important;\r\n      }\r\n      .expression-navigation {\r\n        display: flex;\r\n        width: 100%;\r\n        padding: 0px 5px;\r\n      }\r\n      .column {\r\n        border: 1px solid lightgray;\r\n        height: 230px;\r\n        width: 100%;\r\n        margin: 5px;\r\n      }\r\n      .buttons {\r\n        height: 250px;\r\n        min-width: 150px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n        align-items: center;\r\n      }\r\n      .buttons img {\r\n        height: 52px;\r\n        width: 52px;\r\n        border-radius: 3px;\r\n        margin: 5px;\r\n        padding: 10px;\r\n      }\r\n      .buttons img:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .column-header {\r\n        -webkit-user-select: none;\r\n        height: 30px;\r\n        background-color: lightgray;\r\n        display: flex;\r\n        align-items: center;\r\n        padding: 0px 10px;\r\n        border-top-left-radius: 4px;\r\n        border-top-right-radius: 4px;\r\n      }\r\n      .column-header span {\r\n        font-size: 15px;\r\n        -webkit-user-select: none;\r\n        cursor: default;\r\n      }\r\n      .footer-navigation {\r\n        width: 100%;\r\n        display: flex;\r\n        justify-content: flex-end;\r\n        height: 50px;\r\n        align-items: center;\r\n      }\r\n      .footer-button {\r\n        min-width: 90px;\r\n        height: 30px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 0 10px;\r\n        -webkit-user-select: none;\r\n\r\n        font-size: 12px;\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .cancel {\r\n        background-color: rgb(221, 221, 221);\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .cancel:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n      .column-content {\r\n        width: 100%;\r\n        padding: 5px;\r\n        display: flex;\r\n        max-height: 229px;\r\n        overflow-y: auto;\r\n        flex-direction: column;\r\n      }\r\n      .operator-item {\r\n        font-family: \"Arial\";\r\n        color: var(--text-color);\r\n        font-size: 17px;\r\n        padding: 2px 7px;\r\n        border-radius: 3px;\r\n        -webkit-user-select: none;\r\n      }\r\n      .operator-item:hover {\r\n        background-color: rgb(240, 240, 240);\r\n      }\r\n      .sample-item {\r\n        font-family: \"Arial\";\r\n        color: var(--text-color);\r\n        font-size: 12px;\r\n        -webkit-user-select: none;\r\n        padding-bottom: 3px;\r\n        cursor: default;\r\n      }\r\n\r\n      .column-item {\r\n        font-family: \"Arial\";\r\n        color: var(--text-color);\r\n        font-size: 12px;\r\n        -webkit-user-select: none;\r\n        padding: 5px;\r\n        cursor: default;\r\n      }\r\n      .column-item:hover {\r\n        background-color: rgb(240, 240, 240);\r\n      }\r\n      .info {\r\n        height: 30px;\r\n        width: 30px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .info img {\r\n        height: 16px;\r\n        width: 16px;\r\n        cursor: pointer;\r\n      }\r\n      .field {\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .field img {\r\n        height: 16px;\r\n        width: 16px;\r\n        margin-right: 5px;\r\n      }\r\n    `,\r\n    ],\r\n    animations: [RotateAnimation],\r\n    standalone: false\r\n})\r\nexport class StiExpressionEditorComponent implements OnInit, OnDestroy, AfterViewInit {\r\n  @ViewChild(\"expressionRef\") elementRef: ElementRef;\r\n\r\n  public expressionString = \"{}\";\r\n  public currentSelectedMode = \"functions\";\r\n  public currentSelectedFunction = \"value\";\r\n  public startX: number;\r\n  public startY: number;\r\n  public startComponentX: number;\r\n  public startComponentY: number;\r\n  public isDragging: boolean;\r\n  public lastCaretPosition: number;\r\n  public canDragExpression: boolean = false;\r\n  public dragObject: any;\r\n\r\n  mouseUpSubscription: Subscription;\r\n  mouseMoveSubscription: Subscription;\r\n  expressionUpdatingSubscription: Subscription;\r\n\r\n  public arrayOfSamples: StiExpressionSample[] = [\r\n    {\r\n      functionName: \"value\",\r\n      samples: [\"Value('TextBox')\", \"Value('NumberBox')\", \"Value('Label')\"],\r\n      title: \"Value of NumberBox, TextBox or Label element\",\r\n    },\r\n    {\r\n      functionName: \"count\",\r\n      samples: [\"Count(Col(1,'Table'))\", \"Count(Row('First','Table'))\"],\r\n      title: \"Number of items in the list\",\r\n    },\r\n    {\r\n      functionName: \"min\",\r\n      samples: [\"Min(Col(1,'Table'))\", \"Min(Row('First','Table'))\"],\r\n      title: \"The smallest number in list\",\r\n    },\r\n    {\r\n      functionName: \"max\",\r\n      samples: [\"Max(Col(1,'Table'))\", \"Max(Row('First','Table'))\"],\r\n      title: \"The largest number in list\",\r\n    },\r\n    {\r\n      functionName: \"sum\",\r\n      samples: [\"Sum(Col(1,'Table'))\", \"Sum(Row('First','Table'))\"],\r\n      title: \"Sum of all numbers in list\",\r\n    },\r\n    {\r\n      functionName: \"cell\",\r\n      samples: [\"Cell(columnId,rowId)\", \"Cell(columnId,rowId,'Table')\"],\r\n      title: \"Number value of specified cell\",\r\n    },\r\n    {\r\n      functionName: \"total\",\r\n      samples: [\"Total(totalId)\", \"Total(totalId,'Table')\"],\r\n      title: \"Value of Tables Totals field\",\r\n    },\r\n    {\r\n      functionName: \"col\",\r\n      samples: [\"Col(columnId)\", \"Col(columnId,'Table')\"],\r\n      title: \"List of numbers which are cell values from specified column\",\r\n    },\r\n    {\r\n      functionName: \"row\",\r\n      samples: [\"Row(rowLabel)\", \"Row(rowLabel,'Table')\"],\r\n      title: \"List of numbers which are cell values from specified row\",\r\n    },\r\n    {\r\n      functionName: \"line\",\r\n      samples: [\"Line\"],\r\n      title: \"Returns the current table line number (starts from 1).\",\r\n    },\r\n    {\r\n      functionName: \"today\",\r\n      samples: [\"Today\"],\r\n      title: \"Returns the current date in default format.\",\r\n    },\r\n    {\r\n      functionName: \"time\",\r\n      samples: [\"Time\"],\r\n      title: \"Returns the current time in default format.\",\r\n    },\r\n  ];\r\n\r\n  public arrayOfStates = [];\r\n  constructor(\r\n    public model: StiModelService,\r\n    public expressionService: StiExpressionService,\r\n    public loc: StiLocalizationService,\r\n    public mouseService: StiMouseService,\r\n    public editableService: StiEditableContentService,\r\n    private cdr: ChangeDetectorRef\r\n  ) { }\r\n  ngAfterViewInit(): void {\r\n    this.expressionService.elementRef = this.elementRef;\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.mouseMoveSubscription?.unsubscribe();\r\n    this.mouseUpSubscription?.unsubscribe();\r\n    this.expressionUpdatingSubscription?.unsubscribe();\r\n    this.expressionService.elementRef = null;\r\n  }\r\n\r\n  startExpressionDragging(dragObject) {\r\n    this.startX = dragObject.event.clientX;\r\n    this.startY = dragObject.event.clientY;\r\n    this.canDragExpression = true;\r\n    this.dragObject = dragObject;\r\n  }\r\n  setContent(innerText) {\r\n    if (innerText == \"\" || innerText == null) {\r\n      this.expressionString = innerText;\r\n    }\r\n\r\n    if (this.model.getBrowserType() == \"safari\" || this.model.getBrowserType() == \"firefox\") {\r\n      this.cdr.detach();\r\n    }\r\n  }\r\n  public checkBrackets() {\r\n    let haveCloseBreaket: boolean = false;\r\n    let haveOpenBreaket: boolean = false;\r\n    if (this.lastCaretPosition) {\r\n      for (let i = this.lastCaretPosition - 1; i >= 0; i--) {\r\n        if (this.expressionString[i] === \"}\") {\r\n          haveCloseBreaket = true;\r\n          break;\r\n        } else if (this.expressionString[i] === \"{\") {\r\n          haveOpenBreaket = true;\r\n          break;\r\n        }\r\n      }\r\n    }\r\n    if (haveCloseBreaket || (!haveCloseBreaket && !haveOpenBreaket)) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  showInfo() {\r\n    this.model.showHelpWindow = true;\r\n  }\r\n  addValue(element) {\r\n    this.addFunction(\"Value\", element.name, true);\r\n  }\r\n  changeMode(mode) {\r\n    if (this.model.getBrowserType() == \"safari\" || this.model.getBrowserType() == \"firefox\") {\r\n      this.cdr.reattach();\r\n      this.cdr.detectChanges();\r\n    }\r\n    if (this.currentSelectedMode != mode && mode == \"systemVariable\") {\r\n      this.currentSelectedFunction = \"line\";\r\n    } else {\r\n      this.currentSelectedFunction = \"value\";\r\n    }\r\n    this.currentSelectedMode = mode;\r\n  }\r\n  changeCurrentFuction(func) {\r\n    this.currentSelectedFunction = func;\r\n  }\r\n  startDrag(event) {\r\n    this.startX = event.clientX;\r\n    this.startY = event.clientY;\r\n    this.startComponentX = this.expressionService.componentX;\r\n    this.startComponentY = this.expressionService.componentY;\r\n    this.isDragging = true;\r\n  }\r\n  public get samples() {\r\n    return this.arrayOfSamples.find((sample) => sample.functionName == this.currentSelectedFunction).samples;\r\n  }\r\n  public get title() {\r\n    return this.arrayOfSamples.find((sample) => sample.functionName == this.currentSelectedFunction).title;\r\n  }\r\n  nestedFieldClick(field) {\r\n    if (field instanceof StiTotalsFieldItem) {\r\n      this.insertInExpression(\r\n        this.lastCaretPosition,\r\n        `Total(${field.eParent.totalsFields.indexOf(field) + 1},'${field.eParent.name}')`\r\n      );\r\n    } else {\r\n      this.insertInExpression(\r\n        this.lastCaretPosition,\r\n        `Cell(${field.column.eParent.columns.indexOf(field.column) + 1},${field.index},'${field.column.eParent.name}')`\r\n      );\r\n    }\r\n  }\r\n  public get fields() {\r\n    let fields = [];\r\n    this.model?.form?.pages?.forEach((page) => {\r\n      page.allElements.forEach((element) => {\r\n        if (this.haveExpression(element)) {\r\n          fields.push(element);\r\n        }\r\n      });\r\n    });\r\n    return fields;\r\n  }\r\n  isTable(element) {\r\n    return element instanceof StiTableElement;\r\n  }\r\n  haveExpression(element) {\r\n    return element instanceof StiTableElement ||\r\n      element instanceof StiTextBoxElement ||\r\n      element instanceof StiNumberBoxElement\r\n      ? true\r\n      : false;\r\n  }\r\n  addOperator(operator: string) {\r\n    this.insertInExpression(this.lastCaretPosition, operator, true);\r\n  }\r\n  addFunction(func: string, name?: string, filled: boolean = false) {\r\n    let string = \"\";\r\n    if (func.toLowerCase() == \"value\") {\r\n      string = func + `('${name ? name : \"\"}')`;\r\n    } else if (func.toLowerCase() == \"line\" || func.toLowerCase() == \"today\" || func.toLowerCase() == \"time\") {\r\n      string = func;\r\n    } else if (func.toLowerCase() == \"cell\") {\r\n      string = func + \"(,,'')\";\r\n    } else if (func.toLowerCase() == \"total\" || func.toLowerCase() == \"col\" || func.toLowerCase() == \"row\") {\r\n      string = func + \"(,'')\";\r\n    } else {\r\n      string = func + \"()\";\r\n    }\r\n    this.insertInExpression(this.lastCaretPosition, string, false, filled ? false : true);\r\n  }\r\n  insertInExpression(position: number, string: string, isOperator = false, isFunction = false) {\r\n    let needBrackets = isOperator ? false : this.checkBrackets();\r\n    let previousString = this.expressionString;\r\n    let insertedExpression = `${needBrackets ? \"{\" : \"\"}${string}${needBrackets ? \"}\" : \"\"}`;\r\n    if (this.expressionString.length > 0 && position) {\r\n      if (position == 0) {\r\n        this.expressionString = insertedExpression + previousString;\r\n      } else {\r\n        this.expressionString =\r\n          previousString.slice(0, position) +\r\n          insertedExpression +\r\n          previousString.slice(position, previousString.length);\r\n      }\r\n    } else {\r\n      this.expressionString += insertedExpression;\r\n    }\r\n    this.setCaret(insertedExpression, isFunction);\r\n  }\r\n  setCaret(insertedExpression: string, isFunction: boolean = false) {\r\n    let leftBracketIndex = insertedExpression.indexOf(\"(\");\r\n    let carretOffset = 0;\r\n    if (!this.lastCaretPosition) {\r\n      this.lastCaretPosition = this.expressionString.length - insertedExpression.length;\r\n    }\r\n    if (isFunction) {\r\n      if (insertedExpression[leftBracketIndex + 1] == \"'\") {\r\n        carretOffset = this.lastCaretPosition + leftBracketIndex + 2;\r\n      } else {\r\n        carretOffset = this.lastCaretPosition + leftBracketIndex + 1;\r\n      }\r\n    } else {\r\n      carretOffset = this.lastCaretPosition + insertedExpression.length;\r\n    }\r\n\r\n    let elem = this.elementRef.nativeElement;\r\n    elem.focus();\r\n    setTimeout(() => {\r\n      var range = document.createRange();\r\n      var sel = window.getSelection();\r\n\r\n      range.setStart(elem.childNodes[0], carretOffset);\r\n      range.collapse(true);\r\n      this.lastCaretPosition += insertedExpression.length;\r\n      sel.removeAllRanges();\r\n      sel.addRange(range);\r\n    });\r\n  }\r\n  save() {\r\n    if (this.expressionService.currentSelectedObject instanceof StiLabelElement) {\r\n      this.expressionService.currentSelectedObject.text.value = this.expressionString;\r\n      this.model.formEvents.next({ name: \"ValueChanged\" });\r\n    } else {\r\n      this.expressionService.currentSelectedObject.expression = this.expressionString;\r\n    }\r\n    this.model.showExpressionEditor = false;\r\n  }\r\n  ngOnInit() {\r\n    this.expressionService.componentX = (window.innerWidth - this.expressionService.componentWidth) / 2;\r\n    this.expressionService.componentY = (window.innerHeight - this.expressionService.componentHeight) / 2;\r\n    this.expressionString = this.expressionService.currentSelectedObject?.expression\r\n      ? this.expressionService.currentSelectedObject?.expression\r\n      : this.expressionService.currentSelectedObject?.text?.value\r\n        ? this.expressionService.currentSelectedObject?.text?.value\r\n        : \"\";\r\n    this.fields?.forEach((field) => {\r\n      if (this.isTable(field)) {\r\n        this.arrayOfStates.push({ element: field, state: \"default\" });\r\n      }\r\n    });\r\n    this.currentSelectedFunction = \"value\";\r\n    this.currentSelectedMode = \"functions\";\r\n    this.expressionUpdatingSubscription = this.expressionService.needToAddExpression.subscribe((object) => {\r\n      this.addExpressionByDrag(object);\r\n    });\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe(() => {\r\n      this.isDragging = false;\r\n      this.canDragExpression = false;\r\n    });\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.onMouseMove(event);\r\n    });\r\n  }\r\n  addExpressionByDrag(expressionObject: StiDraggableExpressionObject) {\r\n    if (this.expressionString.length == 0) {\r\n      this.lastCaretPosition = 0;\r\n    } else {\r\n      this.lastCaretPosition = expressionObject.lastCaretOffset;\r\n    }\r\n    if (typeof expressionObject.startObject.object == \"string\") {\r\n      if (expressionObject.startObject.object.length == 1) {\r\n        this.addOperator(expressionObject.startObject.object);\r\n      } else {\r\n        this.addFunction(expressionObject.startObject.object);\r\n      }\r\n    } else {\r\n      if (expressionObject.startObject.object instanceof StiFormElement) {\r\n        this.addFunction(\"Value\", expressionObject.startObject.object.name, true);\r\n      } else {\r\n        if (expressionObject.startObject.object instanceof StiTotalsFieldItem) {\r\n          this.insertInExpression(\r\n            this.lastCaretPosition,\r\n            `Total(${expressionObject.startObject.object.eParent.totalsFields.indexOf(expressionObject.startObject.object) + 1\r\n            },'${expressionObject.startObject.object.eParent.name}')`\r\n          );\r\n        } else if (\r\n          expressionObject.startObject.object instanceof StiColumnItem &&\r\n          !expressionObject.startObject.isCell\r\n        ) {\r\n          this.insertInExpression(\r\n            this.lastCaretPosition,\r\n            `Col(${expressionObject.startObject.object.eParent.columns.indexOf(expressionObject.startObject.object) + 1\r\n            },'${expressionObject.startObject.object.eParent.name}')`\r\n          );\r\n        } else {\r\n          this.insertInExpression(\r\n            this.lastCaretPosition,\r\n            `Cell(${expressionObject.startObject.object.eParent.columns.indexOf(expressionObject.startObject.object) + 1\r\n            },${expressionObject.startObject.index},'${expressionObject.startObject.object.eParent.name}')`\r\n          );\r\n        }\r\n      }\r\n    }\r\n  }\r\n  onMouseMove(event) {\r\n    if (\r\n      this.canDragExpression &&\r\n      Math.max(Math.abs(this.startX - event.clientX), Math.abs(this.startY - event.clientY)) >\r\n      StiExpressionService.MOUSE_DELTA\r\n    ) {\r\n      this.expressionService.expressionDraggableContainerX = this.dragObject.event.clientX - 10;\r\n      this.expressionService.expressionDraggableContainerY = this.dragObject.event.clientY - 10;\r\n      this.expressionService.startContainerDrag(this.dragObject);\r\n      this.canDragExpression = false;\r\n    }\r\n    if (this.isDragging) {\r\n      let deltaX = event.clientX - this.startX;\r\n      let deltaY = event.clientY - this.startY;\r\n      if (this.startComponentX + deltaX < 0) {\r\n        this.expressionService.componentX = 0;\r\n      } else if (this.startComponentX + deltaX > window.innerWidth - this.expressionService.componentWidth) {\r\n        this.expressionService.componentX = window.innerWidth - this.expressionService.componentWidth;\r\n      } else {\r\n        this.expressionService.componentX = this.startComponentX + deltaX;\r\n      }\r\n\r\n      if (this.startComponentY + deltaY < 0) {\r\n        this.expressionService.componentY = 0;\r\n      } else if (this.startComponentY + deltaY > window.innerHeight - this.expressionService.componentHeight) {\r\n        this.expressionService.componentY = window.innerHeight - this.expressionService.componentHeight;\r\n      } else {\r\n        this.expressionService.componentY = this.startComponentY + deltaY;\r\n      }\r\n    }\r\n  }\r\n  getState(element) {\r\n    return this.arrayOfStates.find((item) => item.element == element).state;\r\n  }\r\n  changeState(element) {\r\n    let index = this.arrayOfStates.findIndex((item) => item.element == element);\r\n    this.arrayOfStates[index].state == \"default\"\r\n      ? (this.arrayOfStates[index].state = \"rotated\")\r\n      : (this.arrayOfStates[index].state = \"default\");\r\n  }\r\n  focus() {\r\n    this.expressionService.elementRef = this.elementRef;\r\n  }\r\n  blur() {\r\n    if (this.model.getBrowserType() == \"safari\" || this.model.getBrowserType() == \"firefox\") {\r\n      this.cdr.reattach();\r\n      this.cdr.detectChanges();\r\n    }\r\n  }\r\n  getCaret() {\r\n    this.lastCaretPosition = this.expressionService.getCaretOffset(this.elementRef.nativeElement ?? this.elementRef);\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiColorDialogService } from \"../../services/sti-color-dialog.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiRichTextService } from \"../../services/sti-rich-text.service\";\r\n\r\n@Component({\r\n  selector: \"sti-color-dialog\",\r\n  template: `<div class=\"color-dialog\" [style.left.px]=\"colorService.dialogX\" [style.top.px]=\"colorService.dialogY\">\r\n      <div class=\"header\">\r\n        <span>{{ loc.get2(\"Gui\", \"colorpicker_themecolorslabel\") }}</span>\r\n      </div>\r\n      <div class=\"color-preview\">\r\n        <div class=\"preview-row\">\r\n          @for (column of colorColumnsCount; track $index; let i = $index) {\r\n            <div\r\n              class=\"color-button\"\r\n              [style.background-color]=\"getColor(i, 'theme')\"\r\n              [style.margin-bottom.px]=\"6\"\r\n              (click)=\"setColor(getColor(i, 'theme'))\"\r\n            ></div>\r\n          }\r\n        </div>\r\n        @for (row of colorRowsCount; track $index; let ind = $index) {\r\n          <div class=\"preview-row\">\r\n            @for (column of colorColumnsCount; track $index; let idx = $index) {\r\n              <div\r\n                class=\"color-button\"\r\n                [style.background-color]=\"getColor((ind + 1) * colorColumnsCount.length + idx, 'theme')\"\r\n                (click)=\"setColor(getColor((ind + 1) * colorColumnsCount.length + idx, 'theme'))\"\r\n              ></div>\r\n            }\r\n          </div>\r\n        }\r\n      </div>\r\n      <div class=\"header\">\r\n        <span>{{ loc.get2(\"Gui\", \"colorpicker_standardcolorslabel\") }}</span>\r\n      </div>\r\n      <div class=\"color-preview\" [style.border-bottom]=\"'1px dotted rgb(226,228,231)'\">\r\n        <div class=\"preview-row\">\r\n          @for (column of colorColumnsCount; track $index; let id = $index) {\r\n            <div\r\n              class=\"color-button\"\r\n              [style.background-color]=\"getColor(id, 'standard')\"\r\n              (click)=\"setColor(getColor(id, 'standard'))\"\r\n            ></div>\r\n          }\r\n        </div>\r\n      </div>\r\n      <div class=\"transparent panel\" [style.border-bottom]=\"'1px dotted rgb(226,228,231)'\" (click)=\"setTransparent()\">\r\n        <img [src]=\"model.getImage('images.Other.TransparentColorIcon.png')\" />\r\n        <span>{{ loc.get2(\"Gui\", \"colorpicker_nofill\").replace(\"&amp\", \"\").replace(\";\", \"\") }}</span>\r\n      </div>\r\n      <div class=\"other-colors panel\" (click)=\"model.showMoreColorDialog = true; model.showColorDialog = false\">\r\n        <img [src]=\"model.getImage('images.Other.MoreColorsIcon.png')\" />\r\n        <span>{{ loc.get2(\"Gui\", \"colorpicker_morecolors\").replace(\"&amp\", \"\").replace(\";\", \"\") }}</span>\r\n      </div>\r\n    </div>`,\r\n  styles: [\r\n    `\r\n      .color-dialog {\r\n        position: absolute;\r\n        left: calc(50% - 92.5px);\r\n        top: calc(50% - 112.5px);\r\n        padding: 1px;\r\n        width: 185px;\r\n        min-height: 225px;\r\n        border-radius: 3px;\r\n        border: 1px solid #c6c6c6;\r\n        background-color: var(--back-color);\r\n        color: var(--text-color);\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        cursor: default;\r\n        display: flex;\r\n        flex-direction: column;\r\n        z-index: 999999;\r\n      }\r\n      .header {\r\n        width: 100%;\r\n        height: 26px;\r\n        background: #eeeeee;\r\n        font-family: Arial;\r\n        font-size: 12px;\r\n        color: #8f8f8f;\r\n        cursor: default;\r\n        display: flex;\r\n        align-items: center;\r\n        padding-left: 7px;\r\n        -moz-user-select: none;\r\n        -khtml-user-select: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .color-preview {\r\n        width: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .preview-row {\r\n        width: 100%;\r\n        display: flex;\r\n      }\r\n\r\n      .color-button {\r\n        height: 14px;\r\n        width: 14px;\r\n        border: 1px solid rgb(226, 228, 231);\r\n        cursor: default;\r\n        margin: 2px;\r\n      }\r\n      .color-button:hover {\r\n        border-color: rgb(242, 148, 54);\r\n      }\r\n      .panel {\r\n        width: 100%;\r\n        display: flex;\r\n        cursor: default;\r\n        color: #444444;\r\n        font-family: Arial;\r\n        font-size: 12px;\r\n        -moz-user-select: none;\r\n        -khtml-user-select: none;\r\n        -webkit-user-select: none;\r\n        height: 25px;\r\n        align-items: center;\r\n        border-radius: 3px;\r\n      }\r\n      .panel:hover {\r\n        background-color: #dadada;\r\n      }\r\n      .panel img {\r\n        width: 16px;\r\n        height: 16px;\r\n        margin: 0px 4px;\r\n      }\r\n    `,\r\n  ],\r\n  standalone: false\r\n})\r\nexport class StiColorDialogComponent implements OnInit {\r\n  public get colorRowsCount() {\r\n    return new Array(5).fill(1);\r\n  }\r\n  public get colorColumnsCount() {\r\n    return new Array(10).fill(2);\r\n  }\r\n  public getColor(index, type) {\r\n    return type == \"theme\"\r\n      ? `rgb(${this.colorService?.themeColors[index].color})`\r\n      : `rgb(${this.colorService?.standardColors[index].color})`;\r\n  }\r\n  setTransparent() {\r\n    this.colorService.currentColorObject.a = 0;\r\n    if (this.colorService.isRichText) {\r\n      this.richText.insertForeColor();\r\n    }\r\n    this.model.showColorDialog = false;\r\n  }\r\n  setColor(color) {\r\n    this.colorService.currentColorObject.hexColor = this.colorService.rgbToHex(\r\n      color.replace(\"rgb(\", \"\").replace(\")\", \"\")\r\n    );\r\n    if (this.colorService.isRichText) {\r\n      this.richText.insertForeColor();\r\n    }\r\n    this.model.showColorDialog = false;\r\n  }\r\n  constructor(\r\n    public colorService: StiColorDialogService,\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public richText: StiRichTextService\r\n  ) { }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiColorDialogService } from \"../../services/sti-color-dialog.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiRichTextService } from \"../../services/sti-rich-text.service\";\r\nimport Color from \"../../system/Color\";\r\n\r\n@Component({\r\n    selector: \"sti-color-options-dialog\",\r\n    template: `\r\n    <div class=\"color-options-dialog\">\r\n      <div class=\"dialog-navigation\">\r\n        <div class=\"header-navigation\">\r\n          <span> {{ loc.get2(\"Gui\", \"colorpickerdialog_caption\") }}</span>\r\n          <div class=\"close-button\" (click)=\"model.showMoreColorDialog = false\">\r\n            <i class=\"pi pi-times\"></i>\r\n          </div>\r\n        </div>\r\n        <div class=\"content-navigation\">\r\n          <div class=\"content-button {{ currentState == 'custom' ? 'current' : '' }}\" (click)=\"changeState('custom')\">\r\n            <span>{{ loc.get2(\"Gui\", \"colorpickerdialog_tabcustom\") }}</span>\r\n            <div class=\"horizontal-line\"></div>\r\n          </div>\r\n          <div class=\"content-button {{ currentState == 'web' ? 'current' : '' }}\" (click)=\"changeState('web')\">\r\n            <span>{{ \"Web\" }}</span>\r\n            <div class=\"horizontal-line\"></div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n      <div class=\"dialog-content\">\r\n        @if (currentState == 'custom') {\r\n          <div class=\"custom-dialog\">\r\n            <div class=\"input-fields\">\r\n              <div class=\"field\">\r\n                <span>{{\r\n                  loc.get2(\"Gui\", \"colorpickerdialog_alphalabel\").replace(\"&amp\", \"\").replace(\";\", \"\").replace(\":\", \"\")\r\n                }}</span>\r\n                <input\r\n                  type=\"text\"\r\n                  name=\"\"\r\n                  id=\"\"\r\n                  [ngModel]=\"colorService.cloneOfCurrentColorObject.a\"\r\n                  (keyup.enter)=\"checkRange($event, colorService.cloneOfCurrentColorObject, 'a')\"\r\n                  (blur)=\"checkRange($event, colorService.cloneOfCurrentColorObject, 'a')\"\r\n                  />\r\n                </div>\r\n                <div class=\"field\">\r\n                  <span>{{\r\n                    loc.get2(\"Gui\", \"colorpickerdialog_redlabel\").replace(\"&amp\", \"\").replace(\";\", \"\").replace(\":\", \"\")\r\n                  }}</span>\r\n                  <input\r\n                    type=\"text\"\r\n                    name=\"\"\r\n                    id=\"\"\r\n                    [ngModel]=\"colorService.cloneOfCurrentColorObject.r\"\r\n                    (keyup.enter)=\"checkRange($event, colorService.cloneOfCurrentColorObject, 'r')\"\r\n                    (blur)=\"checkRange($event, colorService.cloneOfCurrentColorObject, 'r')\"\r\n                    />\r\n                  </div>\r\n                  <div class=\"field\">\r\n                    <span>{{\r\n                      loc.get2(\"Gui\", \"colorpickerdialog_greenlabel\").replace(\"&amp\", \"\").replace(\";\", \"\").replace(\":\", \"\")\r\n                    }}</span>\r\n                    <input\r\n                      type=\"text\"\r\n                      name=\"\"\r\n                      id=\"\"\r\n                      [ngModel]=\"colorService.cloneOfCurrentColorObject.g\"\r\n                      (keyup.enter)=\"checkRange($event, colorService.cloneOfCurrentColorObject, 'g')\"\r\n                      (blur)=\"checkRange($event, colorService.cloneOfCurrentColorObject, 'g')\"\r\n                      />\r\n                    </div>\r\n                    <div class=\"field\">\r\n                      <span>{{\r\n                        loc.get2(\"Gui\", \"colorpickerdialog_bluelabel\").replace(\"&amp\", \"\").replace(\";\", \"\").replace(\":\", \"\")\r\n                      }}</span>\r\n                      <input\r\n                        type=\"text\"\r\n                        name=\"\"\r\n                        id=\"\"\r\n                        [ngModel]=\"colorService.cloneOfCurrentColorObject.b\"\r\n                        (keyup.enter)=\"checkRange($event, colorService.cloneOfCurrentColorObject, 'b')\"\r\n                        (blur)=\"checkRange($event, colorService.cloneOfCurrentColorObject, 'b')\"\r\n                        />\r\n                      </div>\r\n                      <div class=\"field\">\r\n                        <span>{{ \"Hex\" }}</span>\r\n                        <input\r\n                          type=\"text\"\r\n                          name=\"\"\r\n                          id=\"\"\r\n                          [ngModel]=\"hex\"\r\n                          (keyup.enter)=\"checkHex($event)\"\r\n                          (blur)=\"checkHex($event)\"\r\n                          />\r\n                        </div>\r\n                      </div>\r\n                      <div class=\"color-preview\">\r\n                        <div class=\"preview\" [style.background-color]=\"colorService.cloneOfCurrentColorObject.toHtmlColor()\"></div>\r\n                      </div>\r\n                    </div>\r\n                  }\r\n                  @if (currentState == 'web') {\r\n                    <div class=\"web-dialog\">\r\n                      @for (item of colorService.browserColors; track item) {\r\n                        <div\r\n                          class=\"color-item {{ currentSelectedItem == item.name ? 'selected' : '' }}\"\r\n                          (click)=\"currentSelectedItem = item.name\"\r\n                          >\r\n                          <div class=\"mini-color-preview\" [style.background-color]=\"getColor(item.color)\"></div>\r\n                          <span> {{ item.name }}</span>\r\n                        </div>\r\n                      }\r\n                    </div>\r\n                  }\r\n                </div>\r\n                <div class=\"footer-navigation\">\r\n                  <div class=\"footer-button accept\" (click)=\"changeColor()\">\r\n                    <span>{{ loc.get2(\"Buttons\", \"Ok\").replace(\"&amp\", \"\").replace(\";\", \"\") }}</span>\r\n                  </div>\r\n                  <div class=\"footer-button cancel\" [style.margin-right.px]=\"10\" (click)=\"model.showMoreColorDialog = false\">\r\n                    <span>{{ loc.get2(\"PropertyMain\", \"Cancel\") }}</span>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n    `,\r\n    styles: [\r\n        `\r\n      .selected {\r\n        background-color: #e5e5e5;\r\n      }\r\n      .web-dialog {\r\n        height: 190px;\r\n        overflow: auto;\r\n        width: calc(100% - 20px);\r\n        margin: 5px 10px;\r\n      }\r\n      .mini-color-preview {\r\n        width: 64px;\r\n        height: 15px;\r\n        border-radius: 3px;\r\n        border: 1px solid #ababab;\r\n        cursor: default;\r\n        margin: 0px 4px;\r\n      }\r\n      .color-item span {\r\n        color: #444444;\r\n        font-family: Arial;\r\n        font-size: 12px;\r\n        font-weight: normal;\r\n        cursor: default;\r\n      }\r\n      .color-item {\r\n        height: 24px;\r\n        display: flex;\r\n        width: calc(100% - 2px);\r\n        align-items: center;\r\n        border-radius: 3px;\r\n        margin: 1px;\r\n      }\r\n      .color-item:hover {\r\n        background-color: #dadada;\r\n      }\r\n      .field {\r\n        display: flex;\r\n        width: 100%;\r\n        flex: 1;\r\n        align-items: center;\r\n      }\r\n      .field span {\r\n        width: 100%;\r\n        color: #444444;\r\n        font-family: Arial;\r\n        font-size: 12px;\r\n        font-weight: normal;\r\n        cursor: default;\r\n      }\r\n      .field input {\r\n        width: 80px;\r\n        height: 21px;\r\n        font-size: 12px;\r\n        margin: 0px;\r\n        padding: 0px 0px 0px 4px;\r\n        border-radius: 3px;\r\n        font-family: Arial;\r\n        outline: none;\r\n        max-width: inherit;\r\n        border: 1px solid #ababab;\r\n        color: #444444;\r\n      }\r\n      .custom-dialog {\r\n        display: flex;\r\n        padding-left: 19px;\r\n        padding-top: 5px;\r\n      }\r\n      .input-fields {\r\n        width: 140px;\r\n        height: 180px;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .preview {\r\n        height: 128px;\r\n        width: 128px;\r\n        border: 1px solid #c6c6c6;\r\n      }\r\n      .color-preview {\r\n        height: 180px;\r\n        width: 180px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .pi {\r\n        font-size: 0.5rem;\r\n      }\r\n      .color-options-dialog {\r\n        min-height: 315px;\r\n        -webkit-user-select: none;\r\n        -moz-user-select: none;\r\n        width: 345px;\r\n        left: calc(50% - 172.5px);\r\n        top: calc(50% - 157.5px);\r\n        position: absolute;\r\n        border: 1px solid #19478a;\r\n        background: #ffffff;\r\n        color: #444444;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        cursor: default;\r\n        display: flex;\r\n        flex-direction: column;\r\n        z-index: 99999;\r\n      }\r\n      .header-navigation {\r\n        display: flex;\r\n        width: 100%;\r\n        height: 30px;\r\n        align-items: center;\r\n        padding-left: 15px;\r\n        padding-right: 3px;\r\n      }\r\n      .header-navigation span {\r\n        font-family: Arial;\r\n        font-size: 13px;\r\n        font-weight: bold;\r\n        color: #19478a;\r\n        cursor: default;\r\n        width: 100%;\r\n      }\r\n      .close-button {\r\n        width: 28px;\r\n        height: 24px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .content-navigation {\r\n        width: calc(100% - 20px);\r\n        height: 40px;\r\n        display: flex;\r\n        border-bottom: 1px solid lightgray;\r\n        align-items: center;\r\n        margin: 0px 12px;\r\n      }\r\n      .content-button {\r\n        min-width: 35px;\r\n        height: 26px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n        margin-right: 2px;\r\n      }\r\n      .content-button:hover {\r\n        background-color: #dadada;\r\n      }\r\n      .content-button span {\r\n        color: #444444;\r\n        font-family: Arial;\r\n        font-size: 12px;\r\n        font-weight: normal;\r\n        cursor: default;\r\n        text-align: center;\r\n        margin: 0px 10px;\r\n      }\r\n      .horizontal-line {\r\n        height: 3px;\r\n        border-radius: 3px;\r\n        margin: 0px 10px;\r\n      }\r\n      .current {\r\n        background-color: #e5e5e5;\r\n      }\r\n      .current .horizontal-line {\r\n        background-color: rgb(25, 71, 138);\r\n      }\r\n      .footer-button {\r\n        width: 80px;\r\n        height: 24px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 0 5px;\r\n        -webkit-user-select: none;\r\n        font-family: Arial;\r\n        font-size: 12px;\r\n        margin-bottom: 10px;\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .cancel {\r\n        background-color: rgb(221, 221, 221);\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .cancel:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n      .footer-navigation {\r\n        display: flex;\r\n        justify-content: end;\r\n      }\r\n      .dialog-content {\r\n        height: 100%;\r\n        width: 100%;\r\n        flex: 1;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiColorOptionsDialogComponent implements OnInit {\r\n  public currentState = \"custom\";\r\n  public currentSelectedItem = \"Transparent\";\r\n  constructor(\r\n    public model: StiModelService,\r\n    public colorService: StiColorDialogService,\r\n    public loc: StiLocalizationService,\r\n    public richText: StiRichTextService\r\n  ) {}\r\n\r\n  checkRange(event, object, property) {\r\n    if (parseInt(event.target.value)) {\r\n      if (parseInt(event.target.value) > 255) {\r\n        object[property] = 255;\r\n      } else if (parseInt(event.target.value) < 0) {\r\n        object[property] = 0;\r\n      } else {\r\n        object[property] = parseInt(event.target.value);\r\n      }\r\n    } else {\r\n      object[property] = 0;\r\n    }\r\n    event.target.value = object[property];\r\n  }\r\n  checkHex(event) {\r\n    if (event.target.value) {\r\n      if (event.target.value.length > 7) {\r\n        let value = event.target.value.slice(0, 6);\r\n        this.hex = value;\r\n      } else {\r\n        this.hex = event.target.value;\r\n      }\r\n    } else {\r\n      this.hex = \"#000000\";\r\n    }\r\n    event.target.value = this.hex;\r\n  }\r\n  changeState(state) {\r\n    this.currentState = state;\r\n  }\r\n  get hex() {\r\n    return this.colorService.cloneOfCurrentColorObject.toHexColor();\r\n  }\r\n  set hex(value) {\r\n    this.colorService.cloneOfCurrentColorObject.hexColor = value;\r\n  }\r\n  changeColor() {\r\n    if (this.currentState == \"custom\") {\r\n      this.colorService.currentColorObject.hexColor = this.colorService.cloneOfCurrentColorObject.hexColor;\r\n    } else {\r\n      let colorObj = this.colorService.browserColors.find((color) => color.name == this.currentSelectedItem);\r\n      if (colorObj.name != \"Transparent\") {\r\n        this.colorService.currentColorObject.hexColor = this.colorService.rgbToHex(colorObj.color);\r\n      } else {\r\n        this.colorService.currentColorObject.a = 0;\r\n      }\r\n    }\r\n    if (this.colorService.isRichText) {\r\n      this.richText.insertForeColor();\r\n    }\r\n    this.model.showMoreColorDialog = false;\r\n    this.model.showColorDialog = false;\r\n  }\r\n  getColor(color) {\r\n    return `rgb(${color})`;\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiExpressionService } from \"../../services/sti-expression.service\";\r\n\r\n@Component({\r\n    selector: \"expression-draggable-container\",\r\n    template: `@if (expressionService.isDragging) {\r\n  <div\r\n    #expressionContainer\r\n    class=\"expression-draggable-container\"\r\n    [style.left.px]=\"expressionService.expressionDraggableContainerX\"\r\n    [style.top.px]=\"expressionService.expressionDraggableContainerY\"\r\n    [style.pointer-events]=\"'none'\"\r\n    >\r\n    <span>{{ expressionService.draggableExpressionObject.previewString }}</span>\r\n  </div>\r\n}`,\r\n    styles: [\r\n        `\r\n      .expression-draggable-container {\r\n        position: absolute;\r\n        padding: 5px;\r\n        width: fit-content;\r\n        height: max-content;\r\n        z-index: 9999;\r\n        background-color: lightgray;\r\n        max-height: 23.6px;\r\n        display: flex;\r\n        align-items: center;\r\n        -webkit-user-select: none;\r\n        user-select: none;\r\n        opacity: 0.7;\r\n      }\r\n      .expression-draggable-container span {\r\n        font-family: \"Arial\";\r\n        color: var(--text-color);\r\n        font-size: 12px;\r\n        cursor: default;\r\n      }\r\n      .expression-draggable-container span:hover {\r\n        cursor: default;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiExpressionDraggableContainerComponent implements OnInit, AfterViewInit {\r\n  @ViewChild(\"expressionContainer\") elementRef: ElementRef;\r\n  constructor(public expressionService: StiExpressionService) {}\r\n  ngAfterViewInit(): void {\r\n    if (this.elementRef) {\r\n      this.expressionService.elementRef = this.elementRef;\r\n    }\r\n  }\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiEditableContentService } from \"../../services/sti-editable-content.service\";\r\nimport { StiDropdownService } from \"./sti-dropdown-service\";\r\n\r\n@Component({\r\n    selector: \"sti-dropdown-list-component\",\r\n    template: `<div\r\n      class=\"sti-dropdown-list\"\r\n      [style.left.px]=\"dropdownService.dropdownX\"\r\n      [style.top.px]=\"dropdownService.dropdownY + 2\"\r\n      >\r\n      @for (item of list; track item; let i = $index) {\r\n        <span\r\n          class=\"list-item {{ isActive(i) ? 'active' : '' }}\"\r\n          (click)=\"setItem(i)\"\r\n          (mousedown)=\"$event.preventDefault()\"\r\n          (mouseup)=\"editableContentService.startEdit()\"\r\n          >{{ getValue(i) }}</span\r\n          >\r\n        }\r\n      </div>`,\r\n    styles: [\r\n        `\r\n      .active {\r\n        background-color: rgb(239, 239, 239) !important;\r\n      }\r\n      .sti-dropdown-list {\r\n        position: absolute;\r\n        display: flex;\r\n        flex-direction: column;\r\n        max-height: 400px;\r\n        max-width: 202px;\r\n        overflow-x: hidden;\r\n        overflow-y: auto;\r\n        background: var(--input-color);\r\n        color: var(--text-color);\r\n        border: 1px solid #c8c8c8;\r\n        border-radius: 3px;\r\n        font-size: 13px;\r\n        z-index: 999999999999999;\r\n        box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        -khtml-user-select: none;\r\n        -moz-user-select: none;\r\n        -ms-user-select: none;\r\n        user-select: none;\r\n      }\r\n      .list-item {\r\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif,\r\n          \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\r\n        margin: 0;\r\n        padding: 0.429rem 0.857rem;\r\n        border: 0 none;\r\n        color: var(--text-color);\r\n        background: transparent;\r\n        transition: background-color 0.2s, box-shadow 0.2s;\r\n        border-radius: 0;\r\n        cursor: pointer;\r\n        font-weight: 400;\r\n        position: relative;\r\n        white-space: nowrap;\r\n      }\r\n      .list-item:hover {\r\n        background-color: lightgray !important;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiDropdownListComponent implements OnInit {\r\n  public get list() {\r\n    return this.dropdownService.currentOptionList;\r\n  }\r\n  public getValue(index) {\r\n    let value =\r\n      this.list[index][this.dropdownService.optionLabel ? this.dropdownService.optionLabel : index.toString()];\r\n    return value ? value : this.list[index];\r\n  }\r\n  public isActive(index) {\r\n    let value =\r\n      this.list[index][this.dropdownService.optionLabel ? this.dropdownService.optionLabel : index.toString()];\r\n    return value ? value == this.dropdownService.currentValue : this.list[index] == this.dropdownService.currentValue;\r\n  }\r\n  setItem(index) {\r\n    let item =\r\n      this.dropdownService.currentOptionList[index][\r\n        this.dropdownService.optionValue ? this.dropdownService.optionValue : index.toString()\r\n      ];\r\n    this.dropdownService.valueChanged.next(item ? item : this.dropdownService.currentOptionList[index]);\r\n    this.dropdownService.showDropdownList = false;\r\n    this.dropdownService.optionLabel = null;\r\n    this.dropdownService.optionValue = null;\r\n  }\r\n  constructor(public dropdownService: StiDropdownService, public editableContentService: StiEditableContentService) {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { StiFormCheckerItem } from \"../../system/interfaces\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiFormCheckerService } from \"../../services/sti-form-checker.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiHttpClientService } from \"../../services/http-client.service\";\r\nimport { StiComponent } from \"../sti-component\";\r\n\r\n@Component({\r\n    selector: \"sti-form-checker-item\",\r\n    template: ` <div class=\"form-checker-item\">\r\n    <div class=\"item-container\">\r\n      <div class=\"item-icon\">\r\n        <img [src]=\"model.getImage('images.Form_Checker.Warning32.png')\" />\r\n      </div>\r\n      <div class=\"item-content\">\r\n        <div class=\"item-label\">{{ index + \".\" }}{{ item.label }}</div>\r\n        <div class=\"item-message\">{{ item.content.replace(\"{0}\", formCheckerService.buttonNames) }}</div>\r\n      </div>\r\n    </div>\r\n    <div class=\"item-navigation\">\r\n      <div class=\"button\" (click)=\"save()\">{{ \"Save to cloud\" }}</div>\r\n      <!-- <div class=\"button\" (click)=\"edit()\">{{ loc.get2(\"MainMenu\", \"menuEditEdit\") }}</div>\r\n      <div class=\"button\" (click)=\"ignore()\">{{ loc.get2(\"PropertyEnum\", \"DialogResultIgnore\") }}</div> -->\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .item-navigation {\r\n        display: flex;\r\n        justify-content: end;\r\n        margin: 5px 0px;\r\n      }\r\n      .form-checker-item {\r\n        padding-top: 10px;\r\n        border-bottom: 1px dashed lightgray;\r\n        margin: 0px 10px;\r\n        -webkit-touch-callout: none;\r\n        -khtml-user-select: none;\r\n        -moz-user-select: none;\r\n        -ms-user-select: none;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .button {\r\n        background-color: rgb(221, 221, 221);\r\n        height: 24px;\r\n        min-width: 24px;\r\n        padding: 0px 10px;\r\n        border-radius: 3px;\r\n        color: #444444;\r\n        margin: 5px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .button:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n      .item-icon {\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .item-icon img {\r\n        width: 32px;\r\n        height: 32px;\r\n        margin-right: 12px;\r\n      }\r\n      .item-container {\r\n        display: flex;\r\n      }\r\n      .item-content {\r\n        font-family: Arial;\r\n        color: #444444;\r\n        font-size: 12px;\r\n      }\r\n      .item-label {\r\n        font-weight: bold;\r\n        margin-top: 5px;\r\n      }\r\n      .item-message {\r\n        margin-top: 15px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFormCheckerItemComponent implements OnInit {\r\n  @Input() item: StiFormCheckerItem;\r\n  @Input() index: number;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public formCheckerService: StiFormCheckerService,\r\n    public httpService: StiHttpClientService\r\n  ) {}\r\n  save() {\r\n    let currentForm = this.model.form.saveToReportJsonObject().serialize();\r\n    if (this.model.isWebView) {\r\n      this.httpService\r\n        .post(\"\", { action: \"InterfaceEvent\", event: \"SaveToCloudButtonClickForDesigner\", data: { form: currentForm } })\r\n        .subscribe(() => {});\r\n    } else {\r\n      this.httpService\r\n        .post(\"\", { action: \"InterfaceEvent\", event: \"SaveToCloudButtonClick\", data: { form: currentForm } })\r\n        .subscribe(() => {});\r\n    }\r\n\r\n    // this.model.showSaveDialogFromCloud = true;\r\n  }\r\n  edit() {\r\n    this.formCheckerService.showFormCheckerWindow = false;\r\n  }\r\n  ignore() {\r\n    // this.formCheckerService.formMessages.splice(this.index - 1, 1);\r\n    this.formCheckerService.showFormCheckerWindow = false;\r\n    this.model.formEvents.next({ name: this.formCheckerService.currentPressedButton });\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiFormCheckerService } from \"../../services/sti-form-checker.service\";\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n    selector: \"sti-form-checker\",\r\n    template: `<div\r\n      class=\"form-checker-container\"\r\n      [style.left.px]=\"formCheckerService.componentX\"\r\n      [style.top.px]=\"formCheckerService.componentY\"\r\n      >\r\n      <div class=\"header-navigation\" (mousedown)=\"startDrag($event)\">\r\n        <!-- <span>{{ loc.get2(\"FormTitles\", \"FormsChecker\") }}</span> -->\r\n        <span>{{ \"Form Checker\" }}</span>\r\n        <!-- <div class=\"nav-button\" (click)=\"showInfo()\"><img [src]=\"model.getImage('images.Other.HelpIcon.png')\" /></div> -->\r\n        <div class=\"nav-button\" (click)=\"formCheckerService.showFormCheckerWindow = false\">\r\n          <img [src]=\"model.getImage('images.Other.CloseForm.png')\" />\r\n        </div>\r\n      </div>\r\n      <div class=\"content\">\r\n        @for (item of formCheckerService.formMessages; track item; let i = $index) {\r\n          <sti-form-checker-item\r\n            [index]=\"i + 1\"\r\n            [item]=\"item\"\r\n          ></sti-form-checker-item>\r\n        }\r\n      </div>\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      .content {\r\n        flex: 1;\r\n        overflow-x: hidden;\r\n        overflow-y: auto;\r\n      }\r\n      .form-checker-container {\r\n        position: absolute;\r\n        font-size: 13px;\r\n        font-family: \"Arial\";\r\n        color: var(--text-color);\r\n        min-height: 480px;\r\n        width: 700px;\r\n        border-radius: 5px;\r\n        left: calc(50% - 350px);\r\n        top: calc(50% - 250px);\r\n        display: flex;\r\n        flex-direction: column;\r\n        border: 1px solid rgb(28, 71, 134);\r\n        background-color: #ffffff;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        z-index: 999;\r\n        -webkit-touch-callout: none;\r\n        -khtml-user-select: none;\r\n        -moz-user-select: none;\r\n        -ms-user-select: none;\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n      }\r\n      .header-navigation {\r\n        display: flex;\r\n        height: 40px;\r\n        align-items: center;\r\n        padding-left: 15px;\r\n        padding-right: 5px;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n        color: white;\r\n        -webkit-user-select: none;\r\n      }\r\n      .header-navigation span {\r\n        width: 100%;\r\n        font-size: 17px;\r\n        -webkit-user-select: none;\r\n        cursor: default;\r\n      }\r\n      .nav-button {\r\n        height: 24px;\r\n        width: 28px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        align-self: start;\r\n        margin-top: 5px;\r\n      }\r\n      .nav-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .nav-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFormCheckerComponent implements OnInit, OnDestroy {\r\n  public startX: number;\r\n  public startY: number;\r\n  public startComponentX: number;\r\n  public startComponentY: number;\r\n  public isDragging: boolean = false;\r\n  public mouseMoveSubscription: Subscription;\r\n  public mouseUpSubscription: Subscription;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public mouseService: StiMouseService,\r\n    public formCheckerService: StiFormCheckerService\r\n  ) {}\r\n  ngOnDestroy(): void {\r\n    this.mouseMoveSubscription?.unsubscribe();\r\n    this.mouseUpSubscription?.unsubscribe();\r\n  }\r\n\r\n  startDrag(event) {\r\n    this.startX = event.clientX;\r\n    this.startY = event.clientY;\r\n    this.startComponentX = this.formCheckerService.componentX;\r\n    this.startComponentY = this.formCheckerService.componentY;\r\n    this.isDragging = true;\r\n  }\r\n  showInfo() {}\r\n  onMouseMove(event) {\r\n    if (this.isDragging) {\r\n      let deltaX = event.clientX - this.startX;\r\n      let deltaY = event.clientY - this.startY;\r\n      if (this.startComponentX + deltaX < 0) {\r\n        this.formCheckerService.componentX = 0;\r\n      } else if (this.startComponentX + deltaX > window.innerWidth - this.formCheckerService.componentWidth) {\r\n        this.formCheckerService.componentX = window.innerWidth - this.formCheckerService.componentWidth;\r\n      } else {\r\n        this.formCheckerService.componentX = this.startComponentX + deltaX;\r\n      }\r\n\r\n      if (this.startComponentY + deltaY < 0) {\r\n        this.formCheckerService.componentY = 0;\r\n      } else if (this.startComponentY + deltaY > window.innerHeight - this.formCheckerService.componentHeight) {\r\n        this.formCheckerService.componentY = window.innerHeight - this.formCheckerService.componentHeight;\r\n      } else {\r\n        this.formCheckerService.componentY = this.startComponentY + deltaY;\r\n      }\r\n    }\r\n  }\r\n  ngOnInit() {\r\n    this.formCheckerService.getButtonNames();\r\n    this.formCheckerService.componentX = (window.innerWidth - this.formCheckerService.componentWidth) / 2;\r\n    this.formCheckerService.componentY = (window.innerHeight - this.formCheckerService.componentHeight) / 2;\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe(() => {\r\n      this.isDragging = false;\r\n    });\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.onMouseMove(event);\r\n    });\r\n  }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { SignatureService } from \"../../services/sti-signature.service\";\r\nimport { StiDraggableModalWindowService } from \"../../services/sti-draggable-modal-window.service\";\r\nimport Color from \"../../system/Color\";\r\nimport { StiColorDialogService } from \"../../services/sti-color-dialog.service\";\r\nimport { StiTextItem } from \"../../elements/text/StiTextItem\";\r\nimport { StiHorizontalAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\nimport {\r\n  StiImageEditorResultObject,\r\n  StiSignatureDrawTemplate,\r\n  StiSignatureTypeTemplate,\r\n} from \"../../system/interfaces\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiImageEditorResult } from \"../../elements/signature/StiImageEditorResult\";\r\n\r\n@Component({\r\n    selector: \"sti-electronic-signature-editor\",\r\n    template: `<div\r\n        class=\"editor-container\"\r\n        [style.left.px]=\"signatureService.editorComponentX\"\r\n        [style.top.px]=\"signatureService.editorComponentY\"\r\n        >\r\n        <div class=\"editor-navbar\" (mousedown)=\"startDrag($event)\">\r\n          <span [style.flex]=\"1\">{{ loc.get2(\"Components\", \"StiSignature\") }}</span>\r\n          <div class=\"close-button\" (click)=\"model.showSignatureEditor = false\">\r\n            <img [src]=\"model.getImage('images.Other.CloseForm.png')\" />\r\n          </div>\r\n        </div>\r\n        <div class=\"content-container\">\r\n          <div class=\"content-navigation\">\r\n            <div\r\n              class=\"navigation-button {{ signatureService.selectedMode == 'Type' ? 'current' : '' }}\"\r\n              (click)=\"changeMode('Type')\"\r\n              >\r\n              <div class=\"navigation-label\">\r\n                <span>{{ loc.get2(\"PropertyEnum\", \"StiSignatureTypeType\") }}</span>\r\n              </div>\r\n              <div class=\"indicator {{ signatureService.selectedMode == 'Type' ? 'current-indicator' : '' }}\"></div>\r\n            </div>\r\n            <div\r\n              class=\"navigation-button {{ signatureService.selectedMode == 'Draw' ? 'current' : '' }}\"\r\n              (click)=\"changeMode('Draw')\"\r\n              >\r\n              <div class=\"navigation-label\">\r\n                <span>{{ loc.get2(\"PropertyEnum\", \"StiSignatureTypeDraw\") }}</span>\r\n              </div>\r\n              <div class=\"indicator {{ signatureService.selectedMode == 'Draw' ? 'current-indicator' : '' }}\"></div>\r\n            </div>\r\n            <div class=\"templates-navigation-container\">\r\n              <div (click)=\"saveTemplate()\" class=\"template-navigation-button {{ isEmptyContent() ? 'disabled' : '' }}\">\r\n                <img [src]=\"model.getImage('signature.StiSignatureSave.png')\" />\r\n              </div>\r\n              <div\r\n                #button\r\n                (click)=\"showSavedTemplatesPreview(button)\"\r\n                class=\"template-navigation-button show-button\"\r\n                [style.width.px]=\"38\"\r\n                >\r\n                <img [src]=\"model.getImage('signature.StiSignatureOpen.png')\" /><i class=\"pi pi-chevron-down\"></i>\r\n              </div>\r\n            </div>\r\n          </div>\r\n          <div class=\"bottom-divider\"></div>\r\n          @if (signatureService.selectedMode == 'Type') {\r\n            <div class=\"type-container\">\r\n              <div class=\"input-field\">\r\n                <span>{{ loc.getP(\"FullName\") }}</span\r\n                  ><input type=\"text\" [(ngModel)]=\"fullName\" />\r\n                </div>\r\n                <div class=\"input-field\">\r\n                  <span>{{ loc.getP(\"Initials\") }}</span\r\n                    ><input type=\"text\" [(ngModel)]=\"initials\" />\r\n                  </div>\r\n                  <div class=\"button-panel\">\r\n                    <div #selectButton class=\"select-button\" (click)=\"showFontsPreview(selectButton)\">\r\n                      <span class=\"button-label\">{{ loc.get2(\"ChartRibbon\", \"Style\") }}</span\r\n                        ><i class=\"pi pi-chevron-down\"></i>\r\n                      </div>\r\n                    </div>\r\n                    <div class=\"preview-panel\" [style.font-family]=\"signatureService.currentPreviewFont\">\r\n                      <span>{{ previewText }}</span>\r\n                    </div>\r\n                  </div>\r\n                }\r\n                @if (signatureService.selectedMode == 'Draw') {\r\n                  <div class=\"draw-container\">\r\n                    <div class=\"draw-buttons-panel\">\r\n                      <div\r\n                        class=\"button-container {{ drawingMode ? 'active' : '' }}\"\r\n                        [stiTooltip]=\"loc.getP('ForeColor')\"\r\n                        tooltipPosition=\"bottom\"\r\n                        showDelay=\"500\"\r\n                        (mousedown)=\"$event.preventDefault()\"\r\n                        #fontColorEditor\r\n                        >\r\n                        <div class=\"preview-container\" (click)=\"drawingMode = !drawingMode\">\r\n                          <div class=\"foreground\" [style]=\"{ backgroundPosition: 'center', backgroundRepeat: 'no-repeat' }\">\r\n                            <img [src]=\"model.getImage('images.Brush.png')\" alt=\"\" />\r\n                          </div>\r\n                          <span\r\n                            class=\"color-preview\"\r\n                            [style.background-color]=\"brushColor != null ? brushColor?.toHtmlColor() : 'rgb(182, 181, 180)'\"\r\n                          ></span>\r\n                        </div>\r\n                        <div\r\n                          (click)=\"showColorPicker(fontColorEditor, brushColor)\"\r\n                          [style]=\"{ position: 'relative', display: 'flex', alignItems: 'center' }\"\r\n                          >\r\n                          <i class=\"pi pi-chevron-down\"></i>\r\n                        </div>\r\n                      </div>\r\n                      <div class=\"draw-panel-button\" (click)=\"showEditor('Text')\">\r\n                        <img [src]=\"model.getImage('signature.Text.png')\" />\r\n                      </div>\r\n                      <div class=\"draw-panel-button\" (click)=\"showEditor('Image')\">\r\n                        <img [src]=\"model.getImage('images.Toolbox.StiImageElement.png')\" />\r\n                      </div>\r\n                      <div class=\"draw-panel-button\" (click)=\"clear()\">\r\n                        <img [src]=\"model.getImage('images.Page.ClearContent.png')\" />\r\n                      </div>\r\n                    </div>\r\n                    <div class=\"draw-panel\" #previewContainer>\r\n                      <div class=\"canvas-container\">\r\n                        <canvas\r\n                          [width]=\"previewContainer.clientWidth\"\r\n                          [height]=\"previewContainer.clientHeight\"\r\n                          (mousedown)=\"onMouseDown($event, canvas)\"\r\n                          (mousemove)=\"onCanvasMove($event, canvas)\"\r\n                          (touchstart)=\"onMouseDown($event, canvas)\"\r\n                          (touchmove)=\"onCanvasMove($event, canvas)\"\r\n                          #canvas\r\n                          >\r\n                        </canvas>\r\n                      </div>\r\n                      <div class=\"preview-inserted-text\" [style]=\"insertedText.htmlStyle()\" [style.justify-content]=\"alignment\">\r\n                        <span>{{ insertedText.value }}</span>\r\n                      </div>\r\n                      <div class=\"inserted-image-container\" [style.justify-content]=\"getHorizontalAlignment()\">\r\n                        <div\r\n                          class=\"preview-inserted-image\"\r\n                [style.width.px]=\"\r\n                  insertedImage?.aspectRatio && insertedImage?.stretch\r\n                    ? previewContainer.clientHeight\r\n                    : previewContainer.clientWidth\r\n                \"\r\n                          [style.height.px]=\"previewContainer.clientHeight\"\r\n                          [style.background-image]=\"image\"\r\n                          [style.background-position]=\"getBackgroundPosition()\"\r\n                          [style.background-size]=\"getBackgroundSize(previewContainer)\"\r\n                          [style.background-repeat]=\"image ? 'no-repeat' : ''\"\r\n                        ></div>\r\n                      </div>\r\n                      <div class=\"signature-description\">\r\n                        <span>{{ \"Signature\" }}</span>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                }\r\n              </div>\r\n              <div class=\"setup-accept\">\r\n                <div class=\"accept button\" (click)=\"acceptChanges()\">\r\n                  <span [style.margin-left.px]=\"0\">{{\r\n                    model.previewMode\r\n                    ? loc.get2(\"Buttons\", \"Sign\")\r\n                    : loc.get2(\"Buttons\", \"Save\").replace(\"&amp\", \"\").replace(\";\", \"\")\r\n                  }}</span>\r\n                </div>\r\n                <div class=\"cancel button\" (click)=\"model.showSignatureEditor = false\">\r\n                  <span [style.margin-left.px]=\"0\">{{ loc.getP(\"Cancel\") }}</span>\r\n                </div>\r\n              </div>\r\n            </div>\r\n            @if (signatureService.showFontsPreview) {\r\n              <div\r\n                class=\"fonts-preview-container\"\r\n                [style.left.px]=\"signatureService.fontsPreviewX\"\r\n                [style.top.px]=\"signatureService.fontsPreviewY\"\r\n                >\r\n                @for (font of signatureService.previewFonts; track font) {\r\n                  <div\r\n                    class=\"font-preview\"\r\n                    [style.font-family]=\"font\"\r\n                    (click)=\"signatureService.currentPreviewFont = font; signatureService.showFontsPreview = false\"\r\n                    >\r\n                    <div class=\"vertical-line {{ signatureService.currentPreviewFont == font ? 'current-indicator' : '' }}\"></div>\r\n                    <span> {{ previewText }}</span>\r\n                  </div>\r\n                }\r\n              </div>\r\n            }\r\n            @if (signatureService.showSavedTemplates) {\r\n              <div\r\n                class=\"saved-templates-container\"\r\n                [style.left.px]=\"signatureService.templatesPreviewX\"\r\n                [style.top.px]=\"signatureService.templatesPreviewY\"\r\n                [style.overflow-y]=\"hasTemplates ? 'scroll' : 'hidden'\"\r\n                >\r\n                @if (!hasTemplates) {\r\n                  <div class=\"empty-container\">\r\n                    <span>{{ \"No saved items\" }}</span>\r\n                  </div>\r\n                }\r\n                @for (temp of signatureService.savedTemplates; track temp; let i = $index) {\r\n                  <div\r\n                    class=\"template-item\"\r\n                    [style.margin-top.px]=\"i == 0 ? 6 : 0\"\r\n                    (click)=\"signatureService.setTemplate(temp)\"\r\n                    >\r\n                    <div class=\"delete-button\" (click)=\"signatureService.deleteTemplate(i)\">\r\n                      <img [src]=\"model.getImage('images.Other.CloseForm.png')\" />\r\n                    </div>\r\n                    @if (temp.type == 'Image') {\r\n                      <div\r\n                        class=\"image-template\"\r\n                        #parentContainer\r\n                        [style.justify-content]=\"signatureService.getTemplateHorizontalAlignment(temp)\"\r\n                        >\r\n                        <div\r\n                          class=\"loadedImage image-content\"\r\n                          [style.background-image]=\"signatureService.getTemplateImage(temp)\"\r\n                          [style.background-position]=\"signatureService.getTemplateBackgroundPosition(temp)\"\r\n                          [style.background-size]=\"signatureService.getTemplateBackgroundSize(temp, parentContainer)\"\r\n                          [style.background-repeat]=\"'no-repeat'\"\r\n                        ></div>\r\n                        <div class=\"insertedText image-content\">\r\n                          <span [style]=\"temp.text.htmlStyle()\">{{ temp?.text?.value }}</span>\r\n                        </div>\r\n                        <div\r\n                          class=\"drawedImage image-content\"\r\n                          [style.background-size]=\"'contain'\"\r\n                          [style.background-image]=\"signatureService.getTemplateDrawedImage(temp)\"\r\n                        ></div>\r\n                      </div>\r\n                    }\r\n                    @if (temp.type == 'Text') {\r\n                      <div class=\"text-template\">\r\n                        <span [style.font-family]=\"temp.specialFont\" [style.font-size.pt]=\"16\">{{\r\n                          temp.fullName + \" \" + temp.initials\r\n                        }}</span>\r\n                      </div>\r\n                    }\r\n                  </div>\r\n                }\r\n              </div>\r\n            }`,\r\n    styles: [\r\n        `\r\n      .image-content {\r\n        height: 100%;\r\n        width: 100%;\r\n        top: 0;\r\n        left: 0;\r\n        position: absolute;\r\n      }\r\n      .drawedImage {\r\n        z-index: 3;\r\n      }\r\n      .loadedImage {\r\n        z-index: 1;\r\n      }\r\n      .insertedText {\r\n        z-index: 2;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .text-template {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        height: 50px;\r\n      }\r\n      .image-template {\r\n        position: relative;\r\n        height: 130px;\r\n      }\r\n      .template-item {\r\n        width: calc(100% - 12px);\r\n        height: fit-content;\r\n        padding: 2px;\r\n        margin: 6px;\r\n        margin-top: 0px;\r\n        border: 1px solid lightgray;\r\n        border-radius: 3px;\r\n        position: relative;\r\n      }\r\n      .delete-button {\r\n        position: absolute;\r\n        z-index: 999;\r\n        right: 0;\r\n        top: 0;\r\n        width: 20px;\r\n        height: 20px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border-radius: 3px;\r\n      }\r\n      .delete-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .delete-button:hover img {\r\n        filter: saturate(500%) contrast(100%) brightness(900%) invert(900%) sepia(50%);\r\n      }\r\n      .template-item:hover {\r\n        background-color: rgb(215, 215, 215);\r\n        cursor: pointer;\r\n      }\r\n      .empty-container {\r\n        height: 100%;\r\n        width: 100%;\r\n        background-color: rgb(250, 250, 250);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        color: rgb(69, 69, 69);\r\n        font-size: 13px;\r\n        font-family: Arial;\r\n      }\r\n      .saved-templates-container {\r\n        position: absolute;\r\n        overflow-x: hidden;\r\n        overflow-y: scroll;\r\n        width: 335px;\r\n        height: 270px;\r\n        border-radius: 3px;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        border: 1px solid rgb(25, 71, 138);\r\n        display: flex;\r\n        flex-direction: column;\r\n        background-color: white;\r\n        z-index: 99999999999999999;\r\n      }\r\n      .active {\r\n        background-color: lightgray;\r\n        outline: 1px solid rgb(61, 107, 186);\r\n      }\r\n      .canvas-container {\r\n        position: absolute;\r\n        left: 0;\r\n        top: 0;\r\n        height: 100%;\r\n        width: 100%;\r\n        z-index: 99999;\r\n      }\r\n      .preview-inserted-image {\r\n        position: absolute;\r\n      }\r\n      .inserted-image-container {\r\n        position: absolute;\r\n        left: 0;\r\n        top: 0;\r\n        display: flex;\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .preview-inserted-text {\r\n        position: absolute;\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        z-index: 999;\r\n      }\r\n      .signature-content {\r\n        z-index: 9999;\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .signature-description {\r\n        width: calc(100% - 10px);\r\n        height: 50px;\r\n        margin: 0px 5px;\r\n        padding: 0px 5px;\r\n        border-top: 1px solid lightgray;\r\n        display: flex;\r\n        align-items: center;\r\n        overflow: hidden;\r\n        z-index: 999;\r\n      }\r\n      .disabled {\r\n        pointer-events: none;\r\n        opacity: 0.5;\r\n      }\r\n      .preview-container {\r\n        display: flex;\r\n        width: 100%;\r\n        position: relative;\r\n        flex-direction: column;\r\n      }\r\n      .preview-container img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .button-container {\r\n        display: flex;\r\n        height: 26px;\r\n        width: 40px;\r\n        position: relative;\r\n        margin-right: 5px;\r\n        border-radius: 3px;\r\n      }\r\n      .button-container:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .button-container:active {\r\n        background-color: var(--columnDeleteHover-color);\r\n      }\r\n      .color-preview {\r\n        width: 20px;\r\n        height: 5px;\r\n        margin-left: 4px;\r\n      }\r\n      i {\r\n        height: 12px;\r\n        width: 12px;\r\n        right: 3px;\r\n        top: 50%;\r\n        vertical-align: middle;\r\n        color: var(--text-color);\r\n      }\r\n      .button-container:hover i {\r\n        color: white;\r\n      }\r\n      .foreground {\r\n        margin-left: 8px;\r\n        margin-top: 2px;\r\n        width: 16px;\r\n        height: 16px;\r\n      }\r\n      .template-navigation-button {\r\n        height: 26px;\r\n        width: 26px;\r\n        margin-right: 2px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .template-navigation-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .template-navigation-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .templates-navigation-container {\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: flex-end;\r\n      }\r\n      .vertical-line {\r\n        width: 3px;\r\n        height: calc(100% - 14px);\r\n        margin: 7px 10px 7px 5px;\r\n      }\r\n\r\n      .font-preview {\r\n        font-size: 16px;\r\n        height: 42px;\r\n        display: flex;\r\n        align-items: center;\r\n        padding-left: 5px;\r\n        border-radius: 3px;\r\n        margin: 1px;\r\n      }\r\n      .font-preview:hover {\r\n        background-color: #dadada;\r\n      }\r\n      .current {\r\n        background-color: #e5e5e5;\r\n      }\r\n      .fonts-preview-container {\r\n        position: absolute;\r\n        width: 200px;\r\n        height: 134px;\r\n        z-index: 9999999999;\r\n        padding: 1px;\r\n        border-radius: 3px;\r\n        border: 1px solid #c6c6c6;\r\n        background: #ffffff;\r\n        color: #444444;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        box-shadow: 0 0 7px rgba(0, 0, 0, 0.3);\r\n        cursor: default;\r\n      }\r\n      .draw-buttons-panel {\r\n        height: 26px;\r\n        margin-bottom: 5px;\r\n        margin-top: 10px;\r\n        display: flex;\r\n        padding-left: 24px;\r\n      }\r\n      .draw-panel-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .draw-panel-button {\r\n        height: 26px;\r\n        width: 26px;\r\n        margin-right: 5px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .draw-panel-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n      .draw-panel {\r\n        border: 1px dashed #ababab;\r\n        border-radius: 3px;\r\n        margin: 0px 24px;\r\n        width: calc(100% - 48px);\r\n        height: 186px;\r\n        display: flex;\r\n        flex-direction: column-reverse;\r\n        position: relative;\r\n      }\r\n      i {\r\n        margin-left: 5px;\r\n        font-size: 7px;\r\n        padding-top: 4px;\r\n      }\r\n      .select-button {\r\n        border: 1px solid #dddddd;\r\n        border-radius: 3px;\r\n        min-width: 30px;\r\n        padding-left: 10px;\r\n        padding-right: 6px;\r\n        display: flex;\r\n        color: #444444;\r\n        align-items: center;\r\n        margin-right: 24px;\r\n        margin-top: 24px;\r\n        height: 24px;\r\n      }\r\n      .select-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .button-panel {\r\n        width: 100%;\r\n        display: flex;\r\n        justify-content: flex-end;\r\n      }\r\n      .preview-panel {\r\n        height: 80px;\r\n        width: calc(100% - 48px);\r\n        border: 1px solid #ababab;\r\n        border-radius: 3px;\r\n        font-size: 16pt;\r\n        margin: 10px 24px;\r\n        padding-left: 12px;\r\n        display: flex;\r\n        align-items: center;\r\n        overflow: hidden;\r\n      }\r\n      .input-field {\r\n        width: calc(100% - 24px);\r\n        display: flex;\r\n        margin: 12px;\r\n        margin-bottom: 6px;\r\n        padding: 0px 12px;\r\n        align-items: center;\r\n      }\r\n      .input-field span {\r\n        min-width: 100px;\r\n        font-size: 12px;\r\n      }\r\n      .input-field input {\r\n        border-radius: 3px;\r\n        padding-left: 5px;\r\n        height: 24px;\r\n        outline: none;\r\n        border: 1px solid lightgray;\r\n        width: 100%;\r\n      }\r\n      .input-field input:hover {\r\n        border-color: rgb(69, 69, 69);\r\n      }\r\n      .current-indicator {\r\n        background-color: rgb(25, 71, 138);\r\n      }\r\n      .other-indicator {\r\n        background-color: transparent;\r\n      }\r\n      .current {\r\n        background-color: #e5e5e5;\r\n      }\r\n      .navigation-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .navigation-button {\r\n        border-radius: 3px;\r\n        height: 26px;\r\n        min-width: 50px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        color: rgb(68, 68, 68);\r\n        font-size: 12px;\r\n        font-family: Arial;\r\n        margin-right: 2px;\r\n      }\r\n      .navigation-label {\r\n        height: 27px;\r\n        width: 100%;\r\n        height: 18px;\r\n        padding: 0px 10px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        white-space: nowrap;\r\n      }\r\n      .navigation-label span {\r\n        margin-top: 7px;\r\n      }\r\n      .indicator {\r\n        height: 3px;\r\n        margin: 1px 9px;\r\n      }\r\n      .bottom-divider {\r\n        height: 1px;\r\n        width: calc(100% - 24px);\r\n        background-color: lightgray;\r\n        margin: 5px 12px;\r\n      }\r\n      .content-navigation {\r\n        display: flex;\r\n        padding: 12px 12px 0px 12px;\r\n      }\r\n      .content-container {\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .editor-navbar {\r\n        display: flex;\r\n        height: 30px;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n        -webkit-user-select: none;\r\n        color: white;\r\n        align-items: center;\r\n      }\r\n      .editor-navbar span {\r\n        font-size: 13px;\r\n        margin-left: 10px;\r\n      }\r\n      .close-button {\r\n        height: 30px;\r\n        width: 30px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n      .editor-container {\r\n        background-color: var(--back-color);\r\n        position: absolute;\r\n        left: calc(50% - 182px);\r\n        top: calc(50% - 175px);\r\n        z-index: 999;\r\n        width: 365px;\r\n        height: 350px;\r\n        overflow: hidden;\r\n        display: flex;\r\n        flex-direction: column;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        border: 1px solid rgb(25, 71, 138);\r\n        color: var(--text-color);\r\n        font-size: 12px;\r\n        border-radius: 5px;\r\n        font-family: \"Arial\";\r\n        -webkit-user-select: none;\r\n      }\r\n      .button {\r\n        height: 24px;\r\n        width: 80px;\r\n        border-radius: 3px;\r\n        margin: 3px 5px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border: 1px solid transparent;\r\n      }\r\n      .accept:active {\r\n        background-color: rgb(53, 93, 160);\r\n        border-color: rgb(38, 76, 125);\r\n      }\r\n      .cancel:active {\r\n        background-color: rgb(226, 226, 226);\r\n        border-color: rgb(131, 131, 131);\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .cancel {\r\n        background-color: rgb(221, 221, 221);\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .cancel:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n      .setup-accept {\r\n        padding: 8px;\r\n        display: flex;\r\n        align-items: flex-end;\r\n        justify-content: flex-end;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiElectronicSignatureEditorComponent implements OnInit, AfterViewInit, OnDestroy {\r\n  @ViewChild(\"canvas\") canvas: ElementRef;\r\n\r\n  public get brushColor() {\r\n    return this.signatureService?.currentEditableSignatureElement?.penColor\r\n      ? this.signatureService?.currentEditableSignatureElement?.penColor\r\n      : Color.black();\r\n  }\r\n  public drawingMode: boolean = false;\r\n  public isDrawing: boolean = false;\r\n  public context;\r\n  public defaultPreviewText = \"FullName FN\";\r\n  public startX: number;\r\n  public startY: number;\r\n  public startComponentX: number;\r\n  public startComponentY: number;\r\n  public isDragging: boolean;\r\n  public drawedImage: any;\r\n  public canvasWidth: number;\r\n  public canvasHeight: number;\r\n  public insertedImageLayer: any;\r\n  public insertedTextLayer: any;\r\n  public drawedLayer: any;\r\n  public resultCanvasContext: any;\r\n  mouseUpSubscription: Subscription;\r\n  mouseMoveSubscription: Subscription;\r\n  updateSignatureSubscription: Subscription;\r\n  updateResultCanvasSubscription: Subscription;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public mouseService: StiMouseService,\r\n    public signatureService: SignatureService,\r\n    public modalWindowService: StiDraggableModalWindowService,\r\n    public colorService: StiColorDialogService\r\n  ) { }\r\n  public get hasTemplates(): boolean {\r\n    return this.signatureService.savedTemplates.length > 0;\r\n  }\r\n  public get insertedText(): StiTextItem {\r\n    return this.signatureService.currentEditableText;\r\n  }\r\n  public get insertedImage(): StiImageEditorResult {\r\n    return this.signatureService.currentEditableImage;\r\n  }\r\n  public get fullName(): string {\r\n    return this.signatureService.currentEditableFullName;\r\n  }\r\n  public set fullName(value: string) {\r\n    this.signatureService.currentEditableFullName = value;\r\n  }\r\n  public get initials(): string {\r\n    return this.signatureService.currentEditableInitials;\r\n  }\r\n  public set initials(value: string) {\r\n    this.signatureService.currentEditableInitials = value;\r\n  }\r\n  isEmptyContent() {\r\n    if (this.signatureService.selectedMode == \"Draw\") {\r\n      return (\r\n        !this.signatureService.currentEditableImage?.loadedImage &&\r\n        !this.signatureService.currentEditableText?.value &&\r\n        !this.signatureService.currentCanvasContent\r\n      );\r\n    } else {\r\n      return !this.signatureService.currentEditableFullName && !this.signatureService.currentEditableInitials;\r\n    }\r\n  }\r\n  saveTemplate() {\r\n    if (this.signatureService.selectedMode == \"Draw\") {\r\n      let imageObj: StiSignatureDrawTemplate = {\r\n        type: \"Image\",\r\n        image: this.signatureService.currentEditableImage,\r\n        text: this.signatureService.currentEditableText,\r\n        drawedImage: this.signatureService.currentCanvasContent,\r\n      };\r\n      if (!this.signatureService.savedTemplates.find((item) => item == imageObj)) {\r\n        this.signatureService.savedTemplates.push(imageObj);\r\n      }\r\n    } else {\r\n      let textObj: StiSignatureTypeTemplate = {\r\n        type: \"Text\",\r\n        fullName: this.signatureService.currentEditableFullName,\r\n        initials: this.signatureService.currentEditableInitials,\r\n        specialFont: this.signatureService.currentPreviewFont,\r\n      };\r\n      if (!this.signatureService.savedTemplates.find((item) => item == textObj)) {\r\n        this.signatureService.savedTemplates.push(textObj);\r\n      }\r\n    }\r\n    localStorage.removeItem(\"StiSignatureTemplates\");\r\n    localStorage.setItem(\"StiSignatureTemplates\", JSON.stringify(this.signatureService.savedTemplates));\r\n  }\r\n  showSavedTemplatesPreview(button) {\r\n    let buttonRect = this.model.getPositionRelativeToForm(button);\r\n    this.signatureService.templatesPreviewX = buttonRect.right - 335;\r\n    this.signatureService.templatesPreviewY = buttonRect.bottom + 1;\r\n    this.signatureService.showSavedTemplates = !this.signatureService.showSavedTemplates;\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.signatureService.currentEditableText = new StiTextItem();\r\n    this.signatureService.currentCanvasContent = null;\r\n    this.signatureService.currentEditableImage = new StiImageEditorResult();\r\n    this.signatureService.currentEditableSignatureElement = null;\r\n  }\r\n  public isCanvasBlank(canvas) {\r\n    const context = canvas.getContext(\"2d\");\r\n\r\n    const pixelBuffer = new Uint32Array(context.getImageData(0, 0, canvas.width, canvas.height).data.buffer);\r\n\r\n    return !pixelBuffer.some((color) => color !== 0);\r\n  }\r\n  ngAfterViewInit(): void {\r\n    const onResize = (event) => {\r\n      this.signatureService.editorComponentX = (window.innerWidth - this.signatureService.editorComponentWidth) / 2;\r\n      this.signatureService.editorComponentY = (window.innerHeight - this.signatureService.editorComponentHeight) / 2;\r\n    };\r\n    window.addEventListener(\"resize\", onResize);\r\n    this.fillDrawingCanvas();\r\n  }\r\n  get image() {\r\n    return \"url(\" + this.insertedImage?.loadedImage + \")\";\r\n  }\r\n  getHorizontalAlignment() {\r\n    if (this.insertedImage?.horizontalAlignment == StiHorizontalAlignment.Center) {\r\n      return \"center\";\r\n    } else if (this.insertedImage?.horizontalAlignment == StiHorizontalAlignment.Left) {\r\n      return \"start\";\r\n    } else {\r\n      return \"end\";\r\n    }\r\n  }\r\n  onMouseDown(event, canvasElement) {\r\n    if (this.drawingMode) {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      this.isDrawing = true;\r\n      this.context = canvasElement?.getContext(\"2d\");\r\n      this.context.strokeStyle = this.brushColor.toHtmlColor();\r\n      const coords = this.relativeCoords(event, canvasElement);\r\n      this.context.moveTo(coords.x, coords.y);\r\n    }\r\n  }\r\n  private relativeCoords(event, canvasElement) {\r\n    const bounds = this.model.getPositionRelativeToForm(canvasElement);\r\n    const x = ((event.clientX ? event.clientX : (event.touches && event.touches.length > 0 ? event.touches[0].clientX : 0)) - bounds.left) / this.model.zoom;\r\n    const y = ((event.clientY ? event.clientY : (event.touches && event.touches.length > 0 ? event.touches[0].clientY : 0)) - bounds.top) / this.model.zoom;\r\n    return { x: x, y: y };\r\n  }\r\n  onCanvasMove(event, canvasElement) {\r\n    if (this.isDrawing) {\r\n      const coords = this.relativeCoords(event, canvasElement);\r\n      this.context.lineTo(coords.x, coords.y);\r\n      this.context.stroke();\r\n    }\r\n  }\r\n\r\n  onMouseUp() {\r\n    if (this.isDrawing && !this.isCanvasBlank(this.canvas?.nativeElement)) {\r\n      this.signatureService.currentCanvasContent = this.canvas?.nativeElement?.toDataURL(\"image/png\");\r\n    }\r\n    this.isDragging = false;\r\n    this.isDrawing = false;\r\n  }\r\n\r\n  getBackgroundSize(container) {\r\n    if (!this.insertedImage?.loadedImage) {\r\n      return;\r\n    }\r\n    if (this.insertedImage?.aspectRatio && this.insertedImage?.stretch) {\r\n      return \"contain\";\r\n    }\r\n    if (this.insertedImage?.stretch) {\r\n      return `${container.offsetWidth}px ${container.offsetHeight}px`;\r\n    } else {\r\n      return `${this.insertedImage?.naturalWidth}px ${this.insertedImage?.naturalHeight}px`;\r\n    }\r\n  }\r\n  getBackgroundPosition() {\r\n    if (this.insertedImage?.stretch && !this.insertedImage?.aspectRatio) {\r\n      return `center`;\r\n    } else {\r\n      return `${this.signatureService.getVerticalPosition(\r\n        this.insertedImage?.verticalAlignment\r\n      )} ${this.signatureService.getHorizontalPosition(this.insertedImage?.horizontalAlignment)}`;\r\n    }\r\n  }\r\n  public get previewText() {\r\n    return (this.fullName + \" \" + this.initials).length > 1\r\n      ? this.fullName + \" \" + this.initials\r\n      : this.defaultPreviewText;\r\n  }\r\n  get alignment() {\r\n    if (this.insertedText.horizontalAlignment == StiHorizontalAlignment.Center) {\r\n      return \"center\";\r\n    } else if (this.insertedText.horizontalAlignment == StiHorizontalAlignment.Right) {\r\n      return \"end\";\r\n    } else {\r\n      return \"start\";\r\n    }\r\n  }\r\n  clear() {\r\n    this.signatureService.currentEditableText.value = \"\";\r\n    if (this.signatureService?.currentEditableImage?.loadedImage) {\r\n      this.signatureService.currentEditableImage.loadedImage = \"\";\r\n    }\r\n    if (!this.context) {\r\n      this.context = this.canvas?.nativeElement?.getContext(\"2d\");\r\n    }\r\n    this.signatureService.currentCanvasContent = \"\";\r\n    this.context?.clearRect(0, 0, this.canvas?.nativeElement?.width, this.canvas?.nativeElement?.height);\r\n    this.context?.beginPath();\r\n  }\r\n  showEditor(editorType: string) {\r\n    this.model.showDraggableModalWindow = true;\r\n    if (editorType == \"Text\") {\r\n      this.modalWindowService.isTextEditor = true;\r\n      this.signatureService.currentEditableText = this.insertedText;\r\n    } else {\r\n      this.modalWindowService.isImageEditor = true;\r\n      this.signatureService.currentEditableImage = this.insertedImage;\r\n    }\r\n  }\r\n  showColorPicker(element, object, isRichText = false) {\r\n    this.colorService.openDialog(element, object, isRichText);\r\n  }\r\n  fillDrawingCanvas() {\r\n    let ctx = this.canvas?.nativeElement?.getContext(\"2d\");\r\n    if (ctx && this.signatureService.currentCanvasContent) {\r\n      ctx.clearRect(0, 0, this.canvas?.nativeElement?.width, this.canvas?.nativeElement?.height);\r\n      let image = new Image();\r\n      image.onload = () => {\r\n        ctx.drawImage(image, 0, 0, this.canvas?.nativeElement?.width, this.canvas?.nativeElement?.height);\r\n      };\r\n      image.src = this.signatureService.currentCanvasContent;\r\n    }\r\n  }\r\n  showFontsPreview(element) {\r\n    this.signatureService.showFontsPreview = !this.signatureService.showFontsPreview;\r\n    let rect = this.model.getPositionRelativeToForm(element);\r\n    this.signatureService.fontsPreviewX = rect.right - 200;\r\n    this.signatureService.fontsPreviewY = rect.bottom + 2;\r\n  }\r\n  acceptChanges() {\r\n    this.signatureService.currentActiveLoadingImages = 0;\r\n    this.signatureService.completedLoadingImages = 0;\r\n    this.signatureService.currentEditableSignatureElement.fullName = this.signatureService.currentEditableFullName;\r\n    this.signatureService.currentEditableSignatureElement.initials = this.signatureService.currentEditableInitials;\r\n    this.signatureService.currentEditableSignatureElement.specialFont = this.signatureService.currentPreviewFont;\r\n    let canvasRect = this.model.getPositionRelativeToForm(this.canvas?.nativeElement);\r\n    if (canvasRect && this.signatureService.selectedMode == \"Draw\") {\r\n      let resultCanvas = document.createElement(\"canvas\");\r\n      this.canvasWidth = canvasRect.width;\r\n      this.canvasHeight = canvasRect.height;\r\n      resultCanvas.width = this.canvasWidth;\r\n      resultCanvas.height = this.canvasHeight;\r\n      let ctx = resultCanvas.getContext(\"2d\");\r\n      this.resultCanvasContext = ctx;\r\n      this.insertedImageLayer = this.createLayer(resultCanvas);\r\n      this.insertedTextLayer = this.createLayer(resultCanvas);\r\n      this.drawedLayer = this.createLayer(resultCanvas);\r\n      if (this.insertedImage?.loadedImage) {\r\n        this.fillLayer(this.insertedImageLayer, this.insertedImage);\r\n      }\r\n      if (this.insertedText?.value) {\r\n        this.fillLayer(this.insertedTextLayer, this.insertedText);\r\n      }\r\n      if (!this.isCanvasBlank(this.canvas?.nativeElement)) {\r\n        this.fillLayer(this.drawedLayer, this.canvas?.nativeElement?.toDataURL(\"image/png\"));\r\n      } else {\r\n        this.signatureService.currentCanvasContent = \"\";\r\n      }\r\n      this.signatureService.checkLoading();\r\n    } else {\r\n      this.updateResultCanvas(\"Text\");\r\n    }\r\n    if (this.signatureService.selectedMode == \"Draw\") {\r\n      this.signatureService.currentEditableSignatureElement.currentSignatureMode = \"Draw\";\r\n    } else {\r\n      this.signatureService.currentEditableSignatureElement.currentSignatureMode = \"Type\";\r\n    }\r\n  }\r\n  createLayer(canvas) {\r\n    let layer = document.createElement(\"canvas\");\r\n    layer.width = canvas.width;\r\n    layer.height = canvas.height;\r\n    return layer.getContext(\"2d\");\r\n  }\r\n  drawLayer(context, layer) {\r\n    if (layer) {\r\n      context.drawImage(layer.canvas, 0, 0);\r\n    }\r\n  }\r\n  fillLayer(layer: CanvasRenderingContext2D, content: StiTextItem | StiImageEditorResult | any) {\r\n    if (content instanceof StiTextItem) {\r\n      if (content.value) {\r\n        layer.font = `${content.font.isItalic() ? \"italic \" : \"\"}${content.font.isBold() ? \"bold \" : \"\"}${content.font.size + \"px \"\r\n          }${content.font.family}`;\r\n        layer.textBaseline = \"center\" as any;\r\n        layer.textAlign = Enum.getName(StiHorizontalAlignment, content.horizontalAlignment).toLocaleLowerCase() as any;\r\n        layer.fillText(\r\n          content.value,\r\n          Enum.getName(StiHorizontalAlignment, content.horizontalAlignment).toLocaleLowerCase() == \"left\"\r\n            ? 0\r\n            : Enum.getName(StiHorizontalAlignment, content.horizontalAlignment).toLocaleLowerCase() == \"center\"\r\n              ? this.canvasWidth / 2\r\n              : this.canvasWidth - layer.measureText(content.value).width,\r\n          this.canvasHeight / 2\r\n        );\r\n      }\r\n    } else if (content?.loadedImage) {\r\n      this.signatureService.currentActiveLoadingImages += 1;\r\n      let image = new Image();\r\n      image.onload = () => {\r\n        if (content?.aspectRatio && content?.stretch) {\r\n          let hRatio = this.canvasWidth / image.naturalWidth;\r\n          let vRatio = this.canvasHeight / image.naturalHeight;\r\n          let ratio = Math.min(hRatio, vRatio);\r\n          let centerShiftX = (this.canvasWidth - image.naturalWidth * ratio) / 2;\r\n          let centerShiftY = (this.canvasHeight - image.naturalHeight * ratio) / 2;\r\n          layer.drawImage(\r\n            image,\r\n            0,\r\n            0,\r\n            image.naturalWidth,\r\n            image.naturalHeight,\r\n            centerShiftX,\r\n            centerShiftY,\r\n            image.naturalWidth * ratio,\r\n            image.naturalHeight * ratio\r\n          );\r\n          this.signatureService.completedLoadingImages += 1;\r\n        } else {\r\n          layer.drawImage(\r\n            image,\r\n            0,\r\n            0,\r\n            content.stretch ? this.canvasWidth : image.naturalWidth,\r\n            content.stretch ? this.canvasHeight : image.naturalHeight\r\n          );\r\n          this.signatureService.completedLoadingImages += 1;\r\n        }\r\n      };\r\n      image.src = content.loadedImage;\r\n    } else {\r\n      if (typeof content === \"string\") {\r\n        this.signatureService.currentActiveLoadingImages += 1;\r\n        let image = new Image();\r\n        image.onload = () => {\r\n          layer.drawImage(image, 0, 0, this.canvasWidth, this.canvasHeight);\r\n          this.signatureService.completedLoadingImages += 1;\r\n        };\r\n        image.src = content;\r\n      }\r\n    }\r\n  }\r\n\r\n  changeMode(mode) {\r\n    this.signatureService.selectedMode = mode;\r\n    if (mode == \"Draw\") {\r\n      setTimeout(() => {\r\n        this.fillDrawingCanvas();\r\n      });\r\n    }\r\n  }\r\n  updateResultCanvas(type = \"Draw\") {\r\n    if (type == \"Draw\") {\r\n      this.drawLayer(this.resultCanvasContext, this.insertedImageLayer);\r\n      this.drawLayer(this.resultCanvasContext, this.insertedTextLayer);\r\n      this.drawLayer(this.resultCanvasContext, this.drawedLayer);\r\n      // console.log(this.resultCanvasContext.canvas.toDataURL(\"image/png\"));\r\n      if (this.resultCanvasContext?.canvas?.toDataURL(\"image/png\")) {\r\n        this.signatureService.currentEditableSignatureElement.backgroundImage =\r\n          this.resultCanvasContext.canvas.toDataURL(\"image/png\");\r\n      }\r\n      this.signatureService.currentEditableSignatureElement.insertedImage = this.signatureService.currentEditableImage;\r\n      this.signatureService.currentEditableSignatureElement.insertedText = this.signatureService.currentEditableText;\r\n      if (this.signatureService.currentCanvasContent) {\r\n        this.signatureService.currentEditableSignatureElement.drawedImage = this.signatureService.currentCanvasContent;\r\n      } else {\r\n        this.signatureService.currentEditableSignatureElement.drawedImage = \"\";\r\n      }\r\n    }\r\n    this.signatureService.currentEditableSignatureElement.isSigned = true;\r\n    this.model.showSignatureEditor = false;\r\n    // this.signatureService.currentSignatureElement = null;\r\n  }\r\n  onMouseMove(event) {\r\n    if (this.isDragging) {\r\n      let deltaX = event.clientX - this.startX;\r\n      let deltaY = event.clientY - this.startY;\r\n      if (this.startComponentX + deltaX < 0) {\r\n        this.signatureService.editorComponentX = 0;\r\n      } else if (this.startComponentX + deltaX > window.innerWidth - this.signatureService.editorComponentWidth) {\r\n        this.signatureService.editorComponentX = window.innerWidth - this.signatureService.editorComponentWidth;\r\n      } else {\r\n        this.signatureService.editorComponentX = this.startComponentX + deltaX;\r\n      }\r\n\r\n      if (this.startComponentY + deltaY < 0) {\r\n        this.signatureService.editorComponentY = 0;\r\n      } else if (this.startComponentY + deltaY > window.innerHeight - this.signatureService.editorComponentHeight) {\r\n        this.signatureService.editorComponentY = window.innerHeight - this.signatureService.editorComponentHeight;\r\n      } else {\r\n        this.signatureService.editorComponentY = this.startComponentY + deltaY;\r\n      }\r\n    }\r\n  }\r\n  startDrag(event) {\r\n    this.startX = event.clientX;\r\n    this.startY = event.clientY;\r\n    this.startComponentX = this.signatureService.editorComponentX;\r\n    this.startComponentY = this.signatureService.editorComponentY;\r\n    this.isDragging = true;\r\n  }\r\n  ngOnInit() {\r\n    this.drawingMode = true;\r\n    if (localStorage.getItem(\"StiSignatureTemplates\")) {\r\n      this.signatureService.savedTemplates = JSON.parse(localStorage.getItem(\"StiSignatureTemplates\"));\r\n    }\r\n    this.signatureService.editorComponentX = (window.innerWidth - this.signatureService.editorComponentWidth) / 2;\r\n    this.signatureService.editorComponentY = (window.innerHeight - this.signatureService.editorComponentHeight) / 2;\r\n    this.updateSignatureSubscription = this.signatureService.updateSignature.subscribe((event) => {\r\n      if (event.type == \"Text\") {\r\n        this.signatureService.currentEditableText = event.value;\r\n      } else if (event.type == \"Image\") {\r\n        this.signatureService.currentEditableImage = event.value;\r\n      }\r\n    });\r\n    this.updateResultCanvasSubscription = this.signatureService.completedLoading.subscribe(() => {\r\n      this.updateResultCanvas();\r\n    });\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe(() => {\r\n      this.onMouseUp();\r\n    });\r\n\r\n    this.mouseService.getDocumentTouchEnd().subscribe(() => {\r\n      this.onMouseUp();\r\n    });\r\n\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.onMouseMove(event);\r\n    });\r\n  }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiHorizontalAlignment } from \"../../system/enums\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiTextItem } from \"../../elements/text/StiTextItem\";\r\nimport { StiColorDialogService } from \"../../services/sti-color-dialog.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SignatureService } from \"../../services/sti-signature.service\";\r\nimport StiJson from \"../../system/StiJson\";\r\n\r\n@Component({\r\n    selector: \"embed-text-editor\",\r\n    template: ` <div class=\"editor-container\">\r\n    <div class=\"editor-navigation\">\r\n      <sti-dropdown-component\r\n        [id]=\"4\"\r\n        [options]=\"model.fontFamilies\"\r\n        [(value)]=\"currentText.font.family\"\r\n        [tooltip]=\"loc.get2('HelpDesigner', 'FontName')\"\r\n        [isMinVersion]=\"true\"\r\n        [optionLabel]=\"'name'\"\r\n        [optionValue]=\"'name'\"\r\n        [style]=\"{\r\n          width: '100px',\r\n          height: '24px',\r\n          alignItems: 'center',\r\n          marginRight: '5px',\r\n          fontSize: '12px'\r\n        }\"\r\n      ></sti-dropdown-component>\r\n      <sti-dropdown-component\r\n        [id]=\"5\"\r\n        [options]=\"helper.fontSizes\"\r\n        [(value)]=\"currentText.font.size\"\r\n        [tooltip]=\"loc.getP('FontSize')\"\r\n        [isMinVersion]=\"true\"\r\n        [style]=\"{\r\n          width: '45px',\r\n          height: '24px',\r\n          alignItems: 'center',\r\n          marginRight: '5px',\r\n          fontSize: '12px'\r\n        }\"\r\n      ></sti-dropdown-component>\r\n      <sti-selectButton\r\n        [options]=\"helper.styleOptions\"\r\n        [(value)]=\"currentText.font.style\"\r\n        [multiple]=\"true\"\r\n        optionValue=\"value\"\r\n        [style]=\"{ height: '26px', minWidth: '87px' }\"\r\n        ><ng-template let-item>\r\n          <img\r\n            [src]=\"model.getImage(item.image)\"\r\n            [stiTooltip]=\"loc.getP(item.value)\"\r\n            tooltipPosition=\"bottom\"\r\n            showDelay=\"500\"\r\n          /> </ng-template\r\n      ></sti-selectButton>\r\n      <div class=\"vertical-line\"></div>\r\n      <div\r\n        class=\"button-container\"\r\n        [stiTooltip]=\"loc.getP('ForeColor')\"\r\n        tooltipPosition=\"bottom\"\r\n        showDelay=\"500\"\r\n        (click)=\"showColorPicker(fontColorEditor, currentText.color)\"\r\n        (mousedown)=\"$event.preventDefault()\"\r\n        #fontColorEditor\r\n      >\r\n        <div class=\"preview-container\">\r\n          <div class=\"foreground\" [style]=\"{ backgroundPosition: 'center', backgroundRepeat: 'no-repeat' }\">\r\n            <img [src]=\"model.getImage('images.Brush.png')\" alt=\"\" />\r\n          </div>\r\n          <span\r\n            class=\"color-preview\"\r\n            [style.background-color]=\"\r\n              currentText.color != null ? currentText.color?.toHtmlColor() : 'rgb(182, 181, 180)'\r\n            \"\r\n          ></span>\r\n        </div>\r\n        <div [style]=\"{ position: 'relative', alignSelf: 'center' }\">\r\n          <i class=\"pi pi-chevron-down\"></i>\r\n        </div>\r\n      </div>\r\n      <div class=\"vertical-line\"></div>\r\n      <sti-selectButton\r\n        [options]=\"helper.justifyOptions\"\r\n        [(value)]=\"currentText.eContentAlignment\"\r\n        optionValue=\"value\"\r\n        [style]=\"{ height: '26px', minWidth: '94px' }\"\r\n      >\r\n        <ng-template let-item>\r\n          <img\r\n            [src]=\"model.getImage(item.image)\"\r\n            [stiTooltip]=\"loc.getP(item.name)\"\r\n            tooltipPosition=\"bottom\"\r\n            showDelay=\"500\"\r\n            [style]=\"{ height: '16px', width: '16px' }\"\r\n          />\r\n        </ng-template>\r\n      </sti-selectButton>\r\n    </div>\r\n    <div class=\"text-container\" (click)=\"textInput.focus()\">\r\n      <label\r\n        class=\"text-input\"\r\n        #textInput\r\n        spellcheck=\"false\"\r\n        [attr.contenteditable]=\"'plaintext-only'\"\r\n        [style]=\"currentText.htmlStyle()\"\r\n        [textContent]=\"currentText.value\"\r\n        [style.text-align]=\"alignment\"\r\n        (input)=\"setContent($event.target.textContent)\"\r\n      ></label>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .text-input {\r\n        width: 100%;\r\n        height: 100%;\r\n        min-width: 10px;\r\n        margin: 0px;\r\n        outline: none;\r\n        max-width: 100%;\r\n        overflow: hidden;\r\n        scroll-behavior: smooth;\r\n        padding: 4px;\r\n      }\r\n      .text-container:hover {\r\n        cursor: text;\r\n      }\r\n      .text-container {\r\n        display: flex;\r\n      }\r\n      .preview-container {\r\n        display: flex;\r\n        width: 100%;\r\n        position: relative;\r\n        flex-direction: column;\r\n      }\r\n      .button-container {\r\n        display: flex;\r\n        height: 26px;\r\n        width: 40px;\r\n        position: relative;\r\n        margin: 0px 2px;\r\n        border-radius: 3px;\r\n      }\r\n      .button-container:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n      .button-container:active {\r\n        background-color: var(--columnDeleteHover-color);\r\n      }\r\n      .color-preview {\r\n        width: 20px;\r\n        height: 5px;\r\n        margin-left: 4px;\r\n      }\r\n      i {\r\n        height: 12px;\r\n        width: 12px;\r\n        right: 3px;\r\n        top: 50%;\r\n        vertical-align: middle;\r\n        color: var(--text-color);\r\n      }\r\n      .button-container:hover i {\r\n        color: white;\r\n      }\r\n      .foreground {\r\n        margin-left: 8px;\r\n        margin-top: 2px;\r\n        width: 16px;\r\n        height: 18px;\r\n      }\r\n      .vertical-line {\r\n        height: 26px;\r\n        width: 1px;\r\n        background-color: lightgray;\r\n        margin: 0px 3px;\r\n      }\r\n      img {\r\n        max-width: 16px;\r\n      }\r\n      .text-container {\r\n        border-radius: 3px;\r\n        border: 1px dashed lightgray;\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .editor-container {\r\n        height: calc(100% - 20px);\r\n        width: calc(100% - 20px);\r\n        margin: 10px;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .editor-navigation {\r\n        height: 26px;\r\n        margin-bottom: 5px;\r\n        margin-top: 10px;\r\n        display: flex;\r\n      }\r\n      .navigation-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .navigation-button {\r\n        height: 26px;\r\n        width: 26px;\r\n        margin-right: 2px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .navigation-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiEmbedTextEditorComponent implements OnInit, AfterViewInit {\r\n  public currentText: StiTextItem = new StiTextItem();\r\n  updateSignatureSubscription: Subscription;\r\n  @ViewChild(\"textInput\") textInput: ElementRef;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public helper: StiHelperService,\r\n    public loc: StiLocalizationService,\r\n    public colorService: StiColorDialogService,\r\n    public signatureService: SignatureService\r\n  ) {}\r\n  get alignment() {\r\n    if (this.currentText.horizontalAlignment == StiHorizontalAlignment.Center) {\r\n      return \"center\";\r\n    } else if (this.currentText.horizontalAlignment == StiHorizontalAlignment.Right) {\r\n      return \"end\";\r\n    } else {\r\n      return \"start\";\r\n    }\r\n  }\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      this.textInput.nativeElement.focus();\r\n    });\r\n  }\r\n  showColorPicker(element, object, isRichText = false) {\r\n    this.colorService.openDialog(element, object, isRichText);\r\n  }\r\n  setContent(innerText) {\r\n    /* if ((this.model.getBrowserType() == \"safari\" || this.model.getBrowserType() == \"firefox\") && this.showPlaceholder) {\r\n      this.editableContentService.startEdit();\r\n    }\r\n    if (\r\n      this.model.getBrowserType() == \"safari\" ||\r\n      (this.model.getBrowserType() == \"firefox\" && !this.showPlaceholder)\r\n    ) {\r\n      this.cdr.detach();\r\n    } */\r\n    this.currentText.value = innerText;\r\n  }\r\n  ngOnInit() {\r\n    this.currentText = this.cloneTextItem(this.signatureService.currentEditableText);\r\n    this.updateSignatureSubscription = this.signatureService.getInsertedInformation.subscribe((event) => {\r\n      if (event.eventName == \"TextEditor\") {\r\n        this.signatureService.updateSignature.next({ type: \"Text\", value: this.currentText });\r\n      }\r\n    });\r\n  }\r\n  cloneTextItem(textItem) {\r\n    let result = new StiTextItem();\r\n    let jObject = new StiJson();\r\n    jObject.deserialize(textItem.saveToJsonObject({}).serialize());\r\n    result.loadFromJsonObject(jObject);\r\n    return result;\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiHorizontalAlignment, StiVerticalAlignment } from \"../../system/enums\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SignatureService } from \"../../services/sti-signature.service\";\r\nimport { StiImageEditorResultObject } from \"../../system/interfaces\";\r\nimport { StiImageEditorResult } from \"../../elements/signature/StiImageEditorResult\";\r\n\r\n@Component({\r\n    selector: \"embed-image-editor\",\r\n    template: `<div class=\"editor-container\">\r\n    <div class=\"editor-navigation\">\r\n      <div\r\n        class=\"navigation-button\"\r\n        [style.min-width.px]=\"50\"\r\n        [style.padding]=\"'0px 10px'\"\r\n        [style.width]=\"'auto'\"\r\n        (click)=\"inputFile.click()\"\r\n      >\r\n        <img [src]=\"model.getImage('images.Other.Open.png')\" />\r\n        <span [style.margin-left.px]=\"2\"> {{ loc.get2(\"Buttons\", \"Open\") }}</span>\r\n      </div>\r\n      <div class=\"navigation-button {{ hasImage ? '' : 'disabled' }}\" (click)=\"clear()\">\r\n        <img [src]=\"model.getImage('images.Ribbon.Delete.png')\" />\r\n      </div>\r\n      <sti-selectButton\r\n        [options]=\"helper.justifyOptions\"\r\n        [(value)]=\"currentHorizontalAlignment\"\r\n        [disabled]=\"!hasImage\"\r\n        optionValue=\"value\"\r\n        [style]=\"{ height: '26px', minWidth: '94px' }\"\r\n      >\r\n        <ng-template let-item>\r\n          <img\r\n            [src]=\"model.getImage(item.image)\"\r\n            [stiTooltip]=\"loc.getP(item.name)\"\r\n            tooltipPosition=\"bottom\"\r\n            showDelay=\"500\"\r\n            [style]=\"{ height: '16px', width: '16px' }\"\r\n          />\r\n        </ng-template>\r\n      </sti-selectButton>\r\n      <sti-selectButton\r\n        [options]=\"helper.verticalAlignment\"\r\n        [(value)]=\"currentVerticalAlignment\"\r\n        [disabled]=\"!hasImage\"\r\n        optionValue=\"value\"\r\n        [style]=\"{ height: '26px', minWidth: '94px' }\"\r\n      >\r\n        <ng-template let-item>\r\n          <img\r\n            [src]=\"model.getImage(item.image)\"\r\n            [stiTooltip]=\"loc.getP(item.name)\"\r\n            tooltipPosition=\"bottom\"\r\n            showDelay=\"500\"\r\n            [style]=\"{ height: '16px', width: '16px' }\"\r\n          />\r\n        </ng-template>\r\n      </sti-selectButton>\r\n      <sti-checkbox\r\n        class=\"min-version\"\r\n        [(value)]=\"useAspectRatio\"\r\n        [disabled]=\"!hasImage\"\r\n        [label]=\"'Aspect Ratio'\"\r\n      ></sti-checkbox>\r\n      <sti-checkbox\r\n        class=\"min-version\"\r\n        [(value)]=\"useStretch\"\r\n        [disabled]=\"!hasImage\"\r\n        [label]=\"'Stretch'\"\r\n      ></sti-checkbox>\r\n    </div>\r\n    <div class=\"image-container\" #imageContainer [style.justify-content]=\"getHorizontalAlignment()\">\r\n      <input\r\n        type=\"file\"\r\n        [style.display]=\"'none'\"\r\n        accept=\".jpg, .jpeg, .png\"\r\n        (click)=\"$event.target.value = null\"\r\n        (change)=\"onFileSelected($event.target)\"\r\n        #inputFile\r\n      />\r\n      <div\r\n        class=\"image-preview\"\r\n        [style.width.px]=\"useStretch && useAspectRatio ? imageContainer.clientHeight : imageContainer.clientWidth\"\r\n        [style.height.px]=\"imageContainer.clientHeight\"\r\n        [style.background-image]=\"image\"\r\n        [style.background-position]=\"getBackgroundPosition()\"\r\n        [style.background-size]=\"getBackgroundSize(imageContainer)\"\r\n        [style.background-repeat]=\"image ? 'no-repeat' : ''\"\r\n      ></div>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .image-preview {\r\n        width: 100%;\r\n        height: 100%;\r\n      }\r\n      .disabled {\r\n        pointer-events: none;\r\n        opacity: 0.6;\r\n      }\r\n      sti-checkbox {\r\n        font-size: 12px !important;\r\n        font-family: Arial !important;\r\n        margin: 0px 5px;\r\n      }\r\n      sti-checkbox .label {\r\n        font-size: 12px !important;\r\n      }\r\n      .image-container {\r\n        border-radius: 3px;\r\n        border: 1px dashed lightgray;\r\n        height: 100%;\r\n        width: 100%;\r\n        display: flex;\r\n      }\r\n      .editor-container {\r\n        height: calc(100% - 20px);\r\n        width: calc(100% - 20px);\r\n        margin: 10px;\r\n        display: flex;\r\n        flex-direction: column;\r\n      }\r\n      .editor-navigation {\r\n        height: 26px;\r\n        margin-bottom: 5px;\r\n        margin-top: 10px;\r\n        display: flex;\r\n      }\r\n      .navigation-button:hover {\r\n        background-color: lightgray;\r\n      }\r\n      .navigation-button {\r\n        height: 26px;\r\n        width: 26px;\r\n        margin-right: 2px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .navigation-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiEmbedImageEditorComponent implements OnInit {\r\n  public currentVerticalAlignment: StiVerticalAlignment = StiVerticalAlignment.Center;\r\n  public currentHorizontalAlignment: StiHorizontalAlignment = StiHorizontalAlignment.Center;\r\n  public useAspectRatio: boolean = false;\r\n  public useStretch: boolean = false;\r\n  public loadedImage;\r\n  public currentImageNaturalWidth: number = 0;\r\n  public currentImageNaturalHeight: number = 0;\r\n  updateSignatureSubscription: Subscription;\r\n  public get hasImage(): boolean {\r\n    return this.loadedImage ? true : false;\r\n  }\r\n  get image() {\r\n    return \"url(\" + this.loadedImage + \")\";\r\n  }\r\n  clear() {\r\n    this.loadedImage = null;\r\n  }\r\n  getBackgroundSize(container) {\r\n    if (!this.loadedImage) {\r\n      return;\r\n    }\r\n    if (this.useAspectRatio && this.useStretch) {\r\n      return \"contain\";\r\n    }\r\n    if (this.useStretch) {\r\n      return `${container.offsetWidth}px ${container.offsetHeight}px`;\r\n    } else {\r\n      return `${this.currentImageNaturalWidth}px ${this.currentImageNaturalHeight}px`;\r\n    }\r\n  }\r\n  getBackgroundPosition() {\r\n    if (this.useStretch && !this.useAspectRatio) {\r\n      return `center`;\r\n    } else {\r\n      return `${this.signatureService.getVerticalPosition(\r\n        this.currentVerticalAlignment\r\n      )} ${this.signatureService.getHorizontalPosition(this.currentHorizontalAlignment)}`;\r\n    }\r\n  }\r\n  getHorizontalAlignment() {\r\n    if (this.currentHorizontalAlignment == StiHorizontalAlignment.Center) {\r\n      return \"center\";\r\n    } else if (this.currentHorizontalAlignment == StiHorizontalAlignment.Left) {\r\n      return \"start\";\r\n    } else {\r\n      return \"end\";\r\n    }\r\n  }\r\n  onFileSelected(event) {\r\n    if (event.files && event.files[0]) {\r\n      var reader = new FileReader();\r\n      reader.onload = (e: any) => {\r\n        let image = new Image();\r\n        image.onload = () => {\r\n          this.currentImageNaturalHeight = image.naturalHeight;\r\n          this.currentImageNaturalWidth = image.naturalWidth;\r\n        };\r\n        image.src = e.target.result;\r\n        setTimeout(() => {\r\n          this.loadedImage = e.target.result;\r\n        });\r\n      };\r\n      reader.readAsDataURL(event.files[0]);\r\n    }\r\n  }\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public helper: StiHelperService,\r\n    public signatureService: SignatureService\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    if (this.signatureService.currentEditableImage) {\r\n      this.loadedImage = this.signatureService.currentEditableImage.loadedImage;\r\n      this.currentVerticalAlignment = this.signatureService.currentEditableImage.verticalAlignment;\r\n      this.currentHorizontalAlignment = this.signatureService.currentEditableImage.horizontalAlignment;\r\n      this.useAspectRatio = this.signatureService.currentEditableImage.aspectRatio;\r\n      this.useStretch = this.signatureService.currentEditableImage.stretch;\r\n      this.currentImageNaturalHeight = this.signatureService.currentEditableImage.naturalHeight;\r\n      this.currentImageNaturalWidth = this.signatureService.currentEditableImage.naturalWidth;\r\n    }\r\n    this.updateSignatureSubscription = this.signatureService.getInsertedInformation.subscribe((event) => {\r\n      if (event.eventName == \"ImageEditor\") {\r\n        let resultObject = new StiImageEditorResult();\r\n        resultObject.loadedImage = this.loadedImage;\r\n        resultObject.verticalAlignment = this.currentVerticalAlignment;\r\n        resultObject.horizontalAlignment = this.currentHorizontalAlignment;\r\n        resultObject.aspectRatio = this.useAspectRatio;\r\n        resultObject.stretch = this.useStretch;\r\n        resultObject.naturalHeight = this.currentImageNaturalHeight;\r\n        resultObject.naturalWidth = this.currentImageNaturalWidth;\r\n        this.signatureService.updateSignature.next({ type: \"Image\", value: resultObject });\r\n      }\r\n    });\r\n  }\r\n}\r\n","import { AfterViewInit, Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiDraggableModalWindowService } from \"../../services/sti-draggable-modal-window.service\";\r\nimport { StiMouseService } from \"../../services/mouse.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SignatureService } from \"../../services/sti-signature.service\";\r\n\r\n@Component({\r\n    selector: \"sti-draggable-modal-window\",\r\n    template: `<div\r\n      class=\"draggable-modal-window-container\"\r\n      [style.left.px]=\"modalWindowService.editorX\"\r\n      [style.top.px]=\"modalWindowService.editorY\"\r\n      >\r\n      <div class=\"draggable-modal-window-navbar\" (mousedown)=\"startDrag($event)\">\r\n        <span [style.flex]=\"1\">{{ header }}</span>\r\n        <div class=\"close-button\" (click)=\"model.showDraggableModalWindow = false\">\r\n          <img [src]=\"model.getImage('images.Other.CloseForm.png')\" />\r\n        </div>\r\n      </div>\r\n      <div class=\"content-container\">\r\n        @if (modalWindowService.isTextEditor) {\r\n          <embed-text-editor></embed-text-editor>\r\n        }\r\n        @if (modalWindowService.isImageEditor) {\r\n          <embed-image-editor></embed-image-editor>\r\n        }\r\n      </div>\r\n      <div class=\"setup-accept\">\r\n        <div class=\"accept button\" (click)=\"accept()\">\r\n          <span [style.margin-left.px]=\"0\">{{ loc.getP(\"Insert\").replace(\"&amp\", \"\").replace(\";\", \"\") }}</span>\r\n        </div>\r\n        <div class=\"cancel button\" (click)=\"model.showDraggableModalWindow = false\">\r\n          <span [style.margin-left.px]=\"0\">{{ loc.getP(\"Cancel\") }}</span>\r\n        </div>\r\n      </div>\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      .draggable-modal-window-container {\r\n        background-color: var(--back-color);\r\n        position: absolute;\r\n        left: calc(50% - 400px);\r\n        top: calc(50% - 255px);\r\n        z-index: 999;\r\n        width: 800px;\r\n        height: 510px;\r\n        overflow: hidden;\r\n        display: flex;\r\n        flex-direction: column;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        border: 1px solid rgb(25, 71, 138);\r\n        color: var(--text-color);\r\n        font-size: 12px;\r\n        border-radius: 5px;\r\n        font-family: \"Arial\";\r\n        -webkit-user-select: none;\r\n      }\r\n      .draggable-modal-window-navbar {\r\n        display: flex;\r\n        height: 30px;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n        -webkit-user-select: none;\r\n        color: white;\r\n        align-items: center;\r\n      }\r\n      .draggable-modal-window-navbar span {\r\n        font-size: 13px;\r\n        margin-left: 10px;\r\n      }\r\n      .close-button {\r\n        height: 30px;\r\n        width: 30px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n      .content-container {\r\n        height: 100%;\r\n        width: 100%;\r\n      }\r\n      .setup-accept {\r\n        padding: 8px;\r\n        display: flex;\r\n        align-items: flex-end;\r\n        justify-content: flex-end;\r\n      }\r\n      .button {\r\n        height: 24px;\r\n        width: 80px;\r\n        border-radius: 3px;\r\n        margin: 3px 5px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border: 1px solid transparent;\r\n      }\r\n      .accept:active {\r\n        background-color: rgb(53, 93, 160);\r\n        border-color: rgb(38, 76, 125);\r\n      }\r\n      .cancel:active {\r\n        background-color: rgb(226, 226, 226);\r\n        border-color: rgb(131, 131, 131);\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n      .cancel {\r\n        background-color: rgb(221, 221, 221);\r\n        color: rgb(68, 68, 68);\r\n      }\r\n      .cancel:hover {\r\n        background-color: rgb(213, 213, 213);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiDraggableModalWindowComponent implements OnInit, AfterViewInit {\r\n  public startX: number;\r\n  public startY: number;\r\n  public startComponentX: number;\r\n  public startComponentY: number;\r\n  public isDragging: boolean;\r\n  mouseUpSubscription: Subscription;\r\n  mouseMoveSubscription: Subscription;\r\n  constructor(\r\n    public model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public modalWindowService: StiDraggableModalWindowService,\r\n    public signatureService: SignatureService,\r\n    public mouseService: StiMouseService\r\n  ) {}\r\n  ngAfterViewInit(): void {\r\n    const onResize = (event) => {\r\n      this.modalWindowService.editorX = (window.innerWidth - this.modalWindowService.editorWidth) / 2;\r\n      this.modalWindowService.editorY = (window.innerHeight - this.modalWindowService.editorHeight) / 2;\r\n    };\r\n    window.addEventListener(\"resize\", onResize);\r\n  }\r\n  public get header() {\r\n    return this.modalWindowService.isTextEditor\r\n      ? this.loc.get2(\"FormTitles\", \"TextEditorForm\")\r\n      : this.loc.get2(\"Components\", \"StiImage\");\r\n  }\r\n  startDrag(event) {\r\n    this.startX = event.clientX;\r\n    this.startY = event.clientY;\r\n    this.startComponentX = this.modalWindowService.editorX;\r\n    this.startComponentY = this.modalWindowService.editorY;\r\n    this.isDragging = true;\r\n  }\r\n  accept() {\r\n    this.modalWindowService.isTextEditor\r\n      ? this.signatureService.getInsertedInformation.next({ eventName: \"TextEditor\" })\r\n      : this.signatureService.getInsertedInformation.next({ eventName: \"ImageEditor\" });\r\n    this.model.showDraggableModalWindow = false;\r\n  }\r\n  onMouseMove(event) {\r\n    if (this.isDragging) {\r\n      let deltaX = event.clientX - this.startX;\r\n      let deltaY = event.clientY - this.startY;\r\n      if (this.startComponentX + deltaX < 0) {\r\n        this.modalWindowService.editorX = 0;\r\n      } else if (this.startComponentX + deltaX > window.innerWidth - this.modalWindowService.editorWidth) {\r\n        this.modalWindowService.editorX = window.innerWidth - this.modalWindowService.editorWidth;\r\n      } else {\r\n        this.modalWindowService.editorX = this.startComponentX + deltaX;\r\n      }\r\n\r\n      if (this.startComponentY + deltaY < 0) {\r\n        this.modalWindowService.editorY = 0;\r\n      } else if (this.startComponentY + deltaY > window.innerHeight - this.modalWindowService.editorHeight) {\r\n        this.modalWindowService.editorY = window.innerHeight - this.modalWindowService.editorHeight;\r\n      } else {\r\n        this.modalWindowService.editorY = this.startComponentY + deltaY;\r\n      }\r\n    }\r\n  }\r\n  ngOnInit() {\r\n    this.modalWindowService.editorX = (window.innerWidth - this.modalWindowService.editorWidth) / 2;\r\n    this.modalWindowService.editorY = (window.innerHeight - this.modalWindowService.editorHeight) / 2;\r\n    this.mouseUpSubscription = this.mouseService.getDocumentMouseUp().subscribe(() => {\r\n      this.isDragging = false;\r\n    });\r\n    this.mouseMoveSubscription = this.mouseService.getDocumentMouseMove().subscribe((event: MouseEvent) => {\r\n      this.onMouseMove(event);\r\n    });\r\n  }\r\n}\r\n","import { AfterViewInit, Component, OnInit } from \"@angular/core\";\r\nimport { StiTooltipService } from \"./sti-tooltip.service\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\n@Component({\r\n    selector: \"sti-tooltip\",\r\n    template: ` <div\r\n    #tooltip\r\n    class=\"sti-tooltip {{ getTooltipArrow() }}\"\r\n    [style.left.px]=\"getLeft(tooltip)\"\r\n    [style.top.px]=\"getTop(tooltip)\"\r\n  >\r\n    <span>{{ tooltipService.text }}</span>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .sti-tooltip {\r\n        position: absolute;\r\n        background: var(--back-color);\r\n        color: var(--text-color);\r\n        padding: 0.429rem 0.429rem;\r\n        box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\r\n        border-radius: 3px;\r\n        z-index: 99999999;\r\n        white-space: pre-line;\r\n      }\r\n      .sti-tooltip span {\r\n        font-size: 16px;\r\n        font-family: Arial;\r\n      }\r\n      .bottom-arrow::before,\r\n      .bottom-arrow::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        left: calc(50% - 8px);\r\n        bottom: -16px;\r\n        border: 8px solid transparent;\r\n        border-top: 8px solid white;\r\n      }\r\n      .bottom-arrow::after {\r\n        border-top: 8px solid white;\r\n        bottom: -16px;\r\n      }\r\n      .top-arrow::before,\r\n      .top-arrow::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        left: calc(50% - 8px);\r\n        top: -16px;\r\n        border: 8px solid transparent;\r\n        border-bottom: 8px solid white;\r\n      }\r\n      .top-arrow::after {\r\n        border-bottom: 8px solid white;\r\n        top: -16px;\r\n      }\r\n      .left-arrow::before,\r\n      .left-arrow::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        left: -16px;\r\n        top: calc(50% - 8px);\r\n        border: 8px solid transparent;\r\n        border-right: 8px solid white;\r\n      }\r\n      .left-arrow::after {\r\n        border-right: 8px solid white;\r\n        left: -16px;\r\n      }\r\n      .right-arrow::before,\r\n      .right-arrow::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        right: -16px;\r\n        top: calc(50% - 8px);\r\n        border: 8px solid transparent;\r\n        border-left: 8px solid white;\r\n      }\r\n      .right-arrow::after {\r\n        border-left: 8px solid white;\r\n        right: -16px;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTooltipComponent implements OnInit, AfterViewInit {\r\n  constructor(public tooltipService: StiTooltipService, public model: StiModelService) {}\r\n  public initialized: boolean = false;\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      this.initialized = true;\r\n    });\r\n  }\r\n  public getTooltipArrow() {\r\n    switch (this.tooltipService.position) {\r\n      case \"top\":\r\n        return \"bottom-arrow\";\r\n      case \"bottom\":\r\n        return \"top-arrow\";\r\n      case \"left\":\r\n        return \"right-arrow\";\r\n      case \"right\":\r\n        return \"left-arrow\";\r\n    }\r\n  }\r\n  public getLeft(tooltipElement) {\r\n    let elementRect = this.model.getPositionRelativeToForm(tooltipElement);\r\n    if (this.tooltipService.elementRect && this.initialized) {\r\n      switch (this.tooltipService.position) {\r\n        case \"left\":\r\n          return this.correctLeftLimits(this.tooltipService.elementRect.left - (elementRect.width + 8), elementRect);\r\n        case \"right\":\r\n          return this.correctLeftLimits(this.tooltipService.elementRect.right + 8, elementRect);\r\n        case \"top\":\r\n        case \"bottom\":\r\n          return this.correctLeftLimits(\r\n            this.tooltipService.elementRect.left + (this.tooltipService.elementRect.width / 2 - elementRect.width / 2),\r\n            elementRect\r\n          );\r\n      }\r\n    } else {\r\n      return -999;\r\n    }\r\n  }\r\n  public getTop(tooltipElement) {\r\n    let elementRect = this.model.getPositionRelativeToForm(tooltipElement);\r\n    if (this.tooltipService.elementRect && this.initialized) {\r\n      switch (this.tooltipService.position) {\r\n        case \"top\":\r\n          return this.correctTopLimits(this.tooltipService.elementRect.top - (elementRect.height + 8), elementRect);\r\n        case \"bottom\":\r\n          return this.correctTopLimits(this.tooltipService.elementRect.bottom + 8, elementRect);\r\n        case \"left\":\r\n        case \"right\":\r\n          return this.correctTopLimits(\r\n            this.tooltipService.elementRect.top + (this.tooltipService.elementRect.height / 2 - elementRect.height / 2),\r\n            elementRect\r\n          );\r\n      }\r\n    } else {\r\n      return -999;\r\n    }\r\n  }\r\n  correctLeftLimits(value, tooltipRect) {\r\n    if (value < 0) {\r\n      return 0;\r\n    } else if (value + tooltipRect.width > window.innerWidth) {\r\n      return Math.round(window.innerWidth - tooltipRect.width).toFixed(2);\r\n    } else {\r\n      return Math.round(value).toFixed(2);\r\n    }\r\n  }\r\n  correctTopLimits(value, tooltipRect) {\r\n    if (value < 0) {\r\n      return 0;\r\n    } else if (value + tooltipRect.height > window.innerHeight) {\r\n      return Math.round(window.innerHeight - tooltipRect.height).toFixed(2);\r\n    } else {\r\n      return Math.round(value).toFixed(2);\r\n    }\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\nimport { StiUserService } from \"../../services/sti-user-service\";\r\nimport StiJson from \"../../system/StiJson\";\r\n\r\n@Component({\r\n    selector: \"sti-trial-timer-window\",\r\n    template: `<div class=\"trial-timer-window\">\r\n    <div class=\"trial-timer-window-navbar\">\r\n      <span [style.flex]=\"1\">{{ loc.get2(\"Permissions\", \"ItemForms\") }}</span>\r\n      <div\r\n        class=\"close-button {{ getRemainingDays() == '0' ? 'disabled' : '' }}\"\r\n        (click)=\"model.showTrialTimerWindow = false\"\r\n      >\r\n        <img [src]=\"model.getImage('images.Other.CloseForm.png')\" />\r\n      </div>\r\n    </div>\r\n    <div class=\"trial-timer-window-content\">\r\n      <div class=\"trial-timer-window-interface\">\r\n        <div class=\"trial-timer-image\">\r\n          <img\r\n            [style.width.px]=\"isRusLocalization() ? 239 : 197\"\r\n            [src]=\"\r\n              isRusLocalization()\r\n                ? model.getImage('images.Other.TrialDaysLeft_Ru.png')\r\n                : model.getImage('images.Other.TrialDaysLeft_En.png')\r\n            \"\r\n          />\r\n          <div\r\n            class=\"timer-remaining-days\"\r\n            [style.left]=\"isRusLocalization() ? 'calc(50% - 93px)' : 'calc(50% - 72px)'\"\r\n          >\r\n            {{ getRemainingDays() }}\r\n          </div>\r\n        </div>\r\n        <div class=\"trial-timer-warnings\">\r\n          <span class=\"blue description\">{{\r\n            loc.get2(\"Notices\", \"YourTrialWillExpire\").replace(\"{0}\", getRemainingDays())\r\n          }}</span>\r\n          <span class=\"lightgray description\">{{ loc.get2(\"Notices\", \"ActivationTrialExpired\") }}</span>\r\n        </div>\r\n      </div>\r\n      <div class=\"trial-timer-window-navigation\">\r\n        <div\r\n          class=\"button gray {{ getRemainingDays() == '0' ? 'disabled' : '' }}\"\r\n          (click)=\"model.showTrialTimerWindow = false\"\r\n        >\r\n          <span>{{ \"Continue\" }}</span>\r\n        </div>\r\n        <div class=\"button navy\" (click)=\"upgradeClick()\">\r\n          <span>{{ \"Upgrade\" }}</span>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .disabled {\r\n        opacity: 0.5;\r\n        pointer-events: none;\r\n      }\r\n      .gray {\r\n        background: #dddddd;\r\n        border: 1px solid #dddddd;\r\n        color: #444444;\r\n      }\r\n      .gray:hover {\r\n        background: #d5d5d5;\r\n        border: 1px solid #d5d5d5;\r\n      }\r\n      .navy {\r\n        background: #19478a;\r\n        border: 1px solid #19478a;\r\n        color: #ffffff;\r\n      }\r\n      .navy:hover {\r\n        background: #3b629b;\r\n        border: 1px solid #3b629b;\r\n      }\r\n      .trial-timer-window-navigation {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin-top: 10px;\r\n      }\r\n      .button {\r\n        width: 150px;\r\n        height: 32px;\r\n        font-size: 14px;\r\n        font-family: Arial;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 10px;\r\n        border-radius: 3px;\r\n        -webkit-user-select: none;\r\n      }\r\n      .blue {\r\n        font-size: 16px;\r\n        color: #19478a;\r\n      }\r\n      .lightgray {\r\n        font-size: 14px;\r\n        color: #888888;\r\n      }\r\n      .trial-timer-warnings {\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n        align-items: center;\r\n      }\r\n      .description {\r\n        padding: 10px 25px;\r\n        font-family: Arial;\r\n      }\r\n      .timer-remaining-days {\r\n        position: absolute;\r\n        display: inline-block;\r\n        color: #76a797;\r\n        font-family: Arial;\r\n        font-size: 30px;\r\n        text-align: center;\r\n        width: 50px;\r\n        top: calc(50% - 13px);\r\n        left: calc(50% - 72px);\r\n      }\r\n      .trial-timer-window-interface {\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: center;\r\n        align-items: center;\r\n      }\r\n      .trial-timer-image {\r\n        position: relative;\r\n        margin-top: 20px;\r\n      }\r\n      .trial-timer-image img {\r\n        height: 112px;\r\n        width: 197px;\r\n      }\r\n      .trial-timer-window {\r\n        background-color: var(--back-color);\r\n        position: absolute;\r\n        left: calc(50% - 275px);\r\n        top: calc(50% - 176px);\r\n        z-index: 999;\r\n        width: 550px;\r\n        height: 352px;\r\n        overflow: hidden;\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n        border: 1px solid rgb(25, 71, 138);\r\n        color: var(--text-color);\r\n        font-size: 13px;\r\n        border-radius: 5px;\r\n        font-family: \"Arial\";\r\n        -webkit-user-select: none;\r\n      }\r\n      .trial-timer-window-navbar {\r\n        display: flex;\r\n        height: 30px;\r\n        border-top-left-radius: 3px;\r\n        border-top-right-radius: 3px;\r\n        background-color: rgb(81, 92, 106);\r\n        -webkit-user-select: none;\r\n        color: white;\r\n        align-items: center;\r\n      }\r\n      .trial-timer-window-navbar span {\r\n        font-size: 13px;\r\n      }\r\n      .close-button {\r\n        height: 30px;\r\n        width: 30px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n      }\r\n      span {\r\n        margin-left: 5px;\r\n        font-size: 12px;\r\n      }\r\n      .close-button:hover {\r\n        background-color: rgb(218, 218, 218);\r\n      }\r\n      .close-button img {\r\n        height: 16px;\r\n        width: 16px;\r\n        filter: brightness(0) invert(1);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTrialTimerWindowComponent implements OnInit {\r\n  public isRusLocalization() {\r\n    if (this.loc.currentLocalization?.cultureName?.toLowerCase() == \"ru\") {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n  public upgradeClick() {\r\n    window.open(\"https://www.stimulsoft.com/en/online-store#embedded/forms/web\", \"_blank\");\r\n  }\r\n  public getRemainingDays(): string {\r\n    let user = this.userService?.currentUser;\r\n    if (!user || user?.days <= 0) {\r\n      return \"0\";\r\n    }\r\n    let today = new Date();\r\n    let created = new Date(user.created);\r\n    let oneDay = 24 * 60 * 60 * 1000;\r\n\r\n    let differenceInTime = today.getTime() - created.getTime();\r\n    let diffDays = user?.days - differenceInTime / oneDay;\r\n    return Math.trunc(Math.max(0, diffDays)).toString();\r\n  }\r\n  constructor(public model: StiModelService, public loc: StiLocalizationService, public userService: StiUserService) { }\r\n\r\n  ngOnInit() { }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { StiHelperService } from \"../../services/sti-helper.service\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\n\r\n@Component({\r\n    selector: \"sti-tiered-menu\",\r\n    template: `<div\r\n      class=\"tiered-menu-container\"\r\n      [style.left.px]=\"parentElement ? getMunuLeft() : model.tieredMenuX\"\r\n      [style.top.px]=\"parentElement ? getMenuTop() : model.tieredMenuY\"\r\n      [style.zIndex]=\"baseZIndex\"\r\n      #menuElement\r\n      >\r\n      @for (item of menu; track item; let i = $index) {\r\n        <div\r\n          class=\"tiered-menu-item\"\r\n          (mouseenter)=\"onMouseEnter(i)\"\r\n          (click)=\"item.command ? onMouseClick(item) : onMouseEnter(i)\"\r\n          #parentElement\r\n          >\r\n          <span class=\"item-label\">{{ item.label }}</span>\r\n          @if (item.items) {\r\n            <span><i class=\"pi pi-chevron-right\"></i></span>\r\n          }\r\n          @if (currentHoveredElementIndex == i && item.items) {\r\n            <sti-tiered-menu\r\n              [menu]=\"item.items\"\r\n              [baseZIndex]=\"baseZIndex + 1\"\r\n              [parentElement]=\"parentElement\"\r\n            ></sti-tiered-menu>\r\n          }\r\n        </div>\r\n      }\r\n    </div>`,\r\n    styles: [\r\n        `\r\n      .tiered-menu-container {\r\n        position: absolute;\r\n        left: 500px;\r\n        top: 500px;\r\n        width: 6.5rem;\r\n        background: #ffffff;\r\n        user-select: none;\r\n        -webkit-user-select: none;\r\n        border: 1px solid #c8c8c8;\r\n        box-shadow: 0 0px 6px 0 rgba(0, 0, 0, 0.16);\r\n        border-radius: 3px;\r\n        font-family: \"Segoe UI\";\r\n      }\r\n      .tiered-menu-item {\r\n        width: calc(100% - 6px);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 3px;\r\n        font-size: 13px;\r\n        font-weight: normal;\r\n        color: #333333;\r\n        padding: 0.3rem;\r\n        color: #333333;\r\n        border-radius: 3px;\r\n        position: relative;\r\n      }\r\n      .tiered-menu-item span {\r\n        display: flex;\r\n        align-items: center;\r\n        height: 100%;\r\n      }\r\n      .tiered-menu-item:hover {\r\n        background-color: #eaeaea;\r\n        cursor: pointer;\r\n      }\r\n      .item-label {\r\n        flex: 1;\r\n        line-height: 1;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiTieredMenuComponent implements OnInit, AfterViewInit {\r\n  @Input() menu: any[];\r\n  @Input() parentElement;\r\n  @Input() baseZIndex = 9999;\r\n  @ViewChild(\"menuElement\") menuElementRef;\r\n  public isInitialized: boolean = false;\r\n  public currentHoveredElementIndex: number;\r\n  constructor(public helper: StiHelperService, public model: StiModelService) { }\r\n  ngAfterViewInit(): void {\r\n    setTimeout(() => {\r\n      this.isInitialized = true;\r\n    });\r\n  }\r\n  getMenuTop() {\r\n    let rect = this.model.getPositionRelativeToForm(this.parentElement);\r\n    return this.isInitialized\r\n      ? window.innerHeight - rect.top >= (this.menuElementRef ? this.menuElementRef?.nativeElement?.offsetHeight : 165)\r\n        ? 0\r\n        : this.menuElementRef\r\n          ? -(this.menuElementRef?.nativeElement?.offsetHeight - rect.height)\r\n          : -165\r\n      : 0;\r\n  }\r\n  getMunuLeft() {\r\n    let rect = this.model.getPositionRelativeToForm(this.parentElement);\r\n    return window.innerWidth - rect.right >= 107 ? 100 : -107;\r\n  }\r\n  onMouseEnter(index: number) {\r\n    this.currentHoveredElementIndex = index;\r\n  }\r\n  onMouseClick(item) {\r\n    item.command(item);\r\n    this.model.showTieredMenu = false;\r\n  }\r\n  ngOnInit() { }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../../services/model.service\";\r\nimport { StiLocalizationService } from \"../../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"form-tree-warning-window\",\r\n    template: ` <div class=\"warning-window-container\">\r\n    <div class=\"nav\">\r\n      <span>{{ loc.get2(\"Permissions\", \"ItemForms\") }}</span>\r\n    </div>\r\n    <div class=\"content\">\r\n      <img [src]=\"model.getImage('images.Other.MsgFormInfo.png')\" />\r\n      <p>{{ loc.get2(\"DesignerFx\", \"TextNotFound\").replace(\"{0}\", model.formTreeWarningMessage) }}</p>\r\n    </div>\r\n    <div class=\"buttons\" [style.padding-right.px]=\"3\" [style.align-self]=\"'flex-end'\">\r\n      <div class=\"button accept\" (click)=\"model.showFormTreeWarningWindow = false\">\r\n        <span>\r\n          {{ loc.get2(\"Gui\", \"barname_ok\") }}\r\n        </span>\r\n      </div>\r\n    </div>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .warning-window-container {\r\n        -webkit-touch-callout: none;\r\n        -webkit-user-select: none;\r\n        position: absolute;\r\n        top: calc(50% - 75px);\r\n        left: calc(50% - 225px);\r\n        padding: 0px;\r\n        font-family: \"Segoe UI\";\r\n        background-color: var(--back-color);\r\n        width: 450px;\r\n        height: 150px;\r\n        z-index: 9999999;\r\n        border-radius: 5px;\r\n        display: flex;\r\n        flex-direction: column;\r\n        outline: 1px solid rgb(81, 92, 106);\r\n        -moz-box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.6);\r\n        -webkit-box-shadow: 0px 0px 7px rgb(0 0 0 / 60%);\r\n        box-shadow: 0 0 7px rgb(0 0 0 / 30%);\r\n      }\r\n      .nav {\r\n        width: 100%;\r\n        height: 30px;\r\n        background-color: rgb(81, 92, 106);\r\n        border-top-left-radius: 4px;\r\n        border-top-right-radius: 4px;\r\n        display: flex;\r\n        align-items: center;\r\n      }\r\n      .nav span {\r\n        width: 100%;\r\n        margin-left: 10px;\r\n        color: white;\r\n        font-size: 13px;\r\n        font-family: \"Arial\";\r\n      }\r\n      .content {\r\n        width: 100%;\r\n        display: flex;\r\n        align-items: center;\r\n        flex: 1;\r\n        padding: 10px;\r\n      }\r\n      .content img {\r\n        margin-left: 10px;\r\n        margin-right: 10px;\r\n        width: 32px;\r\n        height: 32px;\r\n      }\r\n      p {\r\n        font-size: 12px;\r\n        font-family: \"Arial\";\r\n        color: var(--text-color);\r\n      }\r\n      .buttons {\r\n        align-self: flex-end;\r\n        padding-bottom: 5px;\r\n        height: 32px;\r\n        display: flex;\r\n        padding-right: 3px;\r\n      }\r\n      .button {\r\n        width: 80px;\r\n        height: 24px;\r\n        border-radius: 3px;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        margin: 0px 5px;\r\n      }\r\n      .button span {\r\n        font-size: 12px;\r\n        font-family: \"Arial\";\r\n        cursor: default;\r\n        margin: 0;\r\n        padding: 0;\r\n      }\r\n      .accept {\r\n        background-color: rgb(25, 71, 138);\r\n        color: white;\r\n      }\r\n      .accept:hover {\r\n        background-color: rgb(61, 98, 152);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiFormTreeWarningWindowComponent implements OnInit {\r\n  constructor(public model: StiModelService, public loc: StiLocalizationService) {}\r\n\r\n  ngOnInit() {}\r\n}\r\n","import {\r\n  AfterViewInit,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  OnInit,\r\n  Output,\r\n  ViewChild,\r\n} from \"@angular/core\";\r\nimport StiRectangleGeometryLayout from \"./computed/StiRectangleGeometryLayout\";\r\nimport { StiLocalizationService } from \"./services/sti-localization.service\";\r\nimport { StiModelService } from \"./services/model.service\";\r\nimport { StiMouseService } from \"./services/mouse.service\";\r\nimport { StiComponentResizerService } from \"./services/sti-component-resizer.service\";\r\nimport { StiEditableContentService } from \"./services/sti-editable-content.service\";\r\nimport { StiDraggableService } from \"./services/sti-draggable.service\";\r\nimport { StiHelperService } from \"./services/sti-helper.service\";\r\nimport { StiNameService } from \"./services/sti-name.service\";\r\nimport { StiToolbarResizerService } from \"./services/sti-toolbar-resizer.service\";\r\nimport { StiToolboxService } from \"./services/sti-toolbox.service\";\r\nimport { StiThemeService } from \"./services/theme.service\";\r\nimport { StiControllerService } from \"./services/sti-controller.service\";\r\nimport { StiHttpClientService } from \"./services/http-client.service\";\r\nimport { StiBarcodeService } from \"./services/sti-barcode.service\";\r\nimport { StiColumnDraggableService } from \"./services/sti-column-draggable.service\";\r\nimport { StiForm } from \"./elements/StiForm\";\r\nimport { StiRichTextService } from \"./services/sti-rich-text.service\";\r\nimport { StiChangesService } from \"./services/sti-changes-service\";\r\nimport { StiUndoService } from \"./services/sti-undo-service\";\r\nimport { StiExportService } from \"./services/sti-export.service\";\r\nimport { StiFontService } from \"./services/sti-font.service\";\r\nimport { StiUserService } from \"./services/sti-user-service\";\r\nimport { StiExpressionService } from \"./services/sti-expression.service\";\r\nimport { StiInterfaceEvent } from \"./services/objects\";\r\nimport { StiButtonElement } from \"./elements/StiButtonElement\";\r\nimport { FormEventsService } from \"./services/sti-form-events-service\";\r\nimport { SignatureService } from \"./services/sti-signature.service\";\r\nimport { StiColorDialogService } from \"./services/sti-color-dialog.service\";\r\nimport { StiStaticHelperService } from \"./services/sti-static-helper.service\";\r\nimport { StiTabIndexService } from \"./services/sti-tabindex.service\";\r\nimport { StiDropdownService } from \"./components/sti-dropdown-component/sti-dropdown-service\";\r\nimport { StiFormCheckerService } from \"./services/sti-form-checker.service\";\r\nimport { StiLocalStorageService } from \"./services/sti-local-storage.service\";\r\nimport { StiDraggableModalWindowService } from \"./services/sti-draggable-modal-window.service\";\r\nimport { StiTooltipService } from \"./components/sti-tooltip/sti-tooltip.service\";\r\nimport { StiClipboardService } from \"./services/sti-clipboard-sevice\";\r\n\r\n@Component({\r\n    selector: \"stimulsoft-forms\",\r\n    template: `\r\n    <div\r\n      class=\"sti-root-form\"\r\n      [style.position]=\"'relative'\"\r\n      [style]=\"style\"\r\n      [style.cursor]=\"cursor\"\r\n      [style.width]=\"hasParentWidth() ? 'inherit' : '100%'\"\r\n      [style.height]=\"hasParentHeight() ? 'inherit' : '100%'\"\r\n      #rootForm\r\n      >\r\n      <sti-navbar [style.pointer-events]=\"pointerEvents\" [style.opacity]=\"model.isInitialized ? 1 : 0\"></sti-navbar>\r\n      @if (model.isCloudMode && model.viewerMode && model.basePlanIsTrial) {\r\n        <sti-cloud-navbar\r\n          [style.opacity]=\"model.isInitialized ? 1 : 0\"\r\n        ></sti-cloud-navbar>\r\n      }\r\n      @if (!viewerMode && !model.previewMode && !model.pdfPreviewMode && model.showTrialBar) {\r\n        <sti-trial-bar\r\n          [style.opacity]=\"model.isInitialized ? 1 : 0\"\r\n        ></sti-trial-bar>\r\n      }\r\n      <div\r\n        class=\"flex-container\"\r\n        [style.opacity]=\"model.isInitialized ? 1 : 0\"\r\n        [style.height]=\"containerHeight()\"\r\n        [style.pointer-events]=\"pointerEvents\"\r\n        >\r\n        <!-- elements -->\r\n    \r\n        @if (\r\n          !viewerMode &&\r\n          !model.previewMode &&\r\n          !model.pdfPreviewMode &&\r\n          toolboxService.showToolbox &&\r\n          model.getBooleanSetting('showToolbox')\r\n          ) {\r\n          <sti-toolbox\r\n            class=\"elements\"\r\n            [style.min-width.px]=\"toolbarWidth\"\r\n          ></sti-toolbox>\r\n        }\r\n    \r\n        <!-- workspace -->\r\n        @if (model.pdfPreviewMode) {\r\n          <sti-pdf-preview style=\"width:100%;height:100%\"></sti-pdf-preview>\r\n        }\r\n        @if (!model.pdfPreviewMode) {\r\n          <sti-workspace\r\n            class=\"workspace\"\r\n            [style.overflow-x]=\"model.viewerMode && model.isMobile() && !needToScroll() ? 'hidden' : 'auto'\"\r\n          ></sti-workspace>\r\n        }\r\n        <!-- properties -->\r\n        <app-properties\r\n          class=\"properties\"\r\n          [style.min-width.px]=\"\r\n            viewerMode || model.previewMode || model.pdfPreviewMode || !model.getBooleanSetting('showProperties')\r\n              ? '0'\r\n              : model.propertyGridWidth\r\n          \"\r\n          [style.max-width.px]=\"\r\n            viewerMode || model.previewMode || model.pdfPreviewMode || !model.getBooleanSetting('showProperties')\r\n              ? '0'\r\n              : model.propertyGridWidth\r\n          \"\r\n          [style.visibility]=\"\r\n            viewerMode || model.previewMode || model.pdfPreviewMode || !model.getBooleanSetting('showProperties')\r\n              ? 'hidden'\r\n              : ''\r\n          \"\r\n        ></app-properties>\r\n        <sti-draggable-element-container></sti-draggable-element-container>\r\n        <sti-clone-element-container></sti-clone-element-container>\r\n        <sti-draggable-column-container></sti-draggable-column-container>\r\n        <sti-barcode-styles-preview></sti-barcode-styles-preview>\r\n        <sti-navbar-group-preview-component></sti-navbar-group-preview-component>\r\n        <sti-user-info></sti-user-info>\r\n        <sti-localization-preview></sti-localization-preview>\r\n      </div>\r\n      @if (model.showSignatureEditor) {\r\n        <sti-electronic-signature-editor></sti-electronic-signature-editor>\r\n      }\r\n      @if (!model.pdfPreviewMode && model.getBooleanSetting('showFooter')) {\r\n        <sti-footer\r\n          [style.opacity]=\"model.isInitialized ? 1 : 0\"\r\n          [style.pointer-events]=\"pointerEvents\"\r\n        ></sti-footer>\r\n      }\r\n      @if (model.fileMenuMode && model.isInitialized) {\r\n        <sti-file-menu></sti-file-menu>\r\n      }\r\n      <sti-file-menu-navigation [style.visibility]=\"model.isInitialized ? '' : 'hidden'\"></sti-file-menu-navigation>\r\n      @if (model.showAboutWindow) {\r\n        <sti-about-window-component></sti-about-window-component>\r\n      }\r\n      <sti-progress [display]=\"model.showProgress\"></sti-progress>\r\n      <expression-draggable-container></expression-draggable-container>\r\n      @if (model.showMoreColorDialog) {\r\n        <sti-color-options-dialog></sti-color-options-dialog>\r\n      }\r\n      @if (model.showColorDialog) {\r\n        <sti-color-dialog></sti-color-dialog>\r\n      }\r\n      @if (model.showExpressionEditor) {\r\n        <sti-expression-editor></sti-expression-editor>\r\n      }\r\n      @if (model.showTrialModalWindow) {\r\n        <sti-trial-modal-window></sti-trial-modal-window>\r\n      }\r\n      @if (model.showSaveDialog || model.showSaveDialogFromCloud) {\r\n        <sti-file-save-dialog></sti-file-save-dialog>\r\n      }\r\n      @if (model.showToolboxSetup) {\r\n        <sti-setup-toolbox-component></sti-setup-toolbox-component>\r\n      }\r\n      @if (model.showButtonMessageWindow || model.showErrorWindow) {\r\n        <button-message-window></button-message-window>\r\n      }\r\n      @if (model.showModalWindow || exportService.showModalWindow) {\r\n        <sti-modal-agree-window></sti-modal-agree-window>\r\n      }\r\n      @if (model.showHelpWindow) {\r\n        <expression-help-window></expression-help-window>\r\n      }\r\n      @if (model.showContextMenu && !viewerMode && !model.previewMode) {\r\n        <sti-context-menu-window\r\n        ></sti-context-menu-window>\r\n      }\r\n      @if (model.login != null) {\r\n        <sti-login [loginInfo]=\"model.login\" (onLogin)=\"cloudLogin($event)\"></sti-login>\r\n      }\r\n      @if (dropdownService.showDropdownList) {\r\n        <sti-dropdown-list-component></sti-dropdown-list-component>\r\n      }\r\n      @if (formCheckerService.showFormCheckerWindow) {\r\n        <sti-form-checker></sti-form-checker>\r\n      }\r\n      @if (model.showDraggableModalWindow) {\r\n        <sti-draggable-modal-window></sti-draggable-modal-window>\r\n      }\r\n      @if (tooltipService.showTooltip) {\r\n        <sti-tooltip></sti-tooltip>\r\n      }\r\n      @if (model.showTrialTimerWindow) {\r\n        <sti-trial-timer-window></sti-trial-timer-window>\r\n      }\r\n      @if (model.showTieredMenu) {\r\n        <sti-tiered-menu [menu]=\"helper.getAddTotalMenuItems()\"></sti-tiered-menu>\r\n      }\r\n      @if (model.showFormTreeWarningWindow) {\r\n        <form-tree-warning-window></form-tree-warning-window>\r\n      }\r\n    </div>\r\n    `,\r\n    providers: [\r\n        StiModelService,\r\n        StiToolboxService,\r\n        StiMouseService,\r\n        StiComponentResizerService,\r\n        StiDraggableService,\r\n        StiHelperService,\r\n        StiLocalizationService,\r\n        StiToolbarResizerService,\r\n        StiNameService,\r\n        StiRectangleGeometryLayout,\r\n        StiThemeService,\r\n        StiEditableContentService,\r\n        StiControllerService,\r\n        StiHttpClientService,\r\n        StiBarcodeService,\r\n        StiColumnDraggableService,\r\n        StiRichTextService,\r\n        StiChangesService,\r\n        StiUndoService,\r\n        StiExportService,\r\n        StiFontService,\r\n        StiUserService,\r\n        StiExpressionService,\r\n        FormEventsService,\r\n        SignatureService,\r\n        StiColorDialogService,\r\n        StiStaticHelperService,\r\n        StiTabIndexService,\r\n        StiDropdownService,\r\n        StiFormCheckerService,\r\n        StiLocalStorageService,\r\n        StiDraggableModalWindowService,\r\n        StiTooltipService,\r\n        StiClipboardService\r\n    ],\r\n    styles: [\r\n        `\r\n      sti-file-menu {\r\n        height: inherit;\r\n        width: inherit;\r\n      }\r\n      sti-file-menu-navigation {\r\n        height: inherit;\r\n      }\r\n      .flex-container {\r\n        display: flex;\r\n        justify-content: center;\r\n        background: var(--back-color);\r\n        height: calc(100% - 117px);\r\n        width: 100%;\r\n        font-family: \"Segoe UI\";\r\n      }\r\n\r\n      .workspace {\r\n        background-color: var(--workspace-color);\r\n        display: block;\r\n        justify-content: center;\r\n        font-size: 2.5rem;\r\n        color: black;\r\n        overflow-y: auto;\r\n        scroll-behavior: smooth;\r\n        height: 100%;\r\n        flex-grow: 1;\r\n      }\r\n      * {\r\n        scrollbar-width: thin;\r\n        scrollbar-color: var(--thumb-color), var(--back-color);\r\n      }\r\n\r\n      *::-webkit-scrollbar {\r\n        -webkit-appearance: none;\r\n        background-color: var(--back-color);\r\n        height: 10px;\r\n        width: 10px;\r\n        outline: none;\r\n      }\r\n\r\n      *::-webkit-scrollbar-button {\r\n        -webkit-appearance: none;\r\n        height: 3px;\r\n        width: 3px;\r\n      }\r\n\r\n      *::-webkit-scrollbar-thumb {\r\n        -webkit-appearance: none;\r\n        background-color: var(--thumb-color);\r\n        height: 10px;\r\n        min-width: 25px;\r\n        max-width: 80%;\r\n        border-radius: 4px;\r\n        border: 2px solid var(--back-color);\r\n      }\r\n\r\n      *::-webkit-scrollbar-thumb:hover {\r\n        background-color: var(--trackHover-color);\r\n        height: 10px;\r\n      }\r\n\r\n      *::-webkit-scrollbar-track {\r\n        -webkit-appearance: none;\r\n        background-color: var(--back-color);\r\n        border: 1px solid var(--back-color);\r\n      }\r\n      *::-webkit-scrollbar-corner {\r\n        background-color: var(--back-color);\r\n      }\r\n      .elements {\r\n        background-color: var(--back-color);\r\n        font-size: 2.5rem;\r\n        color: black;\r\n        visibility: visible;\r\n        overflow-y: auto;\r\n        scroll-behavior: smooth;\r\n        border-right: 1px solid var(--formBorder-color);\r\n        padding: 7px;\r\n        transition: min-width 0.2s;\r\n      }\r\n      .properties {\r\n        background-color: var(--back-color);\r\n        font-size: 2.5rem;\r\n        color: black;\r\n        scroll-behavior: smooth;\r\n        display: flex;\r\n        min-width: 360px;\r\n        max-width: 360px;\r\n        border-left: 1px solid var(--formBorder-color);\r\n        font-size: 18px;\r\n      }\r\n\r\n      .hovered {\r\n        background-color: #d1d8e2;\r\n      }\r\n      .sti-root-form {\r\n        height: inherit;\r\n        width: inherit;\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StimulsoftFormsComponent implements OnInit, AfterViewInit, OnChanges {\r\n  @ViewChild(\"addTotalMenu\") addTotalMenu: any;\r\n\r\n  /**\r\n   * Url to server instance\r\n   * Example: http://server.url:51528/Forms/Action\r\n   */\r\n  @Input() requestUrl: string;\r\n  @Input() style: string;\r\n  @Input() viewerMode: boolean = false;\r\n  @Input() readonlyMode: boolean = false;\r\n  @Input() form: StiForm = new StiForm();\r\n  @Input() localization: string;\r\n  @Input() formName: string;\r\n  /**\r\n   * Form component settings\r\n   * showSaveToPdfButton - visibility of Save to PDF button\r\n   * showEditButton - visibility of Edit button\r\n   * showSaveButton - visibility of Save button in navigation panel\r\n   * showFileButton - visibility of File button in navigation panel\r\n   * defaultTab - string of default value for displaying a form tab (\"Home\"/\"Insert\"/\"Preview\"/\"PDFPreview\")\r\n   * showToolbox - visibility of elements panel at left part of designer\r\n   * showProperties - visibility of property grid at right part of designer\r\n   * showSetupToolbox - visibility of button for setup a panel of elements\r\n   * showZoomButtons - visibility of zoom buttons on footer panel.\r\n   * showFooter - visibility of footer panel\r\n   * zoom - set a form zoom (\"PageWidth\",\"OnePage\",\"10%\" to \"400%\")\r\n   * visibility of form Elements:\r\n   * showText - visibility of text element.\r\n   * showTextBox - visibility of text box element\r\n   * showTable - visibility of table element\r\n   * showSingleSelection - visibility of single selection element\r\n   * showSignature - visibility of signature element\r\n   * showPanel - visibility of panel element\r\n   * showNumberBox - visibility of number box element\r\n   * showMultipleSelection - visibility of multiple selection element\r\n   * showListBox - visibility of list box element\r\n   * showLine - visibility of line element\r\n   * showLabel- visibility of label element\r\n   * showImage - visibility of image element\r\n   * showDateTimeBox - visibility of date time box element\r\n   * showCheckBox - visibility of check box element\r\n   * showComboBox - visibility of combo box element\r\n   * showButton - visibility of button element\r\n   * showBarCode - visibility of barcode element\r\n   * showAddress - visibility of address element\r\n   * showFormTree - ...\r\n   */\r\n  @Input() settings: object;\r\n  @Output() interfaceEvent = new EventEmitter<StiInterfaceEvent>();\r\n  /**\r\n   * properties that will transfer to controller action as JSON object\r\n   */\r\n  @Input() properties: any;\r\n  private init = false;\r\n  public distance = 0;\r\n  public startZoomValue;\r\n  public isDoubleTouch: boolean = false;\r\n\r\n  @ViewChild(\"rootForm\") rootFormElementRef: ElementRef;\r\n\r\n  constructor(\r\n    public toolbarResizerService: StiToolbarResizerService,\r\n    public model: StiModelService,\r\n    public theme: StiThemeService,\r\n    public controller: StiControllerService,\r\n    public barcodeService: StiBarcodeService,\r\n    public render: StiRectangleGeometryLayout,\r\n    public editableContentService: StiEditableContentService,\r\n    public changesService: StiChangesService,\r\n    public exportService: StiExportService,\r\n    public font: StiFontService,\r\n    public toolboxService: StiToolboxService,\r\n    public undoService: StiUndoService,\r\n    public userService: StiUserService,\r\n    public expressionService: StiExpressionService,\r\n    public helper: StiHelperService,\r\n    public localizationService: StiLocalizationService,\r\n    public httpService: StiHttpClientService,\r\n    public signatureService: SignatureService,\r\n    public tabIndexService: StiTabIndexService,\r\n    public mouseService: StiMouseService,\r\n    public formEvents: FormEventsService,\r\n    public dropdownService: StiDropdownService,\r\n    public formCheckerService: StiFormCheckerService,\r\n    public stiLocalStorage: StiLocalStorageService,\r\n    public tooltipService: StiTooltipService,\r\n    public clipboardService: StiClipboardService\r\n  ) {\r\n    this.model.interfaceEvent.subscribe((e) => this.interfaceEvent.emit(e));\r\n    this.model.component = this;\r\n    barcodeService.init();\r\n    changesService.start();\r\n    expressionService.start();\r\n  }\r\n\r\n  get pointerEvents(): string {\r\n    return this.model.showModalWindow ||\r\n      this.model.showAboutWindow ||\r\n      this.exportService.showModalWindow ||\r\n      this.model.showTrialModalWindow ||\r\n      this.model.showButtonMessageWindow ||\r\n      this.model.showErrorWindow ||\r\n      this.model.showHelpWindow ||\r\n      this.model.showMoreColorDialog ||\r\n      this.model.showProgress ||\r\n      this.model.showExpressionEditor ||\r\n      this.formCheckerService.showFormCheckerWindow ||\r\n      this.model.showSignatureEditor ||\r\n      this.model.showDraggableModalWindow ||\r\n      this.model.showTrialTimerWindow ||\r\n      this.model.showFormTreeWarningWindow\r\n      ? \"none\"\r\n      : \"\";\r\n  }\r\n\r\n  get cursor() {\r\n    return this.model.cursor;\r\n  }\r\n  get toolbarWidth(): number {\r\n    return this.toolbarResizerService.isMaximizeMode ? 200 : 45;\r\n  }\r\n\r\n  public hasParentHeight(): boolean {\r\n    let root = document.getElementsByClassName(\"sti-root-form\");\r\n    return root[0].parentElement.style.height ? true : false;\r\n  }\r\n  public hasParentWidth(): boolean {\r\n    let root = document.getElementsByClassName(\"sti-root-form\");\r\n    return root[0].parentElement.style.width ? true : false;\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.model.settings = this.settings;\r\n\r\n    this.mouseService.getDocumentTouchStart().subscribe((event) => {\r\n      this.startTouch(event);\r\n    });\r\n    this.mouseService.getDocumentTouchMove().subscribe((event) => {\r\n      this.touchMove(event);\r\n    });\r\n    this.mouseService.getDocumentTouchEnd().subscribe((event) => {\r\n      this.touchEnd(event);\r\n    });\r\n    this.toolboxService.unusedElements = JSON.parse(this.stiLocalStorage.getItem(\"StiToolboxSetup\"));\r\n    let showInsertTab = JSON.parse(this.stiLocalStorage.getItem(\"StiShowInsertTab\"));\r\n    let showToolbox = JSON.parse(this.stiLocalStorage.getItem(\"StiShowToolbox\"));\r\n    let buttonLinks = this.stiLocalStorage.getItem(\"StiButtonLinks\");\r\n    if (buttonLinks) {\r\n      this.model.enteredUrls = buttonLinks.split(\",\");\r\n    }\r\n    this.model.showInsertTab = showInsertTab != null ? showInsertTab : true;\r\n    this.toolboxService.showToolbox = showToolbox != null ? showToolbox : true;\r\n    this.model.viewerMode = this.viewerMode;\r\n    if (this.viewerMode) {\r\n      this.model.ribbon = \"Preview\";\r\n    }\r\n    if (\r\n      this.properties?.cloudPlanIdent?.length > 0 &&\r\n      (this.properties.cloudPlanIdent == \"Trial\" ||\r\n        this.properties.cloudPlanIdent == \"Expiried\" ||\r\n        this.properties.cloudPlanIdent == \"Developer\" ||\r\n        this.properties.cloudPlanIdent.indexOf(\"Base\") > 0 ||\r\n        this.properties.cloudPlanIdent.indexOf(\"Single\") > 0 ||\r\n        this.properties.cloudPlanIdent.indexOf(\"Team\") > 0 ||\r\n        this.properties.cloudPlanIdent.indexOf(\"Enterprise\") > 0)\r\n    ) {\r\n      if (this.properties?.cloudPlanIdent == \"Trial\" || this.properties?.cloudPlanIdent == \"Expiried\") {\r\n        this.model.basePlanIsTrial = true;\r\n        if (!this.viewerMode) {\r\n          this.model.showTrialBar = true;\r\n        } else {\r\n          this.model.showTrialTitle = true;\r\n        }\r\n      }\r\n      this.model.form.additionalFormFields;\r\n      this.model.isCloudMode = true;\r\n      if (this.model.enteredUrls.indexOf(\"cloud.stimulsoft.com\") == -1) {\r\n        this.model.enteredUrls.push(\"cloud.stimulsoft.com\");\r\n      }\r\n    }\r\n    if (this.viewerMode && this.readonlyMode) {\r\n      this.setReadOnlyMode();\r\n    }\r\n    this.toolboxService.elements.forEach((element) => {\r\n      if (this.toolboxService.unusedElements?.find((item) => item == element.id)) {\r\n        element.enabled = false;\r\n      }\r\n    });\r\n    this.theme.currentTheme = \"Light\";\r\n\r\n    const zoomByWheel = (event) => {\r\n      if (event.ctrlKey) {\r\n        event.stopPropagation();\r\n        event.preventDefault();\r\n        if (event.deltaY < 0) {\r\n          if (this.model.zoom > 0.1 && this.model.zoom < 4.9) {\r\n            this.model.zoom += 0.1;\r\n          }\r\n        } else {\r\n          if (this.model.zoom > 0.2 && this.model.zoom < 5) {\r\n            this.model.zoom -= 0.1;\r\n          }\r\n        }\r\n      } else {\r\n        let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n        // workspace.scrollTop = 10;\r\n        if (this.model.draggingElement) {\r\n          if (event.deltaY < 0) {\r\n            workspace.scrollTop -= 300;\r\n          } else {\r\n            workspace.scrollTop += 300;\r\n          }\r\n        }\r\n      }\r\n    };\r\n    let this_ = this;\r\n    window.oncontextmenu = function ($event) {\r\n      if (\r\n        this_.model.getPageFromPoint(event[\"clientX\"], event[\"clientY\"]) &&\r\n        document.activeElement.tagName.toLocaleLowerCase() == \"body\"\r\n      ) {\r\n        event.preventDefault();\r\n        this_.model.contextMenuX = event[\"clientX\"];\r\n        if (window.outerHeight - event[\"clientY\"] <= 255) {\r\n          this_.model.contextMenuY = event[\"clientY\"] - 150;\r\n        } else {\r\n          this_.model.contextMenuY = event[\"clientY\"];\r\n        }\r\n        this_.model.showContextMenu = true;\r\n      }\r\n    };\r\n    window.onbeforeunload = function (event) {\r\n      this_.model.currentFormState = this_.model.form.saveToReportJsonObject().serialize();\r\n      if (\r\n        this_.model?.currentFormState !== this_.model?.lastSavedFormState &&\r\n        this_.undoService?.undos?.length > 1 &&\r\n        !this_.model.viewerMode\r\n      ) {\r\n        setTimeout(() => {\r\n          this_.model.showProgress = false;\r\n        }, 3000);\r\n        event.returnValue = \"\";\r\n        return event.returnValue;\r\n      }\r\n    };\r\n    const deletingComponents = (event) => {\r\n      let selection = window.getSelection().toString();\r\n      if (event.key === \"Escape\" && this.model.lastFormState != null) {\r\n        let form = new StiForm();\r\n        form.loadFormJsonString(this.model.lastFormState);\r\n        this.model.form = form;\r\n        this.model.draggingElement = null;\r\n        this.model.lastFormState = null;\r\n      } else if (event.key === \"Delete\" && this.model.canDelete()) {\r\n        if (this.model.selectedComponent) {\r\n          this.helper.deleteSelectedComponent();\r\n        } else if (this.model.selectedPage && this.model?.form?.pages?.length > 1) {\r\n          this.model.showModalWindow = true;\r\n        }\r\n      } else if (event.key === \"PageDown\" || event.key === \"PageUp\") {\r\n        event.preventDefault();\r\n      } else if (event.ctrlKey && event.code === \"KeyC\") {\r\n        if (this.model.showExpressionEditor) {\r\n          return;\r\n        }\r\n        if (this.model.selectedComponent && document.activeElement.tagName.toLocaleLowerCase() == \"body\") {\r\n          this.clipboardService.copyElement();\r\n        }\r\n      } else if (event.ctrlKey && event.code === \"KeyV\") {\r\n        if (this.model.showExpressionEditor) {\r\n          return;\r\n        }\r\n        if (this.clipboardService.hasCopy && document.activeElement.tagName.toLocaleLowerCase() == \"body\") {\r\n          let mouseEvent = new MouseEvent(\"mousemove\");\r\n          this.clipboardService.pasteElement(mouseEvent);\r\n        }\r\n      } else if (event.ctrlKey && event.code === \"KeyZ\") {\r\n        if (this.model.showExpressionEditor) {\r\n          return;\r\n        }\r\n        event.preventDefault();\r\n        if (this.undoService.undos.length >= 2) {\r\n          this.undoService.undo();\r\n        }\r\n      } else if (event.ctrlKey && event.code === \"KeyX\") {\r\n        if (this.model.showExpressionEditor) {\r\n          return;\r\n        }\r\n        if (this.model.selectedComponent && document.activeElement.tagName.toLocaleLowerCase() == \"body\") {\r\n          this.clipboardService.cutElement();\r\n        }\r\n      }\r\n    };\r\n    const disableDeleting = (event) => {\r\n      let isWorkspace = false;\r\n      let isBarcodePreview = false;\r\n      let elements = document.elementsFromPoint(event.clientX, event.clientY);\r\n      elements.forEach((element) => {\r\n        if (element?.classList.contains(\"sti-page\") || element?.classList.contains(\"sti-component\")) {\r\n          isWorkspace = true;\r\n        }\r\n        if (element?.classList.contains(\"container\")) {\r\n          isBarcodePreview = true;\r\n        }\r\n      });\r\n      if (!isBarcodePreview) {\r\n        this.barcodeService.showBarcodePreview = false;\r\n      }\r\n    };\r\n    document.querySelector(\".sti-root-form\")?.addEventListener(\"wheel\", zoomByWheel);\r\n    document.addEventListener(\"keydown\", deletingComponents);\r\n    document.addEventListener(\"mousedown\", disableDeleting);\r\n  }\r\n  needToScroll() {\r\n    let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n    let pageElem = document.querySelectorAll(\".sti-page\")[0];\r\n    let rect = this.model.getPositionRelativeToForm(pageElem);\r\n    return workspace?.clientWidth < rect?.width;\r\n  }\r\n  ngOnChanges(changes: import(\"@angular/core\").SimpleChanges): void {\r\n    if (Object.keys(changes).length == 1) {\r\n      if (changes[\"form\"]) {\r\n        this.model.form = changes[\"form\"].currentValue as StiForm;\r\n        this.model.fileName = this.formName;\r\n        if (this.viewerMode) {\r\n          this.model.form.updateToViewerMode();\r\n        }\r\n      } else if (changes[\"localization\"]) {\r\n        this.localizationService.loadLocalization(this.localization);\r\n      }\r\n    } else {\r\n      this.initialize();\r\n    }\r\n  }\r\n  startTouch(event) {\r\n    if (this.isMobileViewer) {\r\n      if (event.touches.length === 2) {\r\n        this.startZoomValue = this.model.zoom;\r\n        this.distance = Math.hypot(\r\n          event.touches[0].pageX - event.touches[1].pageX,\r\n          event.touches[0].pageY - event.touches[1].pageY\r\n        );\r\n        this.isDoubleTouch = true;\r\n      }\r\n    }\r\n  }\r\n  public get isMobileViewer() {\r\n    return this.model.viewerMode && this.model.isMobile();\r\n  }\r\n  touchMove(event) {\r\n    if (this.isMobileViewer && this.isDoubleTouch) {\r\n      event.preventDefault();\r\n      let dist2 = Math.hypot(\r\n        event.touches[0].pageX - event.touches[1].pageX,\r\n        event.touches[0].pageY - event.touches[1].pageY\r\n      );\r\n      let delta = Math.abs(dist2 - this.distance);\r\n      if (this.distance < dist2) {\r\n        this.model.zoom = this.startZoomValue + Number((delta / 200).toFixed(2));\r\n      } else if (this.distance > dist2) {\r\n        this.model.zoom = this.startZoomValue - Number((delta / 200).toFixed(2));\r\n      }\r\n      if (this.model.zoom < this.minimalZoomValue()) {\r\n        this.model.zoom = this.minimalZoomValue();\r\n        let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n        let pageElem = document.querySelectorAll(\".page-container\")[0];\r\n        setTimeout(() => {\r\n          let rect = this.model.getPositionRelativeToForm(pageElem);\r\n          if (workspace.scrollLeft != workspace.scrollWidth - rect.width - 6) {\r\n            workspace.scrollLeft = workspace.scrollWidth - rect.width - 6;\r\n          }\r\n        });\r\n      }\r\n    }\r\n  }\r\n  touchEnd(event) {\r\n    if (this.isMobileViewer && this.isDoubleTouch) {\r\n      if (event.targetTouches.length < 2) {\r\n        this.isDoubleTouch = false;\r\n      }\r\n    }\r\n  }\r\n  minimalZoomValue() {\r\n    let workspace = document.getElementsByTagName(\"sti-workspace\")[0];\r\n    let width = workspace[\"offsetWidth\"];\r\n    let pagetWithMaxWidth = this.model.form.pages.reduce((acc, curr) => (acc.width > curr.width ? acc : curr));\r\n    return width / (pagetWithMaxWidth.width + 30);\r\n  }\r\n  setReadOnlyMode() {\r\n    this.model?.form?.pages.forEach((page) => {\r\n      page.allElements.forEach((element) => {\r\n        if (element[\"readOnly\"]) {\r\n          element[\"readOnly\"] = true;\r\n        } else {\r\n          if (!(element instanceof StiButtonElement)) {\r\n            element.readOnly = false;\r\n          }\r\n        }\r\n      });\r\n    });\r\n  }\r\n  ngAfterViewInit(): void {\r\n    this.init = true;\r\n    setTimeout(() => {\r\n      this.initialize();\r\n      this.rootFormElementRef.nativeElement.component = this;\r\n      this.model.rootFormElement = this.rootFormElementRef.nativeElement;\r\n      this.model.addTotalMenu = this.addTotalMenu;\r\n    }, 0);\r\n  }\r\n  containerHeight() {\r\n    let showfooter = this.model.getBooleanSetting(\"showFooter\");\r\n    let isModeWithPreview = this.model.previewMode || this.model.pdfPreviewMode || this.viewerMode;\r\n    if (isModeWithPreview) {\r\n      if (this.viewerMode) {\r\n        return \"calc(100% - 32px)\";\r\n      } else {\r\n        return this.model.pdfPreviewMode || !showfooter ? \"calc(100% - 38px)\" : \"calc(100% - 70px)\";\r\n      }\r\n    } else {\r\n      if (showfooter) {\r\n        return this.model.showTrialBar ? \"calc(100% - 155px)\" : \"calc(100% - 125px)\";\r\n      } else {\r\n        return this.model.showTrialBar ? \"calc(100% - 123px)\" : \"calc(100% - 93px)\";\r\n      }\r\n    }\r\n  }\r\n\r\n  initialize() {\r\n    if (this.init) {\r\n      this.model.requestUrl = this.requestUrl;\r\n      this.model.properties = this.properties;\r\n      this.model.fileName = this.formName;\r\n      if (this.form) {\r\n        this.model.form = this.form;\r\n      }\r\n      if (this.localization) {\r\n        this.localizationService.loadLocalization(this.localization);\r\n      }\r\n      this.controller.initialize();\r\n    }\r\n  }\r\n\r\n  cloudLogin(event: any) {\r\n    delete this.model.properties.cloudLoginInfo;\r\n    delete this.model.login;\r\n    this.model.properties[\"cloudLogin\"] = event.login;\r\n    this.model.properties[\"cloudPassword\"] = event.password;\r\n    this.controller.initialize();\r\n  }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiModelService } from \"../../services/model.service\";\r\nimport { StiExportService } from \"../../services/sti-export.service\";\r\nimport { StiLocalizationService } from \"../../services/sti-localization.service\";\r\n\r\n@Component({\r\n    selector: \"sti-preview-ribbon-component\",\r\n    template: `<div class=\"preview\">\r\n    <button style=\"margin-left: 20px\" (click)=\"exportService.showModalWindow = !exportService.showModalWindow\">\r\n      {{ loc.getP(\"ExportToPdf\") }}\r\n    </button>\r\n  </div>`,\r\n    styles: [\r\n        `\r\n      .preview {\r\n        height: 55px;\r\n        color: var(--text-color);\r\n        width: 100%;\r\n        border-bottom: 1px solid var(--formBorder-color);\r\n        background-color: var(--back-color);\r\n        font-family: \"Segoe UI\";\r\n      }\r\n\r\n      .preview button {\r\n        margin-top: 15px;\r\n        padding: 3px 12px;\r\n        text-decoration: none;\r\n        margin-right: 5px;\r\n        text-align: center;\r\n        justify-content: center;\r\n        font-size: 12px;\r\n        color: var(--text-color);\r\n        font-weight: 600;\r\n        cursor: default;\r\n        background-color: var(--input-color);\r\n        border-top: 2px solid var(--toolbarResizerBorder-color);\r\n        border-left: 1px solid var(--toolbarResizerBorder-color);\r\n        border-right: 1px solid var(--toolbarResizerBorder-color);\r\n        border-bottom: 1px solid var(--toolbarResizerBorder-color);\r\n        vertical-align: -webkit-baseline-middle;\r\n        border-radius: 3px;\r\n      }\r\n\r\n      .preview button:hover {\r\n        background-color: var(--hover-color);\r\n      }\r\n    `,\r\n    ],\r\n    standalone: false\r\n})\r\nexport class StiPreviewRibbonComponent implements OnInit {\r\n  constructor(\r\n    private model: StiModelService,\r\n    public loc: StiLocalizationService,\r\n    public exportService: StiExportService\r\n  ) {}\r\n\r\n  ngOnInit(): void {}\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { StiToolbarResizerService } from \"../services/sti-toolbar-resizer.service\";\r\n\r\n@Component({\r\n    selector: \"sti-toolbar-resizer\",\r\n    template: `\r\n    <div class=\"toolbarResizer\">\r\n      @if (this.isMaximize) {\r\n        <div\r\n          class=\"resizer minimize\"\r\n          (mousedown)=\"setMinimizeMode()\"\r\n          stiTooltip=\"Minimize\"\r\n          tooltipPosition=\"bottom\"\r\n          showDelay=\"500\"\r\n          >\r\n          <div class=\"point\"></div>\r\n        </div>\r\n      }\r\n      @if (this.isMinimize) {\r\n        <div\r\n          class=\"resizer maximize\"\r\n          (mousedown)=\"setMaximizeMode()\"\r\n          stiTooltip=\"Maximize\"\r\n          tooltipPosition=\"bottom\"\r\n          showDelay=\"500\"\r\n          >\r\n          <div class=\"point\"></div>\r\n        </div>\r\n      }\r\n    </div>\r\n    <style>\r\n      .toolbarResizer {\r\n    }\r\n    .resizer {\r\n    width: 8px;\r\n    height: 30px;\r\n    background-color: var(--toolbarResizer-color);\r\n    border: 1px solid var(--toolbarResizerBorder-color);\r\n    position: fixed;\r\n    top: calc((100% - 85px - 24px) / 2 + 85px - 15px);\r\n    }\r\n    .minimize {\r\n    border-bottom-left-radius: 3px;\r\n    border-top-left-radius: 3px;\r\n    left: 192px;\r\n    }\r\n    .minimize:hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    .point {\r\n    position: absolute;\r\n    top: 50%;\r\n    left: 50%;\r\n    width: 1px;\r\n    height: 2px;\r\n    background-color: rgb(119, 119, 119);\r\n    }\r\n    .maximize {\r\n    border-top-right-radius: 3px;\r\n    border-bottom-right-radius: 3px;\r\n    left: 45px;\r\n    margin-right: 10px;\r\n    }\r\n    .maximize:hover {\r\n    background-color: var(--hover-color);\r\n    }\r\n    .maxMode {\r\n    left: 192px;\r\n    }\r\n    .minMode {\r\n    left: 45px;\r\n    }\r\n    </style>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class StiToolbarResizerComponent implements OnInit {\r\n  constructor(public toolbarResizerService: StiToolbarResizerService) {}\r\n\r\n  get isMaximize(): boolean {\r\n    return this.toolbarResizerService.isMaximizeMode;\r\n  }\r\n  get isMinimize(): boolean {\r\n    return this.toolbarResizerService.isMinimizeMode;\r\n  }\r\n  setMinimizeMode() {\r\n    this.toolbarResizerService.isMinimizeMode = true;\r\n    this.toolbarResizerService.isMaximizeMode = false;\r\n    if (document.querySelector(\".maximize\")) {\r\n      document.querySelector(\".maximize\")?.classList?.remove(\"maxMode\");\r\n    }\r\n    document.querySelector(\".minimize\")?.classList?.add(\"minMode\");\r\n  }\r\n  setMaximizeMode() {\r\n    this.toolbarResizerService.isMinimizeMode = false;\r\n    this.toolbarResizerService.isMaximizeMode = true;\r\n    if (document.querySelector(\".minimize\")) {\r\n      document.querySelector(\".minimize\")?.classList?.remove(\"minMode\");\r\n    }\r\n    document.querySelector(\".maximize\")?.classList?.add(\"maxMode\");\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { provideHttpClient, withInterceptorsFromDi } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { StiFooterComponent } from \"./components/footer.component/footer.component\";\r\nimport { StiEditableContentComponent } from \"./components/sti-editable-content.component\";\r\nimport { StiModalAgreeWindowComponent } from \"./components/modal-agree-window/modal-agree-window.component\";\r\nimport { NavbarComponent } from \"./components/navbar.component/navbar.component\";\r\nimport { StiFileRibbonComponent } from \"./components/navbar.component/navbar.file-ribbon.component\";\r\nimport { StiHomeRibbonComponent } from \"./components/navbar.component/navbar.home-ribbon.component\";\r\nimport { StiPreviewRibbonComponent } from \"./components/navbar.component/navbar.preview-ribbon.component\";\r\nimport { PageComponent } from \"./components/page.component/page.component\";\r\nimport { PropertiesComponent } from \"./components/properties.component/properties.component\";\r\nimport { StiBoolEditorComponent } from \"./components/propertyGrid/editors/sti-bool-editor/sti-bool-editor.component\";\r\nimport { StiColorEditorComponent } from \"./components/propertyGrid/editors/sti-color-editor/sti-color-editor.component\";\r\nimport { StiEnumEditorComponent } from \"./components/propertyGrid/editors/sti-enum-editor/sti-enum-editor.component\";\r\nimport { StiFontEditorComponent } from \"./components/propertyGrid/editors/sti-font-editor/sti-font-editor.component\";\r\nimport { StiHorizontalAlignmentEditorComponent } from \"./components/propertyGrid/editors/sti-horizontal-alignment-editor/sti-horizontal-alignment-editor\";\r\nimport { StiImageEditorComponent } from \"./components/propertyGrid/editors/sti-image-editor/sti-image-editor.component\";\r\nimport { StiLabelAlignmentEditorComponent } from \"./components/propertyGrid/editors/sti-label-alignment-editor/sti-label-alignment-editor\";\r\nimport { StiMultilineStringEditorComponent } from \"./components/propertyGrid/editors/sti-multiline-string-editor/sti-multiline-string-editor.component\";\r\nimport { StiNameEditorComponent } from \"./components/propertyGrid/editors/sti-name-editor/sti-name-editor\";\r\nimport { StiNumberEditorComponent } from \"./components/propertyGrid/editors/sti-number-editor/sti-number-editor.component\";\r\nimport { StiPaddingEditorComponent } from \"./components/propertyGrid/editors/sti-padding-editor/sti-padding-editor.component\";\r\nimport { StiPaperKindEditorComponent } from \"./components/propertyGrid/editors/sti-paper-kind-editor/sti-paper-kind-editor.component\";\r\nimport { StiTextEditorComponent } from \"./components/propertyGrid/editors/sti-text-editor/sti-text-editor.component\";\r\nimport { StiVerticalAlignmentEditorComponent } from \"./components/propertyGrid/editors/sti-vertical-alignment-editor/sti-vertical-alignment-editor\";\r\nimport { StiBarcodeComponent } from \"./components/sti-barcode/sti-barcode.component\";\r\nimport { StiButtonComponent } from \"./components/sti-button/sti-button.component\";\r\nimport { StiCheckBoxComponent } from \"./components/sti-check-box/sti-check-box.component\";\r\nimport { StiComboBoxComponent } from \"./components/sti-combo-box/sti-combo-box.component\";\r\nimport { StiComponent } from \"./components/sti-component\";\r\nimport { StiComponentResizerComponent } from \"./components/sti-component-resizer.component\";\r\nimport { StiComponentHolderComponent, StiPanelComponent } from \"./components/sti-components-holder.component\";\r\nimport { StiDateTimeBoxComponent } from \"./components/sti-date-time-box/sti-date-time-box.component\";\r\nimport { StiDragPreviewAdornerComponent } from \"./components/sti-drag-preview-adorner/sti-drag-preview-adorner.component\";\r\nimport { StiImageComponent } from \"./components/sti-image/sti-image.component\";\r\nimport { StiLabelComponent } from \"./components/sti-label/sti-label.component\";\r\nimport { StiLineComponent } from \"./components/sti-line/sti-line.component\";\r\nimport { StiListBoxComponent } from \"./components/sti-list-box/sti-list-box.component\";\r\nimport { StiMultipleSelectionComponent } from \"./components/sti-multiple-selection/sti-multiple-selection.component\";\r\nimport { StiNumberBoxComponent } from \"./components/sti-number-box/sti-number-box.component\";\r\nimport { StiPageGridOverlayComponent } from \"./components/sti-page-grid-overlay.component\";\r\nimport { StiPageNavigationComponent } from \"./components/sti-pages-navigation.component\";\r\nimport { StiSignatureComponent } from \"./components/sti-signature/sti-signature.component\";\r\nimport { StiSingleSelectionComponent } from \"./components/sti-single-selection/sti-single-selection.component\";\r\nimport { StiTableCheckboxComponent } from \"./components/sti-table/sti-table-checkbox/sti-table-checkbox.component\";\r\nimport { StiTableComboboxComponent } from \"./components/sti-table/sti-table-combobox/sti-table-combobox.component\";\r\nimport { StiTableRadioButtonComponent } from \"./components/sti-table/sti-table-radiobutton/sti-table-radiobutton.component\";\r\nimport { StiTableInputTextComponent } from \"./components/sti-table/sti-table-text-input/sti-table-text-input.component\";\r\nimport { StiTableComponent } from \"./components/sti-table/sti-table.component\";\r\nimport { StiTextBoxComponent } from \"./components/sti-text-box/sti-text-box.component\";\r\nimport { StiTextComponent } from \"./components/sti-text/sti-text.component\";\r\nimport { StiToolbarResizerComponent } from \"./components/sti-toolbar-resizer.component\";\r\nimport { StiSvgCheckBoxComponent } from \"./components/svg.components/svg.checkbox.component\";\r\nimport { StiSvgRadiobuttonComponent } from \"./components/svg.components/svg.radiobutton.component\";\r\nimport { WorkspaceComponent } from \"./components/workspace.component/sti-workspace.component\";\r\nimport { StimulsoftFormsComponent } from \"./stimulsoft-forms.component\";\r\nimport { StiCloneElementContainerComponent } from \"./toolbox/sti-clone-element-container.component\";\r\nimport { StiDraggableElementContainerComponent } from \"./toolbox/sti-draggable-element-container.component\";\r\nimport { StiToolboxElementComponent } from \"./toolbox/sti-toolbox-element.component\";\r\nimport { StiToolboxComponent } from \"./toolbox/sti-toolbox.component\";\r\nimport { StiBooleanWithArrowEditorComponent } from \"./components/propertyGrid/editors/boolean-with-arrow-editor/boolean-with-arrow-editor.component\";\r\nimport { StiTableItemEditorComponent } from \"./components/propertyGrid/editors/table/table-item-editor/table-item-editor.component\";\r\nimport { StiTableBorderEditorComponent } from \"./components/propertyGrid/editors/table/table-border-editor/table-border-editor.component\";\r\nimport { StiBorderSidesEditorComponent } from \"./components/propertyGrid/editors/table/border-sides-editor/border-sides-editor.component\";\r\nimport { StiTableColumnsEditorComponent } from \"./components/propertyGrid/editors/table/table-columns-editor/table-columns-editor.component\";\r\nimport { StiTableColumnEditorComponent } from \"./components/propertyGrid/editors/table/table-column-editor/table-column-editor.component\";\r\nimport { StiTableTotalsFieldComponent } from \"./components/sti-table/sti-table-totals-field/sti-table-totals-field.component\";\r\nimport { StiTableColumnResizerComponent } from \"./components/sti-table-column-resizer.component\";\r\nimport { StiProgressComponent } from \"./components/sti-progress.component\";\r\nimport { StiDraggableColumnContainerComponent } from \"./toolbox/sti-draggable-column-container.component\";\r\nimport { StiTableColumnComponent } from \"./components/sti-table/sti-table-column/sti-table-column.component\";\r\nimport { StiExceedMarginsEditorComponent } from \"./components/propertyGrid/editors/sti-exceed-margins/sti-exceed-margins.component\";\r\nimport { StiAddressComponent } from \"./components/sti-address/sti-address.component\";\r\nimport { StiInputTextComponent } from \"./components/sti-input-text.component\";\r\nimport { StiAboutWindowComponent } from \"./components/sti-about-window/sti-about-window.component\";\r\nimport { StiTableLabelComponent } from \"./components/sti-table/sti-table-label/sti-table-label.component\";\r\nimport { StiBarcodeStyleEditorComponent } from \"./components/propertyGrid/editors/sti-barcode-style-editor/sti-barcode-style-editor.component\";\r\nimport { StiSvgImageComponent } from \"./components/propertyGrid/editors/sti-barcode-style-editor/sti-svg-image.component\";\r\nimport { StiBarcodeStylesPreviewComponent } from \"./components/propertyGrid/editors/sti-barcode-style-editor/sti-barcodes-styles-preview.component\";\r\nimport { StiSimpleEnumEditorComponent } from \"./components/propertyGrid/editors/sti-simple-enum-editor/sti-simple-enum-editor.component\";\r\nimport { StiBarcodeShapeEditorComponent } from \"./components/propertyGrid/editors/sti-barcode-shape-editor/sti-barcode-shape-editor.component\";\r\nimport { StiCornerRadiusComponent } from \"./components/sti-corner-radius.component\";\r\nimport { StiPdfPreviewComponent } from \"./components/workspace.component/sti-pdf-preview.component\";\r\nimport { StiInsertRibbonComponent } from \"./components/navbar.component/navbar.insert-ribbon.component\";\r\nimport { NavbarGroupPreviewComponent } from \"./components/navbar.component/navbar.group-preview.component\";\r\nimport { StiSetupToolboxComponent } from \"./toolbox/sti-setup-toolbox.component\";\r\nimport { TableNavigationComponent } from \"./components/propertyGrid/editors/table/table-navigation/table-navigation.component\";\r\nimport { StiLocalizationPreviewComponent } from \"./components/sti-localization-preview.component\";\r\nimport { StiUserInfoComponent } from \"./components/sti-user-info.component\";\r\nimport { StiTrialBarComponent } from \"./components/sti-trial-alerts/sti-trial-bar.component\";\r\nimport { StiTrialModalWindowComponent } from \"./components/sti-trial-alerts/sti-trial-modal-window.component\";\r\nimport { StiFileMenuComponent } from \"./components/sti-file-menu/sti-file-menu.component\";\r\nimport { StiFileMenuNavigationComponent } from \"./components/sti-file-menu/sti-file-menu-navigation.component\";\r\nimport { StiFileMenuContentComponent } from \"./components/sti-file-menu/sti-file-menu-content.component\";\r\nimport { StiFileNewContentComponent } from \"./components/sti-file-menu/sti-file-new-content.component\";\r\nimport { StiFileOpenContentComponent } from \"./components/sti-file-menu/sti-file-open-content.component\";\r\nimport { StiFileSaveContentComponent } from \"./components/sti-file-menu/sti-file-save-content.component\";\r\nimport { StiFileSaveDialogComponent } from \"./components/sti-file-menu/sti-file-save-dialog.component\";\r\nimport { StiNumberComponent } from \"./components/sti-number.component\";\r\nimport { StiButtonMessageWindowComponent } from \"./components/sti-button/sti-button-message-window.component\";\r\nimport { StiCloudNavbarComponent } from \"./components/navbar.component/sti-cloud-navbar.component\";\r\nimport { ContextMenuWindowComponent } from \"./components/context-menu.component/context-menu-window.component\";\r\nimport { StiExpressionHelpWindowComponent } from \"./components/sti-expression-editor/sti-expression-help-window.component\";\r\nimport { StiComponentHeightEditorComponent } from \"./components/propertyGrid/editors/sti-component-height-editor/sti-component-height-editor.component\";\r\nimport { StiLoginComponent } from \"./components/sti-login.component\";\r\nimport { StiExpressionEditorComponent } from \"./components/sti-expression-editor/sti-expression-editor.component\";\r\nimport { StiColorDialogComponent } from \"./components/sti-color-dialog/sti-color-dialog.component\";\r\nimport { StiColorOptionsDialogComponent } from \"./components/sti-color-dialog/sti-color-options-dialog.component\";\r\nimport { StiPDFSignatureComponent } from \"./components/sti-pdf-signature/sti-pdf-signature.component\";\r\nimport { StiColumnsPreviewComponent } from \"./components/sti-expression-editor/sti-columns-preview.component\";\r\nimport { StiCellsPreviewComponent } from \"./components/sti-expression-editor/sti-cells-preview.component\";\r\nimport { StiExpressionDraggableContainerComponent } from \"./components/sti-expression-editor/sti-expression-draggable-container.component\";\r\nimport { StiDropdownComponent } from \"./components/sti-dropdown-component/sti-dropdown-component\";\r\nimport { StiDropdownListComponent } from \"./components/sti-dropdown-component/sti-dropdown-list.component\";\r\nimport { StiFormCheckerComponent } from \"./components/sti-form-checker/sti-form-checker.component\";\r\nimport { StiFormCheckerItemComponent } from \"./components/sti-form-checker/sti-form-checker-item.component\";\r\nimport { AutoCompleteEditorComponent } from \"./components/propertyGrid/editors/auto-complete-editor/auto-complete-editor.component\";\r\nimport { StiElectronicSignatureEditorComponent } from \"./components/sti-signature/sti-electronic-signature-editor.component\";\r\nimport { StiDraggableModalWindowComponent } from \"./components/sti-draggable-modal-window/sti-draggable-modal-window.component\";\r\nimport { StiEmbedTextEditorComponent } from \"./components/sti-embed-editors/sti-embed-text-editor.components\";\r\nimport { StiEmbedImageEditorComponent } from \"./components/sti-embed-editors/sti-embed-image-editor.component\";\r\nimport { StiDividerComponent } from \"./components/sti-divider/sti-divider.component\";\r\nimport { StiUniversalCheckboxComponent } from \"./components/sti-universal-checkbox/sti-universal-checkbox.component\";\r\nimport { StiInputTextDirective } from \"./directives/sti-input-text.directive\";\r\nimport { StiInputTextAreaDirective } from \"./directives/sti-input-text-area.directive\";\r\nimport { StiDropdownEditorComponent } from \"./components/propertyGrid/editors/sti-dropdown-editor/sti-dropdown-editor.component\";\r\nimport { StiTooltipComponent } from \"./components/sti-tooltip/sti-tooltip.component\";\r\nimport { StiTooltipDirective } from \"./components/sti-tooltip/sti-tooltip.directive\";\r\nimport { StiSelectButtonEditorComponent } from \"./components/propertyGrid/editors/sti-select-button-editor.component\";\r\nimport { StiSelectButtonComponent } from \"./components/sti-select-button/sti-select-button.component\";\r\nimport { StiAutoCompleteComponent } from \"./components/sti-autocomplete/sti-autocomplete.component\";\r\nimport { StiTrialTimerWindowComponent } from \"./components/sti-trial-alerts/sti-trial-timer-window.component\";\r\nimport { StiTieredMenuComponent } from \"./components/sti-tiered-menu/sti-tiered-menu.component\";\r\nimport { StiPropertyGridNavigationComponent } from \"./components/properties.component/sti-property-grid-navigation/sti-property-grid-navigation.component\";\r\nimport { StiFormsTreeComponent } from \"./components/properties.component/sti-forms-tree/sti-forms-tree.component\";\r\nimport { StiPropertyGridComponent } from \"./components/properties.component/sti-property-grid/sti-property-grid.component\";\r\nimport { StiFormElementsDropdownComponent } from \"./components/properties.component/sti-forms-elements-dropdown/sti-forms-elements-dropdown.component\";\r\nimport { StiFormsTreeItemComponent } from \"./components/properties.component/sti-forms-tree/sti-forms-tree-item.component\";\r\nimport { StiFormTreeWarningWindowComponent } from \"./components/properties.component/sti-forms-tree/sti-form-tree-warning-window.component\";\r\n\r\n@NgModule({\r\n  declarations: [\r\n    StimulsoftFormsComponent,\r\n    NavbarComponent,\r\n    WorkspaceComponent,\r\n    PropertiesComponent,\r\n    PageComponent,\r\n    StiTextBoxComponent,\r\n    StiNumberBoxComponent,\r\n    StiComboBoxComponent,\r\n    StiListBoxComponent,\r\n    StiSingleSelectionComponent,\r\n    StiMultipleSelectionComponent,\r\n    StiCheckBoxComponent,\r\n    StiLineComponent,\r\n    StiDraggableElementContainerComponent,\r\n    StiSignatureComponent,\r\n    StiPanelComponent,\r\n    StiDateTimeBoxComponent,\r\n    StiTableComponent,\r\n    StiImageComponent,\r\n    StiButtonComponent,\r\n    StiBarcodeComponent,\r\n    StiBoolEditorComponent,\r\n    StiColorEditorComponent,\r\n    StiEnumEditorComponent,\r\n    StiFontEditorComponent,\r\n    StiImageEditorComponent,\r\n    StiPaddingEditorComponent,\r\n    StiMultilineStringEditorComponent,\r\n    StiNumberEditorComponent,\r\n    StiPaperKindEditorComponent,\r\n    StiVerticalAlignmentEditorComponent,\r\n    StiTextComponent,\r\n    StiNumberComponent,\r\n    StiDragPreviewAdornerComponent,\r\n    StiToolboxComponent,\r\n    StiToolboxElementComponent,\r\n    StiComponent,\r\n    StiComponentResizerComponent,\r\n    StiPageGridOverlayComponent,\r\n    StiTextEditorComponent,\r\n    StiNameEditorComponent,\r\n    StiLabelComponent,\r\n    StiFooterComponent,\r\n    StiToolbarResizerComponent,\r\n    StiPageNavigationComponent,\r\n    StiComponentHolderComponent,\r\n    StiCloneElementContainerComponent,\r\n    StiEditableContentComponent,\r\n    StiPreviewRibbonComponent,\r\n    StiHomeRibbonComponent,\r\n    StiFileRibbonComponent,\r\n    StiSvgCheckBoxComponent,\r\n    StiSvgRadiobuttonComponent,\r\n    StiHorizontalAlignmentEditorComponent,\r\n    StiLabelAlignmentEditorComponent,\r\n    StiVerticalAlignmentEditorComponent,\r\n    StiModalAgreeWindowComponent,\r\n    StiTableInputTextComponent,\r\n    StiTableRadioButtonComponent,\r\n    StiTableComboboxComponent,\r\n    StiTableCheckboxComponent,\r\n    StiTableLabelComponent,\r\n    StiBooleanWithArrowEditorComponent,\r\n    StiTableItemEditorComponent,\r\n    StiTableBorderEditorComponent,\r\n    StiBorderSidesEditorComponent,\r\n    StiTableColumnsEditorComponent,\r\n    StiTableColumnEditorComponent,\r\n    StiTableTotalsFieldComponent,\r\n    StiTableColumnResizerComponent,\r\n    StiProgressComponent,\r\n    StiDraggableColumnContainerComponent,\r\n    StiTableColumnComponent,\r\n    StiExceedMarginsEditorComponent,\r\n    StiSelectButtonEditorComponent,\r\n    StiAddressComponent,\r\n    StiInputTextComponent,\r\n    StiAboutWindowComponent,\r\n    StiBarcodeStyleEditorComponent,\r\n    StiSvgImageComponent,\r\n    StiBarcodeStylesPreviewComponent,\r\n    StiSimpleEnumEditorComponent,\r\n    StiBarcodeShapeEditorComponent,\r\n    StiCornerRadiusComponent,\r\n    StiPdfPreviewComponent,\r\n    StiInsertRibbonComponent,\r\n    NavbarGroupPreviewComponent,\r\n    StiSetupToolboxComponent,\r\n    TableNavigationComponent,\r\n    StiLocalizationPreviewComponent,\r\n    StiUserInfoComponent,\r\n    StiTrialBarComponent,\r\n    StiTrialModalWindowComponent,\r\n    StiFileMenuComponent,\r\n    StiFileMenuNavigationComponent,\r\n    StiFileMenuContentComponent,\r\n    StiFileNewContentComponent,\r\n    StiFileOpenContentComponent,\r\n    StiFileSaveContentComponent,\r\n    StiFileSaveDialogComponent,\r\n    StiButtonMessageWindowComponent,\r\n    StiCloudNavbarComponent,\r\n    ContextMenuWindowComponent,\r\n    StiExpressionHelpWindowComponent,\r\n    StiComponentHeightEditorComponent,\r\n    StiLoginComponent,\r\n    StiExpressionEditorComponent,\r\n    StiColorDialogComponent,\r\n    StiColorOptionsDialogComponent,\r\n    StiPDFSignatureComponent,\r\n    StiColumnsPreviewComponent,\r\n    StiCellsPreviewComponent,\r\n    StiExpressionDraggableContainerComponent,\r\n    StiDropdownComponent,\r\n    StiDropdownListComponent,\r\n    StiFormCheckerComponent,\r\n    StiFormCheckerItemComponent,\r\n    AutoCompleteEditorComponent,\r\n    StiElectronicSignatureEditorComponent,\r\n    StiDraggableModalWindowComponent,\r\n    StiEmbedTextEditorComponent,\r\n    StiEmbedImageEditorComponent,\r\n    StiDividerComponent,\r\n    StiUniversalCheckboxComponent,\r\n    StiInputTextDirective,\r\n    StiInputTextAreaDirective,\r\n    StiDropdownEditorComponent,\r\n    StiTooltipComponent,\r\n    StiTooltipDirective,\r\n    StiSelectButtonComponent,\r\n    StiAutoCompleteComponent,\r\n    StiTrialTimerWindowComponent,\r\n    StiTieredMenuComponent,\r\n    StiPropertyGridNavigationComponent,\r\n    StiFormsTreeComponent,\r\n    StiPropertyGridComponent,\r\n    StiFormElementsDropdownComponent,\r\n    StiFormsTreeItemComponent,\r\n    StiFormTreeWarningWindowComponent,\r\n  ],\r\n  exports: [StimulsoftFormsComponent], imports: [CommonModule,\r\n    FormsModule], providers: [provideHttpClient(withInterceptorsFromDi())]\r\n})\r\nexport class StimulsoftFormsModule { }\r\n","import Color from \"../../system/Color\";\r\nimport { Enum } from \"../../system/Enum\";\r\nimport { StiLabelAlignment } from \"../../system/enums\";\r\nimport { Font } from \"../../system/Font\";\r\nimport StiJson from \"../../system/StiJson\";\r\nimport { StiLabelElement } from \"../StiLabelElement\";\r\n\r\nexport class StiMultipleText {\r\n  constructor(\r\n    public options?: string[],\r\n    public font?: Font,\r\n    public color?: Color,\r\n    public alignment?: StiLabelAlignment,\r\n    public width?: number\r\n  ) { }\r\n\r\n  public saveToJsonObject(options: any): StiJson {\r\n    let json = new StiJson();\r\n    json.addPropertyArray(\"Options\", this.options);\r\n    json.addPropertyJObject(\"Font\", this.font.saveToJsonObject(options));\r\n    json.addPropertyColor(\"Color\", this.color);\r\n    if (this.alignment != null) {\r\n      json.addPropertyEnum(\"Alignment\", StiLabelAlignment, this.alignment);\r\n    }\r\n    if (this.width != null) {\r\n      json.addPropertyNumber(\"Width\", this.width);\r\n    }\r\n    return json;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Options\":\r\n          this.options = property.value.getArray();\r\n          break;\r\n        case \"Font\":\r\n          this.font = new Font();\r\n          this.font.loadFromJsonObject(property.value);\r\n          break;\r\n        case \"Color\":\r\n          this.color = new Color();\r\n          this.color.deserializeFromString(property.value);\r\n          break;\r\n        case \"Alignment\":\r\n          this.alignment = Enum.parse(StiLabelElement, property.value);\r\n          break;\r\n        case \"Width\":\r\n          this.width = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n  public htmlStyle(): string {\r\n    return `${this.font.htmlStyle()};color:${this.color.toHtmlColor()};text-align:${this.alignment == StiLabelAlignment.Top ? \"Center\" : Enum.getName(StiLabelAlignment, this.alignment)\r\n      }`;\r\n  }\r\n}\r\n","import StiJson from \"../../system/StiJson\";\r\nimport { StiFormElement } from \"./StiFormElement\";\r\n\r\nexport class StiSelectionElement extends StiFormElement {\r\n    Required: boolean;\r\n    HorizontalLabelOrientation: boolean;\r\n    Tooltip: string;\r\n    ReadOnly: boolean;\r\n    //options:StiImmutableList<string>;\r\n    ShowOtherOption: boolean;\r\n    OtherText: string;\r\n    Columns: number = 1;\r\n    MinColumns = 1;\r\n    MaxColumns = 5;\r\n\r\n\r\n    saveToJsonObject(options: any): StiJson {\r\n        let jObject = super.saveToJsonObject(options);\r\n        jObject.addPropertyBool(\"Required\", this.Required);\r\n        jObject.addPropertyBool(\"HorizontalLabelOrientation\", this.HorizontalLabelOrientation);\r\n        jObject.addPropertyStringNullOrEmpty(\"Tooltip\", this.Tooltip);\r\n        jObject.addPropertyBool(\"ReadOnly\", this.ReadOnly);\r\n        jObject.addPropertyBool(\"ShowOtherOptions\", this.ShowOtherOption);\r\n        jObject.addPropertyStringNullOrEmpty(\"OtherText\", this.OtherText);\r\n        jObject.addPropertyNumberNoDefaultValue(\"Columns\", this.Columns);\r\n        jObject.addPropertyNumberNoDefaultValue(\"MinColumns\", this.MinColumns);\r\n        jObject.addPropertyNumberNoDefaultValue(\"MaxColumns\", this.MaxColumns);\r\n        return jObject;\r\n    }\r\n    /* public loadFromJsonObject(json: StiJson) {\r\n          super.loadFromJsonObject(json);\r\n          for (let property in json.properties()) {\r\n              switch (property.name) {\r\n                  case \"Required\":\r\n                      this.Required = property.value.ss.toBoolean();\r\n                      break;\r\n                  case \"HorizontalLabelOrientation\":\r\n                      this.HorizontalLabelOrientation = property.value.ss.toBoolean();\r\n                      break;\r\n                  case \"Tooltip\":\r\n                      this.Tooltip = property.value.ss.toString();\r\n                      break;\r\n                  case \"ReadOnly\":\r\n                      this.ReadOnly = property.value.ss.toBoolean();\r\n                      break;\r\n                  case \"ShowOtherOption\":\r\n                      this.ShowOtherOption = property.value.ss.toBoolean();\r\n                      break;\r\n                  case \"OtherText\":\r\n                      this.OtherText = property.value.ss.toString();\r\n                      break;\r\n                  case \"Columns\":\r\n                      this.Columns = property.value.ss.toNumber();\r\n                      break;\r\n                  case \"MinColumns\":\r\n                      this.MinColumns = property.value.ss.toNumber();\r\n                      break;\r\n                  case \"MaxColumns\":\r\n                      this.MaxColumns = property.value.ss.toNumber();\r\n                      break;\r\n              }\r\n          }\r\n      } */\r\n}\r\n","import { Enum } from \"../../system/Enum\";\r\nimport { StiAlgorithmExpression } from \"../../system/enums\";\r\nimport StiJson from \"../../system/StiJson\";\r\n\r\nexport class StiCalculationAlgorithm {\r\n  constructor(\r\n    public expression: StiAlgorithmExpression = StiAlgorithmExpression.Constant,\r\n    public rowIndex?: number,\r\n    public columntIndex?: number,\r\n    public value?: number\r\n  ) { }\r\n\r\n  saveToJsonObject(options: any): StiJson {\r\n    let jObject = new StiJson();\r\n    jObject.addPropertyEnum(\"Expression\", StiAlgorithmExpression, this.expression);\r\n    jObject.addPropertyNumberNotNull(\"RowIndex\", this.rowIndex);\r\n    jObject.addPropertyNumberNotNull(\"ColumnIndex\", this.columntIndex);\r\n    jObject.addPropertyNumberNotNull(\"Value\", this.value);\r\n    return jObject;\r\n  }\r\n\r\n  public loadFromJsonObject(json: StiJson) {\r\n    for (let property of json.properties()) {\r\n      switch (property.name) {\r\n        case \"Expression\":\r\n          this.expression = Enum.parse(StiAlgorithmExpression, property.value);\r\n          break;\r\n        case \"RowIndex\":\r\n          this.rowIndex = property.value;\r\n          break;\r\n        case \"ColumnIndex\":\r\n          this.columntIndex = property.value;\r\n          break;\r\n        case \"Value\":\r\n          this.value = property.value;\r\n          break;\r\n      }\r\n    }\r\n  }\r\n}\r\n","export default class StiCategories {\r\n    public General: string;\r\n    public options: string;\r\n    public Validation: string;\r\n    public Visibility: string;\r\n    public Appearance: string;\r\n    public Rows: string;\r\n    public Columns: string;\r\n}\r\n","/*\r\n * Public API Surface of stimulsoft-forms\r\n */\r\n\r\nexport * from './lib/stimulsoft-forms.service';\r\nexport * from './lib/stimulsoft-forms.component';\r\nexport * from './lib/stimulsoft-forms.module';\r\nexport * from './lib/elements/StiForm';\r\nexport * from './lib/elements/StiAdditionalFieldItem';\r\nexport * from './lib/elements/StiAddressElement';\r\nexport * from './lib/elements/StiBarcodeElement';\r\nexport * from './lib/elements/StiButtonElement';\r\nexport * from './lib/elements/StiCheckBoxElement';\r\nexport * from './lib/elements/StiComboBoxElement';\r\nexport * from './lib/elements/StiDateTimeBoxElement';\r\nexport * from './lib/elements/StiDragPreviewElement';\r\nexport * from './lib/elements/StiFormPageElement';\r\nexport * from './lib/elements/StiImageElement';\r\nexport * from './lib/elements/StiLabelElement';\r\nexport * from './lib/elements/StiLineElement';\r\nexport * from './lib/elements/StiListBoxElement';\r\nexport * from './lib/elements/StiMultipleSelectionElement';\r\nexport * from './lib/elements/StiNumberBoxElement';\r\nexport * from './lib/elements/StiPanelElement';\r\nexport * from './lib/elements/StiPDFSignatureElement';\r\nexport * from './lib/elements/StiSignatureElement';\r\nexport * from './lib/elements/StiSingleSelectionElement';\r\nexport * from './lib/elements/StiTableElement';\r\nexport * from './lib/elements/StiTextBoxElement';\r\nexport * from './lib/elements/StiTextElement';\r\nexport * from './lib/elements/base/IStiHaveGeometry';\r\nexport * from './lib/elements/base/StiFormElement';\r\nexport * from './lib/elements/base/StiFormObject';\r\nexport * from './lib/elements/base/StiMultipleText';\r\nexport * from './lib/elements/base/StiSelectionElement';\r\nexport * from './lib/elements/settings/StiDescriptionSettings';\r\nexport * from './lib/elements/settings/StiFormSettings';\r\nexport * from './lib/elements/settings/StiInnerTextSettings';\r\nexport * from './lib/elements/settings/StiLabelSettings';\r\nexport * from './lib/elements/signature/StiImageEditorResult';\r\nexport * from './lib/elements/table/StiCalculationAlgorithm';\r\nexport * from './lib/elements/table/StiColumnItem';\r\nexport * from './lib/elements/table/StiRowLabel';\r\nexport * from './lib/elements/table/StiTotalsFieldItem';\r\nexport * from './lib/elements/table/StiTotalsRowHeaderEditableContent';\r\nexport * from './lib/elements/table/cells/StiCheckBoxCellItem';\r\nexport * from './lib/elements/table/cells/StiComboBoxCellItem';\r\nexport * from './lib/elements/table/cells/StiNumberBoxCellItem';\r\nexport * from './lib/elements/table/cells/StiRadioButtonCellItem';\r\nexport * from './lib/elements/table/cells/StiTextBoxCellItem';\r\nexport * from './lib/elements/table/columns/StiCheckBoxColumnItem';\r\nexport * from './lib/elements/table/columns/StiComboBoxColumnItem';\r\nexport * from './lib/elements/table/columns/StiLabelColumnItem';\r\nexport * from './lib/elements/table/columns/StiNumberBoxColumnItem';\r\nexport * from './lib/elements/table/columns/StiRadioButtonColumnItem';\r\nexport * from './lib/elements/table/columns/StiTextBoxColumnItem';\r\nexport * from './lib/elements/text/StiAddressLabelItem';\r\nexport * from './lib/elements/text/StiBackgroundedAlignedTextItem';\r\nexport * from './lib/elements/text/StiBackgroundedTextItem';\r\nexport * from './lib/elements/text/StiLabelItem';\r\nexport * from './lib/elements/text/StiOptionItem';\r\nexport * from './lib/elements/text/StiTextItem';\r\nexport * from './lib/helper/StiInputTextItem';\r\nexport * from './lib/services/http-client.service';\r\nexport * from './lib/services/model.service';\r\nexport * from './lib/services/mouse.service';\r\nexport * from './lib/services/objects';\r\nexport * from './lib/services/sti-barcode.service';\r\nexport * from './lib/services/sti-changes-service';\r\nexport * from './lib/services/sti-clipboard-sevice';\r\nexport * from './lib/services/sti-color-dialog.service';\r\nexport * from './lib/services/sti-column-draggable.service';\r\nexport * from './lib/services/sti-component-resizer.service';\r\nexport * from './lib/services/sti-controller.service';\r\nexport * from './lib/services/sti-draggable-modal-window.service';\r\nexport * from './lib/services/sti-draggable.service';\r\nexport * from './lib/services/sti-editable-content.service';\r\nexport * from './lib/services/sti-export.service';\r\nexport * from './lib/services/sti-expression.service';\r\nexport * from './lib/services/sti-font.service';\r\nexport * from './lib/services/sti-form-checker.service';\r\nexport * from './lib/services/sti-form-events-service';\r\nexport * from './lib/services/sti-helper.service';\r\nexport * from './lib/services/sti-local-storage.service';\r\nexport * from './lib/services/sti-localization.service';\r\nexport * from './lib/services/sti-name.service';\r\nexport * from './lib/services/sti-rich-text.service';\r\nexport * from './lib/services/sti-signature.service';\r\nexport * from './lib/services/sti-static-helper.service';\r\nexport * from './lib/services/sti-tabindex.service';\r\nexport * from './lib/services/sti-toolbar-resizer.service';\r\nexport * from './lib/services/sti-toolbox.service';\r\nexport * from './lib/services/sti-undo-service';\r\nexport * from './lib/services/sti-user-service';\r\nexport * from './lib/services/theme.service';\r\nexport * from './lib/computed/RenderComponentsGeometry';\r\nexport * from './lib/computed/StiRectangleGeometryLayout';\r\nexport * from './lib/directives/sti-input-text-area.directive';\r\nexport * from './lib/directives/sti-input-text.directive';\r\nexport * from './lib/properties/StiBorder';\r\nexport * from './lib/properties/StiBorderArea';\r\nexport * from './lib/properties/StiCategories';\r\nexport * from './lib/properties/StiExceedMargins';\r\nexport * from './lib/properties/StiInnerBorder';\r\nexport * from './lib/properties/StiPadding';\r\nexport * from './lib/properties/StiPagePaperKind';\r\nexport * from './lib/properties/StiPen';\r\nexport * from './lib/properties/StiRectangleGeometry';\r\nexport * from './lib/system/Char';\r\nexport * from './lib/system/Chars';\r\nexport * from './lib/system/Color';\r\nexport * from './lib/system/DateTime';\r\nexport * from './lib/system/Dictionary';\r\nexport * from './lib/system/Enum';\r\nexport * from './lib/system/enums';\r\nexport * from './lib/system/Font';\r\nexport * from './lib/system/Guid';\r\nexport * from './lib/system/Hashtable';\r\nexport * from './lib/system/interfaces';\r\nexport * from './lib/system/List';\r\nexport * from './lib/system/StiJson';\r\nexport * from './lib/system/StiObject';\r\nexport * from './lib/system/TimeSpan';\r\nexport * from './lib/system/UnicodeCategory';\r\nexport * from './lib/toolbox/sti-clone-element-container.component';\r\nexport * from './lib/toolbox/sti-draggable-column-container.component';\r\nexport * from './lib/toolbox/sti-draggable-element-container.component';\r\nexport * from './lib/toolbox/sti-setup-toolbox.component';\r\nexport * from './lib/toolbox/sti-toolbox-element.component';\r\nexport * from './lib/toolbox/sti-toolbox.component';\r\nexport * from './lib/components/sti-component-resizer.component';\r\nexport * from './lib/components/sti-component';\r\nexport * from './lib/components/sti-components-holder.component';\r\nexport * from './lib/components/sti-corner-radius.component';\r\nexport * from './lib/components/sti-editable-content.component';\r\nexport * from './lib/components/sti-input-text.component';\r\nexport * from './lib/components/sti-localization-preview.component';\r\nexport * from './lib/components/sti-login.component';\r\nexport * from './lib/components/sti-number.component';\r\nexport * from './lib/components/sti-page-grid-overlay.component';\r\nexport * from './lib/components/sti-pages-navigation.component';\r\nexport * from './lib/components/sti-progress.component';\r\nexport * from './lib/components/sti-table-column-resizer.component';\r\nexport * from './lib/components/sti-toolbar-resizer.component';\r\nexport * from './lib/components/sti-user-info.component';\r\nexport * from './lib/components/sti-button/sti-button-message-window.component';\r\nexport * from './lib/components/sti-button/sti-button.component';\r\nexport * from './lib/components/sti-text/sti-text.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["StiCategories","i1.StiModelService","i2.StiNameService","i2.StiEditableContentService","i3.StiUserService","i4.SignatureService","i5.StiDropdownService","i2.StiLocalizationService","i2.StiModelService","i3.StiHelperService","i4.StiLocalizationService","i2.StiMouseService","i3.StiHttpClientService","i4.StiUndoService","i3.StiBarcodeService","i2.StiComponentResizerService","i2.StiDraggableService","i3.StiMouseService","i4.StiHelperService","i5.StiNameService","i6.StiComponentResizerService","i7.SignatureService","i8.StiComponentResizerComponent","i9.StiCornerRadiusComponent","i2.StiHelperService","i3.StiEditableContentService","i4","i1.StiTooltipService","i3.StiComponent","i4.StiEditableContentComponent","i5.StiInputTextComponent","i6.StiTooltipDirective","i4.StiMouseService","i5.StiTooltipDirective","i5.StiNumberComponent","i6.StiComponent","i7.StiEditableContentComponent","i3","i4.StiComponent","i5.StiEditableContentComponent","i3.StiEditableContentComponent","i4.StiTooltipDirective","i2.StiComponent","i4.StiSvgRadiobuttonComponent","i4.StiSvgCheckBoxComponent","i2.StiHttpClientService","i3.StiComponentResizerService","i5.SignatureService","i6.StiHelperService","i7.StiFontService","i8.StiComponent","i9.StiEditableContentComponent","i5.StiSvgCheckBoxComponent","i2.StiExpressionService","i2.StiNumberComponent","i3.StiTableInputTextComponent","i4.StiTableRadioButtonComponent","i5.StiTableComboboxComponent","i6.StiTableCheckboxComponent","i7.StiTableLabelComponent","i3.StiColumnDraggableService","i4.StiEditableContentService","i5.StiMouseService","i8.StiTableTotalsFieldComponent","i9.StiTableColumnResizerComponent","i10.StiTableColumnComponent","i2","i4.StiProgressComponent","i2.StiRichTextService","i6.StiInputTextComponent","i1.StiTextBoxComponent","i2.StiNumberBoxComponent","i3.StiComboBoxComponent","i4.StiListBoxComponent","i5.StiSingleSelectionComponent","i6.StiMultipleSelectionComponent","i7.StiCheckBoxComponent","i8.StiLineComponent","i9.StiSignatureComponent","i10.StiDateTimeBoxComponent","i11.StiTableComponent","i12.StiImageComponent","i13.StiButtonComponent","i14.StiBarcodeComponent","i15.StiTextComponent","i16.StiDragPreviewAdornerComponent","i17.StiLabelComponent","i18.StiAddressComponent","i19.StiPDFSignatureComponent","i21.StiComponent","i22.StiEditableContentComponent","i20.StiModelService","i1.StiMouseService","i3.StiModelService","i4.StiUserService","i5.StiLocalizationService","i6.StimulsoftFormsService","i7.StiLocalStorageService","i8.StiExportService","i9.StiDraggableService","i3.StiDraggableService","i4.StiNameService","i3.StiNameService","i4.StiDraggableService","i1.StiDropdownService","i3.StiTooltipDirective","i1","i5.FormEventsService","i6.StiEditableContentService","i7.StiLocalizationService","i8.StiRichTextService","i9.StiUndoService","i10.StiNameService","i11.StiColorDialogService","i12.StiClipboardService","i13.StiDropdownComponent","i14.StiTooltipDirective","i15.StiSelectButtonComponent","i1.StiToolboxService","i2.StiToolbarResizerService","i3.StiThemeService","i4.StiModelService","i3.StiToolboxService","i6.StiToolboxElementComponent","i7.StiTooltipDirective","i5.StiThemeService","i6.StiLocalizationService","i7.StiToolboxService","i8.StiHttpClientService","i9.StiUserService","i10.StiFormCheckerService","i11.StiHomeRibbonComponent","i12.StiFileRibbonComponent","i13.StiInsertRibbonComponent","i4.StiExportService","i1.StiComponentResizerService","i2.FormEventsService","i5.StiPageGridOverlayComponent","i6.StiPageNavigationComponent","i7.StiComponentHolderComponent","i2.StiExportService","i3.StiToolbarResizerService","i4.PageComponent","i1.StiLocalizationService","i2.StiToolboxService","i3.StiFormsTreeItemComponent","i3.StiUniversalCheckboxComponent","i3.StiLocalizationService","i4.StiColorDialogService","i3.StiDropdownEditorComponent","i5.StiColorDialogService","i6.StiDropdownEditorComponent","i8.StiSelectButtonComponent","i4.StiChangesService","i5.StiUniversalCheckboxComponent","i3.StiInputTextDirective","i5.StiInputTextAreaDirective","i5","i2.StiDropdownEditorComponent","i6.StiSelectButtonComponent","i4.StiExpressionService","i6.StiInputTextDirective","i5.StiColorEditorComponent","i6.StiEnumEditorComponent","i7.StiNumberEditorComponent","i8.StiBorderSidesEditorComponent","i5.StiBoolEditorComponent","i6.StiColorEditorComponent","i7.StiEnumEditorComponent","i8.StiNumberEditorComponent","i9.StiSimpleEnumEditorComponent","i5.StiTableBorderEditorComponent","i6.StiBarcodeShapeEditorComponent","i3.StiSelectButtonComponent","i8.StiFontEditorComponent","i9.StiMultilineStringEditorComponent","i10.StiNumberEditorComponent","i11.StiTextEditorComponent","i12.StiHorizontalAlignmentEditorComponent","i13.StiSelectButtonEditorComponent","i14.StiDividerComponent","i5.StiColumnDraggableService","i6.StiMouseService","i7.StiTableColumnEditorComponent","i1.StiBarcodeService","i2.StiBarcodeService","i3.StiSvgImageComponent","i3.StiAutoCompleteComponent","i4.StiBoolEditorComponent","i7.StiFontEditorComponent","i8.StiImageEditorComponent","i9.StiPaddingEditorComponent","i10.StiMultilineStringEditorComponent","i11.StiNumberEditorComponent","i12.StiPaperKindEditorComponent","i13.StiVerticalAlignmentEditorComponent","i14.StiTextEditorComponent","i15.StiNameEditorComponent","i16.StiHorizontalAlignmentEditorComponent","i17.StiLabelAlignmentEditorComponent","i18.StiBooleanWithArrowEditorComponent","i19.StiTableItemEditorComponent","i20.StiTableBorderEditorComponent","i21.StiTableColumnsEditorComponent","i22.StiExceedMarginsEditorComponent","i23.StiSelectButtonEditorComponent","i24.StiBarcodeStyleEditorComponent","i25.StiSimpleEnumEditorComponent","i26.TableNavigationComponent","i27.StiComponentHeightEditorComponent","i28.AutoCompleteEditorComponent","i29.StiDividerComponent","i30.StiFormElementsDropdownComponent","i5.StiPropertyGridNavigationComponent","i6.StiFormsTreeComponent","i7.StiPropertyGridComponent","i1.StiDraggableService","i3.StiComponentHolderComponent","i5.StiToolboxElementComponent","i5.StiFormCheckerService","i2.StiComponentHolderComponent","i4.StiUniversalCheckboxComponent","i1.StiColumnDraggableService","i3.StiTableColumnComponent","i2.StiUserService","i4.StiToolboxElementComponent","i4.StiLocalStorageService","i5.StiHelperService","i6.StiLocalStorageService","i4.StiHttpClientService","i2.StiUndoService","i3.StiFileNewContentComponent","i4.StiFileOpenContentComponent","i5.StiFileSaveContentComponent","i1.StiFileMenuContentComponent","i3.StiExportService","i3.FormEventsService","i5.StiUndoService","i6.StiClipboardService","i1.StiCellsPreviewComponent","i5.StiEditableContentService","i6.StiColumnsPreviewComponent","i1.StiColorDialogService","i4.StiRichTextService","i2.StiColorDialogService","i1.StiExpressionService","i3.StiFormCheckerService","i4.StiFormCheckerService","i5.StiFormCheckerItemComponent","i5.StiDraggableModalWindowService","i6.StiColorDialogService","i7","i8.StiTooltipDirective","i6.StiDropdownComponent","i7.StiSelectButtonComponent","i3.StiDraggableModalWindowService","i6.StiEmbedTextEditorComponent","i7.StiEmbedImageEditorComponent","i1.StiHelperService","i7.StiChangesService","i9.StiFontService","i10.StiToolboxService","i11.StiUndoService","i12.StiUserService","i13.StiExpressionService","i14.StiHelperService","i15.StiLocalizationService","i16.StiHttpClientService","i17.SignatureService","i18.StiTabIndexService","i19.StiMouseService","i20.FormEventsService","i21.StiDropdownService","i22.StiFormCheckerService","i23.StiLocalStorageService","i24.StiTooltipService","i25.StiClipboardService","i26.NavbarComponent","i27.WorkspaceComponent","i28.PropertiesComponent","i29.StiDraggableElementContainerComponent","i30.StiToolboxComponent","i31.StiFooterComponent","i32.StiCloneElementContainerComponent","i33.StiModalAgreeWindowComponent","i34.StiProgressComponent","i35.StiDraggableColumnContainerComponent","i36.StiAboutWindowComponent","i37.StiBarcodeStylesPreviewComponent","i38.StiPdfPreviewComponent","i39.NavbarGroupPreviewComponent","i40.StiSetupToolboxComponent","i41.StiLocalizationPreviewComponent","i42.StiUserInfoComponent","i43.StiTrialBarComponent","i44.StiTrialModalWindowComponent","i45.StiFileMenuComponent","i46.StiFileMenuNavigationComponent","i47.StiFileSaveDialogComponent","i48.StiButtonMessageWindowComponent","i49.StiCloudNavbarComponent","i50.ContextMenuWindowComponent","i51.StiExpressionHelpWindowComponent","i52.StiLoginComponent","i53.StiExpressionEditorComponent","i54.StiColorDialogComponent","i55.StiColorOptionsDialogComponent","i56.StiExpressionDraggableContainerComponent","i57.StiDropdownListComponent","i58.StiFormCheckerComponent","i59.StiElectronicSignatureEditorComponent","i60.StiDraggableModalWindowComponent","i61.StiTooltipComponent","i62.StiTrialTimerWindowComponent","i63.StiTieredMenuComponent","i64.StiFormTreeWarningWindowComponent","i1.StiToolbarResizerService","i4.StiControllerService","i5.StiBarcodeService","i2.StiTooltipDirective"],"mappings":"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,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpP,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1M,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3P,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACzO,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAClM,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACxM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACvM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AACxM,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3N,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACnN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpM,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC5M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACvM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClO,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACzO,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACjO,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACjM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC/N,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAC7M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChO,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACvM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClO,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACzM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChO,QAAA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACvN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACxO,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC/N,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC/N,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3N,QAAA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACxM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3N,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACrO,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACrN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpO,QAAA,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5O,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACnM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACnM,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7P,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACvM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AACrM,QAAA,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACjM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChO,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAClM,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChM,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACxM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACrN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACxN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7N,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACjN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACnM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACxM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACvM,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACjN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1O,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACjM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1N,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC/N,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACnM,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACpM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACxM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;AACjM,QAAA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACnN,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAC5P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACjP,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7N,QAAA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtN,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACxN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACrP,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAChN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClM,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAClO,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACnM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/L,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACtM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpN,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9O,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9P,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;KAAG,CAAC;AAEnP,IAAA,SAAA,IAAA,CAAA,WAAW,GAAG;AAC3B,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACxO,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACjP,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAChN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACrN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;AAChM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC5M,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACvN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1M,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrP,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACtN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AACrN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;AACnN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACvM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACzM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACnO,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACzM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EA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AAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpO,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;AACnN,QAAA,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC5M,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACjN,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;AAChM,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAChM,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1O,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9N,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/O,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9L,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACjM,QAAA,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC1N,QAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1M,QAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,C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ACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAG;AACH,IAAA,aAAA,CAAA,aAAA,CAAA,K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"}