@igo2/geo 1.14.2 → 1.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/icons/cross_black_18px.svg +88 -88
- package/assets/icons/place_blue_36px.svg +55 -55
- package/assets/icons/place_green_36px.svg +55 -55
- package/assets/icons/place_red_36px.svg +55 -55
- package/assets/icons/place_yellow_36px.svg +55 -55
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +13 -11
- package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +10 -10
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +20 -17
- package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
- package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
- package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
- package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +7 -12
- package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
- package/esm2020/lib/catalog/catalog.module.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2020/lib/catalog/shared/catalog.service.mjs +3 -5
- package/esm2020/lib/datasource/datasource.module.mjs +1 -1
- package/esm2020/lib/datasource/shared/capabilities.service.mjs +2 -2
- package/esm2020/lib/datasource/shared/datasource.service.mjs +27 -31
- package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/data.service.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
- package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
- package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +1 -1
- package/esm2020/lib/datasource/shared/options/options-api.service.mjs +1 -1
- package/esm2020/lib/datasource/shared/options/options.service.mjs +1 -1
- package/esm2020/lib/datasource/utils/index.mjs +1 -2
- package/esm2020/lib/datasource/utils/tilegrid.mjs +1 -1
- package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -10
- package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
- package/esm2020/lib/directions/directions-results/directions-results.component.mjs +2 -2
- package/esm2020/lib/directions/directions-sources/directions-source.mjs +1 -1
- package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
- package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
- package/esm2020/lib/directions/directions.component.mjs +2 -2
- package/esm2020/lib/directions/directions.module.mjs +1 -1
- package/esm2020/lib/directions/shared/directions-source.service.mjs +1 -1
- package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2020/lib/directions/shared/directions.service.mjs +1 -1
- package/esm2020/lib/directions/shared/directions.utils.mjs +2 -2
- package/esm2020/lib/directions/shared/store.mjs +1 -1
- package/esm2020/lib/download/download-button/download-button.component.mjs +2 -2
- package/esm2020/lib/download/download.module.mjs +1 -1
- package/esm2020/lib/download/shared/download.interface.mjs +1 -1
- package/esm2020/lib/download/shared/download.service.mjs +5 -8
- package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
- package/esm2020/lib/draw/draw/draw-popup.component.mjs +3 -3
- package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
- package/esm2020/lib/draw/draw/draw.component.mjs +11 -10
- package/esm2020/lib/draw/draw/draw.module.mjs +1 -1
- package/esm2020/lib/draw/drawingTool.module.mjs +1 -1
- package/esm2020/lib/draw/shared/draw-icon.service.mjs +1 -1
- package/esm2020/lib/draw/shared/draw.enum.mjs +1 -17
- package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2020/lib/draw/shared/draw.utils.mjs +1 -1
- package/esm2020/lib/draw/shared/index.mjs +1 -2
- package/esm2020/lib/feature/feature-details/feature-details.component.mjs +4 -5
- package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +1 -1
- package/esm2020/lib/feature/feature-details/feature-details.module.mjs +1 -1
- package/esm2020/lib/feature/feature-form/feature-form.component.mjs +2 -2
- package/esm2020/lib/feature/feature-form/feature-form.module.mjs +1 -1
- package/esm2020/lib/feature/feature.module.mjs +1 -1
- package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2020/lib/feature/shared/feature.utils.mjs +7 -5
- package/esm2020/lib/feature/shared/store.mjs +10 -1
- package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies/index.mjs +2 -1
- package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies/loading.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies/search.mjs +150 -0
- package/esm2020/lib/feature/shared/strategies/selection.mjs +1 -1
- package/esm2020/lib/feature/shared/strategies.utils.mjs +1 -1
- package/esm2020/lib/filter/filter.module.mjs +1 -1
- package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
- package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
- package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.mjs +1 -1
- package/esm2020/lib/filter/shared/ogc-filter.service.mjs +1 -1
- package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +1 -1
- package/esm2020/lib/filter/shared/spatial-filter.service.mjs +1 -1
- package/esm2020/lib/filter/shared/time-filter.enum.mjs +1 -1
- package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
- package/esm2020/lib/filter/shared/time-filter.service.mjs +1 -1
- package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +5 -5
- package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +6 -7
- package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
- package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
- package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
- package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
- package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
- package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
- package/esm2020/lib/geo.module.mjs +5 -1
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +13 -12
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
- package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
- package/esm2020/lib/geometry/geometry.module.mjs +1 -1
- package/esm2020/lib/geometry/shared/controls/draw.mjs +1 -1
- package/esm2020/lib/geometry/shared/controls/modify.mjs +1 -1
- package/esm2020/lib/geometry/shared/controls/slice.mjs +1 -1
- package/esm2020/lib/geometry/shared/geometry.errors.mjs +1 -1
- package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2020/lib/geometry/shared/geometry.utils.mjs +1 -1
- package/esm2020/lib/import-export/export-button/export-button.component.mjs +2 -2
- package/esm2020/lib/import-export/import-export/import-export.component.mjs +53 -45
- package/esm2020/lib/import-export/import-export.module.mjs +5 -9
- package/esm2020/lib/import-export/index.mjs +1 -2
- package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +31 -14
- package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/export.service.mjs +1 -1
- package/esm2020/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2020/lib/import-export/shared/export.utils.mjs +8 -17
- package/esm2020/lib/import-export/shared/import.errors.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.service.mjs +1 -1
- package/esm2020/lib/import-export/shared/import.utils.mjs +58 -91
- package/esm2020/lib/layer/index.mjs +1 -2
- package/esm2020/lib/layer/layer-item/layer-item.component.mjs +2 -2
- package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
- package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
- package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
- package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
- package/esm2020/lib/layer/layer-list/layer-list.component.mjs +2 -2
- package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +1 -1
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
- package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
- package/esm2020/lib/layer/layer.module.mjs +6 -11
- package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
- package/esm2020/lib/layer/shared/index.mjs +1 -3
- package/esm2020/lib/layer/shared/layer.service.mjs +80 -29
- package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/image-layer.mjs +6 -7
- package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/layer.mjs +5 -3
- package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vector-layer.mjs +155 -6
- package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
- package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
- package/esm2020/lib/layer/utils/image-watcher.mjs +3 -6
- package/esm2020/lib/layer/utils/layer.utils.mjs +2 -2
- package/esm2020/lib/layer/utils/outputLegend.mjs +3 -2
- package/esm2020/lib/layer/utils/tile-watcher.mjs +1 -1
- package/esm2020/lib/layer/utils/vector-watcher.mjs +1 -1
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
- package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
- package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +2 -2
- package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
- package/esm2020/lib/map/info-section/info-section.component.mjs +2 -2
- package/esm2020/lib/map/map-browser/map-browser.component.mjs +3 -3
- package/esm2020/lib/map/map-center/map-center.component.mjs +2 -2
- package/esm2020/lib/map/map.module.mjs +1 -1
- package/esm2020/lib/map/menu-button/menu-button.component.mjs +3 -3
- package/esm2020/lib/map/offline-button/offline-button.component.mjs +34 -57
- package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +2 -2
- package/esm2020/lib/map/shared/controllers/controller.mjs +1 -1
- package/esm2020/lib/map/shared/controllers/geolocation.mjs +151 -36
- package/esm2020/lib/map/shared/controllers/view.mjs +1 -1
- package/esm2020/lib/map/shared/hover-feature.directive.mjs +24 -73
- package/esm2020/lib/map/shared/linkedLayers.utils.mjs +3 -3
- package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +1 -1
- package/esm2020/lib/map/shared/map.interface.mjs +1 -1
- package/esm2020/lib/map/shared/map.mjs +7 -5
- package/esm2020/lib/map/shared/map.service.mjs +1 -1
- package/esm2020/lib/map/shared/map.utils.mjs +1 -1
- package/esm2020/lib/map/shared/mapOffline.directive.mjs +50 -115
- package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
- package/esm2020/lib/map/shared/projection.service.mjs +1 -1
- package/esm2020/lib/map/shared/projection.utils.mjs +1 -1
- package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +3 -3
- package/esm2020/lib/map/utils/layer-watcher.mjs +1 -1
- package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +24 -35
- package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +2 -2
- package/esm2020/lib/measure/measure.module.mjs +1 -1
- package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +1 -1
- package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
- package/esm2020/lib/measure/measurer/measurer-item.component.mjs +2 -2
- package/esm2020/lib/measure/measurer/measurer.component.mjs +2 -2
- package/esm2020/lib/measure/measurer/measurer.module.mjs +1 -1
- package/esm2020/lib/measure/shared/measure.enum.mjs +1 -1
- package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2020/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
- package/esm2020/lib/metadata/metadata.module.mjs +1 -1
- package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2020/lib/metadata/shared/metadata.service.mjs +1 -1
- package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +4 -4
- package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +1 -1
- package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2020/lib/offline/geoDB/geoDB.service.mjs +2 -2
- package/esm2020/lib/offline/index.mjs +2 -1
- package/esm2020/lib/offline/layerDB/index.mjs +3 -0
- package/esm2020/lib/offline/layerDB/layerDB.interface.mjs +2 -0
- package/esm2020/lib/offline/layerDB/layerDB.service.mjs +76 -0
- package/esm2020/lib/offline/shared/geo-network.service.mjs +1 -1
- package/esm2020/lib/overlay/overlay.module.mjs +1 -1
- package/esm2020/lib/overlay/shared/index.mjs +1 -2
- package/esm2020/lib/overlay/shared/overlay.directive.mjs +1 -1
- package/esm2020/lib/overlay/shared/overlay.enum.mjs +1 -1
- package/esm2020/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2020/lib/overlay/shared/overlay.service.mjs +1 -1
- package/esm2020/lib/overlay/shared/overlay.utils.mjs +2 -88
- package/esm2020/lib/print/print/print.component.mjs +6 -20
- package/esm2020/lib/print/print-form/print-form.component.mjs +197 -111
- package/esm2020/lib/print/print.module.mjs +1 -1
- package/esm2020/lib/print/shared/geopdf.mjs +1 -1
- package/esm2020/lib/print/shared/index.mjs +1 -1
- package/esm2020/lib/print/shared/print.interface.mjs +1 -1
- package/esm2020/lib/print/shared/print.service.mjs +85 -35
- package/esm2020/lib/print/shared/print.type.mjs +1 -1
- package/esm2020/lib/query/query.module.mjs +1 -1
- package/esm2020/lib/query/shared/query-search-source.mjs +1 -1
- package/esm2020/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2020/lib/query/shared/query.directive.mjs +1 -1
- package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2020/lib/query/shared/query.service.mjs +3 -5
- package/esm2020/lib/query/shared/query.utils.mjs +1 -1
- package/esm2020/lib/search/search-bar/search-bar.component.mjs +3 -3
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
- package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +1 -1
- package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +4 -4
- package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +88 -31
- package/esm2020/lib/search/search-results/search-results-item.component.mjs +36 -13
- package/esm2020/lib/search/search-results/search-results.component.mjs +172 -58
- package/esm2020/lib/search/search-results/search-results.module.mjs +5 -1
- package/esm2020/lib/search/search-selector/search-selector.component.mjs +2 -2
- package/esm2020/lib/search/search-selector/search-selector.module.mjs +1 -1
- package/esm2020/lib/search/search-settings/search-settings.component.mjs +54 -56
- package/esm2020/lib/search/search-settings/search-settings.module.mjs +1 -1
- package/esm2020/lib/search/search.module.mjs +1 -1
- package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +3 -30
- package/esm2020/lib/search/shared/search-source-service.providers.mjs +1 -1
- package/esm2020/lib/search/shared/search-source.service.mjs +9 -1
- package/esm2020/lib/search/shared/search.enums.mjs +1 -1
- package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/search.service.mjs +1 -1
- package/esm2020/lib/search/shared/search.utils.mjs +3 -3
- package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/coordinates.mjs +1 -1
- package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +4 -4
- package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/icherche.mjs +1 -1
- package/esm2020/lib/search/shared/sources/icherche.providers.mjs +1 -1
- package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/ilayer.mjs +1 -1
- package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +1 -1
- package/esm2020/lib/search/shared/sources/index.mjs +4 -1
- package/esm2020/lib/search/shared/sources/nominatim.mjs +2 -2
- package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +1 -1
- package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/source.mjs +31 -1
- package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2020/lib/search/shared/sources/storedqueries.mjs +1 -1
- package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
- package/esm2020/lib/search/shared/sources/workspace.interfaces.mjs +2 -0
- package/esm2020/lib/search/shared/sources/workspace.mjs +186 -0
- package/esm2020/lib/search/shared/sources/workspace.providers.mjs +26 -0
- package/esm2020/lib/style/index.mjs +5 -0
- package/esm2020/lib/style/shared/datasource/esri-style-generator.mjs +357 -0
- package/esm2020/lib/style/shared/datasource/index.mjs +2 -0
- package/esm2020/lib/style/shared/feature/feature-style.mjs +141 -0
- package/esm2020/lib/style/shared/feature/index.mjs +2 -0
- package/esm2020/lib/style/shared/font.enum.mjs +17 -0
- package/esm2020/lib/style/shared/index.mjs +5 -0
- package/esm2020/lib/style/shared/overlay/index.mjs +3 -0
- package/esm2020/lib/style/shared/overlay/overlay-marker-style.utils.mjs +43 -0
- package/esm2020/lib/style/shared/overlay/overlay-style.utils.mjs +88 -0
- package/esm2020/lib/style/shared/vector/commonVectorStyle.mjs +75 -0
- package/esm2020/lib/style/shared/vector/conversion.utils.mjs +27 -0
- package/esm2020/lib/style/shared/vector/index.mjs +4 -0
- package/esm2020/lib/style/shared/vector/vector-style.interface.mjs +2 -0
- package/esm2020/lib/style/style-list/index.mjs +5 -0
- package/esm2020/lib/style/style-list/style-list.interface.mjs +2 -0
- package/esm2020/lib/style/style-list/style-list.module.mjs +23 -0
- package/esm2020/lib/style/style-list/style-list.provider.mjs +21 -0
- package/esm2020/lib/style/style-list/style-list.service.mjs +51 -0
- package/esm2020/lib/style/style-modal/drawing/index.mjs +2 -0
- package/esm2020/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +288 -0
- package/esm2020/lib/style/style-modal/index.mjs +5 -0
- package/esm2020/lib/style/style-modal/layer/index.mjs +2 -0
- package/esm2020/lib/style/style-modal/layer/style-modal-layer.component.mjs +187 -0
- package/esm2020/lib/style/style-modal/layer-button/index.mjs +2 -0
- package/esm2020/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +44 -0
- package/esm2020/lib/style/style-modal/shared/index.mjs +2 -0
- package/esm2020/lib/style/style-modal/shared/style-modal.interface.mjs +2 -0
- package/esm2020/lib/style/style-service/draw-style.service.mjs +187 -0
- package/esm2020/lib/style/style-service/index.mjs +3 -0
- package/esm2020/lib/style/style-service/style.service.mjs +356 -0
- package/esm2020/lib/style/style.module.mjs +74 -0
- package/esm2020/lib/toast/toast.component.mjs +3 -3
- package/esm2020/lib/toast/toast.module.mjs +1 -1
- package/esm2020/lib/utils/id-generator.mjs +1 -1
- package/esm2020/lib/utils/index.mjs +1 -3
- package/esm2020/lib/wkt/shared/wkt.service.mjs +15 -15
- package/esm2020/lib/wkt/wkt.module.mjs +1 -1
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
- package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
- package/esm2020/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2020/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +19 -34
- package/esm2020/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +10 -3
- package/esm2020/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +2 -2
- package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +3 -3
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
- package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
- package/esm2020/lib/workspace/widgets/widgets.mjs +1 -1
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
- package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
- package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
- package/esm2020/lib/workspace/workspace.module.mjs +1 -1
- package/esm2020/public_api.mjs +3 -1
- package/fesm2015/igo2-geo.mjs +6707 -5364
- package/fesm2015/igo2-geo.mjs.map +1 -1
- package/fesm2020/igo2-geo.mjs +7617 -6346
- package/fesm2020/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +5 -14
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +2 -5
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +3 -9
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -3
- package/lib/catalog/shared/catalog.interface.d.ts +10 -0
- package/lib/datasource/shared/datasources/datasource.interface.d.ts +13 -0
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +5 -0
- package/lib/datasource/utils/index.d.ts +0 -1
- package/lib/download/shared/download.service.d.ts +2 -3
- package/lib/draw/draw/draw.component.d.ts +3 -2
- package/lib/draw/shared/draw.enum.d.ts +0 -15
- package/lib/draw/shared/index.d.ts +0 -1
- package/lib/feature/shared/feature.interfaces.d.ts +5 -0
- package/lib/feature/shared/feature.utils.d.ts +4 -2
- package/lib/feature/shared/store.d.ts +7 -0
- package/lib/feature/shared/strategies/index.d.ts +1 -0
- package/lib/feature/shared/strategies/search.d.ts +55 -0
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +2 -3
- package/lib/geo.module.d.ts +3 -2
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +5 -9
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +3 -3
- package/lib/import-export/import-export/import-export.component.d.ts +9 -4
- package/lib/import-export/import-export.module.d.ts +1 -2
- package/lib/import-export/index.d.ts +0 -1
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +10 -7
- package/lib/import-export/shared/export.utils.d.ts +4 -4
- package/lib/import-export/shared/import.interface.d.ts +2 -0
- package/lib/import-export/shared/import.utils.d.ts +14 -12
- package/lib/layer/index.d.ts +0 -1
- package/lib/layer/layer.module.d.ts +19 -20
- package/lib/layer/shared/index.d.ts +0 -2
- package/lib/layer/shared/layer.service.d.ts +8 -5
- package/lib/layer/shared/layers/image-layer.d.ts +2 -3
- package/lib/layer/shared/layers/layer.d.ts +5 -1
- package/lib/layer/shared/layers/layer.interface.d.ts +2 -0
- package/lib/layer/shared/layers/vector-layer.d.ts +18 -2
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +8 -7
- package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +2 -4
- package/lib/layer/utils/image-watcher.d.ts +2 -3
- package/lib/map/offline-button/offline-button.component.d.ts +10 -18
- package/lib/map/shared/controllers/geolocation.d.ts +17 -2
- package/lib/map/shared/hover-feature.directive.d.ts +2 -10
- package/lib/map/shared/map.d.ts +2 -2
- package/lib/map/shared/mapOffline.directive.d.ts +4 -7
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +3 -6
- package/lib/offline/geoDB/geoDB.service.d.ts +1 -1
- package/lib/offline/index.d.ts +1 -0
- package/lib/offline/layerDB/index.d.ts +2 -0
- package/lib/offline/layerDB/layerDB.interface.d.ts +7 -0
- package/lib/offline/layerDB/layerDB.service.d.ts +36 -0
- package/lib/overlay/shared/index.d.ts +0 -1
- package/lib/overlay/shared/overlay.utils.d.ts +0 -11
- package/lib/print/print-form/print-form.component.d.ts +2 -0
- package/lib/print/shared/print.service.d.ts +6 -0
- package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
- package/lib/search/search-results/search-results-add-button.component.d.ts +10 -2
- package/lib/search/search-results/search-results-item.component.d.ts +5 -0
- package/lib/search/search-results/search-results.component.d.ts +5 -1
- package/lib/search/search-results/search-results.module.d.ts +11 -10
- package/lib/search/shared/search-pointer-summary.directive.d.ts +0 -9
- package/lib/search/shared/search-source.service.d.ts +7 -0
- package/lib/search/shared/search.interfaces.d.ts +1 -1
- package/lib/search/shared/sources/coordinates.providers.d.ts +3 -3
- package/lib/search/shared/sources/index.d.ts +3 -0
- package/lib/search/shared/sources/source.d.ts +6 -0
- package/lib/search/shared/sources/workspace.d.ts +33 -0
- package/lib/search/shared/sources/workspace.interfaces.d.ts +9 -0
- package/lib/search/shared/sources/workspace.providers.d.ts +17 -0
- package/lib/style/index.d.ts +4 -0
- package/lib/style/shared/datasource/index.d.ts +1 -0
- package/lib/style/shared/feature/feature-style.d.ts +18 -0
- package/lib/style/shared/feature/index.d.ts +1 -0
- package/lib/style/shared/font.enum.d.ts +15 -0
- package/lib/style/shared/index.d.ts +4 -0
- package/lib/style/shared/overlay/index.d.ts +2 -0
- package/lib/style/shared/overlay/overlay-style.utils.d.ts +19 -0
- package/lib/{utils → style/shared/vector}/commonVectorStyle.d.ts +4 -4
- package/lib/style/shared/vector/conversion.utils.d.ts +22 -0
- package/lib/style/shared/vector/index.d.ts +3 -0
- package/lib/style/shared/vector/vector-style.interface.d.ts +69 -0
- package/lib/style/style-modal/drawing/index.d.ts +1 -0
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +31 -0
- package/lib/style/style-modal/index.d.ts +4 -0
- package/lib/style/style-modal/layer/index.d.ts +1 -0
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +30 -0
- package/lib/style/style-modal/layer-button/index.d.ts +1 -0
- package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +14 -0
- package/lib/style/style-modal/shared/index.d.ts +1 -0
- package/lib/style/style-modal/shared/style-modal.interface.d.ts +17 -0
- package/lib/{draw/shared → style/style-service}/draw-style.service.d.ts +3 -4
- package/lib/style/style-service/index.d.ts +2 -0
- package/lib/{layer/shared → style/style-service}/style.service.d.ts +5 -5
- package/lib/style/style.module.d.ts +22 -0
- package/lib/utils/index.d.ts +0 -2
- package/lib/workspace/shared/edition-workspace.service.d.ts +3 -4
- package/lib/workspace/shared/wms-workspace.service.d.ts +1 -1
- package/ngcc.config.js +3 -3
- package/package.json +17 -11
- package/public_api.d.ts +2 -0
- package/style/geo.theming.scss +12 -12
- package/esm2020/lib/datasource/utils/esri-style-generator.mjs +0 -357
- package/esm2020/lib/draw/shared/draw-style.service.mjs +0 -190
- package/esm2020/lib/import-export/style-list/index.mjs +0 -5
- package/esm2020/lib/import-export/style-list/style-list.interface.mjs +0 -2
- package/esm2020/lib/import-export/style-list/style-list.module.mjs +0 -23
- package/esm2020/lib/import-export/style-list/style-list.provider.mjs +0 -21
- package/esm2020/lib/import-export/style-list/style-list.service.mjs +0 -51
- package/esm2020/lib/layer/shared/style.service.mjs +0 -356
- package/esm2020/lib/layer/shared/vector-style.interface.mjs +0 -2
- package/esm2020/lib/layer/style-modal/index.mjs +0 -2
- package/esm2020/lib/layer/style-modal/style-modal.component.mjs +0 -288
- package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +0 -69
- package/esm2020/lib/utils/commonVectorStyle.interface.mjs +0 -2
- package/esm2020/lib/utils/commonVectorStyle.mjs +0 -75
- package/lib/layer/shared/vector-style.interface.d.ts +0 -38
- package/lib/layer/style-modal/index.d.ts +0 -1
- package/lib/layer/style-modal/style-modal.component.d.ts +0 -42
- package/lib/utils/commonVectorStyle.interface.d.ts +0 -16
- /package/lib/{datasource/utils → style/shared/datasource}/esri-style-generator.d.ts +0 -0
- /package/lib/{overlay/shared → style/shared/overlay}/overlay-marker-style.utils.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/index.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/style-list.interface.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/style-list.module.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/style-list.provider.d.ts +0 -0
- /package/lib/{import-export → style}/style-list/style-list.service.d.ts +0 -0
|
@@ -12,91 +12,125 @@ import * as i7 from "@angular/material/input";
|
|
|
12
12
|
import * as i8 from "@angular/material/slide-toggle";
|
|
13
13
|
import * as i9 from "@ngx-translate/core";
|
|
14
14
|
import * as i10 from "@igo2/common";
|
|
15
|
-
function
|
|
15
|
+
const _c0 = function (a0) { return { column: a0, value: 130 }; };
|
|
16
|
+
function PrintFormComponent_mat_error_5_Template(rf, ctx) { if (rf & 1) {
|
|
17
|
+
i0.ɵɵelementStart(0, "mat-error");
|
|
18
|
+
i0.ɵɵtext(1);
|
|
19
|
+
i0.ɵɵpipe(2, "translate");
|
|
20
|
+
i0.ɵɵpipe(3, "translate");
|
|
21
|
+
i0.ɵɵelementEnd();
|
|
22
|
+
} if (rf & 2) {
|
|
23
|
+
i0.ɵɵadvance(1);
|
|
24
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, "igo.geo.formValidation.maxLength", i0.ɵɵpureFunction1(6, _c0, i0.ɵɵpipeBind1(3, 4, "igo.geo.printForm.title"))));
|
|
25
|
+
} }
|
|
26
|
+
const _c1 = function (a0) { return { column: a0, value: 120 }; };
|
|
27
|
+
function PrintFormComponent_mat_error_10_Template(rf, ctx) { if (rf & 1) {
|
|
28
|
+
i0.ɵɵelementStart(0, "mat-error");
|
|
29
|
+
i0.ɵɵtext(1);
|
|
30
|
+
i0.ɵɵpipe(2, "translate");
|
|
31
|
+
i0.ɵɵpipe(3, "translate");
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
} if (rf & 2) {
|
|
34
|
+
i0.ɵɵadvance(1);
|
|
35
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, "igo.geo.formValidation.maxLength", i0.ɵɵpureFunction1(6, _c1, i0.ɵɵpipeBind1(3, 4, "igo.geo.printForm.subtitle"))));
|
|
36
|
+
} }
|
|
37
|
+
const _c2 = function (a0, a1) { return { column: a0, value: a1 }; };
|
|
38
|
+
function PrintFormComponent_mat_error_15_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
i0.ɵɵelementStart(0, "mat-error");
|
|
40
|
+
i0.ɵɵtext(1);
|
|
41
|
+
i0.ɵɵpipe(2, "translate");
|
|
42
|
+
i0.ɵɵpipe(3, "translate");
|
|
43
|
+
i0.ɵɵelementEnd();
|
|
44
|
+
} if (rf & 2) {
|
|
45
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
46
|
+
i0.ɵɵadvance(1);
|
|
47
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, "igo.geo.formValidation.maxLength", i0.ɵɵpureFunction2(6, _c2, i0.ɵɵpipeBind1(3, 4, "igo.geo.printForm.comment"), ctx_r2.maxLength)));
|
|
48
|
+
} }
|
|
49
|
+
function PrintFormComponent_mat_option_31_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
16
50
|
i0.ɵɵelementContainerStart(0);
|
|
17
51
|
i0.ɵɵtext(1);
|
|
18
52
|
i0.ɵɵpipe(2, "translate");
|
|
19
53
|
i0.ɵɵelementContainerEnd();
|
|
20
54
|
} if (rf & 2) {
|
|
21
|
-
const
|
|
55
|
+
const legendPosition_r9 = i0.ɵɵnextContext().$implicit;
|
|
22
56
|
i0.ɵɵadvance(1);
|
|
23
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.printForm.legendPositions." +
|
|
57
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.geo.printForm.legendPositions." + legendPosition_r9.value), " ");
|
|
24
58
|
} }
|
|
25
|
-
function
|
|
59
|
+
function PrintFormComponent_mat_option_31_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
|
26
60
|
i0.ɵɵelementContainerStart(0);
|
|
27
61
|
i0.ɵɵtext(1);
|
|
28
62
|
i0.ɵɵpipe(2, "translate");
|
|
29
63
|
i0.ɵɵelementContainerEnd();
|
|
30
64
|
} if (rf & 2) {
|
|
31
|
-
const
|
|
65
|
+
const ctx_r11 = i0.ɵɵnextContext(2);
|
|
32
66
|
i0.ɵɵadvance(1);
|
|
33
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1,
|
|
67
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, ctx_r11.outputFormat === "Pdf" ? "igo.geo.printForm.legendPositions.newpage" : "igo.geo.printForm.legendPositions.newimage"), " ");
|
|
34
68
|
} }
|
|
35
|
-
const
|
|
36
|
-
function
|
|
37
|
-
i0.ɵɵelementStart(0, "mat-option",
|
|
38
|
-
i0.ɵɵtemplate(1,
|
|
39
|
-
i0.ɵɵtemplate(2,
|
|
69
|
+
const _c3 = function () { return ["newpage", "newimage"]; };
|
|
70
|
+
function PrintFormComponent_mat_option_31_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
i0.ɵɵelementStart(0, "mat-option", 20);
|
|
72
|
+
i0.ɵɵtemplate(1, PrintFormComponent_mat_option_31_ng_container_1_Template, 3, 3, "ng-container", 3);
|
|
73
|
+
i0.ɵɵtemplate(2, PrintFormComponent_mat_option_31_ng_container_2_Template, 3, 3, "ng-container", 3);
|
|
40
74
|
i0.ɵɵelementEnd();
|
|
41
75
|
} if (rf & 2) {
|
|
42
|
-
const
|
|
43
|
-
i0.ɵɵproperty("value",
|
|
76
|
+
const legendPosition_r9 = ctx.$implicit;
|
|
77
|
+
i0.ɵɵproperty("value", legendPosition_r9.key);
|
|
44
78
|
i0.ɵɵadvance(1);
|
|
45
|
-
i0.ɵɵproperty("ngIf", !i0.ɵɵpureFunction0(3,
|
|
79
|
+
i0.ɵɵproperty("ngIf", !i0.ɵɵpureFunction0(3, _c3).includes(legendPosition_r9.value));
|
|
46
80
|
i0.ɵɵadvance(1);
|
|
47
|
-
i0.ɵɵproperty("ngIf", i0.ɵɵpureFunction0(4,
|
|
81
|
+
i0.ɵɵproperty("ngIf", i0.ɵɵpureFunction0(4, _c3).includes(legendPosition_r9.value));
|
|
48
82
|
} }
|
|
49
|
-
function
|
|
50
|
-
i0.ɵɵelementStart(0, "mat-option",
|
|
83
|
+
function PrintFormComponent_mat_option_37_Template(rf, ctx) { if (rf & 1) {
|
|
84
|
+
i0.ɵɵelementStart(0, "mat-option", 20);
|
|
51
85
|
i0.ɵɵtext(1);
|
|
52
86
|
i0.ɵɵelementEnd();
|
|
53
87
|
} if (rf & 2) {
|
|
54
|
-
const
|
|
55
|
-
i0.ɵɵproperty("value",
|
|
88
|
+
const outputFormat_r13 = ctx.$implicit;
|
|
89
|
+
i0.ɵɵproperty("value", outputFormat_r13.key);
|
|
56
90
|
i0.ɵɵadvance(1);
|
|
57
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
91
|
+
i0.ɵɵtextInterpolate1(" ", outputFormat_r13.value, " ");
|
|
58
92
|
} }
|
|
59
|
-
function
|
|
60
|
-
i0.ɵɵelementStart(0, "mat-option",
|
|
93
|
+
function PrintFormComponent_mat_option_43_Template(rf, ctx) { if (rf & 1) {
|
|
94
|
+
i0.ɵɵelementStart(0, "mat-option", 20);
|
|
61
95
|
i0.ɵɵtext(1);
|
|
62
96
|
i0.ɵɵpipe(2, "translate");
|
|
63
97
|
i0.ɵɵelementEnd();
|
|
64
98
|
} if (rf & 2) {
|
|
65
|
-
const
|
|
66
|
-
i0.ɵɵproperty("value",
|
|
99
|
+
const paperFormat_r14 = ctx.$implicit;
|
|
100
|
+
i0.ɵɵproperty("value", paperFormat_r14.key);
|
|
67
101
|
i0.ɵɵadvance(1);
|
|
68
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm.paperFormats." +
|
|
102
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm.paperFormats." + paperFormat_r14.value), " ");
|
|
69
103
|
} }
|
|
70
|
-
function
|
|
71
|
-
i0.ɵɵelementStart(0, "mat-option",
|
|
104
|
+
function PrintFormComponent_mat_option_49_Template(rf, ctx) { if (rf & 1) {
|
|
105
|
+
i0.ɵɵelementStart(0, "mat-option", 20);
|
|
72
106
|
i0.ɵɵtext(1);
|
|
73
107
|
i0.ɵɵelementEnd();
|
|
74
108
|
} if (rf & 2) {
|
|
75
|
-
const
|
|
76
|
-
i0.ɵɵproperty("value",
|
|
109
|
+
const imageFormat_r15 = ctx.$implicit;
|
|
110
|
+
i0.ɵɵproperty("value", imageFormat_r15.key);
|
|
77
111
|
i0.ɵɵadvance(1);
|
|
78
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
112
|
+
i0.ɵɵtextInterpolate1(" ", imageFormat_r15.value, " ");
|
|
79
113
|
} }
|
|
80
|
-
function
|
|
81
|
-
i0.ɵɵelementStart(0, "mat-option",
|
|
114
|
+
function PrintFormComponent_mat_option_55_Template(rf, ctx) { if (rf & 1) {
|
|
115
|
+
i0.ɵɵelementStart(0, "mat-option", 20);
|
|
82
116
|
i0.ɵɵtext(1);
|
|
83
117
|
i0.ɵɵelementEnd();
|
|
84
118
|
} if (rf & 2) {
|
|
85
|
-
const
|
|
86
|
-
i0.ɵɵproperty("value",
|
|
119
|
+
const resolution_r16 = ctx.$implicit;
|
|
120
|
+
i0.ɵɵproperty("value", resolution_r16.key);
|
|
87
121
|
i0.ɵɵadvance(1);
|
|
88
|
-
i0.ɵɵtextInterpolate1(" ",
|
|
122
|
+
i0.ɵɵtextInterpolate1(" ", resolution_r16.value + " PPI", " ");
|
|
89
123
|
} }
|
|
90
|
-
function
|
|
91
|
-
i0.ɵɵelementStart(0, "mat-option",
|
|
124
|
+
function PrintFormComponent_mat_option_61_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
+
i0.ɵɵelementStart(0, "mat-option", 20);
|
|
92
126
|
i0.ɵɵtext(1);
|
|
93
127
|
i0.ɵɵpipe(2, "translate");
|
|
94
128
|
i0.ɵɵelementEnd();
|
|
95
129
|
} if (rf & 2) {
|
|
96
|
-
const
|
|
97
|
-
i0.ɵɵproperty("value",
|
|
130
|
+
const orientation_r17 = ctx.$implicit;
|
|
131
|
+
i0.ɵɵproperty("value", orientation_r17.key);
|
|
98
132
|
i0.ɵɵadvance(1);
|
|
99
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm." +
|
|
133
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "igo.geo.printForm." + orientation_r17.value), " ");
|
|
100
134
|
} }
|
|
101
135
|
export class PrintFormComponent {
|
|
102
136
|
constructor(formBuilder) {
|
|
@@ -109,10 +143,11 @@ export class PrintFormComponent {
|
|
|
109
143
|
this.legendPositions = PrintLegendPosition;
|
|
110
144
|
this.isPrintService = true;
|
|
111
145
|
this.submit = new EventEmitter();
|
|
146
|
+
this.maxLength = 180;
|
|
112
147
|
this.form = this.formBuilder.group({
|
|
113
|
-
title: ['', []],
|
|
114
|
-
subtitle: ['', []],
|
|
115
|
-
comment: ['', []],
|
|
148
|
+
title: ['', [Validators.minLength(0), Validators.maxLength(130)]],
|
|
149
|
+
subtitle: ['', [Validators.minLength(0), Validators.maxLength(120)]],
|
|
150
|
+
comment: ['', [Validators.minLength(0), Validators.maxLength(this.maxLength)]],
|
|
116
151
|
outputFormat: ['', [Validators.required]],
|
|
117
152
|
paperFormat: ['', [Validators.required]],
|
|
118
153
|
imageFormat: ['', [Validators.required]],
|
|
@@ -266,134 +301,185 @@ export class PrintFormComponent {
|
|
|
266
301
|
toggleImageSaveProp() {
|
|
267
302
|
if (this.outputFormatField.value === 'Image') {
|
|
268
303
|
this.isPrintService = false;
|
|
304
|
+
this.commentField.clearValidators();
|
|
305
|
+
this.commentField.updateValueAndValidity();
|
|
269
306
|
}
|
|
270
307
|
else {
|
|
271
308
|
this.isPrintService = true;
|
|
272
309
|
}
|
|
273
310
|
}
|
|
311
|
+
changeCommentLength() {
|
|
312
|
+
switch (this.paperFormat) {
|
|
313
|
+
case PrintPaperFormat.A0:
|
|
314
|
+
// A0, landscape, length 900 | A0, portrait, comment length: 600
|
|
315
|
+
this.maxLength = (this.orientation === PrintOrientation.landscape) ? 900 : 600;
|
|
316
|
+
break;
|
|
317
|
+
case PrintPaperFormat.A1:
|
|
318
|
+
// A1, landscape, length 600 | A1, portrait, length 400;
|
|
319
|
+
this.maxLength = (this.orientation === PrintOrientation.landscape) ? 600 : 400;
|
|
320
|
+
break;
|
|
321
|
+
case PrintPaperFormat.A2:
|
|
322
|
+
// A2, landscape, length 400 | A2, portrait, length 300;
|
|
323
|
+
this.maxLength = (this.orientation === PrintOrientation.landscape) ? 400 : 300;
|
|
324
|
+
break;
|
|
325
|
+
case PrintPaperFormat.A3:
|
|
326
|
+
// A3, landscape, length 300 | A3, portrait, length 200;
|
|
327
|
+
this.maxLength = (this.orientation === PrintOrientation.landscape) ? 300 : 200;
|
|
328
|
+
break;
|
|
329
|
+
case PrintPaperFormat.A4:
|
|
330
|
+
// A4, landscape length 200 | A4, portrait length 120;
|
|
331
|
+
this.maxLength = (this.orientation === PrintOrientation.landscape) ? 200 : 100;
|
|
332
|
+
break;
|
|
333
|
+
case PrintPaperFormat.A5:
|
|
334
|
+
// A5, landscape length 120 | A5, portrait length 80;
|
|
335
|
+
this.maxLength = (this.orientation === PrintOrientation.landscape) ? 120 : 80;
|
|
336
|
+
break;
|
|
337
|
+
case PrintPaperFormat.Letter:
|
|
338
|
+
// lettre, landscape, 180 | lettre, portrait, 140
|
|
339
|
+
this.maxLength = (this.orientation === PrintOrientation.landscape) ? 180 : 140;
|
|
340
|
+
break;
|
|
341
|
+
default:
|
|
342
|
+
// legal, landscape, 200 | legal, portrait, 140
|
|
343
|
+
this.maxLength = (this.orientation === PrintOrientation.landscape) ? 200 : 140;
|
|
344
|
+
break;
|
|
345
|
+
}
|
|
346
|
+
this.commentField.setValidators([Validators.maxLength(this.maxLength)]);
|
|
347
|
+
this.commentField.updateValueAndValidity();
|
|
348
|
+
}
|
|
274
349
|
}
|
|
275
350
|
PrintFormComponent.ɵfac = function PrintFormComponent_Factory(t) { return new (t || PrintFormComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder)); };
|
|
276
|
-
PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFormComponent, selectors: [["igo-print-form"]], inputs: { disabled$: "disabled$", imageFormat: "imageFormat", outputFormat: "outputFormat", paperFormat: "paperFormat", orientation: "orientation", resolution: "resolution", legendPosition: "legendPosition", title: "title", subtitle: "subtitle", comment: "comment", showProjection: "showProjection", showScale: "showScale", showLegend: "showLegend", doZipFile: "doZipFile" }, outputs: { submit: "submit" }, decls:
|
|
351
|
+
PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFormComponent, selectors: [["igo-print-form"]], inputs: { disabled$: "disabled$", imageFormat: "imageFormat", outputFormat: "outputFormat", paperFormat: "paperFormat", orientation: "orientation", resolution: "resolution", legendPosition: "legendPosition", title: "title", subtitle: "subtitle", comment: "comment", showProjection: "showProjection", showScale: "showScale", showLegend: "showLegend", doZipFile: "doZipFile" }, outputs: { submit: "submit" }, decls: 68, vars: 75, consts: [[1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], ["matInput", "", "formControlName", "title", 3, "placeholder"], [4, "ngIf"], ["matInput", "", "formControlName", "subtitle", 3, "placeholder"], ["matInput", "", "formControlName", "comment", 3, "placeholder"], [1, "print-slide-toggle-container", "mat-typography"], ["formControlName", "showProjection", 1, "print-option", 3, "labelPosition"], ["formControlName", "showScale", 1, "print-option", 3, "labelPosition"], ["formControlName", "doZipFile", 1, "print-option", 3, "labelPosition"], ["formControlName", "legendPosition", 3, "placeholder"], [3, "value", 4, "ngFor", "ngForOf"], ["formControlName", "outputFormat", 3, "placeholder", "selectionChange"], ["formControlName", "paperFormat", 3, "placeholder", "selectionChange"], ["formControlName", "imageFormat", 3, "placeholder"], [1, "igo-input-container", 2, "display", "none"], ["formControlName", "resolution", 3, "placeholder"], ["formControlName", "orientation", 3, "placeholder", "selectionChange"], [1, "igo-form-button-group", "print-button-top-padding"], ["mat-raised-button", "", "type", "button", 3, "disabled", "click"], [3, "value"]], template: function PrintFormComponent_Template(rf, ctx) { if (rf & 1) {
|
|
277
352
|
i0.ɵɵelementStart(0, "form", 0)(1, "div", 1)(2, "mat-form-field");
|
|
278
353
|
i0.ɵɵelement(3, "input", 2);
|
|
279
354
|
i0.ɵɵpipe(4, "translate");
|
|
355
|
+
i0.ɵɵtemplate(5, PrintFormComponent_mat_error_5_Template, 4, 8, "mat-error", 3);
|
|
280
356
|
i0.ɵɵelementEnd()();
|
|
281
|
-
i0.ɵɵelementStart(
|
|
282
|
-
i0.ɵɵelement(
|
|
283
|
-
i0.ɵɵpipe(
|
|
357
|
+
i0.ɵɵelementStart(6, "div", 1)(7, "mat-form-field");
|
|
358
|
+
i0.ɵɵelement(8, "input", 4);
|
|
359
|
+
i0.ɵɵpipe(9, "translate");
|
|
360
|
+
i0.ɵɵtemplate(10, PrintFormComponent_mat_error_10_Template, 4, 8, "mat-error", 3);
|
|
284
361
|
i0.ɵɵelementEnd()();
|
|
285
|
-
i0.ɵɵelementStart(
|
|
286
|
-
i0.ɵɵelement(
|
|
287
|
-
i0.ɵɵpipe(
|
|
362
|
+
i0.ɵɵelementStart(11, "div", 1)(12, "mat-form-field");
|
|
363
|
+
i0.ɵɵelement(13, "input", 5);
|
|
364
|
+
i0.ɵɵpipe(14, "translate");
|
|
365
|
+
i0.ɵɵtemplate(15, PrintFormComponent_mat_error_15_Template, 4, 9, "mat-error", 3);
|
|
288
366
|
i0.ɵɵelementEnd()();
|
|
289
|
-
i0.ɵɵelementStart(
|
|
290
|
-
i0.ɵɵtext(16);
|
|
291
|
-
i0.ɵɵpipe(17, "translate");
|
|
292
|
-
i0.ɵɵelementEnd();
|
|
293
|
-
i0.ɵɵelementStart(18, "mat-slide-toggle", 7);
|
|
367
|
+
i0.ɵɵelementStart(16, "div", 1)(17, "div", 6)(18, "mat-slide-toggle", 7);
|
|
294
368
|
i0.ɵɵtext(19);
|
|
295
369
|
i0.ɵɵpipe(20, "translate");
|
|
296
370
|
i0.ɵɵelementEnd();
|
|
297
371
|
i0.ɵɵelementStart(21, "mat-slide-toggle", 8);
|
|
298
372
|
i0.ɵɵtext(22);
|
|
299
373
|
i0.ɵɵpipe(23, "translate");
|
|
374
|
+
i0.ɵɵelementEnd();
|
|
375
|
+
i0.ɵɵelementStart(24, "mat-slide-toggle", 9);
|
|
376
|
+
i0.ɵɵtext(25);
|
|
377
|
+
i0.ɵɵpipe(26, "translate");
|
|
300
378
|
i0.ɵɵelementEnd()()();
|
|
301
|
-
i0.ɵɵelementStart(
|
|
302
|
-
i0.ɵɵpipe(
|
|
303
|
-
i0.ɵɵtemplate(
|
|
304
|
-
i0.ɵɵpipe(
|
|
379
|
+
i0.ɵɵelementStart(27, "div", 1)(28, "mat-form-field")(29, "mat-select", 10);
|
|
380
|
+
i0.ɵɵpipe(30, "translate");
|
|
381
|
+
i0.ɵɵtemplate(31, PrintFormComponent_mat_option_31_Template, 3, 5, "mat-option", 11);
|
|
382
|
+
i0.ɵɵpipe(32, "keyvalue");
|
|
305
383
|
i0.ɵɵelementEnd()()();
|
|
306
|
-
i0.ɵɵelementStart(
|
|
307
|
-
i0.ɵɵlistener("selectionChange", function
|
|
308
|
-
i0.ɵɵpipe(
|
|
309
|
-
i0.ɵɵtemplate(
|
|
310
|
-
i0.ɵɵpipe(
|
|
384
|
+
i0.ɵɵelementStart(33, "div", 1)(34, "mat-form-field")(35, "mat-select", 12);
|
|
385
|
+
i0.ɵɵlistener("selectionChange", function PrintFormComponent_Template_mat_select_selectionChange_35_listener() { return ctx.toggleImageSaveProp(); });
|
|
386
|
+
i0.ɵɵpipe(36, "translate");
|
|
387
|
+
i0.ɵɵtemplate(37, PrintFormComponent_mat_option_37_Template, 2, 2, "mat-option", 11);
|
|
388
|
+
i0.ɵɵpipe(38, "keyvalue");
|
|
311
389
|
i0.ɵɵelementEnd()()();
|
|
312
|
-
i0.ɵɵelementStart(
|
|
313
|
-
i0.ɵɵ
|
|
314
|
-
i0.ɵɵ
|
|
315
|
-
i0.ɵɵ
|
|
390
|
+
i0.ɵɵelementStart(39, "div", 1)(40, "mat-form-field")(41, "mat-select", 13);
|
|
391
|
+
i0.ɵɵlistener("selectionChange", function PrintFormComponent_Template_mat_select_selectionChange_41_listener() { return ctx.changeCommentLength(); });
|
|
392
|
+
i0.ɵɵpipe(42, "translate");
|
|
393
|
+
i0.ɵɵtemplate(43, PrintFormComponent_mat_option_43_Template, 3, 4, "mat-option", 11);
|
|
394
|
+
i0.ɵɵpipe(44, "keyvalue");
|
|
316
395
|
i0.ɵɵelementEnd()()();
|
|
317
|
-
i0.ɵɵelementStart(
|
|
318
|
-
i0.ɵɵpipe(
|
|
319
|
-
i0.ɵɵtemplate(
|
|
320
|
-
i0.ɵɵpipe(
|
|
396
|
+
i0.ɵɵelementStart(45, "div", 1)(46, "mat-form-field")(47, "mat-select", 14);
|
|
397
|
+
i0.ɵɵpipe(48, "translate");
|
|
398
|
+
i0.ɵɵtemplate(49, PrintFormComponent_mat_option_49_Template, 2, 2, "mat-option", 11);
|
|
399
|
+
i0.ɵɵpipe(50, "keyvalue");
|
|
321
400
|
i0.ɵɵelementEnd()()();
|
|
322
|
-
i0.ɵɵelementStart(
|
|
323
|
-
i0.ɵɵpipe(
|
|
324
|
-
i0.ɵɵtemplate(
|
|
325
|
-
i0.ɵɵpipe(
|
|
401
|
+
i0.ɵɵelementStart(51, "div", 15)(52, "mat-form-field")(53, "mat-select", 16);
|
|
402
|
+
i0.ɵɵpipe(54, "translate");
|
|
403
|
+
i0.ɵɵtemplate(55, PrintFormComponent_mat_option_55_Template, 2, 2, "mat-option", 11);
|
|
404
|
+
i0.ɵɵpipe(56, "keyvalue");
|
|
326
405
|
i0.ɵɵelementEnd()()();
|
|
327
|
-
i0.ɵɵelementStart(
|
|
328
|
-
i0.ɵɵ
|
|
329
|
-
i0.ɵɵ
|
|
330
|
-
i0.ɵɵ
|
|
406
|
+
i0.ɵɵelementStart(57, "div", 1)(58, "mat-form-field")(59, "mat-select", 17);
|
|
407
|
+
i0.ɵɵlistener("selectionChange", function PrintFormComponent_Template_mat_select_selectionChange_59_listener() { return ctx.changeCommentLength(); });
|
|
408
|
+
i0.ɵɵpipe(60, "translate");
|
|
409
|
+
i0.ɵɵtemplate(61, PrintFormComponent_mat_option_61_Template, 3, 4, "mat-option", 11);
|
|
410
|
+
i0.ɵɵpipe(62, "keyvalue");
|
|
331
411
|
i0.ɵɵelementEnd()()();
|
|
332
|
-
i0.ɵɵelementStart(
|
|
333
|
-
i0.ɵɵlistener("click", function
|
|
334
|
-
i0.ɵɵpipe(
|
|
335
|
-
i0.ɵɵtext(
|
|
336
|
-
i0.ɵɵpipe(
|
|
412
|
+
i0.ɵɵelementStart(63, "div", 18)(64, "button", 19);
|
|
413
|
+
i0.ɵɵlistener("click", function PrintFormComponent_Template_button_click_64_listener() { return ctx.handleFormSubmit(ctx.form.value, ctx.form.valid); });
|
|
414
|
+
i0.ɵɵpipe(65, "async");
|
|
415
|
+
i0.ɵɵtext(66);
|
|
416
|
+
i0.ɵɵpipe(67, "translate");
|
|
337
417
|
i0.ɵɵelementEnd()()();
|
|
338
418
|
} if (rf & 2) {
|
|
339
419
|
i0.ɵɵproperty("formGroup", ctx.form);
|
|
340
420
|
i0.ɵɵadvance(3);
|
|
341
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4,
|
|
342
|
-
i0.ɵɵadvance(
|
|
343
|
-
i0.ɵɵ
|
|
344
|
-
i0.ɵɵadvance(
|
|
345
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
346
|
-
i0.ɵɵadvance(
|
|
421
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(4, 35, "igo.geo.printForm.title"));
|
|
422
|
+
i0.ɵɵadvance(2);
|
|
423
|
+
i0.ɵɵproperty("ngIf", ctx.titleField.errors == null ? null : ctx.titleField.errors.maxlength);
|
|
424
|
+
i0.ɵɵadvance(3);
|
|
425
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(9, 37, "igo.geo.printForm.subtitle"));
|
|
426
|
+
i0.ɵɵadvance(2);
|
|
427
|
+
i0.ɵɵproperty("ngIf", ctx.subtitleField.errors == null ? null : ctx.subtitleField.errors.maxlength);
|
|
428
|
+
i0.ɵɵadvance(3);
|
|
429
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(14, 39, "igo.geo.printForm.comment"));
|
|
430
|
+
i0.ɵɵadvance(2);
|
|
431
|
+
i0.ɵɵproperty("ngIf", ctx.commentField.errors == null ? null : ctx.commentField.errors.maxlength);
|
|
432
|
+
i0.ɵɵadvance(3);
|
|
347
433
|
i0.ɵɵproperty("labelPosition", "before");
|
|
348
434
|
i0.ɵɵadvance(1);
|
|
349
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
435
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 41, "igo.geo.printForm.showProjection"), " ");
|
|
350
436
|
i0.ɵɵadvance(2);
|
|
351
437
|
i0.ɵɵproperty("labelPosition", "before");
|
|
352
438
|
i0.ɵɵadvance(1);
|
|
353
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
439
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(23, 43, "igo.geo.printForm.showScale"), " ");
|
|
354
440
|
i0.ɵɵadvance(2);
|
|
355
441
|
i0.ɵɵstyleProp("display", ctx.isPrintService ? "none" : "");
|
|
356
442
|
i0.ɵɵproperty("labelPosition", "before");
|
|
357
443
|
i0.ɵɵadvance(1);
|
|
358
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
444
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(26, 45, "igo.geo.printForm.doZipFile"), " ");
|
|
359
445
|
i0.ɵɵadvance(4);
|
|
360
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
446
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(30, 47, "igo.geo.printForm.legendPosition"));
|
|
361
447
|
i0.ɵɵadvance(2);
|
|
362
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(
|
|
448
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(32, 49, ctx.legendPositions));
|
|
363
449
|
i0.ɵɵadvance(4);
|
|
364
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
450
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(36, 51, "igo.geo.printForm.outputFormat"));
|
|
365
451
|
i0.ɵɵadvance(2);
|
|
366
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(
|
|
452
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(38, 53, ctx.outputFormats));
|
|
367
453
|
i0.ɵɵadvance(2);
|
|
368
454
|
i0.ɵɵstyleProp("display", ctx.isPrintService ? "block" : "none");
|
|
369
455
|
i0.ɵɵadvance(2);
|
|
370
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
456
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(42, 55, "igo.geo.printForm.paperFormat"));
|
|
371
457
|
i0.ɵɵadvance(2);
|
|
372
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(
|
|
458
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(44, 57, ctx.paperFormats));
|
|
373
459
|
i0.ɵɵadvance(2);
|
|
374
460
|
i0.ɵɵstyleProp("display", ctx.isPrintService ? "none" : "block");
|
|
375
461
|
i0.ɵɵadvance(2);
|
|
376
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
462
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(48, 59, "igo.geo.printForm.imageFormat"));
|
|
377
463
|
i0.ɵɵadvance(2);
|
|
378
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(
|
|
464
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(50, 61, ctx.imageFormats));
|
|
379
465
|
i0.ɵɵadvance(4);
|
|
380
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
466
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(54, 63, "igo.geo.printForm.resolution"));
|
|
381
467
|
i0.ɵɵadvance(2);
|
|
382
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(
|
|
468
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(56, 65, ctx.resolutions));
|
|
383
469
|
i0.ɵɵadvance(2);
|
|
384
470
|
i0.ɵɵstyleProp("display", ctx.isPrintService ? "block" : "none");
|
|
385
471
|
i0.ɵɵadvance(2);
|
|
386
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
472
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(60, 67, "igo.geo.printForm.orientation"));
|
|
387
473
|
i0.ɵɵadvance(2);
|
|
388
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(
|
|
474
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(62, 69, ctx.orientations));
|
|
389
475
|
i0.ɵɵadvance(3);
|
|
390
|
-
i0.ɵɵproperty("disabled", !ctx.form.valid || i0.ɵɵpipeBind1(
|
|
476
|
+
i0.ɵɵproperty("disabled", !ctx.form.valid || i0.ɵɵpipeBind1(65, 71, ctx.disabled$));
|
|
391
477
|
i0.ɵɵadvance(2);
|
|
392
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
393
|
-
} }, dependencies: [i2.NgForOf, i2.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i3.MatButton, i4.MatFormField, i5.MatSelect, i6.MatOption, i7.MatInput, i8.MatSlideToggle, i2.AsyncPipe, i9.TranslatePipe, i10.KeyValuePipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}.print-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.print-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.print-button-top-padding[_ngcontent-%COMP%]{padding-top:25px}.igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center}"] });
|
|
478
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(67, 73, "igo.geo.printForm.saveBtn"), " ");
|
|
479
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i3.MatButton, i4.MatError, i4.MatFormField, i5.MatSelect, i6.MatOption, i7.MatInput, i8.MatSlideToggle, i2.AsyncPipe, i9.TranslatePipe, i10.KeyValuePipe], styles: ["mat-form-field[_ngcontent-%COMP%]{width:100%}.print-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;margin:10px}.print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mat-slide-toggle-content{width:calc(100% - 60px)}.print-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.print-button-top-padding[_ngcontent-%COMP%]{padding-top:25px}.igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}.igo-form-button-group[_ngcontent-%COMP%]{text-align:center}"] });
|
|
394
480
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrintFormComponent, [{
|
|
395
481
|
type: Component,
|
|
396
|
-
args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"title\"\n placeholder=\"{{'igo.geo.printForm.title' | translate}}\">\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"subtitle\"\n placeholder=\"{{'igo.geo.printForm.subtitle' | translate}}\">\n </mat-form-field>\n </div>\n <div class=\"igo-input-container\">\n <mat-form-field>\n <input\n matInput\n formControlName=\"comment\"\n placeholder=\"{{'igo.geo.printForm.comment' | translate}}\">\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <div class=\"print-slide-toggle-container mat-typography\">\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"showProjection\"\n [labelPosition]=\"'before'\">\n {{'igo.geo.printForm.showProjection' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"showScale\"\n [labelPosition]=\"'before'\">\n {{'igo.geo.printForm.showScale' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle\n class=\"print-option\"\n formControlName=\"doZipFile\"\n [labelPosition]=\"'before'\"\n [style.display]=\"isPrintService ? 'none' : ''\">\n {{'igo.geo.printForm.doZipFile' | translate}}\n </mat-slide-toggle>\n </div>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-select\n formControlName=\"legendPosition\"\n placeholder=\"{{'igo.geo.printForm.legendPosition' | translate}}\">\n <mat-option *ngFor=\"let legendPosition of legendPositions | keyvalue \" [value]=\"legendPosition.key\">\n <ng-container *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\">\n {{'igo.geo.printForm.legendPositions.' + legendPosition.value | translate}}\n </ng-container>\n\n <ng-container *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\">\n {{ ((outputFormat === 'Pdf') ? 'igo.geo.printForm.legendPositions.newpage' : \n 'igo.geo.printForm.legendPositions.newimage') | translate}}\n </ng-container>\n </mat-option>\n\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\">\n <mat-form-field>\n <mat-select (selectionChange)=\"toggleImageSaveProp()\"\n formControlName=\"outputFormat\"\n placeholder=\"{{'igo.geo.printForm.outputFormat' | translate}}\">\n <mat-option *ngFor=\"let outputFormat of outputFormats | keyvalue \" [value]=\"outputFormat.key\">\n {{outputFormat.value}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\n <mat-form-field>\n <mat-select\n formControlName=\"paperFormat\"\n placeholder=\"{{'igo.geo.printForm.paperFormat' | translate}}\">\n <mat-option *ngFor=\"let paperFormat of paperFormats | keyvalue \" [value]=\"paperFormat.key\">\n {{('igo.geo.printForm.paperFormats.' + paperFormat.value) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'none' : 'block'\">\n <mat-form-field>\n <mat-select\n formControlName=\"imageFormat\"\n placeholder=\"{{'igo.geo.printForm.imageFormat' | translate}}\">\n <mat-option *ngFor=\"let imageFormat of imageFormats | keyvalue \" [value]=\"imageFormat.key\">\n {{imageFormat.value}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" style=\"display: none;\">\n <mat-form-field>\n <mat-select\n formControlName=\"resolution\"\n placeholder=\"{{'igo.geo.printForm.resolution' | translate}}\">\n <mat-option *ngFor=\"let resolution of resolutions | keyvalue \" [value]=\"resolution.key\">\n {{resolution.value + ' PPI'}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\n <mat-form-field>\n <mat-select\n formControlName=\"orientation\"\n placeholder=\"{{'igo.geo.printForm.orientation' | translate}}\">\n <mat-option *ngFor=\"let orientation of orientations | keyvalue \" [value]=\"orientation.key\">\n {{('igo.geo.printForm.' + orientation.value) | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <div class=\"igo-form-button-group print-button-top-padding\">\n <button\n mat-raised-button\n type=\"button\"\n [disabled]=\"!form.valid || (disabled$ | async)\"\n (click)=\"handleFormSubmit(form.value, form.valid)\">\n {{'igo.geo.printForm.saveBtn' | translate}}\n </button>\n </div>\n\n</form>\n", styles: ["mat-form-field{width:100%}.print-slide-toggle-container{overflow-x:hidden}.print-slide-toggle-container mat-slide-toggle{width:100%;margin:10px}.print-slide-toggle-container mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 60px)}.print-option{display:block;margin-right:10px;margin-bottom:15px}.print-button-top-padding{padding-top:25px}.igo-form{padding:10px 5px 5px}.igo-form-button-group{text-align:center}\n"] }]
|
|
482
|
+
args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"title\"\r\n placeholder=\"{{'igo.geo.printForm.title' | translate}}\">\r\n <mat-error *ngIf=\"titleField.errors?.maxlength\">{{'igo.geo.formValidation.maxLength' | translate: { \r\n column: 'igo.geo.printForm.title' | translate, \r\n value: 130 } }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"subtitle\"\r\n placeholder=\"{{'igo.geo.printForm.subtitle' | translate}}\">\r\n <mat-error *ngIf=\"subtitleField.errors?.maxlength\">{{'igo.geo.formValidation.maxLength' | translate: { \r\n column: 'igo.geo.printForm.subtitle' | translate, \r\n value: 120 } }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n formControlName=\"comment\"\r\n placeholder=\"{{'igo.geo.printForm.comment' | translate}}\">\r\n <mat-error *ngIf=\"commentField.errors?.maxlength\">{{'igo.geo.formValidation.maxLength' | translate: { \r\n column: 'igo.geo.printForm.comment' | translate, \r\n value: maxLength } }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <div class=\"print-slide-toggle-container mat-typography\">\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showProjection\"\r\n [labelPosition]=\"'before'\">\r\n {{'igo.geo.printForm.showProjection' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showScale\"\r\n [labelPosition]=\"'before'\">\r\n {{'igo.geo.printForm.showScale' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"doZipFile\"\r\n [labelPosition]=\"'before'\"\r\n [style.display]=\"isPrintService ? 'none' : ''\">\r\n {{'igo.geo.printForm.doZipFile' | translate}}\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-select\r\n formControlName=\"legendPosition\"\r\n placeholder=\"{{'igo.geo.printForm.legendPosition' | translate}}\">\r\n <mat-option *ngFor=\"let legendPosition of legendPositions | keyvalue \" [value]=\"legendPosition.key\">\r\n <ng-container *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\">\r\n {{'igo.geo.printForm.legendPositions.' + legendPosition.value | translate}}\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\">\r\n {{ ((outputFormat === 'Pdf') ? 'igo.geo.printForm.legendPositions.newpage' : \r\n 'igo.geo.printForm.legendPositions.newimage') | translate}}\r\n </ng-container>\r\n </mat-option>\r\n\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-select (selectionChange)=\"toggleImageSaveProp()\"\r\n formControlName=\"outputFormat\"\r\n placeholder=\"{{'igo.geo.printForm.outputFormat' | translate}}\">\r\n <mat-option *ngFor=\"let outputFormat of outputFormats | keyvalue \" [value]=\"outputFormat.key\">\r\n {{outputFormat.value}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\r\n <mat-form-field>\r\n <mat-select (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"paperFormat\"\r\n placeholder=\"{{'igo.geo.printForm.paperFormat' | translate}}\">\r\n <mat-option *ngFor=\"let paperFormat of paperFormats | keyvalue \" [value]=\"paperFormat.key\">\r\n {{('igo.geo.printForm.paperFormats.' + paperFormat.value) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'none' : 'block'\">\r\n <mat-form-field>\r\n <mat-select\r\n formControlName=\"imageFormat\"\r\n placeholder=\"{{'igo.geo.printForm.imageFormat' | translate}}\">\r\n <mat-option *ngFor=\"let imageFormat of imageFormats | keyvalue \" [value]=\"imageFormat.key\">\r\n {{imageFormat.value}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" style=\"display: none;\">\r\n <mat-form-field>\r\n <mat-select\r\n formControlName=\"resolution\"\r\n placeholder=\"{{'igo.geo.printForm.resolution' | translate}}\">\r\n <mat-option *ngFor=\"let resolution of resolutions | keyvalue \" [value]=\"resolution.key\">\r\n {{resolution.value + ' PPI'}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\" [style.display]=\"isPrintService ? 'block' : 'none'\">\r\n <mat-form-field>\r\n <mat-select (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"orientation\"\r\n placeholder=\"{{'igo.geo.printForm.orientation' | translate}}\">\r\n <mat-option *ngFor=\"let orientation of orientations | keyvalue \" [value]=\"orientation.key\">\r\n {{('igo.geo.printForm.' + orientation.value) | translate}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group print-button-top-padding\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (disabled$ | async)\"\r\n (click)=\"handleFormSubmit(form.value, form.valid)\">\r\n {{'igo.geo.printForm.saveBtn' | translate}}\r\n </button>\r\n </div>\r\n\r\n</form>\r\n", styles: ["mat-form-field{width:100%}.print-slide-toggle-container{overflow-x:hidden}.print-slide-toggle-container mat-slide-toggle{width:100%;margin:10px}.print-slide-toggle-container mat-slide-toggle ::ng-deep .mat-slide-toggle-content{width:calc(100% - 60px)}.print-option{display:block;margin-right:10px;margin-bottom:15px}.print-button-top-padding{padding-top:25px}.igo-form{padding:10px 5px 5px}.igo-form-button-group{text-align:center}\n"] }]
|
|
397
483
|
}], function () { return [{ type: i1.UntypedFormBuilder }]; }, { disabled$: [{
|
|
398
484
|
type: Input
|
|
399
485
|
}], imageFormat: [{
|
|
@@ -425,4 +511,4 @@ PrintFormComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFor
|
|
|
425
511
|
}], submit: [{
|
|
426
512
|
type: Output
|
|
427
513
|
}] }); })();
|
|
428
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9wcmludC1mb3JtL3ByaW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQtZm9ybS9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUlMLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBS3hCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7O0lDc0NwQiw2QkFBOEU7SUFDNUUsWUFDRjs7SUFBQSwwQkFBZTs7O0lBRGIsZUFDRjtJQURFLHFIQUNGOzs7SUFFQSw2QkFBNkU7SUFDM0UsWUFFRjs7SUFBQSwwQkFBZTs7O0lBRmIsZUFFRjtJQUZFLGlMQUVGOzs7O0lBUkYsc0NBQW9HO0lBQ2xHLG9HQUVlO0lBRWYsb0dBR2U7SUFDakIsaUJBQWE7OztJQVQwRCw2Q0FBNEI7SUFDbEYsZUFBNkQ7SUFBN0Qsb0ZBQTZEO0lBSTdELGVBQTREO0lBQTVELG1GQUE0RDs7O0lBZTdFLHNDQUE4RjtJQUMxRixZQUNKO0lBQUEsaUJBQWE7OztJQUZzRCw0Q0FBMEI7SUFDekYsZUFDSjtJQURJLHVEQUNKOzs7SUFVQSxzQ0FBMkY7SUFDekYsWUFDRjs7SUFBQSxpQkFBYTs7O0lBRm9ELDJDQUF5QjtJQUN4RixlQUNGO0lBREUsZ0hBQ0Y7OztJQVVBLHNDQUEyRjtJQUN6RixZQUNGO0lBQUEsaUJBQWE7OztJQUZvRCwyQ0FBeUI7SUFDeEYsZUFDRjtJQURFLHNEQUNGOzs7SUFVQSxzQ0FBd0Y7SUFDdEYsWUFDRjtJQUFBLGlCQUFhOzs7SUFGa0QsMENBQXdCO0lBQ3JGLGVBQ0Y7SUFERSw4REFDRjs7O0lBVUEsc0NBQTJGO0lBQ3pGLFlBQ0Y7O0lBQUEsaUJBQWE7OztJQUZvRCwyQ0FBeUI7SUFDeEYsZUFDRjtJQURFLG1HQUNGOztBRHBHUixNQUFNLE9BQU8sa0JBQWtCO0lBaUw3QixZQUFvQixXQUErQjtRQUEvQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUEvSzVDLGtCQUFhLEdBQUcsaUJBQWlCLENBQUM7UUFDbEMsaUJBQVksR0FBRyxnQkFBZ0IsQ0FBQztRQUNoQyxpQkFBWSxHQUFHLGdCQUFnQixDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsZUFBZSxDQUFDO1FBQzlCLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7UUFDcEMsb0JBQWUsR0FBRyxtQkFBbUIsQ0FBQztRQUN0QyxtQkFBYyxHQUFHLElBQUksQ0FBQztRQXVLbkIsV0FBTSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR2hFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNmLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDbEIsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNqQixZQUFZLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLFdBQVcsRUFBRSxDQUFFLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLGNBQWMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxjQUFjLEVBQUUsS0FBSztZQUNyQixTQUFTLEVBQUUsS0FBSztZQUNoQixVQUFVLEVBQUUsS0FBSztZQUNqQixTQUFTLEVBQUUsQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDNUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXJMRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQTJCO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRTtZQUNqRSxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUNJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEtBQXdCO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUM5RCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQXVCO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUMvRCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEtBQXVCO1FBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsRUFBRTtZQUNsRSxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLFVBQVUsQ0FBQyxLQUFzQjtRQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVELFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ0ksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLEtBQTBCO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLG1CQUFtQixDQUFDLElBQUksRUFBRTtZQUNuRSxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFDRCxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUNJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxJQUFJLGNBQWMsQ0FBQyxLQUFjO1FBQy9CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUNELElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQ0ksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQ0ksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFlBQWtDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFdBQWlDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFdBQWlDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFdBQWlDLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxVQUFnQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxPQUE2QixDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxjQUFvQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBUSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQWdCLENBQUMsU0FBK0IsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFnQixDQUFDLFVBQWdDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxTQUErQixDQUFDO0lBQ3JFLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxLQUEyQixDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxRQUE4QixDQUFDO0lBQ3BFLENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBZ0IsQ0FBQyxjQUFvQyxDQUFDO0lBQzFFLENBQUM7SUFzQkQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFrQixFQUFFLE9BQWdCO1FBQ25ELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMxQyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEtBQUssT0FBTyxFQUFFO1lBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNILENBQUM7O29GQXBOVSxrQkFBa0I7cUVBQWxCLGtCQUFrQjtRQ3pCL0IsK0JBQTBDLGFBQUEscUJBQUE7UUFHcEMsMkJBRzBEOztRQUM1RCxpQkFBaUIsRUFBQTtRQUVuQiw4QkFBaUMscUJBQUE7UUFFN0IsMkJBRzZEOztRQUMvRCxpQkFBaUIsRUFBQTtRQUVuQiw4QkFBaUMsc0JBQUE7UUFFN0IsNEJBRzREOztRQUM5RCxpQkFBaUIsRUFBQTtRQUduQiwrQkFBaUMsY0FBQSwyQkFBQTtRQU0zQixhQUNGOztRQUFBLGlCQUFtQjtRQUNuQiw0Q0FHNkI7UUFDM0IsYUFDRjs7UUFBQSxpQkFBbUI7UUFDbkIsNENBSWlEO1FBQy9DLGFBQ0Y7O1FBQUEsaUJBQW1CLEVBQUEsRUFBQTtRQUl2QiwrQkFBaUMsc0JBQUEscUJBQUE7O1FBSzNCLG9GQVNhOztRQUVmLGlCQUFhLEVBQUEsRUFBQTtRQUlqQiwrQkFBaUMsc0JBQUEsc0JBQUE7UUFFakIsd0hBQW1CLHlCQUFxQixJQUFDOztRQUduRCxvRkFFYTs7UUFDZixpQkFBYSxFQUFBLEVBQUE7UUFJakIsK0JBQXFGLHNCQUFBLHNCQUFBOztRQUsvRSxvRkFFYTs7UUFDZixpQkFBYSxFQUFBLEVBQUE7UUFJakIsK0JBQXFGLHNCQUFBLHNCQUFBOztRQUsvRSxvRkFFYTs7UUFDZixpQkFBYSxFQUFBLEVBQUE7UUFJakIsZ0NBQXdELHNCQUFBLHNCQUFBOztRQUtsRCxvRkFFYTs7UUFDZixpQkFBYSxFQUFBLEVBQUE7UUFJakIsK0JBQXFGLHNCQUFBLHNCQUFBOztRQUsvRSxvRkFFYTs7UUFDZixpQkFBYSxFQUFBLEVBQUE7UUFJakIsZ0NBQTRELGtCQUFBO1FBS3hELGdHQUFTLG9EQUF3QyxJQUFDOztRQUNsRCxhQUNGOztRQUFBLGlCQUFTLEVBQUEsRUFBQTs7UUF6SVUsb0NBQWtCO1FBTWpDLGVBQXVEO1FBQXZELHlGQUF1RDtRQVF2RCxlQUEwRDtRQUExRCw0RkFBMEQ7UUFRMUQsZUFBeUQ7UUFBekQsNEZBQXlEO1FBU3pELGVBQTBCO1FBQTFCLHdDQUEwQjtRQUMxQixlQUNGO1FBREUsMkZBQ0Y7UUFJRSxlQUEwQjtRQUExQix3Q0FBMEI7UUFDMUIsZUFDRjtRQURFLHNGQUNGO1FBS0UsZUFBOEM7UUFBOUMsMkRBQThDO1FBRDlDLHdDQUEwQjtRQUUxQixlQUNGO1FBREUsc0ZBQ0Y7UUFRRSxlQUFnRTtRQUFoRSxtR0FBZ0U7UUFDekIsZUFBNkI7UUFBN0IscUVBQTZCO1FBbUJwRSxlQUE4RDtRQUE5RCxpR0FBOEQ7UUFDekIsZUFBMkI7UUFBM0IsbUVBQTJCO1FBT3JDLGVBQW1EO1FBQW5ELGdFQUFtRDtRQUk5RSxlQUE2RDtRQUE3RCxnR0FBNkQ7UUFDekIsZUFBMEI7UUFBMUIsa0VBQTBCO1FBT25DLGVBQW1EO1FBQW5ELGdFQUFtRDtRQUk5RSxlQUE2RDtRQUE3RCxnR0FBNkQ7UUFDekIsZUFBMEI7UUFBMUIsa0VBQTBCO1FBVzlELGVBQTREO1FBQTVELCtGQUE0RDtRQUN6QixlQUF5QjtRQUF6QixpRUFBeUI7UUFPakMsZUFBbUQ7UUFBbkQsZ0VBQW1EO1FBSTlFLGVBQTZEO1FBQTdELGdHQUE2RDtRQUN6QixlQUEwQjtRQUExQixrRUFBMEI7UUFXaEUsZUFBK0M7UUFBL0MsbUZBQStDO1FBRS9DLGVBQ0Y7UUFERSxvRkFDRjs7dUZEaEhTLGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLGdCQUFnQjtxRUFjakIsU0FBUztrQkFBakIsS0FBSztZQUdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFlBQVk7a0JBRGYsS0FBSztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFVBQVU7a0JBRGIsS0FBSztZQVdGLGNBQWM7a0JBRGpCLEtBQUs7WUFXRixLQUFLO2tCQURSLEtBQUs7WUFRRixRQUFRO2tCQURYLEtBQUs7WUFRRixPQUFPO2tCQURWLEtBQUs7WUFRRixjQUFjO2tCQURqQixLQUFLO1lBUUYsU0FBUztrQkFEWixLQUFLO1lBUUYsVUFBVTtrQkFEYixLQUFLO1lBU0YsU0FBUztrQkFEWixLQUFLO1lBNERJLE1BQU07a0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFVudHlwZWRGb3JtR3JvdXAsXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQcmludE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvcHJpbnQuaW50ZXJmYWNlJztcblxuaW1wb3J0IHtcbiAgUHJpbnRPdXRwdXRGb3JtYXQsXG4gIFByaW50UGFwZXJGb3JtYXQsXG4gIFByaW50T3JpZW50YXRpb24sXG4gIFByaW50UmVzb2x1dGlvbixcbiAgUHJpbnRTYXZlSW1hZ2VGb3JtYXQsXG4gIFByaW50TGVnZW5kUG9zaXRpb25cbn0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tcHJpbnQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJpbnQtZm9ybS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByaW50Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBwdWJsaWMgb3V0cHV0Rm9ybWF0cyA9IFByaW50T3V0cHV0Rm9ybWF0O1xuICBwdWJsaWMgcGFwZXJGb3JtYXRzID0gUHJpbnRQYXBlckZvcm1hdDtcbiAgcHVibGljIG9yaWVudGF0aW9ucyA9IFByaW50T3JpZW50YXRpb247XG4gIHB1YmxpYyByZXNvbHV0aW9ucyA9IFByaW50UmVzb2x1dGlvbjtcbiAgcHVibGljIGltYWdlRm9ybWF0cyA9IFByaW50U2F2ZUltYWdlRm9ybWF0O1xuICBwdWJsaWMgbGVnZW5kUG9zaXRpb25zID0gUHJpbnRMZWdlbmRQb3NpdGlvbjtcbiAgcHVibGljIGlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcblxuICBASW5wdXQoKSBkaXNhYmxlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICBASW5wdXQoKVxuICBnZXQgaW1hZ2VGb3JtYXQoKTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQge1xuICAgIHJldHVybiB0aGlzLmltYWdlRm9ybWF0RmllbGQudmFsdWU7XG4gIH1cbiAgc2V0IGltYWdlRm9ybWF0KHZhbHVlOiBQcmludFNhdmVJbWFnZUZvcm1hdCkge1xuICAgIHRoaXMuaW1hZ2VGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFNhdmVJbWFnZUZvcm1hdC5KcGVnLCB7XG4gICAgICBvbmx5U2VsZjogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IG91dHB1dEZvcm1hdCgpOiBQcmludE91dHB1dEZvcm1hdCB7XG4gICAgcmV0dXJuIHRoaXMub3V0cHV0Rm9ybWF0RmllbGQudmFsdWU7XG4gIH1cbiAgc2V0IG91dHB1dEZvcm1hdCh2YWx1ZTogUHJpbnRPdXRwdXRGb3JtYXQpIHtcbiAgICB0aGlzLm91dHB1dEZvcm1hdEZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50T3V0cHV0Rm9ybWF0LlBkZiwge1xuICAgICAgb25seVNlbGY6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBwYXBlckZvcm1hdCgpOiBQcmludFBhcGVyRm9ybWF0IHtcbiAgICByZXR1cm4gdGhpcy5wYXBlckZvcm1hdEZpZWxkLnZhbHVlO1xuICB9XG4gIHNldCBwYXBlckZvcm1hdCh2YWx1ZTogUHJpbnRQYXBlckZvcm1hdCkge1xuICAgIHRoaXMucGFwZXJGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFBhcGVyRm9ybWF0LkxldHRlciwge1xuICAgICAgb25seVNlbGY6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBvcmllbnRhdGlvbigpOiBQcmludE9yaWVudGF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbkZpZWxkLnZhbHVlO1xuICB9XG4gIHNldCBvcmllbnRhdGlvbih2YWx1ZTogUHJpbnRPcmllbnRhdGlvbikge1xuICAgIHRoaXMub3JpZW50YXRpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSwge1xuICAgICAgb25seVNlbGY6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXNvbHV0aW9uKCk6IFByaW50UmVzb2x1dGlvbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x1dGlvbkZpZWxkLnZhbHVlO1xuICB9XG4gIHNldCByZXNvbHV0aW9uKHZhbHVlOiBQcmludFJlc29sdXRpb24pIHtcbiAgICB0aGlzLnJlc29sdXRpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFJlc29sdXRpb25bJzk2J10sIHtcbiAgICAgIG9ubHlTZWxmOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgbGVnZW5kUG9zaXRpb24oKTogUHJpbnRMZWdlbmRQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubGVnZW5kUG9zaXRpb25GaWVsZC52YWx1ZTtcbiAgfVxuICBzZXQgbGVnZW5kUG9zaXRpb24odmFsdWU6IFByaW50TGVnZW5kUG9zaXRpb24pIHtcbiAgICB0aGlzLmxlZ2VuZFBvc2l0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRMZWdlbmRQb3NpdGlvbi5ub25lLCB7XG4gICAgICBvbmx5U2VsZjogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGVGaWVsZC52YWx1ZTtcbiAgfVxuICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudGl0bGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdWJ0aXRsZUZpZWxkLnZhbHVlO1xuICB9XG4gIHNldCBzdWJ0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zdWJ0aXRsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBjb21tZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29tbWVudEZpZWxkLnZhbHVlO1xuICB9XG4gIHNldCBjb21tZW50KHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbW1lbnRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgc2hvd1Byb2plY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd1Byb2plY3Rpb25GaWVsZC52YWx1ZTtcbiAgfVxuICBzZXQgc2hvd1Byb2plY3Rpb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dQcm9qZWN0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHNob3dTY2FsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaG93U2NhbGVGaWVsZC52YWx1ZTtcbiAgfVxuICBzZXQgc2hvd1NjYWxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaG93U2NhbGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgc2hvd0xlZ2VuZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zaG93TGVnZW5kRmllbGQudmFsdWU7XG4gIH1cbiAgc2V0IHNob3dMZWdlbmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNob3dMZWdlbmRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkb1ppcEZpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG9aaXBGaWxlRmllbGQudmFsdWU7XG4gIH1cbiAgc2V0IGRvWmlwRmlsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZG9aaXBGaWxlRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XG4gIH1cblxuICBnZXQgb3V0cHV0Rm9ybWF0RmllbGQoKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5vdXRwdXRGb3JtYXQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IHBhcGVyRm9ybWF0RmllbGQoKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5wYXBlckZvcm1hdCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXQgaW1hZ2VGb3JtYXRGaWVsZCgpIHtcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmltYWdlRm9ybWF0IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGdldCBvcmllbnRhdGlvbkZpZWxkKCkge1xuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkub3JpZW50YXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IHJlc29sdXRpb25GaWVsZCgpIHtcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnJlc29sdXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IGNvbW1lbnRGaWVsZCgpIHtcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmNvbW1lbnQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IHNob3dQcm9qZWN0aW9uRmllbGQoKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93UHJvamVjdGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXQgc2hvd1NjYWxlRmllbGQoKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93U2NhbGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IHNob3dMZWdlbmRGaWVsZCgpIHtcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnNob3dMZWdlbmQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IGRvWmlwRmlsZUZpZWxkKCkge1xuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuZG9aaXBGaWxlIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGdldCB0aXRsZUZpZWxkKCkge1xuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkudGl0bGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICB9XG5cbiAgZ2V0IHN1YnRpdGxlRmllbGQoKSB7XG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zdWJ0aXRsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIH1cblxuICBnZXQgbGVnZW5kUG9zaXRpb25GaWVsZCgpIHtcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmxlZ2VuZFBvc2l0aW9uIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgfVxuXG4gIEBPdXRwdXQoKSBzdWJtaXQ6IEV2ZW50RW1pdHRlcjxQcmludE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgdGl0bGU6IFsnJywgW11dLFxuICAgICAgc3VidGl0bGU6IFsnJywgW11dLFxuICAgICAgY29tbWVudDogWycnLCBbXV0sXG4gICAgICBvdXRwdXRGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBhcGVyRm9ybWF0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBpbWFnZUZvcm1hdDogWyAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHJlc29sdXRpb246IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIG9yaWVudGF0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBsZWdlbmRQb3NpdGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgc2hvd1Byb2plY3Rpb246IGZhbHNlLFxuICAgICAgc2hvd1NjYWxlOiBmYWxzZSxcbiAgICAgIHNob3dMZWdlbmQ6IGZhbHNlLFxuICAgICAgZG9aaXBGaWxlOiBbe2hpZGRlbjogdGhpcy5pc1ByaW50U2VydmljZSB9XVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kb1ppcEZpbGVGaWVsZC5zZXRWYWx1ZShmYWxzZSk7XG4gIH1cblxuICBoYW5kbGVGb3JtU3VibWl0KGRhdGE6IFByaW50T3B0aW9ucywgaXNWYWxpZDogYm9vbGVhbikge1xuICAgIGRhdGEuaXNQcmludFNlcnZpY2UgPSB0aGlzLmlzUHJpbnRTZXJ2aWNlO1xuICAgIGlmIChpc1ZhbGlkKSB7XG4gICAgICB0aGlzLnN1Ym1pdC5lbWl0KGRhdGEpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZUltYWdlU2F2ZVByb3AoKSB7XG4gICAgaWYgKHRoaXMub3V0cHV0Rm9ybWF0RmllbGQudmFsdWUgPT09ICdJbWFnZScpIHtcbiAgICAgIHRoaXMuaXNQcmludFNlcnZpY2UgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1ByaW50U2VydmljZSA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cImlnby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPGlucHV0XG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydpZ28uZ2VvLnByaW50Rm9ybS50aXRsZScgfCB0cmFuc2xhdGV9fVwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdWJ0aXRsZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3snaWdvLmdlby5wcmludEZvcm0uc3VidGl0bGUnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8aW5wdXRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3snaWdvLmdlby5wcmludEZvcm0uY29tbWVudCcgfCB0cmFuc2xhdGV9fVwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInByaW50LXNsaWRlLXRvZ2dsZS1jb250YWluZXIgbWF0LXR5cG9ncmFwaHlcIj5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2hvd1Byb2plY3Rpb25cIlxuICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiPlxuICAgICAgICB7eydpZ28uZ2VvLnByaW50Rm9ybS5zaG93UHJvamVjdGlvbicgfCB0cmFuc2xhdGV9fVxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgY2xhc3M9XCJwcmludC1vcHRpb25cIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaG93U2NhbGVcIlxuICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiPlxuICAgICAgICB7eydpZ28uZ2VvLnByaW50Rm9ybS5zaG93U2NhbGUnIHwgdHJhbnNsYXRlfX1cbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9aaXBGaWxlXCJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdub25lJyA6ICcnXCI+XG4gICAgICAgIHt7J2lnby5nZW8ucHJpbnRGb3JtLmRvWmlwRmlsZScgfCB0cmFuc2xhdGV9fVxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2VuZFBvc2l0aW9uXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbicgfCB0cmFuc2xhdGV9fVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGVnZW5kUG9zaXRpb24gb2YgbGVnZW5kUG9zaXRpb25zIHwga2V5dmFsdWUgXCIgW3ZhbHVlXT1cImxlZ2VuZFBvc2l0aW9uLmtleVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhWyduZXdwYWdlJywgJ25ld2ltYWdlJ10uaW5jbHVkZXMobGVnZW5kUG9zaXRpb24udmFsdWUpXCI+XG4gICAgICAgICAgICB7eydpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbnMuJyArIGxlZ2VuZFBvc2l0aW9uLnZhbHVlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJbJ25ld3BhZ2UnLCAnbmV3aW1hZ2UnXS5pbmNsdWRlcyhsZWdlbmRQb3NpdGlvbi52YWx1ZSlcIj5cbiAgICAgICAgICAgIHt7ICgob3V0cHV0Rm9ybWF0ID09PSAnUGRmJykgPyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld3BhZ2UnIDogXG4gICAgICAgICAgICAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld2ltYWdlJykgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtc2VsZWN0IChzZWxlY3Rpb25DaGFuZ2UpPVwidG9nZ2xlSW1hZ2VTYXZlUHJvcCgpXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3V0cHV0Rm9ybWF0XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydpZ28uZ2VvLnByaW50Rm9ybS5vdXRwdXRGb3JtYXQnIHwgdHJhbnNsYXRlfX1cIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG91dHB1dEZvcm1hdCBvZiBvdXRwdXRGb3JtYXRzIHwga2V5dmFsdWUgXCIgW3ZhbHVlXT1cIm91dHB1dEZvcm1hdC5rZXlcIj5cbiAgICAgICAgICAgIHt7b3V0cHV0Rm9ybWF0LnZhbHVlfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCIgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnYmxvY2snIDogJ25vbmUnXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFwZXJGb3JtYXRcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2lnby5nZW8ucHJpbnRGb3JtLnBhcGVyRm9ybWF0JyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwYXBlckZvcm1hdCBvZiBwYXBlckZvcm1hdHMgfCBrZXl2YWx1ZSBcIiBbdmFsdWVdPVwicGFwZXJGb3JtYXQua2V5XCI+XG4gICAgICAgICAge3soJ2lnby5nZW8ucHJpbnRGb3JtLnBhcGVyRm9ybWF0cy4nICsgcGFwZXJGb3JtYXQudmFsdWUpIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCIgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnbm9uZScgOiAnYmxvY2snXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW1hZ2VGb3JtYXRcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2lnby5nZW8ucHJpbnRGb3JtLmltYWdlRm9ybWF0JyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpbWFnZUZvcm1hdCBvZiBpbWFnZUZvcm1hdHMgfCBrZXl2YWx1ZSBcIiBbdmFsdWVdPVwiaW1hZ2VGb3JtYXQua2V5XCI+XG4gICAgICAgICAge3tpbWFnZUZvcm1hdC52YWx1ZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LXNlbGVjdFxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXNvbHV0aW9uXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydpZ28uZ2VvLnByaW50Rm9ybS5yZXNvbHV0aW9uJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByZXNvbHV0aW9uIG9mIHJlc29sdXRpb25zIHwga2V5dmFsdWUgXCIgW3ZhbHVlXT1cInJlc29sdXRpb24ua2V5XCI+XG4gICAgICAgICAge3tyZXNvbHV0aW9uLnZhbHVlICsgJyBQUEknfX1cbiAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCIgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnYmxvY2snIDogJ25vbmUnXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JpZW50YXRpb25cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2lnby5nZW8ucHJpbnRGb3JtLm9yaWVudGF0aW9uJyB8IHRyYW5zbGF0ZX19XCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcmllbnRhdGlvbiBvZiBvcmllbnRhdGlvbnMgfCBrZXl2YWx1ZSBcIiBbdmFsdWVdPVwib3JpZW50YXRpb24ua2V5XCI+XG4gICAgICAgICAge3soJ2lnby5nZW8ucHJpbnRGb3JtLicgKyBvcmllbnRhdGlvbi52YWx1ZSkgfCB0cmFuc2xhdGV9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImlnby1mb3JtLWJ1dHRvbi1ncm91cCBwcmludC1idXR0b24tdG9wLXBhZGRpbmdcIj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgKGRpc2FibGVkJCB8IGFzeW5jKVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlRm9ybVN1Ym1pdChmb3JtLnZhbHVlLCBmb3JtLnZhbGlkKVwiPlxuICAgICAge3snaWdvLmdlby5wcmludEZvcm0uc2F2ZUJ0bicgfCB0cmFuc2xhdGV9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuPC9mb3JtPlxuIl19
|
|
514
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9wcmludC1mb3JtL3ByaW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQtZm9ybS9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUlMLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBS3hCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1h0QixpQ0FBZ0Q7SUFBQSxZQUUvQjs7O0lBQUEsaUJBQVk7O0lBRm1CLGVBRS9CO0lBRitCLDJKQUUvQjs7OztJQVNqQixpQ0FBbUQ7SUFBQSxZQUVsQzs7O0lBQUEsaUJBQVk7O0lBRnNCLGVBRWxDO0lBRmtDLDhKQUVsQzs7OztJQVNqQixpQ0FBa0Q7SUFBQSxZQUUzQjs7O0lBQUEsaUJBQVk7OztJQUZlLGVBRTNCO0lBRjJCLCtLQUUzQjs7O0lBa0NyQiw2QkFBOEU7SUFDNUUsWUFDRjs7SUFBQSwwQkFBZTs7O0lBRGIsZUFDRjtJQURFLHFIQUNGOzs7SUFFQSw2QkFBNkU7SUFDM0UsWUFFRjs7SUFBQSwwQkFBZTs7O0lBRmIsZUFFRjtJQUZFLGtMQUVGOzs7O0lBUkYsc0NBQW9HO0lBQ2xHLG1HQUVlO0lBRWYsbUdBR2U7SUFDakIsaUJBQWE7OztJQVQwRCw2Q0FBNEI7SUFDbEYsZUFBNkQ7SUFBN0Qsb0ZB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SztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFVBQVU7a0JBRGIsS0FBSztZQVdGLGNBQWM7a0JBRGpCLEtBQUs7WUFXRixLQUFLO2tCQURSLEtBQUs7WUFRRixRQUFRO2tCQURYLEtBQUs7WUFRRixPQUFPO2tCQURWLEtBQUs7WUFRRixjQUFjO2tCQURqQixLQUFLO1lBUUYsU0FBUztrQkFEWixLQUFLO1lBUUYsVUFBVTtrQkFEYixLQUFLO1lBU0YsU0FBUztrQkFEWixLQUFLO1lBNERJLE1BQU07a0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgVmFsaWRhdG9yc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBQcmludE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvcHJpbnQuaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgUHJpbnRPdXRwdXRGb3JtYXQsXHJcbiAgUHJpbnRQYXBlckZvcm1hdCxcclxuICBQcmludE9yaWVudGF0aW9uLFxyXG4gIFByaW50UmVzb2x1dGlvbixcclxuICBQcmludFNhdmVJbWFnZUZvcm1hdCxcclxuICBQcmludExlZ2VuZFBvc2l0aW9uXHJcbn0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LnR5cGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tcHJpbnQtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ByaW50LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ByaW50LWZvcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgb3V0cHV0Rm9ybWF0cyA9IFByaW50T3V0cHV0Rm9ybWF0O1xyXG4gIHB1YmxpYyBwYXBlckZvcm1hdHMgPSBQcmludFBhcGVyRm9ybWF0O1xyXG4gIHB1YmxpYyBvcmllbnRhdGlvbnMgPSBQcmludE9yaWVudGF0aW9uO1xyXG4gIHB1YmxpYyByZXNvbHV0aW9ucyA9IFByaW50UmVzb2x1dGlvbjtcclxuICBwdWJsaWMgaW1hZ2VGb3JtYXRzID0gUHJpbnRTYXZlSW1hZ2VGb3JtYXQ7XHJcbiAgcHVibGljIGxlZ2VuZFBvc2l0aW9ucyA9IFByaW50TGVnZW5kUG9zaXRpb247XHJcbiAgcHVibGljIGlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGltYWdlRm9ybWF0KCk6IFByaW50U2F2ZUltYWdlRm9ybWF0IHtcclxuICAgIHJldHVybiB0aGlzLmltYWdlRm9ybWF0RmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBpbWFnZUZvcm1hdCh2YWx1ZTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQpIHtcclxuICAgIHRoaXMuaW1hZ2VGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFNhdmVJbWFnZUZvcm1hdC5KcGVnLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG91dHB1dEZvcm1hdCgpOiBQcmludE91dHB1dEZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IG91dHB1dEZvcm1hdCh2YWx1ZTogUHJpbnRPdXRwdXRGb3JtYXQpIHtcclxuICAgIHRoaXMub3V0cHV0Rm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRPdXRwdXRGb3JtYXQuUGRmLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBhcGVyRm9ybWF0KCk6IFByaW50UGFwZXJGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMucGFwZXJGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHBhcGVyRm9ybWF0KHZhbHVlOiBQcmludFBhcGVyRm9ybWF0KSB7XHJcbiAgICB0aGlzLnBhcGVyRm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRQYXBlckZvcm1hdC5MZXR0ZXIsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3JpZW50YXRpb24oKTogUHJpbnRPcmllbnRhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbkZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgb3JpZW50YXRpb24odmFsdWU6IFByaW50T3JpZW50YXRpb24pIHtcclxuICAgIHRoaXMub3JpZW50YXRpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXNvbHV0aW9uKCk6IFByaW50UmVzb2x1dGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvbHV0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCByZXNvbHV0aW9uKHZhbHVlOiBQcmludFJlc29sdXRpb24pIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50UmVzb2x1dGlvblsnOTYnXSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBsZWdlbmRQb3NpdGlvbigpOiBQcmludExlZ2VuZFBvc2l0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLmxlZ2VuZFBvc2l0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBsZWdlbmRQb3NpdGlvbih2YWx1ZTogUHJpbnRMZWdlbmRQb3NpdGlvbikge1xyXG4gICAgdGhpcy5sZWdlbmRQb3NpdGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50TGVnZW5kUG9zaXRpb24ubm9uZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGl0bGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGl0bGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnN1YnRpdGxlRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzdWJ0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN1YnRpdGxlRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbW1lbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbW1lbnRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGNvbW1lbnQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb21tZW50RmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dQcm9qZWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd1Byb2plY3Rpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHNob3dQcm9qZWN0aW9uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dQcm9qZWN0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dTY2FsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNob3dTY2FsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd1NjYWxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dTY2FsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBzaG93TGVnZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0xlZ2VuZEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd0xlZ2VuZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaG93TGVnZW5kRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkb1ppcEZpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kb1ppcEZpbGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGRvWmlwRmlsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kb1ppcEZpbGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gIGdldCBvdXRwdXRGb3JtYXRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkub3V0cHV0Rm9ybWF0IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBwYXBlckZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5wYXBlckZvcm1hdCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgaW1hZ2VGb3JtYXRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuaW1hZ2VGb3JtYXQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9yaWVudGF0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLm9yaWVudGF0aW9uIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCByZXNvbHV0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnJlc29sdXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbW1lbnRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuY29tbWVudCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1Byb2plY3Rpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc2hvd1Byb2plY3Rpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dTY2FsZUZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93U2NhbGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dMZWdlbmRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc2hvd0xlZ2VuZCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgZG9aaXBGaWxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmRvWmlwRmlsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgdGl0bGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkudGl0bGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN1YnRpdGxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnN1YnRpdGxlIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBsZWdlbmRQb3NpdGlvbkZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5sZWdlbmRQb3NpdGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8UHJpbnRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbWF4TGVuZ3RoOiBudW1iZXIgPSAxODA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHRpdGxlOiBbJycsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTMwKV1dLFxyXG4gICAgICBzdWJ0aXRsZTogWycnLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldXSxcclxuICAgICAgY29tbWVudDogWycnLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKV1dLFxyXG4gICAgICBvdXRwdXRGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcGFwZXJGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgaW1hZ2VGb3JtYXQ6IFsgJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHJlc29sdXRpb246IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgb3JpZW50YXRpb246IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgbGVnZW5kUG9zaXRpb246IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgc2hvd1Byb2plY3Rpb246IGZhbHNlLFxyXG4gICAgICBzaG93U2NhbGU6IGZhbHNlLFxyXG4gICAgICBzaG93TGVnZW5kOiBmYWxzZSxcclxuICAgICAgZG9aaXBGaWxlOiBbe2hpZGRlbjogdGhpcy5pc1ByaW50U2VydmljZSB9XVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZG9aaXBGaWxlRmllbGQuc2V0VmFsdWUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9ybVN1Ym1pdChkYXRhOiBQcmludE9wdGlvbnMsIGlzVmFsaWQ6IGJvb2xlYW4pIHtcclxuICAgIGRhdGEuaXNQcmludFNlcnZpY2UgPSB0aGlzLmlzUHJpbnRTZXJ2aWNlO1xyXG4gICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgdGhpcy5zdWJtaXQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZUltYWdlU2F2ZVByb3AoKSB7XHJcbiAgICBpZiAodGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZSA9PT0gJ0ltYWdlJykge1xyXG4gICAgICB0aGlzLmlzUHJpbnRTZXJ2aWNlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29tbWVudEZpZWxkLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICB0aGlzLmNvbW1lbnRGaWVsZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZUNvbW1lbnRMZW5ndGgoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMucGFwZXJGb3JtYXQpIHtcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkEwOlxyXG4gICAgICAgIC8vIEEwLCBsYW5kc2NhcGUsIGxlbmd0aCA5MDAgfCBBMCwgcG9ydHJhaXQsIGNvbW1lbnQgbGVuZ3RoOiAgNjAwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPSAodGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUpID8gOTAwIDogNjAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTE6XHJcbiAgICAgICAgLy8gQTEsIGxhbmRzY2FwZSwgbGVuZ3RoIDYwMCB8IEExLCBwb3J0cmFpdCwgbGVuZ3RoIDQwMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9ICh0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSkgPyA2MDAgOiA0MDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BMjpcclxuICAgICAgICAvLyBBMiwgbGFuZHNjYXBlLCBsZW5ndGggNDAwIHwgQTIsIHBvcnRyYWl0LCBsZW5ndGggMzAwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID0gKHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlKSA/IDQwMCA6IDMwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkEzOlxyXG4gICAgICAgIC8vIEEzLCBsYW5kc2NhcGUsIGxlbmd0aCAzMDAgfCBBMywgcG9ydHJhaXQsIGxlbmd0aCAyMDA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPSAodGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUpID8gMzAwIDogMjAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTQ6XHJcbiAgICAgICAgLy8gQTQsIGxhbmRzY2FwZSBsZW5ndGggMjAwIHwgQTQsIHBvcnRyYWl0IGxlbmd0aCAxMjA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPSAodGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUpID8gMjAwIDogMTAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTU6XHJcbiAgICAgICAgLy8gQTUsIGxhbmRzY2FwZSBsZW5ndGggMTIwIHwgQTUsIHBvcnRyYWl0IGxlbmd0aCA4MDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9ICh0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSkgPyAxMjAgOiA4MDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkxldHRlcjpcclxuICAgICAgICAvLyBsZXR0cmUsIGxhbmRzY2FwZSwgMTgwIHwgbGV0dHJlLCBwb3J0cmFpdCwgMTQwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPSAodGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUpID8gMTgwIDogMTQwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIC8vIGxlZ2FsLCBsYW5kc2NhcGUsIDIwMCB8IGxlZ2FsLCBwb3J0cmFpdCwgMTQwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPSAodGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUpID8gMjAwIDogMTQwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29tbWVudEZpZWxkLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKV3igIspO1xyXG4gICAgdGhpcy5jb21tZW50RmllbGQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImlnby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydpZ28uZ2VvLnByaW50Rm9ybS50aXRsZScgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ0aXRsZUZpZWxkLmVycm9ycz8ubWF4bGVuZ3RoXCI+e3snaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5tYXhMZW5ndGgnIHwgdHJhbnNsYXRlOiB7IFxyXG4gICAgICAgICAgY29sdW1uOiAnaWdvLmdlby5wcmludEZvcm0udGl0bGUnIHwgdHJhbnNsYXRlLCBcclxuICAgICAgICAgIHZhbHVlOiAxMzAgfSB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN1YnRpdGxlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2lnby5nZW8ucHJpbnRGb3JtLnN1YnRpdGxlJyB8IHRyYW5zbGF0ZX19XCI+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInN1YnRpdGxlRmllbGQuZXJyb3JzPy5tYXhsZW5ndGhcIj57eydpZ28uZ2VvLmZvcm1WYWxpZGF0aW9uLm1heExlbmd0aCcgfCB0cmFuc2xhdGU6IHsgXHJcbiAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUsIFxyXG4gICAgICAgICAgdmFsdWU6IDEyMCB9IH19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZX19XCI+XHJcbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbW1lbnRGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7J2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJyB8IHRyYW5zbGF0ZTogeyBcclxuICAgICAgICAgIGNvbHVtbjogJ2lnby5nZW8ucHJpbnRGb3JtLmNvbW1lbnQnIHwgdHJhbnNsYXRlLCBcclxuICAgICAgICAgIHZhbHVlOiBtYXhMZW5ndGggfSB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcmludC1zbGlkZS10b2dnbGUtY29udGFpbmVyIG1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJwcmludC1vcHRpb25cIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNob3dQcm9qZWN0aW9uXCJcclxuICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiPlxyXG4gICAgICAgIHt7J2lnby5nZW8ucHJpbnRGb3JtLnNob3dQcm9qZWN0aW9uJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgICAgICBjbGFzcz1cInByaW50LW9wdGlvblwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2hvd1NjYWxlXCJcclxuICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiPlxyXG4gICAgICAgIHt7J2lnby5nZW8ucHJpbnRGb3JtLnNob3dTY2FsZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJwcmludC1vcHRpb25cIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRvWmlwRmlsZVwiXHJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ25vbmUnIDogJydcIj5cclxuICAgICAgICB7eydpZ28uZ2VvLnByaW50Rm9ybS5kb1ppcEZpbGUnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGVnZW5kUG9zaXRpb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3snaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb24nIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbGVnZW5kUG9zaXRpb24gb2YgbGVnZW5kUG9zaXRpb25zIHwga2V5dmFsdWUgXCIgW3ZhbHVlXT1cImxlZ2VuZFBvc2l0aW9uLmtleVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFbJ25ld3BhZ2UnLCAnbmV3aW1hZ2UnXS5pbmNsdWRlcyhsZWdlbmRQb3NpdGlvbi52YWx1ZSlcIj5cclxuICAgICAgICAgICAge3snaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLicgKyBsZWdlbmRQb3NpdGlvbi52YWx1ZSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiWyduZXdwYWdlJywgJ25ld2ltYWdlJ10uaW5jbHVkZXMobGVnZW5kUG9zaXRpb24udmFsdWUpXCI+XHJcbiAgICAgICAgICAgIHt7ICgob3V0cHV0Rm9ybWF0ID09PSAnUGRmJykgPyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld3BhZ2UnIDogXHJcbiAgICAgICAgICAgICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbnMubmV3aW1hZ2UnKSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LXNlbGVjdCAoc2VsZWN0aW9uQ2hhbmdlKT1cInRvZ2dsZUltYWdlU2F2ZVByb3AoKVwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3V0cHV0Rm9ybWF0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2lnby5nZW8ucHJpbnRGb3JtLm91dHB1dEZvcm1hdCcgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvdXRwdXRGb3JtYXQgb2Ygb3V0cHV0Rm9ybWF0cyB8IGtleXZhbHVlIFwiIFt2YWx1ZV09XCJvdXRwdXRGb3JtYXQua2V5XCI+XHJcbiAgICAgICAgICAgIHt7b3V0cHV0Rm9ybWF0LnZhbHVlfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCIgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnYmxvY2snIDogJ25vbmUnXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtc2VsZWN0IChzZWxlY3Rpb25DaGFuZ2UpPVwiY2hhbmdlQ29tbWVudExlbmd0aCgpXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwYXBlckZvcm1hdFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdCcgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwYXBlckZvcm1hdCBvZiBwYXBlckZvcm1hdHMgfCBrZXl2YWx1ZSBcIiBbdmFsdWVdPVwicGFwZXJGb3JtYXQua2V5XCI+XHJcbiAgICAgICAgICB7eygnaWdvLmdlby5wcmludEZvcm0ucGFwZXJGb3JtYXRzLicgKyBwYXBlckZvcm1hdC52YWx1ZSkgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIiBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdub25lJyA6ICdibG9jaydcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZUZvcm1hdFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eydpZ28uZ2VvLnByaW50Rm9ybS5pbWFnZUZvcm1hdCcgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpbWFnZUZvcm1hdCBvZiBpbWFnZUZvcm1hdHMgfCBrZXl2YWx1ZSBcIiBbdmFsdWVdPVwiaW1hZ2VGb3JtYXQua2V5XCI+XHJcbiAgICAgICAgICB7e2ltYWdlRm9ybWF0LnZhbHVlfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc29sdXRpb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3snaWdvLmdlby5wcmludEZvcm0ucmVzb2x1dGlvbicgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByZXNvbHV0aW9uIG9mIHJlc29sdXRpb25zIHwga2V5dmFsdWUgXCIgW3ZhbHVlXT1cInJlc29sdXRpb24ua2V5XCI+XHJcbiAgICAgICAgICB7e3Jlc29sdXRpb24udmFsdWUgKyAnIFBQSSd9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIiBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdibG9jaycgOiAnbm9uZSdcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1zZWxlY3QgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VDb21tZW50TGVuZ3RoKClcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yaWVudGF0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7J2lnby5nZW8ucHJpbnRGb3JtLm9yaWVudGF0aW9uJyB8IHRyYW5zbGF0ZX19XCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9yaWVudGF0aW9uIG9mIG9yaWVudGF0aW9ucyB8IGtleXZhbHVlIFwiIFt2YWx1ZV09XCJvcmllbnRhdGlvbi5rZXlcIj5cclxuICAgICAgICAgIHt7KCdpZ28uZ2VvLnByaW50Rm9ybS4nICsgb3JpZW50YXRpb24udmFsdWUpIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXAgcHJpbnQtYnV0dG9uLXRvcC1wYWRkaW5nXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgKGRpc2FibGVkJCB8IGFzeW5jKVwiXHJcbiAgICAgIChjbGljayk9XCJoYW5kbGVGb3JtU3VibWl0KGZvcm0udmFsdWUsIGZvcm0udmFsaWQpXCI+XHJcbiAgICAgIHt7J2lnby5nZW8ucHJpbnRGb3JtLnNhdmVCdG4nIHwgdHJhbnNsYXRlfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9mb3JtPlxyXG4iXX0=
|