{"version":3,"sources":["webpack:///./node_modules/ol/events/EventType.js","webpack:///./node_modules/ol/tilegrid/common.js","webpack:///./node_modules/ol/extent/Relationship.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/ol/events/condition.js","webpack:///./node_modules/ol/render/EventType.js","webpack:///./node_modules/ol/Overlay.js","webpack:///./node_modules/ol/tilegrid.js","webpack:///./node_modules/ol/dom.js","webpack:///./node_modules/ol/geom/flat/interiorpoint.js","webpack:///./node_modules/ol/extent.js","webpack:///./node_modules/ol/renderer/canvas/common.js","webpack:///./node_modules/ol/MapBrowserEventType.js","webpack:///./src/assets/images/maps/night_mode.jpg","webpack:///./node_modules/ol/render/Feature.js","webpack:///./src/components/Maps/MapSettings.vue?7611","webpack:///./node_modules/ol/geom/flat/straightchunk.js","webpack:///./node_modules/ol/render/canvas/TextBuilder.js","webpack:///./node_modules/ol/events/Target.js","webpack:///./src/components/Maps/RoutesLegends.vue?67f2","webpack:///./node_modules/ol/util.js","webpack:///./src/components/quick-service/OnDemandHistory.vue?e9bd","webpack:///./node_modules/ol/renderer/Layer.js","webpack:///./node_modules/ol/renderer/canvas/Layer.js","webpack:///./src/assets/images/markers/phones_red.png","webpack:///./node_modules/ol/CollectionEventType.js","webpack:///./src/components/Maps/MapViewSidebar.vue?2d20","webpack:///./src/components/Maps/ExportSelected.vue?5c94","webpack:///./node_modules/ol/layer/Layer.js","webpack:///./node_modules/ol/geom/flat/simplify.js","webpack:///./node_modules/ol/events.js","webpack:///./node_modules/ol/control/Attribution.js","webpack:///./node_modules/ol/control/Rotate.js","webpack:///./node_modules/ol/control/Zoom.js","webpack:///./node_modules/ol/control.js","webpack:///./src/models/zone.js","webpack:///./node_modules/ol/proj/epsg3857.js","webpack:///./node_modules/ol/proj/epsg4326.js","webpack:///./node_modules/ol/proj/projections.js","webpack:///./node_modules/ol/proj/transforms.js","webpack:///./node_modules/ol/proj.js","webpack:///./node_modules/rbush/rbush.min.js","webpack:///./node_modules/ol/geom/flat/contains.js","webpack:///./node_modules/ol/style/TextPlacement.js","webpack:///./node_modules/ol/tilecoord.js","webpack:///./src/assets/images/pages/graphic-6.png","webpack:///./node_modules/ol/interaction/Select.js","webpack:///./src/models/Notification.js","webpack:///./src/components/Maps/Georreferencer.vue?96be","webpack:///./node_modules/ol/reproj.js","webpack:///./node_modules/ol/reproj/Triangulation.js","webpack:///./node_modules/ol/reproj/Tile.js","webpack:///./node_modules/ol/renderer/vector.js","webpack:///./node_modules/ol/render/Event.js","webpack:///./node_modules/ol/size.js","webpack:///./node_modules/ol/Observable.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/ol/obj.js","webpack:///./node_modules/ol/control/Control.js","webpack:///./node_modules/ol/render/canvas/Immediate.js","webpack:///./node_modules/ol/render/canvas/hitdetect.js","webpack:///./node_modules/ol/interaction/DoubleClickZoom.js","webpack:///./node_modules/ol/interaction/DragPan.js","webpack:///./node_modules/ol/interaction/DragRotate.js","webpack:///./node_modules/ol/render/Box.js","webpack:///./node_modules/ol/interaction/DragBox.js","webpack:///./node_modules/ol/interaction/DragZoom.js","webpack:///./node_modules/ol/events/KeyCode.js","webpack:///./node_modules/ol/interaction/KeyboardPan.js","webpack:///./node_modules/ol/interaction/KeyboardZoom.js","webpack:///./node_modules/ol/Kinetic.js","webpack:///./node_modules/ol/interaction/MouseWheelZoom.js","webpack:///./node_modules/ol/interaction/PinchRotate.js","webpack:///./node_modules/ol/interaction/PinchZoom.js","webpack:///./node_modules/ol/interaction.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./src/components/Maps/Maps.vue?8a01","webpack:///./src/components/Maps/MapViewSidebar.vue?275a","webpack:///./src/components/group/GroupListSelector.vue?fb10","webpack:///src/components/group/GroupListSelector.vue","webpack:///./src/components/group/GroupListSelector.vue?5950","webpack:///./src/components/group/GroupListSelector.vue","webpack:///./src/components/group/GroupSelect.vue?40fe","webpack:///src/components/group/GroupSelect.vue","webpack:///./src/components/group/GroupSelect.vue?2f6a","webpack:///./src/components/group/GroupSelect.vue","webpack:///./src/components/Maps/Loading.vue?a020","webpack:///src/components/Maps/Loading.vue","webpack:///./src/components/Maps/Loading.vue?641d","webpack:///./src/components/Maps/Loading.vue","webpack:///./src/components/Maps/CardTransmision.vue?d1d5","webpack:///./src/models/Tracking.js","webpack:///./src/components/Maps/GeofenceZone.vue?7dfc","webpack:///./src/utils/plugins.js","webpack:///src/components/Maps/GeofenceZone.vue","webpack:///./src/components/Maps/GeofenceZone.vue?02d8","webpack:///./src/components/Maps/GeofenceZone.vue","webpack:///./src/components/Maps/TrackingInfo.vue?2428","webpack:///src/components/Maps/TrackingInfo.vue","webpack:///./src/components/Maps/TrackingInfo.vue?f018","webpack:///./src/components/Maps/TrackingInfo.vue","webpack:///src/components/Maps/CardTransmision.vue","webpack:///./src/components/Maps/CardTransmision.vue?5ecb","webpack:///./src/components/Maps/CardTransmision.vue","webpack:///./src/components/Maps/ListTransmision.vue?6f34","webpack:///src/components/Maps/ListTransmision.vue","webpack:///./src/components/Maps/ListTransmision.vue?c965","webpack:///./src/components/Maps/ListTransmision.vue","webpack:///./src/components/Maps/ListItemTransmision.vue?d35e","webpack:///src/components/Maps/ListItemTransmision.vue","webpack:///./src/components/Maps/ListItemTransmision.vue?ee2a","webpack:///./src/components/Maps/ListItemTransmision.vue","webpack:///./src/components/Maps/ExportSelected.vue?22b0","webpack:///src/components/Maps/ExportSelected.vue","webpack:///./src/components/Maps/ExportSelected.vue?18bd","webpack:///./src/components/Maps/ExportSelected.vue","webpack:///./src/components/Maps/RoutesConfig.vue?d4fd","webpack:///src/components/Maps/RoutesConfig.vue","webpack:///./src/components/Maps/RoutesConfig.vue?4461","webpack:///./src/components/Maps/RoutesConfig.vue","webpack:///./src/views/components/vuesax/button/Button.vue?b632","webpack:///./src/views/components/vuesax/button/ButtonFilled.vue?a677","webpack:///./src/views/components/vuesax/button/ButtonFilled.vue","webpack:///./src/views/components/vuesax/button/ButtonBorder.vue?0981","webpack:///./src/views/components/vuesax/button/ButtonBorder.vue","webpack:///./src/views/components/vuesax/button/ButtonFlat.vue?541c","webpack:///./src/views/components/vuesax/button/ButtonFlat.vue","webpack:///./src/views/components/vuesax/button/ButtonLineDown.vue?79fd","webpack:///./src/views/components/vuesax/button/ButtonLineDown.vue","webpack:///./src/views/components/vuesax/button/ButtonGradient.vue?da52","webpack:///./src/views/components/vuesax/button/ButtonGradient.vue","webpack:///./src/views/components/vuesax/button/ButtonRelief.vue?3d6a","webpack:///./src/views/components/vuesax/button/ButtonRelief.vue","webpack:///./src/views/components/vuesax/button/ButtonColor.vue?5f9c","webpack:///src/views/components/vuesax/button/ButtonColor.vue","webpack:///./src/views/components/vuesax/button/ButtonColor.vue?df80","webpack:///./src/views/components/vuesax/button/ButtonColor.vue","webpack:///./src/views/components/vuesax/button/ButtonTextColor.vue?e50e","webpack:///./src/views/components/vuesax/button/ButtonTextColor.vue","webpack:///./src/views/components/vuesax/button/ButtonIcon.vue?f748","webpack:///./src/views/components/vuesax/button/ButtonIcon.vue","webpack:///./src/views/components/vuesax/button/ButtonIconOnly.vue?017e","webpack:///./src/views/components/vuesax/button/ButtonIconOnly.vue","webpack:///./src/views/components/vuesax/button/ButtonSize.vue?1d2b","webpack:///./src/views/components/vuesax/button/ButtonSize.vue","webpack:///./src/views/components/vuesax/button/ButtonRouter.vue?fafd","webpack:///./src/views/components/vuesax/button/ButtonRouter.vue","webpack:///./src/views/components/vuesax/button/ButtonLink.vue?d256","webpack:///./src/views/components/vuesax/button/ButtonLink.vue","webpack:///src/views/components/vuesax/button/Button.vue","webpack:///./src/views/components/vuesax/button/Button.vue?a5a6","webpack:///./src/views/components/vuesax/button/Button.vue","webpack:///./src/components/Maps/ExportTransmission.vue?a391","webpack:///src/components/Maps/ExportTransmission.vue","webpack:///./src/components/Maps/ExportTransmission.vue?b278","webpack:///./src/components/Maps/ExportTransmission.vue","webpack:///src/components/Maps/MapViewSidebar.vue","webpack:///./src/components/Maps/MapViewSidebar.vue?5977","webpack:///./src/components/Maps/MapViewSidebar.vue","webpack:///./src/components/Maps/RoutesLegends.vue?abe0","webpack:///src/components/Maps/RoutesLegends.vue","webpack:///./src/components/Maps/RoutesLegends.vue?4f0b","webpack:///./src/components/Maps/RoutesLegends.vue","webpack:///./src/components/Maps/HereMap.vue?f986","webpack:///src/components/Maps/HereMap.vue","webpack:///./src/components/Maps/HereMap.vue?1418","webpack:///./src/components/Maps/HereMap.vue","webpack:///src/components/Maps/Maps.vue","webpack:///./src/components/Maps/Maps.vue?af83","webpack:///./src/components/Maps/Maps.vue","webpack:///./node_modules/ol/style/IconImageCache.js","webpack:///./node_modules/ol/renderer/canvas/VectorLayer.js","webpack:///./node_modules/ol/layer/Vector.js","webpack:///./src/assets/images/markers/event-cancelado.png","webpack:///./src/components/quick-service/OnDemandHistory.vue?3ad3","webpack:///./src/components/quick-service/OnDemandDistance.vue?4348","webpack:///src/components/quick-service/OnDemandDistance.vue","webpack:///./src/components/quick-service/OnDemandDistance.vue?8231","webpack:///./src/components/quick-service/OnDemandDistance.vue","webpack:///src/components/quick-service/OnDemandHistory.vue","webpack:///./src/components/quick-service/OnDemandHistory.vue?0c6a","webpack:///./src/components/quick-service/OnDemandHistory.vue","webpack:///./node_modules/ol/interaction/Pointer.js","webpack:///./node_modules/ol/interaction/Interaction.js","webpack:///./src/components/Maps/InfowindowVisitPoint.vue?9160","webpack:///src/components/Maps/InfowindowVisitPoint.vue","webpack:///./src/components/Maps/InfowindowVisitPoint.vue?26d0","webpack:///./src/components/Maps/InfowindowVisitPoint.vue","webpack:///./src/assets/images/markers/event-en_proceso.png","webpack:///./src/components/quick-service/MapView.vue?15e3","webpack:///./node_modules/ol/geom/MultiLineString.js","webpack:///./node_modules/ol/layer/BaseTile.js","webpack:///./node_modules/ol/layer/Tile.js","webpack:///./node_modules/ol/ViewHint.js","webpack:///./node_modules/ol/Feature.js","webpack:///./node_modules/ol/geom/flat/reverse.js","webpack:///./node_modules/ol/geom/flat/orient.js","webpack:///./src/components/Maps/MapSettings.vue?209c","webpack:///src/components/Maps/MapSettings.vue","webpack:///./src/components/Maps/MapSettings.vue?551d","webpack:///./src/components/Maps/MapSettings.vue","webpack:///./node_modules/ol/MapBrowserEvent.js","webpack:///./node_modules/ol/geom/GeometryLayout.js","webpack:///./node_modules/ol/source/TileEventType.js","webpack:///./node_modules/ol/source/Tile.js","webpack:///./node_modules/ol/tileurlfunction.js","webpack:///./node_modules/ol/source/UrlTile.js","webpack:///./node_modules/ol/layer/Base.js","webpack:///./node_modules/ol/functions.js","webpack:///./node_modules/ol/structs/RBush.js","webpack:///./node_modules/ol/source/VectorEventType.js","webpack:///./node_modules/ol/loadingstrategy.js","webpack:///./node_modules/ol/source/Vector.js","webpack:///./node_modules/ol/MapEventType.js","webpack:///./node_modules/ol/geom/flat/length.js","webpack:///./node_modules/@carto/carto.js/carto.js","webpack:///./node_modules/ol/geom/LinearRing.js","webpack:///./node_modules/ol/geom/Polygon.js","webpack:///./node_modules/ol/xml.js","webpack:///./node_modules/ol/format/XMLFeature.js","webpack:///./node_modules/ol/format/xsd.js","webpack:///./node_modules/ol/format/KML.js","webpack:///./node_modules/ol/source/TileImage.js","webpack:///./node_modules/ol/source/XYZ.js","webpack:///./node_modules/ol/source/OSM.js","webpack:///./src/core/plugins/ol/TileLayer.js","webpack:///./src/core/plugins/ol/OlAnuket.js","webpack:///./node_modules/ol/color.js","webpack:///./node_modules/ol/Tile.js","webpack:///./node_modules/ol/renderer/Map.js","webpack:///./node_modules/ol/renderer/Composite.js","webpack:///./node_modules/ol/layer/Group.js","webpack:///./node_modules/ol/pointer/EventType.js","webpack:///./node_modules/ol/MapBrowserEventHandler.js","webpack:///./node_modules/ol/structs/PriorityQueue.js","webpack:///./node_modules/ol/TileQueue.js","webpack:///./node_modules/ol/PluggableMap.js","webpack:///./node_modules/ol/Map.js","webpack:///./node_modules/ol/has.js","webpack:///./node_modules/ol/render/canvas/Instruction.js","webpack:///./node_modules/ol/ImageBase.js","webpack:///./node_modules/ol/Image.js","webpack:///./node_modules/ol/style/Style.js","webpack:///./node_modules/ol/style/IconImage.js","webpack:///./node_modules/ol/style/Icon.js","webpack:///./node_modules/ol/featureloader.js","webpack:///./node_modules/ol/MapEvent.js","webpack:///./node_modules/ol/tilegrid/TileGrid.js","webpack:///./node_modules/ol/VectorTile.js","webpack:///./node_modules/ol/VectorRenderTile.js","webpack:///./node_modules/ol/source/VectorTile.js","webpack:///./node_modules/ol/sphere.js","webpack:///./node_modules/pbf/index.js","webpack:///./node_modules/ol/geom/LineString.js","webpack:///./node_modules/ol/ObjectEventType.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/es6.number.is-integer.js","webpack:///./src/components/Maps/Loading.vue?473f","webpack:///./node_modules/ol/ImageTile.js","webpack:///./node_modules/ol/math.js","webpack:///./node_modules/ol/style/Text.js","webpack:///./node_modules/ol/style/IconAnchorUnits.js","webpack:///./src/components/Maps/Georreferencer.vue?45a7","webpack:///src/components/Maps/Georreferencer.vue","webpack:///./src/components/Maps/Georreferencer.vue?9e36","webpack:///./src/components/Maps/Georreferencer.vue","webpack:///./node_modules/ol/AssertionError.js","webpack:///./node_modules/ol/style/Fill.js","webpack:///./node_modules/ol/style/Stroke.js","webpack:///./node_modules/ol/ImageState.js","webpack:///./src/assets/images/markers/event-reprogramado.png","webpack:///./node_modules/ol/geom/MultiPolygon.js","webpack:///./src/assets/images/maps/terrain.jpg","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./src/components/Maps/mapMethods.js","webpack:///./node_modules/ol/rotationconstraint.js","webpack:///./node_modules/ol/structs/LRUCache.js","webpack:///./node_modules/ol/TileCache.js","webpack:///./node_modules/ol/geom/Geometry.js","webpack:///./node_modules/ol/geom/flat/center.js","webpack:///./src/components/quick-service/MapView.vue?7325","webpack:///src/components/quick-service/MapView.vue","webpack:///./src/components/quick-service/MapView.vue?2811","webpack:///./src/components/quick-service/MapView.vue","webpack:///./node_modules/ol/asserts.js","webpack:///./src/store/schedule/moduleScheduleState.js","webpack:///./src/store/schedule/moduleScheduleMutations.js","webpack:///./src/store/schedule/moduleScheduleActions.js","webpack:///./src/store/schedule/moduleScheduleGetters.js","webpack:///./src/store/schedule/moduleSchedule.js","webpack:///./src/models/VisitPoint.js","webpack:///./node_modules/ol/geom/flat/closest.js","webpack:///./node_modules/ol/layer/VectorTileRenderType.js","webpack:///./node_modules/ol/renderer/canvas/VectorTileLayer.js","webpack:///./node_modules/ol/layer/VectorTile.js","webpack:///./src/components/Maps/Maps.vue?9b7c","webpack:///./node_modules/ol/geom/MultiPoint.js","webpack:///./node_modules/ol/geom/SimpleGeometry.js","webpack:///./node_modules/core-js/modules/_is-integer.js","webpack:///./node_modules/vue-perfect-scrollbar/dist/index.js","webpack:///./node_modules/ol/array.js","webpack:///./node_modules/ol/layer/TileProperty.js","webpack:///./node_modules/ol/ViewProperty.js","webpack:///./node_modules/ol/centerconstraint.js","webpack:///./node_modules/ol/resolutionconstraint.js","webpack:///./node_modules/ol/View.js","webpack:///./node_modules/ol/format/JSONFeature.js","webpack:///./node_modules/ol/format/GeoJSON.js","webpack:///./node_modules/ol/reproj/common.js","webpack:///./node_modules/ol/coordinate.js","webpack:///./node_modules/ol/transform.js","webpack:///./node_modules/core-js/modules/es7.promise.try.js","webpack:///./node_modules/ol/style/Image.js","webpack:///./node_modules/ol/geom/flat/deflate.js","webpack:///./node_modules/ol/interaction/Draw.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/ol/TileState.js","webpack:///./src/assets/images/pages/rutify/1-03.png","webpack:///./node_modules/ol/layer/BaseVector.js","webpack:///./src/components/Maps/CardTransmision.vue?f281","webpack:///./node_modules/ol/string.js","webpack:///./node_modules/ol/geom/flat/interpolate.js","webpack:///./node_modules/ol/geom/flat/area.js","webpack:///./node_modules/ol/format/Feature.js","webpack:///./node_modules/ol/renderer/canvas/TileLayer.js","webpack:///./src/components/Maps/themes lazy ^\\.\\/.*$ namespace object","webpack:///./node_modules/ol/geom/flat/inflate.js","webpack:///./node_modules/ol/geom/flat/transform.js","webpack:///./node_modules/ol/interaction/Property.js","webpack:///./node_modules/ol/control/FullScreen.js","webpack:///./node_modules/ol/geom/flat/intersectsextent.js","webpack:///./src/components/Maps/ListItemTransmision.vue?e1d4","webpack:///./src/assets/images/markers/phones_success.png","webpack:///./src/assets/images/markers/event-finalizado.png","webpack:///./node_modules/ol/easing.js","webpack:///./src/assets/images/maps/satellite.jpg","webpack:///./node_modules/ol/css.js","webpack:///./node_modules/ol/style/RegularShape.js","webpack:///./node_modules/ol/style/Circle.js","webpack:///./src/components/Maps/TrackingInfo.vue?e440","webpack:///./node_modules/ol/events/Event.js","webpack:///./node_modules/ol/interaction/Translate.js","webpack:///./node_modules/ol/style/IconOrigin.js","webpack:///./node_modules/ol/geom/GeometryCollection.js","webpack:///./src/components/Maps/Infowindow.vue?15f7","webpack:///src/components/Maps/Infowindow.vue","webpack:///./src/components/Maps/Infowindow.vue?7afd","webpack:///./src/components/Maps/Infowindow.vue","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./src/core/components/ol/OlMap.vue?ee5e","webpack:///src/core/components/ol/OlMap.vue","webpack:///./src/core/components/ol/OlMap.vue?9854","webpack:///./src/core/components/ol/OlMap.vue","webpack:///./node_modules/ol/Disposable.js","webpack:///./src/helpers/commons.js","webpack:///./node_modules/ol/render/canvas/ImageBuilder.js","webpack:///./node_modules/ol/render/canvas/LineStringBuilder.js","webpack:///./node_modules/ol/render/canvas/PolygonBuilder.js","webpack:///./node_modules/ol/render/canvas/BuilderGroup.js","webpack:///./node_modules/ol/TileRange.js","webpack:///./src/assets/images/maps/traffic.png","webpack:///./node_modules/ol/render/canvas/Builder.js","webpack:///./node_modules/ol/render/canvas.js","webpack:///./src/assets/images/markers/event-agendado.png","webpack:///./src/constants/cartodb.js","webpack:///./node_modules/ol/layer/Property.js","webpack:///./node_modules/ol/Object.js","webpack:///./node_modules/ol/Collection.js","webpack:///./node_modules/ol/MapProperty.js","webpack:///./node_modules/ol/geom/flat/textpath.js","webpack:///./node_modules/ol/render/canvas/Executor.js","webpack:///./node_modules/ol/render/canvas/ExecutorGroup.js","webpack:///./node_modules/ol/colorlike.js","webpack:///./node_modules/core-js/fn/promise.js","webpack:///./node_modules/core-js/modules/es6.number.is-nan.js","webpack:///./src/components/Maps/GeofenceZone.vue?91bd","webpack:///./node_modules/ol/geom/Point.js","webpack:///./node_modules/ol/proj/Projection.js","webpack:///./src/store/group/moduleGroupState.js","webpack:///./src/store/group/moduleGroupMutations.js","webpack:///./src/store/group/moduleGroupActions.js","webpack:///./src/store/group/moduleGroupGetters.js","webpack:///./src/store/group/moduleGroup.js","webpack:///./node_modules/ol/render/VectorContext.js","webpack:///./src/assets/images/maps/roadmap.jpg","webpack:///./node_modules/ol/geom/Circle.js","webpack:///./node_modules/ol-popup/dist/ol-popup.js","webpack:///./src/components/Maps/bridgeInstance.js","webpack:///./node_modules/ol/proj/Units.js","webpack:///./node_modules/ol/geom/flat/segments.js","webpack:///./node_modules/ol/format/MVT.js","webpack:///./src/helpers/cartoDB.js","webpack:///./node_modules/ol/source/Source.js"],"names":["CHANGE","ERROR","BLUR","CLEAR","CONTEXTMENU","CLICK","DBLCLICK","DRAGENTER","DRAGOVER","DROP","FOCUS","KEYDOWN","KEYPRESS","LOAD","RESIZE","TOUCHMOVE","WHEEL","DEFAULT_MAX_ZOOM","DEFAULT_TILE_SIZE","UNKNOWN","INTERSECTING","ABOVE","RIGHT","BELOW","LEFT","classof","test","Object","prototype","this","all","var_args","conditions","arguments","event","pass","i","ii","length","altShiftKeysOnly","mapBrowserEvent","originalEvent","altKey","metaKey","ctrlKey","shiftKey","focus","targetElement","map","getTargetElement","activeElement","getOwnerDocument","contains","focusWithTabindex","hasAttribute","always","mouseActionButton","button","never","singleClick","type","SINGLECLICK","noModifierKeys","shiftKeyOnly","targetNotEditable","tagName","target","isContentEditable","mouseOnly","pointerEvent","undefined","pointerType","primaryAction","isPrimary","PRERENDER","POSTRENDER","PRECOMPOSE","POSTCOMPOSE","RENDERCOMPLETE","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","TypeError","String","__","constructor","create","Property","ELEMENT","MAP","OFFSET","POSITION","POSITIONING","Overlay","_super","options","_this","on","once","un","id","insertFirst","stopEvent","element","document","createElement","className","style","position","pointerEvents","autoPan","animation","autoPanAnimation","margin","autoPanMargin","rendered","transform_","visible","mapPostrenderListenerKey","addChangeListener","handleElementChanged","handleMapChanged","handleOffsetChanged","handlePositionChanged","handlePositioningChanged","setElement","setOffset","offset","setPositioning","positioning","setPosition","getElement","get","getId","getMap","getOffset","getPosition","getPositioning","appendChild","render","updatePixelPosition","container","getOverlayContainerStopEvent","getOverlayContainer","insertBefore","childNodes","performAutoPan","set","setMap","panIntoView","opt_panIntoViewOptions","mapRect","getRect","getSize","overlayRect","panIntoViewOptions","myMargin","offsetLeft","offsetRight","offsetTop","offsetBottom","delta","Math","abs","center","getView","getCenterInternal","centerPx","getPixelFromCoordinateInternal","newCenterPx","panOptions","animateInternal","getCoordinateFromPixelInternal","duration","easing","size","box","getBoundingClientRect","offsetX","left","window","pageXOffset","offsetY","top","pageYOffset","setVisible","display","isRendered","pixel","getPixelFromCoordinate","mapSize","updateRenderedPosition","x","round","y","posX","posY","transform","concat","msTransform","getOptions","getForProjection","projection","tileGrid","getDefaultTileGrid","createForProjection","setDefaultTileGrid","wrapX","tileCoord","z","getTileCoordCenter","projectionExtent","extentFromProjection","worldWidth","worldsAway","ceil","getTileCoordForCoordAndZ","createForExtent","extent","opt_maxZoom","opt_tileSize","opt_corner","corner","resolutions","resolutionsFromExtent","origin","tileSize","createXYZ","opt_options","xyzOptions","getExtent","gridOptions","minZoom","maxZoom","maxResolution","opt_maxResolution","height","width","max","pow","half","DEGREES","getMetersPerUnit","createCanvasContext2D","opt_width","opt_height","opt_canvasPool","opt_Context2DSettings","canvas","shift","OffscreenCanvas","getContext","releaseCanvas","context","clearRect","outerWidth","offsetWidth","getComputedStyle","parseInt","marginLeft","marginRight","outerHeight","offsetHeight","marginTop","marginBottom","replaceNode","newNode","oldNode","parent","parentNode","replaceChild","removeNode","node","removeChild","removeChildren","lastChild","replaceChildren","children","oldChildren","oldChild","newChild","getInteriorPointOfArray","flatCoordinates","ends","stride","flatCenters","flatCentersOffset","opt_dest","x1","x2","y1","y2","intersections","r","rr","end","push","pointX","NaN","maxSegmentLength","Infinity","sort","segmentLength","isNaN","getInteriorPointsOfMultiArray","endss","interiorPoints","boundingExtent","coordinates","createEmpty","extendCoordinate","_boundingExtentXYs","xs","ys","opt_extent","minX","min","apply","minY","maxX","maxY","createOrUpdate","buffer","value","clone","slice","closestSquaredDistanceXY","dx","dy","containsCoordinate","coordinate","containsXY","containsExtent","extent1","extent2","coordinateRelationship","relationship","createOrUpdateEmpty","createOrUpdateFromCoordinate","createOrUpdateFromFlatCoordinates","extendFlatCoordinates","equals","extend","extendXY","forEachCorner","callback","val","getBottomLeft","getBottomRight","getTopRight","getTopLeft","getArea","area","isEmpty","getWidth","getHeight","getCenter","getCorner","getForViewAndSize","resolution","rotation","_a","getRotatedViewport","x0","y0","x3","y3","cosRotation","cos","sinRotation","sin","xCos","xSin","yCos","ySin","getIntersection","intersection","intersects","returnOrUpdate","intersectsSegment","start","startRel","endRel","startX","startY","endX","endY","slope","applyTransform","transformFn","opt_stops","l","canWrapX","floor","wrapAndSliceX","isFinite","IMAGE_SMOOTHING_DISABLED","imageSmoothingEnabled","msImageSmoothingEnabled","IMAGE_SMOOTHING_ENABLED","POINTERDRAG","POINTERMOVE","POINTERDOWN","POINTERUP","POINTEROVER","POINTEROUT","POINTERENTER","POINTERLEAVE","POINTERCANCEL","module","exports","tmpTransform","RenderFeature","properties","styleFunction","extent_","id_","type_","flatCoordinates_","flatInteriorPoints_","flatMidpoints_","ends_","properties_","key","getFlatInteriorPoint","flatCenter","getFlatInteriorPoints","getFlatMidpoint","getFlatMidpoints","midpoint","getOrientedFlatCoordinates","getGeometry","getSimplifiedGeometry","squaredTolerance","simplifyTransformed","opt_transform","getProperties","getStride","getStyleFunction","getType","pixelExtent","projectedExtent","getWorldExtent","scale","getEnds","getEndss","getFlatCoordinates","matchingChunk","maxAngle","acos","m12","m23","x12","y12","x23","y23","chunkStart","chunkEnd","chunkM","m","sqrt","TEXT_ALIGN","CanvasTextBuilder","tolerance","maxExtent","pixelRatio","labels_","text_","textOffsetX_","textOffsetY_","textRotateWithView_","textRotation_","textFillState_","fillStates","textStrokeState_","strokeStates","textState_","textStates","textKey_","fillKey_","strokeKey_","declutterImageWithText_","finish","instructions","drawText","geometry","feature","fillState","strokeState","textState","begin","geometryType","placement","TextPlacement","LINE","geometryWidths","overflow","appendFlatPointCoordinates","beg_1","filter","w","keep","saveTextStates_","backgroundFill","backgroundStroke","setFillStrokeStyle","updateFillStyle","state","createFill","hitDetectionInstructions","updateStrokeStyle","applyStroke","createStroke","beginGeometry","padding","p0","p1","p2","p3","pixelRatio_1","DRAW_IMAGE","endGeometry","getBufferedMaxExtent","textAlign","flatOffset","flatEnd","o","oo","range","drawChars_","strokeKey","strokeStyle","lineCap","lineDashOffset","lineWidth","lineJoin","miterLimit","lineDash","textKey","font","justify","textBaseline","fillKey","fillStyle","baseline","text","strokeWidth","DRAW_CHARS","setTextStyle","textStyle","opt_sharedData","textFillStyle","getFill","getColor","textStrokeStyle","getStroke","getLineDash","getLineDashOffset","getMiterLimit","getLineCap","getLineJoin","getFont","textScale","getScaleArray","getOverflow","getMaxAngle","getPlacement","getTextAlign","getJustify","getTextBaseline","getBackgroundFill","getBackgroundStroke","getPadding","textOffsetX","getOffsetX","textOffsetY","getOffsetY","textRotateWithView","getRotateWithView","textRotation","getRotation","getText","join","Target","opt_target","eventTarget_","pendingRemovals_","dispatching_","listeners_","addEventListener","listener","listeners","listenersForType","indexOf","dispatchEvent","isString","evt","propagate","dispatching","pendingRemovals","handleEvent","propagationStopped","pr","removeEventListener","disposeInternal","getListeners","hasListener","opt_type","keys","index","splice","abstract","Error","uidCounter_","getUid","obj","ol_uid","VERSION","LayerRenderer","layer","ready","boundHandleImageChange_","handleImageChange_","bind","layer_","declutterExecutorGroup","getFeatures","getData","prepareFrame","frameState","renderFrame","loadedTileCallback","tiles","zoom","tile","toString","createLoadedTileFinder","source","tileRange","forEachLoadedTile","forEachFeatureAtCoordinate","hitTolerance","matches","getDataAtPixel","getLayer","handleFontsChanged","image","getState","ImageState","LOADED","renderIfReadyAndVisible","loadImage","imageState","EventType","IDLE","load","getVisible","getSourceState","changed","Observable","Layer","canvasPool","createPixelContext","CanvasLayerRenderer","renderedResolution","tempTransform","pixelTransform","inversePixelTransform","containerReused","pixelContext_","getImageData","col","row","data","drawImage","err","getBackground","background","viewState","useContainer","opt_backgroundColor","layerClassName","getClassName","backgroundColor","firstElementChild","HTMLCanvasElement","transformOrigin","clipUnrotated","topLeft","topRight","bottomRight","bottomLeft","coordinateToPixelTransform","inverted","save","beginPath","moveTo","lineTo","clip","dispatchRenderEvent_","event_1","preRender","postRender","getRenderTransform","dx1","dy1","sx","sy","dx2","dy2","renderPixel","layerExtent","renderCoordinate","pixelToCoordinateTransform","pixelContext","pixelCanvas","name","Uint8Array","ADD","REMOVE","baseOptions","mapPrecomposeKey_","mapRenderKey_","sourceChangeKey_","renderer_","SOURCE","handleSourcePropertyChange_","setSource","getLayersArray","opt_array","array","getLayerStatesArray","opt_states","states","getLayerState","getSource","getRenderSource","handleSourceChange_","Promise","resolve","layerRenderer","getRenderer","unrender","setMapInternal","getMapInternal","renderEvent","layerStatesArray","layerState","some","arrayLayerState","createRenderer","hasRenderer","dispose","inView","minResolution","douglasPeucker","simplifiedFlatCoordinates","simplifiedOffset","n","markers","stack","last","pop","first","maxSquaredDistance","squaredDistance_1","douglasPeuckerArray","simplifiedEnds","snap","quantize","quantizeArray","quantizeMultiArray","simplifiedEndss","listen","opt_this","opt_once","originalListener_1","eventsKey","listenOnce","unlistenByKey","Attribution","ulElement_","collapsed_","collapsed","userCollapsed_","overrideCollapsible_","collapsible","collapsible_","tipLabel","expandClassName","collapseLabel","collapseClassName","collapseLabel_","textContent","label","label_","activeLabel","toggleButton_","setAttribute","title","handleClick_","cssClasses","renderedAttributions_","renderedVisible_","collectSourceAttributions_","lookup","visibleAttributions","attributionGetter","getAttributions","attributions","getAttributionsCollapsible","isArray","j","jj","setCollapsible","updateElement_","innerHTML","preventDefault","handleToggle_","classList","toggle","getCollapsible","setCollapsed","getCollapsed","mapEvent","Control","Rotate","compassClassName","add","callResetNorth_","resetNorth","duration_","autoHide_","autoHide","rotation_","resetNorth_","view","PI","animate","setRotation","remove","Zoom","zoomInClassName","zoomOutClassName","zoomInLabel","zoomOutLabel","zoomInTipLabel","zoomOutTipLabel","inElement","createTextNode","outElement","zoomByDelta_","currentZoom","getZoom","newZoom","getConstrainedZoom","getAnimating","cancelAnimations","setZoom","defaults","controls","Collection","zoomControl","zoomOptions","rotateControl","rotate","rotateOptions","attributionControl","attribution","attributionOptions","Zone","cartodb_id","description","the_geom","the_geom_webmercator","generateTheGeom","crs","RADIUS","HALF_SIZE","EXTENT","WORLD_EXTENT","MAX_SAFE_Y","log","tan","EPSG3857Projection","code","units","Units","METERS","global","worldExtent","getPointResolution","point","Projection","PROJECTIONS","fromEPSG4326","input","opt_output","opt_dimension","dimension","output","toEPSG4326","atan","exp","METERS_PER_UNIT","EPSG4326Projection","opt_axisOrientation","axisOrientation","metersPerUnit","cache","replace","transforms","destination","sourceCode","getCode","destinationCode","showCoordinateWarning","disableCoordinateWarning","opt_disable","hide","cloneTransform","identityTransform","addProjection","addProjections","projections","forEach","projectionLike","opt_units","pointResolution","getter","getPointResolutionFunc","getUnits","toEPSG4326_1","getTransformFromProjections","vertices","addEquivalentProjections","addEquivalentTransforms","projections1","projections2","forwardTransform","inverseTransform","projection1","projection2","createProjection","defaultCode","fromLonLat","opt_projection","equivalent","equalUnits","transformFunc","sourceProjection","destinationProjection","getTransform","transformExtent","userProjection","getUserProjection","toUserCoordinate","fromUserCoordinate","destProjection","console","warn","toUserExtent","fromUserExtent","toUserResolution","sourceUnits","userUnits","fromUserResolution","addCommon","t","e","a","h","s","f","u","c","_maxEntries","_minEntries","clear","leaf","_all","search","toBBox","collides","insert","_build","_splitRoot","_insert","_condense","compareMinX","compareMinY","toJSON","fromJSON","_chooseSubtree","_split","_adjustParentBBoxes","_chooseSplitAxis","_chooseSplitIndex","v","M","_allDistMargin","linearRingContainsExtent","outside","linearRingContainsXY","wn","linearRingsContainsXY","linearRingssContainsXY","POINT","opt_tileCoord","getKeyZXY","getKey","getCacheKeyForTileKey","tileKey","substring","lastIndexOf","split","Number","fromKey","hash","withinExtentAndZ","getMinZoom","getMaxZoom","getFullTileRange","SelectEventType","SELECT","SelectEvent","selected","deselected","originalFeatureStyles","Select","layerFilter","boundAddFeature_","addFeature_","boundRemoveFeature_","removeFeature_","condition_","condition","addCondition_","addCondition","removeCondition_","removeCondition","toggleCondition_","toggleCondition","multi_","multi","filter_","hitTolerance_","style_","getDefaultStyleFunction","features_","features","layers","layers_1","layerFilter_","featureLayerAssociation_","addFeatureLayerAssociation_","getHitTolerance","setHitTolerance","currentMap","restorePreviousStyle_","applySelectedStyle_","getAllLayers","find","hasFeature","getStyle","setStyle","interactions","getInteractions","getArray","interaction","removeFeatureLayerAssociation_","forEachFeatureAtPixel","getLength","item","styles","Notification","added_on","body","status","to","date","DateUtils","toDefaultDateTime","Date","brokenDiagonalRendering_","MAX_SUBDIVISION","MAX_TRIANGLE_WIDTH","Triangulation","sourceProj","targetProj","targetExtent","maxSourceExtent","errorThreshold","opt_destinationResolution","sourceProj_","targetProj_","transformInvCache","transformInv","transformInv_","maxSourceExtent_","errorThresholdSquared_","triangles_","wrapsXInSource_","canWrapXInSource_","sourceWorldWidth_","targetWorldWidth_","destinationTopLeft","destinationTopRight","destinationBottomRight","destinationBottomLeft","sourceTopLeft","sourceTopRight","sourceBottomRight","sourceBottomLeft","maxSubdivision","addQuad_","leftBound_1","triangle","arr","newTriangle","addTriangle_","aSrc","bSrc","cSrc","dSrc","sourceQuadExtent","sourceCoverageX","sourceWorldWidth","wrapsX","needsSubdivision","isGlobal","targetQuadExtent","targetCoverageX","isNotFinite","centerSrc","centerSrcEstimX","centerSrcErrorSquared","bc","bcSrc","da","daSrc","ab","abSrc","cd","cdSrc","calculateSourceExtent","src","getTriangles","drawTestTriangle","ctx","u1","v1","u2","v2","closePath","fillRect","restore","verifyBrokenDiagonalRendering","isBrokenDiagonalRendering","globalCompositeOperation","calculateSourceResolution","targetCenter","targetResolution","sourceCenter","sourceResolution","targetMetersPerUnit","sourceMetersPerUnit","sourceExtent","compensationFactor","calculateSourceExtentResolution","triangulation","sources","gutter","opt_renderEdges","opt_interpolate","pixelRound","sourceDataExtent","canvasWidthInUnits","canvasHeightInUnits","stitchContext","stitchScale","xPos","yPos","srcWidth","srcHeight","targetTopLeft","u0","v0","sourceNumericalShiftX","sourceNumericalShiftY","augmentedMatrix","affineCoefs","steps","ud","vd","step","translate","stroke","ReprojTile","sourceTileGrid","targetTileGrid","wrappedTileCoord","getTileFunction","opt_errorThreshold","TileState","interpolate","renderEdges_","pixelRatio_","gutter_","canvas_","sourceTileGrid_","targetTileGrid_","wrappedTileCoord_","sourceTiles_","sourcesListenerKeys_","sourceZ_","getTileCoordExtent","maxTargetExtent","limitedTargetExtent","EMPTY","sourceProjExtent","getResolution","errorThresholdInPixels","triangulation_","getZForResolution","sourceRange","getTileRangeForExtentAndZ","srcX","srcY","getImage","reproject_","getTileSize","LOADING","leftToLoad_1","sourceListenKey_1","unlistenSources_","setTimeout","release","Tile","SIMPLIFY_TOLERANCE","GEOMETRY_RENDERERS","renderPointGeometry","renderLineStringGeometry","renderPolygonGeometry","renderMultiPointGeometry","renderMultiLineStringGeometry","renderMultiPolygonGeometry","renderGeometryCollectionGeometry","renderCircleGeometry","defaultOrder","feature1","feature2","getSquaredTolerance","getTolerance","builderGroup","opt_declutterBuilderGroup","circleReplay","getBuilder","getZIndex","drawCircle","textReplay","renderFeature","replayGroup","loading","imageStyle","getImageState","unlistenImageChange","listenImageChange","renderFeatureInternal","getGeometryFunction","simplifiedGeometry","renderer","renderGeometry","geometryRenderer","replay","drawCustom","getHitDetectionRenderer","geometries","getGeometries","getGeometriesArray","lineStringReplay","drawLineString","drawMultiLineString","polygonReplay","drawMultiPolygon","declutterImageWithText","imageBuilderGroup","declutterMode","getDeclutterMode","imageReplay_1","setImageStyle","drawPoint","imageReplay","textBuilderGroup","imageReplay_2","drawMultiPoint","drawPolygon","RenderEvent","opt_inversePixelTransform","opt_frameState","opt_context","hasArea","ratio","opt_size","toSize","revision_","getRevision","onInternal","len","onceInternal","ol_key","unInternal","unByKey","assign","var_sources","object","property","getValues","values","target_","map_","listenerKeys","setTarget","getElementById","CanvasImmediateRenderer","viewRotation","opt_squaredTolerance","opt_userTransform","context_","viewRotation_","squaredTolerance_","userTransform_","contextFillState_","contextStrokeState_","contextTextState_","fillState_","strokeState_","image_","imageAnchorX_","imageAnchorY_","imageHeight_","imageOpacity_","imageOriginX_","imageOriginY_","imageRotateWithView_","imageRotation_","imageScale_","imageWidth_","textScale_","pixelCoordinates_","tmpLocalTransform_","drawImages_","pixelCoordinates","localTransform","alpha","globalAlpha","centerX","centerY","setTransform","drawText_","setContextFillState_","setContextStrokeState_","setContextTextState_","strokeText","fillText","moveToLineTo_","close","drawRings_","radius","arc","fill","drawGeometry","drawGeometryCollection","drawFeature","flatMidpoint","geometryExtent","flatMidpoints","flatInteriorPoint","flatInteriorPoints","contextFillState","contextStrokeState","setLineDash","contextTextState","fillStyleColor","strokeStyleColor","strokeStyleLineCap","strokeStyleLineDash","strokeStyleLineDashOffset","strokeStyleLineJoin","strokeStyleWidth","strokeStyleMiterLimit","imageSize","imageAnchor","getAnchor","imageOrigin","getOrigin","getOpacity","textFillStyleColor","textStrokeStyleColor","textStrokeStyleLineCap","textStrokeStyleLineDash","textStrokeStyleLineDashOffset","textStrokeStyleLineJoin","textStrokeStyleWidth","textStrokeStyleMiterLimit","textFont","textText","textTextAlign","textTextBaseline","reduce","acc","VectorContext","HIT_DETECT_RESOLUTION","createHitDetectionImageData","featureCount","indexFactor","featuresByZIndex","featureStyleFunction","color","originalStyle","setColor","setText","imgSize","getImageSize","imgContext","img","setImage","Icon","anchor","anchorXUnits","IconAnchorUnits","PIXELS","anchorYUnits","opacity","getScale","rotateWithView","zIndex","byGeometryType","zIndexKeys","geomAndStyle","k","kk","hitDetect","imageData","resultFeatures","g","DoubleClickZoom","delta_","MapBrowserEventType","browserEvent","Interaction","DragPan","stopDown","kinetic_","kinetic","lastCentroid","lastPointersCount_","panning_","onFocusOnly","noKinetic_","handleDragEvent","beginInteraction","targetPointers","centroid","update","adjustCenterInternal","handleUpEvent","distance","getDistance","angle","getAngle","centerpx","dest","getConstrainedCenter","endInteraction","handleDownEvent","Pointer","DragRotate","lastAngle_","getConstraints","theta","atan2","adjustRotationInternal","RenderBox","geometry_","element_","startPixel_","endPixel_","render_","startPixel","endPixel","px","setPixels","createOrUpdateGeometry","pixels","setCoordinates","Polygon","Disposable","DragBoxEventType","BOXSTART","BOXDRAG","BOXEND","BOXCANCEL","DragBoxEvent","Event","DragBox","box_","minArea_","minArea","onBoxEnd","boxEndCondition_","boxEndCondition","defaultBoxEndCondition","completeBox","DragZoom","out_","out","rotatedExtent","rotatedExtentForGeometry","getResolutionForExtentInternal","factor","fitInternal","UP","DOWN","KeyboardPan","defaultCondition_","pixelDelta_","pixelDelta","keyEvent","keyCode","KeyCode","mapUnitsDelta","deltaX","deltaY","KeyboardZoom","charCode","charCodeAt","Kinetic","decay","minVelocity","delay","decay_","minVelocity_","delay_","points_","angle_","initialVelocity_","now","lastIndex","firstIndex","Mode","TRACKPAD","MouseWheelZoom","totalDelta_","lastDelta_","maxDelta_","maxDelta","timeout_","timeout","useAnchor_","useAnchor","constrainResolution_","constrainResolution","lastAnchor_","startTime_","timeoutId_","mode_","trackpadEventGap_","trackpadTimeoutId_","deltaPerZoom_","endInteraction_","wheelEvent","deltaMode","WheelEvent","DOM_DELTA_PIXEL","DOM_DELTA_LINE","getConstrainResolution","clearTimeout","adjustZoom","timeLeft","handleWheelZoom_","setMouseAnchor","PinchRotate","pointerOptions","anchor_","rotating_","rotationDelta_","threshold_","threshold","rotationDelta","touch0","touch1","clientY","clientX","viewportPosition","getViewport","handlingDownUpSequence","PinchZoom","lastDistance_","lastScaleDelta_","scaleDelta","adjustResolutionInternal","direction","altShiftDragRotate","doubleClickZoom","zoomDelta","zoomDuration","dragPan","pinchRotate","pinchZoom","keyboard","mouseWheelZoom","shiftDragZoom","core","LIBRARY","wksExt","defineProperty","$Symbol","Symbol","charAt","_vm","_h","$createElement","_c","_self","attrs","class","calledFrom","latitude","longitude","widthMap","mapTheme","ref","isSidebarActive","handleChangeGroup","toggleDataSidebar","_e","staticClass","$event","stopPropagation","clearMap","directives","rawName","isRoutesLegendsActive","expression","$store","reduceButton","getAssigedZoneResource","clearPolygons","staticRenderFns","model","$$v","isSidebarActiveLocal","_v","_s","$t","fullscreen","popupActiveShow","closePopup","unmountExport","overflowY","windowHeight","tabActive","activeItem","slot","changeView","staticStyle","selectedGroup","resource_id","changeGroupEmit","searchQuery","settings","viewType","resourcesDataFilter","loadedingResource","_l","resource","uid","openExportPopup","loadedingResult","activeItemRoutes","changeOptions","selectedOption","routeTypeOptions","$vs","rtl","scopedSlots","_u","fn","searching","routeType","searchOptions","resourcesForSelect","searchFieldSelected","username","searchField","select1","totalPages","currentPage","langHe","langEn","disabledDatesFrom","startDate","handleSubmit","btnTextSubmit","showMarkersForExecutedRoute","enableMarkerLabelsForExecutedRoute","drawTogglePolyline","changePropertiesAuxiliaryRouteEmit","visitPointListConfig","domProps","drawVisitPoints","disabledEndDatesTo","endDate","validateEndDate","getResourceEvents","activeConfirmKeepGroupPrompt","clearValMultiple","acceptAlert","checkBoxDefaultGroup","group_options","errors","has","_t","component","_m","resource_data","featuresOpen","toggleFeatures","avatar","_f","fullName","email","resource_local","transmissionIcon","transmissionColorIcon","batteryLevelIcon","icon","LocateMarker","gpsIcon","tracking","dataZoneCarton","isShowFeaturesEmit","transmissionText","lastTransmission","battery","progress_done_per","progress_goal","indeterminateProgress","current_progress","currentProgressColor","routeBtnId","programmedRoute","executedRouteBtnId","executedRoute","scheduleBtnId","getEvents","geofenceBtnId","getZonesAssignedToResource","address","city","company_id","created_at","cx","cy","decoded_data","gps","imei","original_data","send_mail_battery","send_mail_calendar","send_mail_detention","send_mail_zone","version","active","positionrecord_id","version_os","howLong","calculateHowLongLastTransmision","currenDate","lastTransmisionDate","getTime","$emit","hasAnimation","getZones","zoneList","handleSelected","tr","indextr","disabled","zone_id","selectedZones","drawCartoPolygons","cartoTable","cartodb","fitBoundGeoJson","cartodbIds","cartoDB","executeQueryWithBounds","then","res","geoJson","aux","elem","xmin","xmax","ymin","ymax","setMapViewBounds","removeGeoJsonLayer","showGeoJSONData","catch","popupActive","logo","fullname","currentBatteryLevel","isActiveChatUser","photoURL","activePrompt","clearFields","exportToExcel","fileName","formats","selectedFormat","cellAutoWidth","dataEventsDay","visit_point_name","init_hour","end_hour","chipColor","event_status_id","chipLabel","selectedUsers","showActivePrompt","optionsProgramedRouteLineWidth","optionsProgramedRouteStrokeOpacity","optionsProgramedRouteOptimizeWaypoints","composing","optionsProgramedRouteStrokeColors","optionsExecutedRouteLineWidth","optionsExecutedRouteStrokeOpacity","optionsExecutedRouteStrokeColors","activeAlert","qtyResource","enableLineWaypoints","openConfirm","optionsExecuteRouteShowWaypoints","enableWaypointsLabel","optionsExecutedRouteStrokeWeightyTwo","optionsExecutedRouteStrokeOpacityTwo","optionsExecutedRouteStrokeColorsTwo","script","colorx","colorx2","path","query","q","url","validName","trim","toogleWindow","legend","accumulatedDistance","route","accumulatedTime","total_visit","drawZones","IconImageCache","cache_","cacheSize_","maxCacheSize_","canExpireCache","expire","iconImage","crossOrigin","setSize","maxCacheSize","colorString","shared","CanvasVectorLayerRenderer","vectorLayer","boundHandleStyleImageChange_","handleStyleImageChange_","animatingOrInteracting_","hitDetectionImageData_","renderedFeatures_","renderedRevision_","renderedResolution_","renderedExtent_","wrappedRenderedExtent_","renderedRotation_","renderedCenter_","renderedProjection_","renderedRenderOrder_","replayGroup_","replayGroupChanged","clipping","compositionContext_","opacity_","renderWorlds","executorGroup","opt_declutterTree","vectorSource","viewHints","snapToPixel","ViewHint","ANIMATING","INTERACTING","multiWorld","getWrapX","endWorld","world","execute","setupCompositionContext_","compositionContext","releaseCompositionContext_","renderDeclutter","declutterTree","layerIndex","canvasTransform","clipped","result","featureCallback","distanceSq","match","executorGroups","animating","interacting","updateWhileAnimating","getUpdateWhileAnimating","updateWhileInteracting","getUpdateWhileInteracting","frameStateExtent","vectorLayerRevision","vectorLayerRenderBuffer","getRenderBuffer","vectorLayerRenderOrder","getRenderOrder","renderedExtent","loadExtents","loadExtent","declutterBuilderGroup","getDeclutter","userTransform","extent_1","userExtent_1","loadFeatures","dirty","userExtent","getFeaturesInExtent","replayGroupInstructions","ExecutorGroup","getOverlaps","VectorLayer","BaseVector","$router","dispatchedOrders","colors","statusColor","statusText","activity_name","fullAddress","contactImage","goToResourceCalendar","event_init_hour","event_end_hour","disabledMapBtn","handleBtnMapClick","activeMapPopup","itemSelected","percent","PointerInteraction","handleMoveEvent","getPointerCount","updateTrackedPointers_","handledUp","handled","activePointers","setActive","getActive","ACTIVE","pan","opt_duration","currentCenter","zoomByDelta","opt_anchor","newResolution","getResolutionForZoom","iconRight","visit_point_local","MultiLineString","opt_layout","opt_ends","maxDeltaRevision_","setFlatCoordinates","layout","getLayout","lineStrings","lineString","appendLineString","multiLineString","applyProperties","closestPointXY","closestPoint","minSquaredDistance","getCoordinateAtM","opt_extrapolate","XYM","XYZM","extrapolate","getCoordinates","getLineString","getLineStrings","midpoints","getSimplifiedGeometryInternal","XY","intersectsExtent","setLayout","BaseTileLayer","preload","useInterimTilesOnError","setPreload","setUseInterimTilesOnError","getPreload","TileProperty","PRELOAD","getUseInterimTilesOnError","USE_INTERIM_TILES_ON_ERROR","BaseTile","TileLayer","Feature","opt_geometryOrProperties","geometryName_","styleFunction_","geometryChangeKey_","handleGeometryChanged_","setGeometry","setProperties","hasProperties","setGeometryName","getGeometryName","handleGeometryChange_","opt_style","createStyleFunction","setId","removeChangeListener","styles_1","tmp","linearRingIsClockwise","edge","linearRingsAreOriented","opt_right","right","isClockwise","linearRingssAreOriented","orientLinearRings","reverse","orientLinearRingsArray","inflateEnds","prevEndIndex","maptipe_locale_img","mapTypeSelected","changeMapType","activeTrafficLayer","changeMapStyle","MapBrowserEvent","opt_dragging","opt_activePointers","pixel_","coordinate_","dragging","getEventPixel","enumerable","configurable","getCoordinateFromPixel","XYZ","TILELOADSTART","TILELOADEND","TILELOADERROR","TileSource","attributionsCollapsible","opaque_","opaque","tilePixelRatio_","tilePixelRatio","tileCache","TileCache","cacheSize","tmpSize","key_","tileOptions","transition","zDirection","expireCache","usedTiles","getTileCacheForProjection","tileCoordKey","loaded","covered","containsKey","getGutterForProjection","setKey","getOpaque","getResolutions","getTile","getTileGrid","getTileGridForProjection","getProjection","getTilePixelRatio","getTilePixelSize","getTileCoordForTileUrlFunction","refresh","updateCacheSize","tileCount","highWaterMark","useTile","Source","TileSourceEvent","createFromTemplate","template","zRegEx","xRegEx","yRegEx","dashYRegEx","createFromTemplates","templates","tileUrlFunctions","createFromTileUrlFunctions","expandUrl","urls","exec","startCharCode","stopCharCode","fromCharCode","stop_1","UrlTile","generateTileUrlFunction_","tileUrlFunction","tileLoadFunction","setUrls","setUrl","tileLoadingKeys_","getTileLoadFunction","getTileUrlFunction","getPrototypeOf","getUrls","handleTileChange","tileState","TileEventType","setTileLoadFunction","setTileUrlFunction","pruneExceptNewestZ","BaseLayer","background_","OPACITY","VISIBLE","Z_INDEX","MAX_RESOLUTION","MIN_RESOLUTION","MIN_ZOOM","MAX_ZOOM","className_","state_","opt_managed","managed","getMaxResolution","getMinResolution","setBackground","opt_background","setExtent","setMaxResolution","setMinResolution","setMaxZoom","setMinZoom","setOpacity","setZIndex","zindex","TRUE","FALSE","VOID","memoizeOne","lastResult","lastArgs","lastThis","called","nextArgs","RBush","opt_maxEntries","rbush_","items_","extents","items","bbox","getAll","getInExtent","forEach_","forEachInExtent","rbush","ADDFEATURE","CHANGEFEATURE","REMOVEFEATURE","FEATURESLOADSTART","FEATURESLOADEND","FEATURESLOADERROR","VectorSourceEvent","opt_feature","opt_features","VectorSource","loader_","format_","format","overlaps_","overlaps","url_","loader","strategy_","strategy","collection","useSpatialIndex","featuresRtree_","loadedExtentsRtree_","loadingExtentsCount_","nullGeometryFeatures_","idIndex_","uidIndex_","featureChangeKeys_","featuresCollection_","addFeaturesInternal","bindFeaturesCollection_","addFeature","addFeatureInternal","featureKey","addToIndex_","setupChangeEvents_","VectorEventType","handleFeatureChange_","ObjectEventType","PROPERTYCHANGE","valid","addFeatures","newFeatures","geometryFeatures","length_1","length_2","length_3","modifyingCollection","CollectionEventType","removeFeature","opt_fast","featureId","removeAndIgnoreReturn","removeFeatureInternal","clearEvent","forEachFeature","forEachFeatureAtCoordinateDirect","forEachFeatureInExtent","intersectsCoordinate","forEachFeatureIntersectingExtent","getFeaturesCollection","getFeaturesAtCoordinate","anExtent","getClosestFeatureToCoordinate","opt_filter","closestFeature","previousMinSquaredDistance","minDistance","getFeatureById","getFeatureByUid","getFormat","getUrl","sid","removeFromIdIndex_","loadedExtentsRtree","extentsToLoad","_loop_1","extentToLoad","alreadyLoaded","this_1","removeLoadedExtent","featureChangeKeys","removed","setLoader","MOVESTART","MOVEEND","LOADSTART","LOADEND","lineStringLength","root","factory","modules","installedModules","__webpack_require__","moduleId","toStringTag","mode","__esModule","ns","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","previousUnderscore","_","ArrayProto","ObjProto","FuncProto","Function","nativeIsArray","nativeKeys","nativeBind","nativeCreate","Ctor","_wrapped","optimizeCb","func","argCount","other","accumulator","cb","identity","isFunction","isObject","matcher","iteratee","createAssigner","keysFunc","undefinedOnly","baseCreate","MAX_ARRAY_INDEX","isArrayLike","createReduce","dir","iterator","memo","currentKey","each","collect","results","foldl","inject","reduceRight","foldr","detect","predicate","findIndex","findKey","select","list","reject","negate","every","any","includes","include","fromIndex","guard","invoke","method","args","isFunc","pluck","where","findWhere","computed","lastComputed","shuffle","rand","shuffled","random","sample","sortBy","criteria","group","behavior","groupBy","indexBy","countBy","toArray","partition","fail","head","take","initial","rest","tail","drop","compact","flatten","shallow","strict","startIndex","idx","isArguments","createPredicateIndexFinder","createIndexFinder","predicateFind","sortedIndex","without","difference","uniq","unique","isSorted","isBoolean","seen","union","argsLength","zip","unzip","findLastIndex","low","high","mid","stop","executeBound","sourceFunc","boundFunc","callingContext","self","bound","partial","boundArgs","bindAll","memoize","hasher","wait","defer","throttle","previous","later","leading","remaining","trailing","debounce","immediate","timestamp","callNow","wrap","wrapper","compose","after","times","before","hasEnumBug","propertyIsEnumerable","nonEnumerableProps","collectNonEnumProps","nonEnumIdx","proto","prop","allKeys","mapObject","pairs","invert","functions","methods","names","extendOwn","pick","oiteratee","omit","props","tap","interceptor","isMatch","eq","aStack","bStack","areArrays","aCtor","bCtor","isEqual","isElement","nodeType","Int8Array","parseFloat","isNumber","isNull","isUndefined","noConflict","constant","noop","propertyOf","accum","escapeMap","unescapeMap","createEscaper","escaper","testRegexp","RegExp","replaceRegexp","string","escape","unescape","fallback","idCounter","uniqueId","prefix","templateSettings","evaluate","noMatch","escapes","escapeChar","oldSettings","variable","argument","chain","instance","_chain","mixin","valueOf","$","Backbone","previousBackbone","emulateHTTP","emulateJSON","addMethod","attribute","defaultVal","unshift","addUnderscoreMethods","Class","_isModel","modelMatcher","attributes","Events","eventSplitter","eventsApi","events","opts","internalOn","listening","_events","onApi","_listeners","listenTo","_listenId","listeningTo","_listeningTo","thisId","objId","count","handlers","off","offApi","stopListening","ids","handler","_callback","onceMap","listenToOnce","offer","trigger","triggerApi","objEvents","allEvents","triggerEvents","ev","a1","a2","a3","unbind","Model","cid","cidPrefix","parse","initialize","validationError","idAttribute","sync","attr","_validate","unset","silent","changes","changing","_changing","_previousAttributes","current","prev","_pending","hasChanged","changedAttributes","diff","old","previousAttributes","fetch","success","resp","serverAttrs","wrapError","validate","isNew","patch","xhr","destroy","base","urlError","encodeURIComponent","isValid","error","modelMethods","models","comparator","_reset","reset","setOptions","merge","addOptions","at","singular","_removeModels","toAdd","toRemove","modelMap","sortable","sortAttr","existing","_prepareModel","_addReference","orderChanged","_removeReference","previousModels","modelId","_byId","callbackOpts","_onModelEvent","prevId","collectionMethods","View","viewOptions","_ensureElement","delegateEventSplitter","selector","$el","_removeElement","undelegateEvents","_setElement","delegateEvents","el","delegate","eventName","undelegate","_createElement","_setAttributes","methodMap","params","dataType","contentType","JSON","stringify","_method","beforeSend","setRequestHeader","processData","textStatus","errorThrown","ajax","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","isRegExp","_routeToRegExp","router","history","fragment","_extractParameters","navigate","optional","param","decodeURIComponent","History","checkUrl","location","routeStripper","rootStripper","pathStripper","started","interval","atRoot","pathname","getSearch","matchRoot","decodeFragment","decodeURI","href","getHash","getPath","getFragment","_usePushState","_wantsHashChange","hashChange","_hasHashChange","documentMode","_useHashChange","_wantsPushState","pushState","_hasPushState","iframe","tabIndex","iWindow","firstChild","contentWindow","open","attachEvent","_checkUrlInterval","setInterval","loadUrl","detachEvent","clearInterval","_updateHash","protoProps","staticProps","child","Surrogate","__super__","when","done","setIdAttribute","retrigger","retrigEvent","opt1","opt2","promise","CartoError","CartoValidationError","message","errorExtender","errorTracker","UNEXPECTED_ERROR","GENERIC_ORIGIN","cartoError","_isWindshaftError","_transformWindshaftError","analysis","_isAjaxError","_transformAjaxError","extraFields","getExtraFields","friendlyMessage","errorCode","originalError","track","responseText","findById","layerId","sourceId","analysisId","_handleAjaxResponse","errorMessage","parsedError","exc","operation","COUNT","SUM","AVG","MAX","MIN","isValidOperation","op","NOT_LOADED","timeAggregation","AUTO","MILLENNIUM","CENTURY","DECADE","YEAR","QUARTER","MONTH","WEEK","DAY","HOUR","MINUTE","isValidTimeAggregation","agg","ATTRIBUTION","Base","_getValidationError","util","XMLHttpRequest","byteArr","encoded","btoa","encodeBase64Native","encodeBase64","o1","o2","o3","h1","h2","h3","h4","bits","b64","ac","enc","tmpArr","str","_callback_c","crc32","crcTable","_crcTable","_makeCRCTable","crc","ua","browser","detectIE","msie","trident","getIEVersion","compatMode","querySelector","atob","navigator","userAgent","ie","chrome","firefox","opera","safari","_inferBrowser","isMobileDevice","supportsTouch","msMaxTouchPoints","webGLSupportedAndEnabled","isWebGLSupported","WebGLRenderingContext","endsWith","suffix","checkRequiredOpts","actualOpts","requiredOpts","from","isLeafletLoaded","L","isGoogleMapsLoaded","google","maps","types","BBOX","CIRCLE","POLYGON","REQUIRED_OPTS","STATUS","PENDING","WAITING","RUNNING","FAILED","READY","AnalysisModel","_camshaftReference","camshaftReference","_engine","engine","_initBinds","_referencedBy","authToken","tokens","token","setOk","setError","_reload","getParamNames","paramName","_hadStatus","isReady","isSourceOfAnyModel","reload","_onMapReloadError","findAnalysisById","_getSourceNames","sourceName","getSourceNamesForAnalysisType","isDone","_hasStatus","isLoading","isFailed","statuses","_getStatus","json","sourceNames","sourceInfo","getParamNamesForAnalysisType","getNodes","nodes","getNodesCollection","analysisModel","markAsSourceOf","isSourceOf","unmarkAsSourceOf","SourceBase","FilterBase","SQLFilterBase","SpatialFilterTypes","getStatus","_status","isLoaded","hasError","enable","_setEnabled","disable","isEnabled","_enabled","_source","setColumn","column","_checkColumn","_column","_internalModel","getColumn","addFilter","_checkFilter","_addSpatialFilter","removeFilter","_removeSpatialFilter","hasFilter","hasBBoxFilter","_boundingBoxFilter","hasCircleFilter","_circleFilter","hasPolygonFilter","_polygonFilter","DEFAULTS","_initialize","_checkSource","_checkOptions","_options","_createInternalModel","enabled","_listenToInternalModelSharedEvents","_onDataChanged","_onColumnChanged","_onStatusLoading","_onStatusLoaded","_onStatusError","_triggerError","_changeProperty","internalKey","prevValue","_triggerChange","_changeProperties","internalDataviewError","spatialFilter","_addBoundingBoxFilter","_addCircleFilter","_addPolygonFilter","_removeBoundingBoxFilter","_removeCircleFilter","_removePolygonFilter","bboxFilter","addBBoxFilter","$getInternalModel","removeBBoxFilter","circleFilter","addCircleFilter","removeCircleFilter","polygonFilter","addPolygonFilter","removePolygonFilter","$setEngine","_createClass","defineProperties","descriptor","writable","Constructor","_defineProperty","_classCallCheck","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","getObjectValue","ALLOWED_OPTIONS","DEFAULT_JOIN_OPERATOR","SQLBase","_Base","_filters","filterType","filterValue","newFilter","_checkFilters","filters","setFilters","_this2","sql","_interpolateFilter","Boolean","includeNull","_includeNullInQuery","_this3","isFilterValid","ALLOWED_FILTERS","parameters","PARAMETER_SPECIFICATION","haveCorrectType","parameter","parameterValue","allowedTypes","parameterIsOfType","_this4","option","isOptionValid","_this5","isDate","toISOString","_convertValueToSQLString","normalizeString","filterValues","sqlString","SQL_TEMPLATES","parameterType","FiltersCollection","EVENTS","_id","$generateId","_hasFiltersApplied","_appliedFilters","$nextId","internalError","$getEngine","getFilters","addFilters","removeFilters","Engine","NON_RESETEABLE_DEFAULT_ATTRS","LegendModelBase","preHTMLSnippet","postHTMLSnippet","STATE_LOADING","deps","RELOAD_STARTED","_onEngineReloadStarted","isError","STATE_ERROR","isSuccess","STATE_SUCCESS","show","isVisible","getNonResettableAttrs","isAvailable","SUCCESS","PROPERTY_KEY","MAPPING_KEY","RANGE_FILTER_TYPE","CATEGORY_FILTER_TYPE","DEFAULT_FILTER_TYPE","Rule","rule","_rule","matchesAnyProperty","_matches","matchesAnyMapping","mappings","acceptedValues","getBucketsWithRangeFilter","_getBucketsByFilterType","getBucketsWithCategoryFilter","getBucketsWithDefaultFilter","buckets","bucket","getMapping","mapping","getProperty","getFilterAvg","stats","filter_avg","TILED_LAYER_TYPE","PLAIN_LAYER_TYPE","WMS_LAYER_TYPE","GMAPS_BASE_LAYER_TYPE","CARTODB_LAYER_TYPE","TORQUE_LAYER_TYPE","isLayerOfType","layerModel","layerType","toLowerCase","isTiledLayer","isPlainLayer","isWMSLayer","isGoogleMapsBaseLayer","isCartoDBLayer","isTorqueLayer","noGlobal","class2type","hasOwn","support","jQuery","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","letter","toUpperCase","isArraylike","isWindow","jquery","num","pushStack","elems","ret","prevObject","copy","copyIsArray","deep","isPlainObject","expando","msg","isNumeric","isEmptyObject","globalEval","indirect","eval","camelCase","nodeName","makeArray","inArray","second","grep","callbackInverse","callbackExpect","arg","guid","proxy","Sizzle","Expr","isXML","tokenize","compile","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","sortOrder","MAX_NEGATIVE","push_native","booleans","whitespace","characterEncoding","identifier","pseudos","rwhitespace","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","escaped","escapedWhitespace","unloadHandler","els","seed","groups","nid","newContext","newSelector","ownerDocument","getElementsByTagName","getElementsByClassName","qsa","getAttribute","toSelector","testContext","querySelectorAll","qsaError","removeAttribute","cacheLength","markFunction","assert","div","addHandle","attrHandle","siblingCheck","cur","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","matchIndexes","documentElement","hasCompare","doc","defaultView","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","expr","elements","specified","uniqueSort","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","simple","forward","ofType","xml","outerCache","nodeIndex","useCache","pseudo","matched","unmatched","innerText","lang","elemLang","hasFocus","checked","selectedIndex","radio","checkbox","file","password","submit","addCombinator","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","parseOnly","soFar","preFilters","cached","compiled","div1","defaultValue","isXMLDoc","rneedsContext","needsContext","rsingleTag","risSimple","winnow","qualifier","not","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","contents","next","sibling","until","truncate","targets","closest","pos","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","readyList","rnotwhite","optionsCache","createOptions","flag","completed","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","fire","stopOnFalse","empty","lock","locked","fireWith","Deferred","tuples","deferred","fns","newDefer","tuple","returned","progress","notify","pipe","stateString","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","notifyWith","resolveWith","readyWait","holdReady","hold","triggerHandler","readyState","access","chainable","emptyGet","raw","bulk","Data","acceptData","owner","accepts","unlock","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","pnum","cssExpand","isHidden","css","rcheckableType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","strundefined","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","handleObjIn","eventHandle","handleObj","special","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","onlyHandlers","bubbleType","ontype","eventPath","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","postDispatch","sel","fixHooks","keyHooks","original","which","mouseHooks","eventDoc","pageX","scrollLeft","clientLeft","pageY","scrollTop","clientTop","fixHook","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","attaches","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","thead","td","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","pdataOld","pdataCur","udataOld","udataCur","fixInput","optgroup","tbody","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","selection","cleanData","append","domManip","prepend","keepData","html","replaceWith","detach","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","elemdisplay","actualDisplay","getDefaultComputedStyle","defaultDisplay","write","rmargin","rnumnonpx","getStyles","opener","curCSS","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","computePixelPositionAndBoxSizingReliable","cssText","divStyle","backgroundClip","clearCloneStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","augmentWidthOrHeight","extra","isBorderBox","getWidthOrHeight","valueIsBorderBox","showHide","hidden","Tween","cssHooks","cssNumber","cssProps","border","expand","expanded","parts","unit","propHooks","run","eased","tween","fx","linear","swing","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","createTween","maxIterations","createFxNow","genFx","includeWidth","oldfire","checkDisplay","anim","dataShow","unqueued","overflowX","propFilter","specialEasing","Animation","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","time","checkOn","optSelected","optDisabled","radioValue","nodeHook","boolHook","removeAttr","nType","attrHooks","bool","propName","attrNames","propFix","rfocusable","removeProp","notxml","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","nonce","rquery","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","conv2","conv","responseFields","dataFilter","lastModified","etag","isLocal","async","ajaxSetup","ajaxPrefilter","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","lname","overrideMimeType","abort","finalText","crossDomain","traditional","hasContent","ifModified","headers","send","nativeStatusText","modified","getJSON","getScript","wrapAll","wrapInner","unwrap","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","serialize","serializeArray","xhrId","xhrCallbacks","xhrSuccessStatus","0","1223","xhrSupported","cors","xhrFields","onload","onerror","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","animated","getWindow","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","andSelf","_jQuery","_$","BOUNDING_BOX_FILTER_WAIT","mapAdapter","_bounds","_mapAdapter","setBounds","getBounds","_boundsChanged","_stopBinds","bounds","areBoundsAvailable","west","south","east","north","clean","_xhr","BackboneAbortSync","parseWindshaftErrors","UNFETCHED_STATUS","FETCHING_STATUS","FETCHED_STATUS","FETCH_ERROR_STATUS","REQUEST_GET_MAX_URL_LENGTH","sync_on_bbox_change","sync_on_circle_change","sync_on_polygon_change","_getSpatialFilterParam","_getDataviewSpecificURLParams","_addAuthTo","urlWithParams","getApiKey","getAuthToken","_bboxFilter","_getBoundingBoxFilterParam","_getCircleFilterParam","_getPolygonFilterParam","_checkBBoxFilter","syncsOnBoundingBoxChanges","_checkCircleFilter","syncsOnCircleChanges","_checkPolygonFilter","syncsOnPolygonChanges","_hasBinds","_checkSourceAttribute","_addSpatialFilterFrom","_fetch","_onFilterChanged","_onAnalysisStatusChange","_onChangeBinds","_newDataAvailable","_shouldFetchOnURLChange","mdl","_onMapBoundsChanged","_shouldFetchOnBoundingBoxChange","_onCircleChanged","_shouldFetchOnCircleChange","_onPolygonChanged","_shouldFetchOnPolygonChange","_triggerLoading","_triggerStatusError","getSourceId","_reloadAndForceFetch","forceFetch","_sourceAffectsMyOwnSource","sourceAnalysis","_stopListeningBBoxChanges","_listenToBBoxChanges","_stopListeningCircleChanges","_listenToCircleChanges","_stopListeningPolygonChanges","_listenToPolygonChanges","ATTRS_NAMES","getPreviousData","successCallback","_model","_errorWithBigPolygonFilter","_parseError","usingPolygonFilter","getSourceType","isSourceType","isFiltered","_removeExistingAnalysisBindings","isFetched","isUnavailable","setUnavailable","_triggerFilterChange","filterIndex","removedElement","sqlFilters","$getSQL","joinedFilters","JOIN_OPERATOR","StaticLegendModelBase","EventTypes","Aggregation","OVERLAY_TYPES","HEADER","LIMITS","TILES","LOADER","LOGO","SEARCH","ZOOM","MAP_PROVIDER_TYPES","GMAPS","LEAFLET","GMAPS_BASE_LAYER_TYPES","WINDSHAFT_ERRORS","ANALYSIS","LAYER","LIMIT","TILE","GENERIC","WindshaftError","responseJSON","errors_with_context","cdb","info","debug","DEBUG","getVersion","PARAM_TYPES","NODE","NUMBER","STRING","ENUM","SOURCE_ANALYSIS_TYPE","ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP","ANALYSIS_TYPE_TO_PARAM_NAMES_MAP","analysesReference","analyses","analysisType","analysisParams","paramType","paramNames","Analysis","LayerTypes","AnalysisService","_apiKey","apiKey","_authToken","_analysisNodes","_getAnalysesFromLayers","layersCollection","_getCartoDBAndTorqueLayers","_getAnalysesFromDataviews","dataviewsCollection","dataview","analyse","analysisDefinition","findNodeById","analysisAttrs","_getAnalysisAttributesFromAnalysisDefinition","_onAnalysisRemoved","analysisNodes","sourceNamesForAnalysisType","sourceParams","createAnalysisForLayer","layerQuery","getUniqueAnalysisNodes","uniqueAnalysisNodes","analysisList","getAnalysisList","analysisNode","analisis","layerAnalyses","dataviewsAnalyses","AGGREGATION_DATA","minute","hour","day","week","month","quarter","year","decade","century","millennium","helper","trimBuckets","filledBuckets","totalBuckets","keepGoing","_getDaysInMonth","_isLeapYear","fillTimestampBuckets","aggregation","numberOfBins","definedBucket","bucketStart","nextBucketStart","bin","freq","fillNumericBuckets","commonBucketEnd","isLastBucket","bucketEnd","filledBucket","hasChangedSomeOf","number","setUTCSeconds","getUTCSeconds","setUTCMinutes","getUTCMinutes","setUTCHours","getUTCHours","setUTCDate","getUTCDate","setUTCMonth","getUTCMonth","getUTCFullYear","d3","DataviewModelBase","HistogramDataModel","dateUtils","totalAmount","filteredAmount","hasNulls","localTimezone","getCurrentOffset","_localOffset","getLocalOffset","_totals","bins","column_type","localOffset","setRange","_updateURLBinding","_onTotalsDataFetched","_updateBindings","_onTotalsError","_onLocalTimezoneChanged","_onFieldsChanged","_onColumnTypeChanged","_onUrlChanged","enableFilter","disableFilter","getUnfilteredData","getUnfilteredDataModel","getColumnType","bins_count","bin_width","timestamp_start","bins_start","parsedData","nulls","_calculateTotalAmount","_calculateFilteredAmount","indexes","_findBinsIndexes","_sumBinsFreq","startBin","endBin","acum","getDistributionType","histogram","freqAccessor","osc","mean","sumFreqs","sum","freqs","ajus","maxAjus","minAjus","uniques","A_TYPES","U_TYPES","columnType","resetFilter","_resetFilterAndFetch","_setTotalsStartEnd","aggregationChangedToUndefined","_resetFilter","startEndChanged","startEndValid","hasDifferentValues","unsetRange","CategoryItemModel","COUNT_AGGREGATION_TYPE","aggregationModel","category","isModel","isOtherAvailable","Map","EventEmitter","TileLoader","Interactive","gridUrl","_bindMap","_tileLoader","_tileSize","_eventEmitter","_tilejson","grids","_map","_onMapClick","_onMapMouseMove","eventClone","cloneEvent","coords","_getTileCoordsFromMouseEvent","loadTile","_objectForEvent","pixelPoint","project","_unscale","eventType","_unscale2","grid","gridX","gridY","_utfDecode","_triggerEvent","extendedEvent","char","GoogleMap","LeafletMap","nativeMap","__gm","latLng","fromLatLngToPoint","addListener","latlng","containerPoint","layerPoint","move","_url","_cache","newValue","_buildTileUrl","_handleLimitErrors","CartoDBLayerGroupViewBase","layerGroupModel","_mapModel","mapModel","onLayerVisibilityChanged","_reloadInteraction","_clearInteraction","forEachGroupedLayer","isInteractive","isFeatureInteractivityEnabled","_enableInteraction","layerIndexInLayerGroup","tilejson","_generateTileJSON","previousLayerInteraction","interactionClass","zeraEvent","_interactionDisabled","_manageOnEvents","_manageInteractivityErrors","_manageOffEvents","payload","hasURLs","scheme","getGridURLTemplatesWithSubdomains","getTileURLTemplatesWithSubdomains","formatter","tilesOk","internalEvent","lat","lng","_type","_mapping","_property","$setError","_error","newEngine","getFieldNames","fields","field","PopupFields","otherFields","myFields","subtype","truncateMessage","isLayerError","isAnalysisError","node_id","MAX_SIZE","originalType","forcedType","genericType","isGlobalError","errorType","MAPS_API_BASE_URL","versions","AnalysisPoller","AnonymousMapSerializer","CartoDBLayerGroup","DataviewsCollection","LayersCollection","ModelUpdater","NamedMapSerializer","Request","Response","WindshaftClient","RELOAD_DEBOUNCE_TIME_IN_MILIS","_isNamedMap","templateName","_timeout","_stackCalls","_batchOptions","_windshaftSettings","urlTemplate","serverUrl","userName","client","_windshaftClient","_eventEmmitter","_analysisPoller","_layersCollection","_dataviewsCollection","_cartoLayerGroup","_bindCartoLayerGroupError","_modelUpdater","getLayerGroup","includeFilters","_performReload","windshaftError","windshaftOptions","_buildWindshaftOptions","serverResponse","_onReloadSuccess","_onReloadError","_buildParams","_getSerializer","request","instantiateMap","_manageClientError","addLayer","removeLayer","moveLayer","toIndex","addDataview","removeDataview","responseWrapper","updateModels","_restartAnalysisPolling","RELOAD_SUCCESS","_getSimpleWindshaftError","setErrors","RELOAD_ERROR","errorCallback","api_key","auth_token","resetAnalysisNodes","change","LAYER_ERROR","__webpack_exports__","ascending","bisector","ascendingComparator","lo","hi","ascendingBisect","bisectRight","bisectLeft","bisect","pair","cross","values0","values1","i0","i1","value0","n0","n1","descending","variance","valueof","deviation","array_array","e10","e5","e2","ticks","tickIncrement","power","LN10","tickStep","step0","step1","sturges","LN2","src_histogram","domain","xz","tz","thresholds","quantile","value1","freedmanDiaconis","scott","src_max","src_mean","median","numbers","arrays","merged","src_min","permute","permutes","scan","xi","xj","src_sum","src_transpose","matrix","transpose_length","transpose","OR","_FiltersCollection","AND","RANGE_COMPARISON_OPERATORS","lt","lte","gt","gte","between","notBetween","betweenSymmetric","notBetweenSymmetric","freeze","Range","_SQLBase","_getSQLTemplates","CATEGORY_COMPARISON_OPERATORS","in","notIn","notEq","like","similarTo","Category","_polygon","setPolygon","polygon","getPolygon","PolygonFilterModel","_checkPolygon","resetPolygon","_circle","setCircle","circle","getCircle","CircleFilterModel","Circle","_checkCircle","resetCircle","_isReady","_debouncedTriggerBoundsChanged","_triggerBoundsChanged","mapBounds","sw","getSouthWest","ne","getNorthEast","clearListeners","GoogleMapsBoundingBoxAdapter","BoundingBoxFilterModel","utils","BoundingBoxGoogleMaps","_isGoogleMap","_onBoundsChanged","LeafletBoundingBoxAdapter","BoundingBoxLeaflet","_isLeafletMap","BoundingBox","_checkBounds","resetBounds","secondsToHours","seconds","parseTimeSeriesData","compactData","maxBin","maxFreq","_createBins","normalized","HistogramDataviewModel","TimeSeries","_aggregation","_offset","_hoursToSeconds","_localTimezone","useLocalTimezone","hours","_secondsToHours","setAggregation","_validateAggregation","getAggregation","_validateOffset","_validateLocalTimezone","isUsingLocalTimezone","parseHistogramData","getTimezoneOffset","hasBeenFetched","_getCurrentOffset","setBins","Histogram","_bins","_start","_end","_validateBins","getBins","setStartEnd","_validateStartEnd","getStart","getEnd","bothAreNumbers","bothAreNull","parseFormulaData","constants","FormulaDataviewModel","Formula","_operation","setOperation","_checkOperation","getOperation","parseCategoryData","categories","_createCategories","WindshaftFilterBase","rejectAll","rejectedCategories","acceptedCategories","accept","applyFilter","rejectedMdls","acceptedMdls","acceptAll","cleanFilter","isAccepted","isRejected","acceptCount","triggerChange","areAllRejected","rejectCount","acceptedCats","rejectedCats","getAcceptedCategoryNames","getRejectedCategoryNames","totalCount","categoriesCount","queryOptions","CategoriesCollection","fetchIfSearchIsApplied","isSearchApplied","setData","_parseData","getCount","resetData","getSearchQuery","newData","SearchModel","CategoryModelRange","filterEnabled","allCategoryNames","_rangeModel","_searchModel","_bindSearchModelEvents","_onSearchDataChange","getSearchResult","setSearchQuery","isSearchValid","getSearchCount","applySearch","cleanSearch","setupSearch","numberOfAcceptedCategories","numberOfRejectedCategories","totalCategories","cat","isCategoryInData","_tmpArray","allNewCategories","allNewCategoryNames","acceptedCategoryNames","datum","aggregationColumn","CategoryDataviewModel","CategoryFilter","operationColumn","_limit","limit","_operationColumn","setLimit","_checkLimit","getLimit","setOperationColumn","_checkOperationColumn","getOperationColumn","aggregation_column","CONTENT_CHANGED","CartoCSS","_checkContent","_content","_onContentChanged","newContent","getContent","setContent","CamshaftReference","SQL","_checkQuery","_query","_updateInternalModelQuery","_getQueryToApply","setQuery","_triggerQueryChanged","getQuery","internalModel","whereClause","Dataset","tableName","_checkTableName","_tableName","setTableName","_triggerTableNameChanged","getTableName","datasetQuery","MAX_HISTORY","Profiler","Metric","t0","metrics","_backend","MAX_VALUE","avg","total","Float32Array","backend","new_value","performance","print_stats","_elapsed","inc","qty","dec","mark","elapsed","metric","Projector","OverlayView","draw","latLngToPixel","fromLatLngToContainerPixel","Point","pixelToLatLng","fromContainerPixelToLatLng","LatLng","GMapsLayerView","_onModelUpdated","gmapsMap","showLimitErrors","addToMap","zera","C","OPACITY_FILTER","EMPTY_GIF","setImageOpacityIE8","generateId","GMapsCartoDBLayerGroupView","hovers","previousEvent","_featureOver","featureOver","_featureOut","featureOut","_featureClick","featureClick","eventTimeout","latlon","pxPos","blankImage","interactive","Size","projector","overlayMapTypes","setAt","overlayIndex","_getOverlayIndex","removeAt","finishLoading","invalidate","pixelPos","getLayerInLayerGroupAt","ok","coord","ielt9","added","hasTileURLTemplates","Image","_getTile","loadTime","finished","addError","_getTileUrl","mod","tileURLTemplates","_refreshView","overlays","getAt","_checkLayer","overlay","_newPoint","triggerLayerFeatureEvent","GoogleMapsMapType","_layers","_hoveredLayers","_internalView","_onFeatureClick","_onFeatureOver","_onFeatureOut","_onFeatureError","FEATURE_CLICKED","draggableCursor","FEATURE_OVER","FEATURE_OUT","TILE_ERROR","LeafletLayerView","leafletMap","leafletLayer","nativeLayer","_createLeafletLayer","setModel","_modelUpdated","notifyRemove","redraw","LeafletCartoDBLayerGroupView","tileLayer","_setUrl","noDraw","tileURLTemplate","getTileURLTemplate","subdomains","getSubdomains","Util","layerPointToContainerPoint","containerPointToLatLng","_onFeatureClicked","OPERATIONS","MODE","PLACEMENTS","SAMPLE","GRID","CENTROID","VALID_RESOLUTIONS","_checkValidPlacement","columns","_checkAndTransformColumns","_checkColumns","aggregatedColumn","aggregateFunction","_columnToSnakeCase","aggregate_function","aggregated_column","Categories","categoryBuckets","defaultBuckets","_categories","_defaultValue","getCategories","getDefaultValue","Buckets","rangeBuckets","_buckets","_avg","_min","_max","getBuckets","getAverage","getMin","getMax","BucketsMetadata","CategoriesMetadata","getMetadataFromRules","rulesData","metadata","ruleData","_isBucketsMetadata","_isCategoriesMetadata","TorqueLegendModel","CustomChoroplethLegendModel","leftLabel","rightLabel","CustomLegendModel","ChoroplethLegendModel","BubbleLegendModel","fillColor","CategoryLegendModel","LEGENDS_METADATA","modelClass","definitionAttrs","dynamic","choropleth","custom","custom_choropleth","torque","SHARED_ATTRS","Legends","legendsData","_legendsData","legendMetadata","legendType","_createLegendModel","_findDataForLegend","ModelClass","definition","modelAttrs","attrNameInData","attrNameForModel","legendModel","hasAnyLegend","legendTypes","TooltipTemplate","vertical_offset","horizontal_offset","alternative_names","hasFields","hasTemplate","InfowindowTemplate","maxHeight","template_type","MapLayer","hasSource","Config","REPORT_ERROR_URL","ERROR_TRACK_ENABLED","config","cartodb_attributions","cartodb_logo_link","LayerModelBase","ATTRIBUTES_THAT_TRIGGER_VIS_RELOAD","CartoDBLayer","cartocss","infowindow","tooltip","legends","_onAttributeChanged","restoreCartoCSS","_hasInfowindowFields","_hasTooltipFields","getInteractiveColumnNames","isInfowindowEnabled","isTooltipEnabled","getName","getEstimatedFeatureCount","meta","estimatedFeatureCount","newSource","table_name","StyleBase","metadataParser","_checkStyle","_client","_style","_visible","_featureClickColumns","featureClickColumns","_featureOverColumns","featureOverColumns","_minzoom","minzoom","_maxzoom","maxzoom","_validateAggregationColumnsAndInteractivity","_getInteractivityFields","_isStyleError","_rejectAndTriggerError","_areColumnsTheSame","newColumns","oldColumns","aggregationColumns","clickColumns","overColumns","aggColumns","_validateColumnsConcordance","interactivityColumns","interactivity","notInAggregation","clickColumn","prevStyle","prevSource","setFeatureClickColumns","prevColumns","getFeatureClickColumns","setFeatureOverColumns","getFeatureOverColumns","prevStatus","setOrder","bringToBack","bringToFront","rules","cartocss_meta","styleMetadataList","$setClient","LeafletCartoLayerGroupView","LeafletLayer","addTo","removeFrom","getContainer","cursor","Layers","RequestTracker","maxNumberOfRequests","_maxNumberOfRequests","lastRequestEquals","lastResponseEquals","maxNumberOfRequestsReached","_lastRequest","_lastResponse","_numberOfRequests","canRequestBePerformed","LZMA","$moduleName","action_compress","action_decompress","update_progress","callback_num","postMessage","action","expandoNames_0","expandoValues_0","N8000000000000000_longLit","N1_longLit","P0_longLit","P1_longLit","P4_longLit","P1000_longLit","Pffffff_longLit","P1000000_longLit","Pff000000_longLit","Pffffffff_longLit","P7fffffffffffffff_longLit","getClass_18","Ljava_lang_Object_2_classLit","Object_0","getClass_22","Ljava_lang_Throwable_2_classLit","Throwable","getClass_13","Ljava_lang_Exception_2_classLit","Exception","$RuntimeException","this$static","detailMessage","getClass_19","Ljava_lang_RuntimeException_2_classLit","RuntimeException","$JavaScriptException","getClass_0","Lcom_google_gwt_core_client_JavaScriptException_2_classLit","JavaScriptException","$append","explicitLength","$appendNonNull","$toString","s_0","createFromSeed","seedType","length_0","getClass_2","arrayClass$","initDim","arrayClass","typeId","queryId","$clinit_4","wrapArray","typeId$","queryId$","initValues","setCheck","canCastUnsafe","ArrayStoreException","typeMarker$","nullMethod","Array_0","initExpandos","protoType","expandoNames","expandoValues","name_0","canCast","srcId","dstId","typeIdArray","dynamicCast","ClassCastException","instanceOf","round_int","getClass$","boxedValues","LN_2","MIN_VALUE","NEG_ONE","ONE","TWO","TWO_PWR_24","ZERO","CrcTable","g_FastPos","ProbPrices","1","2","10","11","4","5","6","7","8","9","caught","newHigh","newLow","addTimes","and","makeFromBits","lowBits_0","nega","negb","sub","valueLow","valueHigh","diffHigh","diffLow","approx","deltaRem","deltaResult","halfa","rem","$ArithmeticException","ArithmeticException","$clinit_10","shr","shl","mul","neg","fromDouble","toDoubleRoundDown","toDoubleRoundUp","fromInt","rebase","$clinit_9","internalFromInt","highBits","lowBits","a4","b1","b2","b3","b4","multByMinValue","pwrAsDouble","twoToN","shiftFact","shru","sr","magnitute","toSubtract","toString_0","digits","remDivTenPower","tenPowerLong","zeroesNeeded","_3_3D_classLit","getClass_6","Ljava_io_InputStream_2_classLit","InputStream","$ByteArrayInputStream","buf","$ByteArrayInputStream_0","$read","$read_0","arraycopy","getClass_3","Ljava_io_ByteArrayInputStream_2_classLit","ByteArrayInputStream","getClass_7","Ljava_io_OutputStream_2_classLit","OutputStream","$ByteArrayOutputStream","_3B_classLit","$ensureCapacity","newbuf","$toByteArray","$write","$write_0","getClass_4","Ljava_io_ByteArrayOutputStream_2_classLit","ByteArrayOutputStream","$IOException","getClass_5","Ljava_io_IOException_2_classLit","IOException","explanation","getClass_8","Ljava_lang_ArithmeticException_2_classLit","$ArrayStoreException","getClass_9","Ljava_lang_ArrayStoreException_2_classLit","createForArray","packageName","typeName","createForClass","createForEnum","getClass_11","Ljava_lang_Class_2_classLit","getClass_10","Ljava_lang_ClassCastException_2_classLit","getClass_12","Ljava_lang_Enum_2_classLit","Enum","$IllegalArgumentException","getClass_14","Ljava_lang_IllegalArgumentException_2_classLit","IllegalArgumentException","getClass_15","Ljava_lang_IllegalStateException_2_classLit","IllegalStateException","getClass_16","Ljava_lang_IndexOutOfBoundsException_2_classLit","IndexOutOfBoundsException","getClass_17","Ljava_lang_NullPointerException_2_classLit","NullPointerException","$equals","$getChars","srcBegin","srcEnd","dst","dstBegin","srcIdx","getClass_21","Ljava_lang_String_2_classLit","$StringBuilder","getClass_20","Ljava_lang_StringBuilder_2_classLit","StringBuilder","srcOfs","destOfs","destArray","destEnd","destTypeName","destlen","srcArray","srcTypeName","srclen","Lcom_google_gwt_core_client_JavaScriptObject_2_classLit","$configure","encoder","$SetDictionarySize_0","dictionarySize","$SetNumFastBytes","fb","$SetMatchFinder","matchFinder","$SetLcLpPb_0","lc","lp","pb","getClass_23","Lorg_dellroad_lzma_client_CompressionMode_2_classLit","CompressionMode","$execute","$e0","$processChunk","chunker","$init","$Encoder","Encoder","_writeEndMark","$WriteCoderProperties","_needReleaseMFStream","_inStream","_finished","$Create_2","_rangeEncoder","Stream","$Init_4","$FillDistancesPrices","$FillAlignPrices","_lenEncoder","_tableSize","_numFastBytes","$UpdateTables","_posStateBits","_repMatchLenEncoder","nowPos64","$Chunker_0","Chunker","getClass_26","Lorg_dellroad_lzma_client_LZMACompressor_2_classLit","LZMACompressor","$LZMAByteArrayCompressor","getClass_24","Lorg_dellroad_lzma_client_LZMAByteArrayCompressor_2_classLit","LZMAByteArrayCompressor","$execute_0","exception","$init_0","decoder","tmp_length","hex_length","$Decoder","Decoder","$SetDecoderProperties","$CodeInChunks","getClass_27","Lorg_dellroad_lzma_client_LZMADecompressor_2_classLit","LZMADecompressor","$LZMAByteArrayDecompressor","getClass_25","Lorg_dellroad_lzma_client_LZMAByteArrayDecompressor_2_classLit","LZMAByteArrayDecompressor","$Create_4","keepSizeBefore","keepSizeAfter","keepSizeReserv","blockSize","_keepSizeBefore","_keepSizeAfter","_bufferBase","_blockSize","_pointerToLastSafePosition","$GetIndexByte","_bufferOffset","_pos","$GetMatchLen","pby","_streamEndWasReached","_streamPos","$GetNumAvailableBytes","$MoveBlock","numBytes","$MovePos_1","pointerToPostion","_posLimit","$ReadBlock","numReadBytes","_stream","$ReduceOffsets","subValue","getClass_40","Lorg_dellroad_lzma_client_SevenZip_Compression_LZ_InWindow_2_classLit","InWindow","$clinit_60","_3I_classLit","$Create_3","historySize","keepAddBufferBefore","matchMaxLen","keepAddBufferAfter","cyclicBufferSize","hs","windowReservSize","_cutValue","_matchMaxLen","_cyclicBufferSize","_son","HASH_ARRAY","_hashMask","kFixHashSize","_hashSizeSum","_hash","$GetMatches","distances","curMatch","curMatch2","curMatch3","cyclicPos","hash2Value","hash3Value","hashValue","len0","len1","lenLimit","matchMinPos","maxLen","pby1","ptr0","ptr1","kMinMatchCheck","$MovePos_0","_cyclicBufferPos","kNumHashDirectBytes","$Init_5","$NormalizeLinks","numItems","$SetType","numHashBytes","$Skip","getClass_39","Lorg_dellroad_lzma_client_SevenZip_Compression_LZ_BinTree_2_classLit","BinTree","$CopyBlock","_windowSize","_buffer","$Flush_0","$Create_5","windowSize","$GetByte","$Init_7","solid","$PutByte","$ReleaseStream","$SetStream_0","stream","getClass_41","Lorg_dellroad_lzma_client_SevenZip_Compression_LZ_OutWindow_2_classLit","OutWindow","GetLenToPosState","StateUpdateChar","alive","$Chunker","$processEncoderChunk","$processDecoderChunk","$CodeOneChunk","inBytesProcessed","outBytesProcessed","outSize","$CodeFinish","$CodeOneBlock","processedInSize","processedOutSize","$ReleaseStreams","getClass_28","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Chunker_2_classLit","m_OutWindow","m_RangeDecoder","inStream","outStream","$Init_1","rep0","rep1","rep2","rep3","prevByte","decoder2","numDirectBits","posSlot","posState","m_PosStateMask","$DecodeBit","m_IsMatchDecoders","$GetDecoder","m_LiteralDecoder","$DecodeNormal","$DecodeWithMatchByte","m_IsRepDecoders","m_IsRepG0Decoders","m_IsRep0LongDecoders","m_IsRepG1Decoders","m_IsRepG2Decoders","$Decode","m_RepLenDecoder","m_LenDecoder","$Decode_0","m_PosSlotDecoder","ReverseDecode","m_PosDecoders","$DecodeDirectBits","$ReverseDecode","m_PosAlignDecoder","m_DictionarySizeCheck","Decoder_0","_3S_classLit","_3Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_BitTreeDecoder_2_classLit","$BitTreeDecoder","BitTreeDecoder","$Decoder$LenDecoder","Decoder$LenDecoder","Decoder$LiteralDecoder","InitBitModels","$Init_0","Models","$Init","$Init_8","remainder","$SetLcLpPb","$SetDictionarySize","m_DictionarySize","numPosStates","$Create_0","$Create","getClass_32","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder_2_classLit","m_NumPosStates","m_LowCoder","m_MidCoder","rangeDecoder","symbol","m_Choice","m_HighCoder","getClass_29","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder$LenDecoder_2_classLit","numPosBits","numPrevBits","numStates","m_Coders","m_NumPrevBits","m_NumPosBits","m_PosMask","_3Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder$LiteralDecoder$Decoder2_2_classLit","$Decoder$LiteralDecoder$Decoder2","Decoder$LiteralDecoder$Decoder2","m_Decoders","getClass_31","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder$LiteralDecoder_2_classLit","matchByte","bit","matchBit","getClass_30","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Decoder$LiteralDecoder$Decoder2_2_classLit","$clinit_59","slotFast","$Backward","backCur","backMem","posMem","posPrev","_optimumEndIndex","_optimum","PosPrev","BackPrev","Prev1IsChar","$MakeAsChar","Prev2","PosPrev2","BackPrev2","backRes","_optimumCurrentIndex","$BaseInit","_state","_previousByte","_repDistances","inSize","baseVal","complexState","curByte","footerBits","lenToPosState","posReduced","progressPosValuePrev","subCoder","_matchFinder","$Flush","$ReadMatchDistances","_posStateMask","$Encode_3","_isMatch","_additionalOffset","$Encode_1","$GetSubCoder","_literalEncoder","$GetOptimum","$EncodeMatched","_isRep","_isRepG0","_isRep0Long","_isRepG1","_isRepG2","$Encode_0","GetPosSlot","$Encode_2","_posSlotEncoder","ReverseEncode","_posEncoders","$EncodeDirectBits","$ReverseEncode","_posAlignEncoder","_alignPriceCount","_matchPriceCount","$GetProcessedSizeAdd","bt","_matchFinderType","$Create_1","_numLiteralPosStateBits","_numLiteralContextBits","_dictionarySize","_dictionarySizePrev","_numFastBytesPrev","_3Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$Optimal_2_classLit","$clinit_66","Encoder_0","_3Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_BitTreeEncoder_2_classLit","$BitTreeEncoder","BitTreeEncoder","$Encoder$LenPriceTableEncoder","Encoder$LenPriceTableEncoder","Encoder$LiteralEncoder","_matchDistances","_posSlotPrices","_distancesPrices","_alignPrices","reps","repLens","_3J_classLit","_3Z_classLit","tempPrices","Encoder$Optimal","$ReverseGetPrice","st","st2","ReverseGetPrice","_distTableSize","$GetPrice_1","nowPos","$ReleaseMFStream","$WriteEndMarker","$FlushData","curAnd1Price","curAndLenCharPrice","curAndLenPrice","curBack","curPrice","currentByte","lenEnd","lenMain","lenRes","lenTest","lenTest2","lenTestTemp","matchPrice","newLen","nextIsChar","nextMatchPrice","nextOptimum","nextRepMatchPrice","normalMatchPrice","numAvailableBytes","numAvailableBytesFull","numDistancePairs","offs","optimum","posStateNext","price_4","repIndex","repLen","repMatchPrice","repMaxIndex","shortRepPrice","startLen","state2","price","price_0","price_1","price_2","price_3","_longestMatchWasFound","_longestMatchLength","_numDistancePairs","$MovePos","State","Price","$GetPrice_0","$GetRepLen1Price","$MakeAsShortRep","Backs0","Backs1","Backs2","Backs3","$GetPureRepPrice","$GetPrice","$GetPosLenPrice","GetPosSlot2","GetPrice","$Init_9","InitBitModels_0","$Init_3","$Init_2","dicLogSize","matchFinderIndex","matchFinderIndexPrev","numFastBytes","getClass_38","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder_2_classLit","$Encode","rangeEncoder","_choice","_lowCoder","_midCoder","_highCoder","$Encoder$LenEncoder","$SetPrices","numSymbols","prices","a0","b0","getClass_33","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LenEncoder_2_classLit","Encoder$LenEncoder","_counters","_prices","getClass_34","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LenPriceTableEncoder_2_classLit","_3Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LiteralEncoder$Encoder2_2_classLit","$Encoder$LiteralEncoder$Encoder2","Encoder$LiteralEncoder$Encoder2","m_Encoders","getClass_36","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LiteralEncoder_2_classLit","same","matchMode","getClass_35","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$LiteralEncoder$Encoder2_2_classLit","getClass_37","Lorg_dellroad_lzma_client_SevenZip_Compression_LZMA_Encoder$Optimal_2_classLit","numBitLevels","NumBitLevels","bitIndex","getClass_42","Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_BitTreeDecoder_2_classLit","getClass_43","Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_BitTreeEncoder_2_classLit","probs","newBound","prob","Code","numTotalBits","getClass_44","Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_Decoder_2_classLit","Low","$ShiftLow","_cacheSize","_position","LowHi","Prob","getClass_45","Lorg_dellroad_lzma_client_SevenZip_Compression_RangeCoder_Encoder_2_classLit","decode","utf","encode","ch","chars","elen","charArr","_3C_classLit","$LZMADemo","toDouble","compress","on_finish","on_progress","LZMADemo","do_action","get_mode_obj","decompress","byte_arr","getClass_46","Lorg_dellroad_lzma_demo_client_LZMADemo_2_classLit","$stats","moduleName","subSystem","evtGroup","millis","gwtOnLoad","errFn","modName","modBase","modes","WindshaftConfig","validatePresenceOfOptions","requiredOptions","missingOptions","MAX_URL_LENGTH","COMPRESSION_LEVEL","MAP_INSTANTIATION_LIMIT","endpoints","post","_requestTracker","_performRequest","parsedErrors","ajaxOptions","mapDefinition","encodedURL","_generateEncodedURL","_isURLValid","_get","_generateCompressedURL","compressedURL","_getURL","_post","compressedPayload","lzma","array2hex","_abortPreviousRequest","_previousRequest","_jsonpCallbackName","queryString","_convertParamsToQueryString","endpoint","oneValue","uniqueCallbackName","windshaftSettings","_layerGroupId","layergroupid","_dataviews","dataviews","_analyses","_cdnUrl","cdn_url","getLayerIndexesByType","_getLayers","layerIndexes","getBaseURL","_getHost","getStaticBaseURL","protocol","getProtocol","cdnUrl","cdnHost","_isHttps","getSupportedSubdomains","getLayerMetadata","layerMeta","getDataviewMetadata","dataviewId","_getDataviews","layersDataviews","widgets","layerDataviews","getAnalysisNodeMetadata","_getAnalyses","toHashCode","buffersize","mvt","_getStylesFromLayers","VALID_PROPS","VALID_MAPPINGS","isEveryBucketValid","generateCategories","bucketsColor","bucketsIcon","bucketColor","bucketIcon","_extractURL","canAdapt","adapt","ruleColor","ruleIcon","categoryBucketsColor","categoryBucketsIcon","defaultBucketsColor","defaultBucketsIcon","default","generateColors","labelStart","labelEnd","lastBucket","firstBucket","calculateValues","sizes","ADAPTERS","getAdapterForLegend","helpers","RuleToLegendModelAdapters","getSubdomain","_layerGroupModel","_updateLayerModels","_updateLayerGroupModel","_updateDataviewModels","_updateAnalysisModels","_generateTileURLTemplate","_calculateGridURLTemplatesForCartoDBLayers","_calculateAttributesBaseURLsForCartoDBLayers","_calculateStaticMapURL","indexOfLayersInWindshaft","urlTemplates","indexesOfMapnikLayers","layerUrlTemplates","gridURLTemplate","_generateGridURLTemplate","subdomain","_generateAttributesBaseURL","baseURL","getCartoDBLayers","localLayerIndex","responseWrapperLayerIndex","_updateLegendModels","indexesOfTorqueLayers","getTorqueLayers","_calculateTileURLTemplatesForTorqueLayers","_generateTorqueTileURLTemplate","remoteLayerIndex","layerMetadata","_getLayerLegends","_updateLegendModel","cartoCSSRules","newLegendAttrs","adapter","rulesForLegend","dataviewModel","dataviewMetadata","_getProtocol","analysisNodesCollection","_getUniqueAnalysisNodesCollection","analysisMetadata","error_message","_setError","_setLegendErrors","legendModels","_assignIndexes","order","layersByType","lastOrder","sortedTypes","_getLayersByType","getTiledLayers","getLayersWithLegends","moveCartoDBLayer","movingLayer","isAnyDataviewFiltered","_getGroupedLayers","getIndexOfLayerInLayerGroup","getCartoLayerById","_areAllLayersHidden","_generatePNGTileURLTemplate","_generateMTVTileURLTemplate","mapnikLayersIndexes","_getIndexesOfVisibleMapnikLayers","_appendAuthParamsToURL","_getIndexesOfVisibleLayers","gridURLTemplates","getAttributesBaseURL","getStaticImageURLTemplate","staticImageURLTemplate","_appendParamsToURL","fetchAttributes","featureID","attributeBaseURL","separator","_isLayerGrouped","onLayerAdded","DEFAULT_CARTOCSS_VERSION","HTTP_LAYER_TYPE","MAPNIK_LAYER_TYPE","_calculateLayerJSON","optionsForHTTPLayer","optionsForPlainLayer","optionsForWMSLayer","optionsForMapnikLayer","optionsForTorqueLayer","tms","imageUrl","sharedOptionsForMapnikAndTorqueLayers","cartocss_version","sql_wrap","AnalysisGraph","wantedVersion","reference","extendDefinition","nodeId","extendedWithParams","extendWithParamsKey","objK","filterMissingOptionalNodes","childNodeParamName","appendAllNodes","allNodes","reduceById","nodesMap","nodeRef","childNodesNames","isOptionalParam","getNodesWithId","getChildNodesNames","getNodesList","getDefinitionWith","webpackContext","req","webpackContextResolve","_generateUniqueAnalysisList","analysisIds","_isAnalysisPartOfOtherAnalyses","otherAnalysisModel","AnalisysSerializer","DataviewSerializer","LayerSerializer","__WEBPACK_AMD_DEFINE_FACTORY__","pollers","findPoller","poller","PollingManager","Poller","autostart","delayedRun","continueOnError","flush","delayed","timeoutId","backoff","getDelay","BackbonePoller","_pollers","CONFIG","START_DELAY","MAX_DELAY","DELAY_MULTIPLIER","analysisModels","_poll","_canBePolled","_createPoller","_findPoller","pollerOptions","trackJs","messageRegex","generic","auth","windshaft","validation","ERROR_LIST","errorlist","_getErrorList","listedError","_getListedError","errorList","errorListkeys","_replaceRegex","_buildErrorCode","replaced","fragments","LayerBase","getValidationError","DEFAULT_SERVER_URL","Client","_checkSettings","_bindEngine","_checkLayerIndex","_checkApiKey","_checkUsername","_checkServerUrl","urlregex","addLayers","_addLayer","removeLayers","layersToRemove","_removeLayer","_moveLayer","getLayers","addDataviews","_addDataview","dataviewIndex","getDataviews","getLeafletLayer","_leafletLayer","getGoogleMapsMapType","_gmapsMapType","_checkDuplicatedLayerId","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","Item","nextTick","env","argv","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","setImmediate","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","installNextTickImplementation","canUsePostMessage","installPostMessageImplementation","MessageChannel","installMessageChannelImplementation","installReadyStateChangeImplementation","installSetTimeoutImplementation","clearImmediate","task","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","messagePrefix","onGlobalMessage","channel","port1","port2","onreadystatechange","scope","Timeout","clearFn","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","setTimeoutFunc","thisArg","_handled","_value","_deferreds","doResolve","_immediateFn","onFulfilled","onRejected","finale","_unhandledRejectionFn","Handler","reason","ex","prom","race","_setImmediateFn","_setUnhandledRejectionFn","searchParams","iterable","blob","Blob","formData","arrayBuffer","viewClasses","isDataView","DataView","isPrototypeOf","isArrayBufferView","ArrayBuffer","isView","Headers","normalizeName","normalizeValue","oldValue","iteratorFor","entries","_bodyInit","Body","redirectStatuses","redirect","RangeError","parseHeaders","responseURL","ontimeout","credentials","withCredentials","responseType","polyfill","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","bufferClone","byteLength","_initBody","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","normalizeMethod","upcased","referrer","form","bytes","rawHeaders","preProcessedHeaders","line","bodyInit","carto","LinearRing","inflate","GeometryLayout","deflate","SimpleGeometry","flatInteriorPointRevision_","flatInteriorPoint_","orientedRevision_","orientedFlatCoordinates_","appendLinearRing","linearRing","orient","getInteriorPoint","getLinearRingCount","getLinearRing","getLinearRings","linearRings","fromExtent","fromCircle","opt_sides","opt_angle","sides","arrayLength","makeRegular","getRadius","startAngle","XML_SCHEMA_INSTANCE_URI","createElementNS","namespaceURI","qualifiedName","getDocument","getAllTextContent","normalizeWhitespace","getAllTextContent_","Node","CDATA_SECTION_NODE","TEXT_NODE","isDocument","makeArrayExtender","valueReader","objectStack","makeArrayPusher","makeReplacer","makeObjectPropertySetter","opt_property","localName","makeChildAppender","nodeWriter","makeSimpleNodeFactory","opt_nodeName","opt_namespaceURI","fixedNodeName","OBJECT_PROPERTY_NODE_FACTORY","makeSequence","orderedKeys","sequence","makeStructureNS","namespaceURIs","opt_structureNS","structureNS","parseNode","parsersNS","nextElementSibling","parsers","parser","pushParseAndPop","serializersNS","nodeFactory","opt_keys","pushSerializeAndPop","xmlSerializer_","getXMLSerializer","XMLSerializer","document_","implementation","createDocument","XMLFeature","readFeature","readFeatureFromDocument","readFeatureFromNode","readFeaturesFromDocument","readFeatures","readFeaturesFromNode","ELEMENT_NODE","readGeometry","readGeometryFromDocument","readGeometryFromNode","readProjection","readProjectionFromDocument","readProjectionFromNode","dataProjection","writeFeature","writeFeatureNode","serializeToString","writeFeatures","writeFeaturesNode","writeGeometry","writeGeometryNode","readBoolean","readBooleanString","readDecimal","readDecimalString","readString","writeBooleanTextNode","writeStringTextNode","writeCDATASection","createCDATASection","writeDecimalTextNode","decimal","toPrecision","DEFAULT_COLOR","DEFAULT_IMAGE_STYLE_ANCHOR","DEFAULT_IMAGE_STYLE_ANCHOR_X_UNITS","DEFAULT_IMAGE_STYLE_ANCHOR_Y_UNITS","DEFAULT_IMAGE_STYLE_SIZE","DEFAULT_IMAGE_STYLE_SRC","GX_NAMESPACE_URIS","NAMESPACE_URIS","SCHEMA_LOCATION","ICON_ANCHOR_UNITS_MAP","FRACTION","PLACEMARK_PARSERS","extendedDataParser","regionParser","readMultiGeometry","readLineString","readLinearRing","readPoint","readPolygon","readStyle","placemarkStyleMapParser","readStyleURL","readGxMultiTrack","readGxTrack","NETWORK_LINK_PARSERS","linkParser","LINK_PARSERS","readURI","REGION_PARSERS","latLonAltBoxParser","lodParser","KML_SEQUENCE","KML_SERIALIZERS","writeDocument","writePlacemark","DEFAULT_FILL_STYLE","DEFAULT_NO_IMAGE_STYLE","DEFAULT_IMAGE_STYLE","DEFAULT_TEXT_STROKE_STYLE","DEFAULT_STROKE_STYLE","DEFAULT_TEXT_STYLE","DEFAULT_STYLE","TEXTAREA","DEFAULT_STYLE_ARRAY","scaleForSize","createStyleDefaults","Fill","anchorOrigin","IconOrigin","BOTTOM_LEFT","Stroke","Text","Style","defaultIconUrlFunction","KML","defaultStyle_","defaultStyle","extractStyles_","extractStyles","writeStyles_","writeStyles","sharedStyles_","showPointNames_","showPointNames","crossOrigin_","iconUrlFunction_","iconUrlFunction","supportedMediaTypes","readDocumentOrFolder_","readPlacemark_","readSharedStyle_","readSharedStyleMap_","styleUrl","createFeatureStyleFunction","styleUri","baseURI","URL","styleMapValue","readStyleMapValue","getReadOptions","fs","readName","readNameFromDocument","readNameFromNode","name_1","name_2","readNetworkLinks","networkLinks","readNetworkLinksFromDocument","readNetworkLinksFromNode","readRegion","regions","readRegionFromDocument","readRegionFromNode","adaptOptions","kml","xmlnsUri","setAttributeNS","createNameStyleFunction","foundStyle","textOffset","imageScale","setFont","setScale","setFill","setStroke","setOffsetX","setOffsetY","setTextAlign","nameStyle","sharedStyles","drawName","multiGeometryPoints","GeometryCollection","getGeometriesArrayRecursive","featureStyle","findStyle","baseStyle","styleValue","readColor","hexColor","substr","readFlatCoordinates","re","readVec2","xunits","yunits","TOP_LEFT","BOTTOM_RIGHT","TOP_RIGHT","readScale","STYLE_MAP_PARSERS","pairDataParser","ICON_STYLE_PARSERS","readIcon","iconStyleParser","styleObject","IconObject","drawIcon","hotSpot","heading","imageStyle_1","offsetOrigin","imageScale_1","listener_1","imageSize_1","resizeScale","LABEL_STYLE_PARSERS","labelStyleParser","LINE_STYLE_PARSERS","lineStyleParser","POLY_STYLE_PARSERS","polyStyleParser","outline","FLAT_LINEAR_RING_PARSERS","readFlatLinearRing","gxCoordParser","gxTrackObject","GX_MULTITRACK_GEOMETRY_PARSERS","GX_TRACK_PARSERS","whenParser","whens","LineString","ICON_PARSERS","iconObject","GEOMETRY_FLAT_COORDINATES_PARSERS","readFlatCoordinatesFromNode","EXTRUDE_AND_ALTITUDE_MODE_PARSERS","MULTI_GEOMETRY_PARSERS","multiGeometry","homogeneous","MultiPoint","setCommonGeometryProperties","MultiPolygon","FLAT_LINEAR_RINGS_PARSERS","innerBoundaryIsParser","outerBoundaryIsParser","flatLinearRings","STYLE_PARSERS","hasExtrude","hasTessellate","hasAltitudeMode","extrudes","tessellates","altitudeModes","DATA_PARSERS","dataParser","featureObject","displayName","EXTENDED_DATA_PARSERS","schemaDataParser","PAIR_PARSERS","pairObject","placemarkObject","SCHEMA_DATA_PARSERS","simpleDataParser","LAT_LON_ALT_BOX_PARSERS","regionObject","LOD_PARSERS","lodObject","INNER_BOUNDARY_IS_PARSERS","innerBoundaryFlatLinearRings","OUTER_BOUNDARY_IS_PARSERS","flatLinearRing","writeColorTextNode","rgba","abgr","hex","writeCoordinatesTextNode","EXTENDEDDATA_NODE_SERIALIZERS","writeDataNode","writeDataNodeValue","writeDataNodeName","DOCUMENT_SERIALIZERS","DOCUMENT_NODE_FACTORY","DATA_NODE_FACTORY","writeExtendedData","namesAndValues","ICON_SEQUENCE","ICON_SERIALIZERS","GX_NODE_FACTORY","writeIcon","ICON_STYLE_SEQUENCE","ICON_STYLE_SERIALIZERS","writeVec2","writeScaleTextNode","writeIconStyle","getSrc","iconImageSize","iconProperties","origin_1","LABEL_STYLE_SEQUENCE","LABEL_STYLE_SERIALIZERS","writeLabelStyle","LINE_STYLE_SEQUENCE","LINE_STYLE_SERIALIZERS","writeLineStyle","GEOMETRY_TYPE_TO_NODENAME","GEOMETRY_NODE_FACTORY","POINT_NODE_FACTORY","LINE_STRING_NODE_FACTORY","LINEAR_RING_NODE_FACTORY","POLYGON_NODE_FACTORY","MULTI_GEOMETRY_SERIALIZERS","writePrimitiveGeometry","writePolygon","writeMultiGeometry","getPoints","getPolygons","BOUNDARY_IS_SERIALIZERS","writeBoundaryIs","PLACEMARK_SERIALIZERS","writeStyle","PLACEMARK_SEQUENCE","EXTENDEDDATA_NODE_FACTORY","styleArray","pointStyles","lineStyles","polyStyles","PRIMITIVE_GEOMETRY_SEQUENCE","PRIMITIVE_GEOMETRY_SERIALIZERS","POLY_STYLE_SEQUENCE","POLYGON_SERIALIZERS","INNER_BOUNDARY_NODE_FACTORY","OUTER_BOUNDARY_NODE_FACTORY","outerRing","POLY_STYLE_SERIALIZERS","writePolyStyle","STYLE_SEQUENCE","STYLE_SERIALIZERS","vec2","TileImage","imageSmoothing","defaultTileLoadFunction","tileClass","ImageTile","tileCacheForProjection","tileGridForProjection","reprojectionErrorThreshold_","reprojectionErrorThreshold","renderReprojectionEdges_","usedTileCache","getGutter","getInterpolate","thisProj","projKey","createTile_","urlTileCoord","tileUrl","newTile","getTileInternal","interimTile","refreshInterimChain","setRenderReprojectionEdges","setTileGridForProjection","tilegrid","proj","imageTile","OSM","createUrl","tpl","layerDesc","getHereTileLayer","hereLayers","urlTpl","uri","hereLayer","getFullYear","getGoogleTileLayer","getTileLayer","mapType","baseMap","defaultCity","olMap","selectInteraction","convertToRGB","red","green","blue","showPopup","eventsMarker","popup","Popup","addOverlay","_opts","onClick","infoWindow","initializeOlMap","mapContainer","streetView","fullScreen","geolocation","control","defaultControls","FullScreen","getCurrentPosition","addMarker","draggable","activatePopup","onDragend","markerFeature","onClose","trailheads","getFeaturesAtPixel","strokeColor","strokeOpacity","strokeWeight","fillOpacity","isInteger","editable","removePolygons","removePolylines","circleFigure","circleFeature","colorFinalStroke","colorFinalFill","colorRgbStroke","colorRgbFill","centerMap","setCenter","fitBounds","shape","transformExtent1","fit","removeMarkers","removeCircles","fitBoundsMarkerGroup","markerArray","featuresOnLayers","extentOfAllFeatures","flatFeatures","flat","removeInteraction","addInteraction","callBack","vec","Draw","newShape","ol","addCartoDb","mapConfig","Accept","layerGroup","tileJson","vector","parcelsLayer","VectorTile","VectorTileSource","MVT","layerName","showPopupLayer","infowindowContentLayerCarto","hit","removeTileLayers","addSelectToFigure","selectStyle","HEX_COLOR_RE_","NAMED_COLOR_RE_","asString","fromNamed","rgb","fromString","MAX_CACHE_SIZE","fromStringInternal_","asArray","hasAlpha","normalize","transition_","transitionStarts_","getInterimTile","getTileCoord","setState","getAlpha","inTransition","endTransition","MapRenderer","dispatchRenderEvent","calculateMatrices2D","checkWrapped","thisArg2","translatedCoordinate","offsets","layerStates","numLayers","tmpCoord","callback_1","forEachLayerAtPixel","hasFeatureAtCoordinate","scheduleExpireIconCache","postRenderFunctions","expireIconCache","CompositeMapRenderer","fontChangeListenerKey_","redrawText","children_","declutterLayers","previousElement","sourceState","Composite","GroupEvent","LAYERS","LayerGroup","layersListenerKeys_","listenerKeys_","handleLayersChanged_","setLayers","handleLayerChange_","handleLayersAdd_","handleLayersRemove_","layersArray","registerLayerListeners_","handleLayerGroupAdd_","handleLayerGroupRemove_","collectionEvent","currentLayers","ownLayerState","defaultZIndex","MapBrowserEventHandler","moveTolerance","clickTimeoutId_","emulateClicks_","dragging_","dragListenerKeys_","moveTolerance_","down_","activePointers_","trackedTouches_","pointerdownListenerKey_","handlePointerDown_","originalPointerMoveEvent_","relayedListenerKey_","relayMoveEvent_","boundHandleTouchMove_","handleTouchMove_","passive","emulateClick_","newEvent","updateActivePointers_","pointerId","handlePointerUp_","isMouseActionButton_","handlePointerMove_","getRootNode","isMoving_","cancelable","PriorityQueue","priorityFunction","keyFunction","priorityFunction_","keyFunction_","elements_","priorities_","queuedElements_","priorities","siftUp_","elementKey","enqueue","priority","siftDown_","getLeftChildIndex_","getRightChildIndex_","getParentIndex_","heapify_","isKeyQueued","isQueued","lIndex","rIndex","smallerChildIndex","parentIndex","reprioritize","TileQueue","tilePriorityFunction","tileChangeCallback","boundHandleTileChange_","tileChangeCallback_","tilesLoading_","tilesLoadingKeys_","getTilesLoading","loadMoreTiles","maxTotalLoading","maxNewLoads","newLoads","getTilePriority","tileSourceKey","tileCenter","tileResolution","wantedTiles","removeLayerMapProperty","setLayerMapProperty","PluggableMap","optionsInternal","createOptionsInternal","renderComplete_","loaded_","boundHandleBrowserEvent_","handleBrowserEvent","maxTilesLoading_","maxTilesLoading","postRenderTimeoutHandle_","animationDelayKey_","animationDelay_","renderFrame_","coordinateToPixelTransform_","pixelToCoordinateTransform_","frameIndex_","frameState_","previousExtent_","viewPropertyListenerKey_","viewChangeListenerKey_","layerGroupPropertyListenerKeys_","viewport_","overlayContainer_","overlayContainerStopEvent_","mapBrowserEventHandler_","keyboardEventTarget_","keyboardEventTarget","targetChangeHandlerKeys_","overlays_","overlayIdIndex_","postRenderFunctions_","tileQueue_","handleTileChange_","MapProperty","LAYERGROUP","handleLayerGroupChanged_","VIEW","handleViewChanged_","SIZE","handleSizeChanged_","TARGET","handleTargetChanged_","setView","addOverlayInternal_","addControl","getControls","handleLayerAdd_","getOverlays","addLayersFrom","hasFeatureAtPixel","getEventCoordinate","getEventCoordinateInternal","eventPosition","changedTouches","getTarget","getOverlayById","getLoadingOrNotReady","viewCoordinate","handleMapBrowserEvent","rootNode","interactionsArray","cont","handlePostRender","tileQueue","hints","lowOnFrameBudget","MapEvent","MapEventType","resolveConstraints","updateSize","cancelAnimationFrame","handleViewPropertyChanged_","updateViewportSize_","handleLayerRemove_","renderSync","requestAnimationFrame","removeControl","removeOverlay","previousFrameState","isDef","getHints","mapId","renderTargets","nextCenter","nextResolution","nextRotation","nextExtent","moveStart","idle","setLayerGroup","oldLayerGroup","computedStyle","getClientRects","setViewportSize","FIREFOX","SAFARI","WEBKIT","MAC","DEVICE_PIXEL_RATIO","devicePixelRatio","WORKER_OFFSCREEN_CANVAS","WorkerGlobalScope","IMAGE_DECODE","PASSIVE_EVENT_LISTENERS","Instruction","BEGIN_GEOMETRY","BEGIN_PATH","CLOSE_PATH","CUSTOM","END_GEOMETRY","FILL","MOVE_TO_LINE_TO","SET_FILL_STYLE","SET_STROKE_STYLE","STROKE","fillInstruction","strokeInstruction","beginPathInstruction","closePathInstruction","ImageBase","getPixelRatio","ImageWrapper","imageLoadFunction","src_","unlisten_","imageLoadFunction_","handleImageError_","unlistenImage_","handleImageLoad_","listenImage","loadHandler","errorHandler","decoding","geometryFunction_","defaultGeometryFunction","fill_","hitDetectionRenderer_","hitDetectionRenderer","stroke_","zIndex_","setRenderer","setHitDetectionRenderer","toFunction","defaultStyles","createDefaultStyle","createEditingStyle","white","taintedTestContext","IconImage","hitDetectionImage_","color_","imageState_","size_","tainted_","isTainted_","dispatchChangeEvent_","replaceColor_","getHitDetectionImage","imgData","putImageData","displacement","normalizedAnchor_","anchorOrigin_","anchorXUnits_","anchorYUnits_","imgSize_","iconImage_","offset_","offsetOrigin_","origin_","getDisplacement","setAnchor","loadFeaturesXhr","failure","responseXML","featureProjection","tmpTileCoord","DECIMALS","TileGrid","zoomFactor","resolutions_","origins","zoomFactor_","origins_","tileSizes_","tileSizes","tileSize_","fullTileRanges_","tmpSize_","tmpExtent_","restrictedTileRange","calculateTileRanges_","forEachTileCoord","forEachTileCoordParentTileRange","opt_tileRange","tileCoordExtent","getTileCoordChildTileRange","getTileRangeForTileCoordAndZ","tileCoordZ","tileCoordX","tileCoordY","getTileRangeExtent","getTileCoordForXYAndZ_","getTileCoordForCoordAndResolution","getTileCoordForXYAndResolution_","reverseIntersectionPolicy","getTileCoordResolution","opt_direction","tileCoordIntersectsViewport","viewport","fullTileRanges","tileLoadFunction_","onLoad","setFeatures","onError","VectorRenderTile","getSourceTiles","declutterExecutorGroups","loadingSourceTiles","hitDetectionImageData","replayState_","sourceTiles","errorTileKeys","wantedResolution","hasContext","getReplayState","renderedRenderOrder","renderedRevision","renderedTileResolution","renderedTileRevision","renderedTileZ","defaultLoadFunction","sourceTileCache","tileGrids_","peekFirstKey","sourceTile","tileFeatures","candidate","usedSourceTiles","cacheKey","peek","sourceTileGrid_1","sourceZ","sourceTileCoord","sourceTileState","listenChange_1","sourceTileKey","coordKey","tileExtent","sourceTileGrid_2","DEFAULT_RADIUS","c1","c2","opt_radius","lat1","lat2","deltaLatBy2","deltaLonBy2","bearing","lon1","dByR","asin","lon","Pbf","ieee754","Varint","Fixed64","Bytes","Fixed32","SHIFT_LEFT_32","SHIFT_RIGHT_32","TEXT_DECODER_MIN_LENGTH","utf8TextDecoder","TextDecoder","readVarintRemainder","toNum","readPackedEnd","pbf","readVarint","isSigned","writeBigVarint","realloc","writeBigVarintLow","writeBigVarintHigh","lsb","makeRoomForExtraLength","startPos","extraLen","writePackedVarint","writeVarint","writePackedSVarint","writeSVarint","writePackedFloat","writeFloat","writePackedDouble","writeDouble","writePackedBoolean","writeBoolean","writePackedFixed32","writeFixed32","writePackedSFixed32","writeSFixed32","writePackedFixed64","writeFixed64","writePackedSFixed64","writeSFixed64","readUInt32","writeInt32","readInt32","readUtf8","bytesPerSequence","readUtf8TextDecoder","subarray","writeUtf8","lead","readFields","readField","skip","readMessage","readFixed32","readSFixed32","readFixed64","readSFixed64","readFloat","read","readDouble","readVarint64","readSVarint","readBytes","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","writeString","writeBytes","writeRawMessage","writeMessage","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","flatMidpoint_","flatMidpointRevision_","appendCoordinate","forEachSegment","getCoordinateAt","fraction","toIObject","gOPN","windowNames","getWindowNames","it","$export","S","getBlankImage","naturalWidth","naturalHeight","clamp","cosh","log2","LOG2E","squaredSegmentDistance","squaredDistance","solveLinearSystem","mat","maxRow","maxEl","absValue","coef","toDegrees","angleInRadians","toRadians","angleInDegrees","modulo","lerp","toFixed","decimals","DEFAULT_FILL_COLOR","font_","rotateWithView_","scale_","scaleArray_","textAlign_","justify_","textBaseline_","maxAngle_","placement_","overflow_","offsetX_","offsetY_","backgroundFill_","backgroundStroke_","padding_","setOverflow","setMaxAngle","setPlacement","setRotateWithView","setJustify","setTextBaseline","setBackgroundFill","setBackgroundStroke","setPadding","minimizeGeoActive","maximizeGeoActive","closeGeoActive","scrollbarTag","showGeoAgain","copyResults","geoAgain","AssertionError","lineCap_","lineDash_","lineDashOffset_","lineJoin_","miterLimit_","width_","setLineCap","setLineDashOffset","setLineJoin","setMiterLimit","setWidth","opt_endss","endss_","flatInteriorPointsRevision_","polygons","appendPolygon","newEndss","multiPolygon","getInteriorPoints","prevEnds","lastEnds","DESCRIPTORS","redefine","META","KEY","$fails","setToStringTag","wks","wksDefine","enumKeys","anObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$DP","$keys","gOPD","dP","$JSON","_stringify","PROTOTYPE","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","findChild","setSymbolDesc","D","protoDesc","sym","_k","isSymbol","$defineProperty","$defineProperties","P","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","G","W","F","es6Symbols","wellKnownSymbols","store","keyFor","useSetter","useSimple","getOwnPropertyDescriptor","getOwnPropertySymbols","replacer","$replacer","phonesSuccess","generateMarkerIconEvent","statusId","eventAgendado","eventReprogramado","eventEnProceso","eventFinalizado","eventCancelado","generateMarkerIconResource","phonesRed","drawProgramedRoute","optionsProgramedRoute","clearMarkerArray","possitionArray","addMarkerRoute","calculateHereRoute","toggleMapSidebar","drawExecuteRoute","optionsExecutedRoute","valueDistance","accumulated_distance","calculateRouteSnapToRoad","lineWaypoints","lineWaypointsStrokeColor","lineWaypointsStrokeOpacity","lineWaypointsStrokeWeight","executedRoutePolyline","addPolylineToMap","showWaypoints","waypointsLabel","dateText","hourText","distanceText","rasterText","of","addGroupOfMarkers","howLongLastTransmission","timeDiff","minutes","days","years","locale","drawExecuteRouteWaypoints","drawAuxiliaryExecuteRoute","getDistanceFromLatLonInKm","lon2","R","dLat","deg2rad","dLon","deg","none","createSnapToN","opt_isMoving","createSnapToZero","opt_tolerance","LRUCache","opt_highWaterMark","count_","entries_","oldest_","newest_","entry","value_","newer","older","getKeys","peekLast","peekLastKey","Geometry","extentRevision_","simplifiedGeometryMaxMinSquaredTolerance","simplifiedGeometryRevision","simplifyTransformedInternal","revision","getClosestPoint","opt_closestPoint","computeExtent","opt_sy","simplify","TILE_PIXELS","inCoordinates","outCoordinates","linearRingss","assertion","eventSatusLabels","events_per_day_reorder","unsavedEvents","selectedEvents","currentResourceId","currentResource","calendarDate","reassignDate","reloadCounter","showMap","ADD_EVENT","ADD_UNSAVED_EVENT","SET_SCHEDULE_EVENTS","calendarId","SET_SCHEDULE_EVENTS_BY_PARTS","SET_SCHEDULE_EVENTS_PER_DAYS","SET_SCHEDULE_LABELS_STATUS","labels","UPDATE_EVENT","eventIndex","event_id","SELECT_EVENT","someEvent","foundIndex","event_status_name","REMOVE_EVENT","CLEAN_EVENTS","CLEAN_SELECTED_EVENTS","SET_SELECT_EVENT","SELECTED_RESOURCE","REMOVE_UNSAVED_EVENT","SET_UNSAVED_EVENT","SET_CALENDAR_DATE","SET_REASSIGNED_DATE","REMOVE_AVAILABLE_EVENT","CHENGE_STATUS_EVENT","ADD_EVENT_TO_BEGIN","REMOVE_POINT","TOGGLE_MAP","addEvent","commit","Api","fetchEventsByResourceId","records","fetchEventStatusLabel","editEvent","eventsUpdate","eventUpdate","selectedResource","cleanEvents","fetchEventsToProgramedRoute","changeStatusEvent","cancelEvent","statisticsEvent","eventRoute","fetchEventsOnDemand","fetchEventById","getEvent","eventId","getEventByCalendarId","getCurrentResource","namespaced","mutations","actions","getters","VisitPoint","identification","country","phone","typology_id","status_id","additional_info","typology_name","category_id","department","dataFields","additionalProperties","additional","required","tipology","json_properties","setAddtionalInfo","assignClosest","offset1","offset2","maxSquaredDelta","squaredDelta","arrayMaxSquaredDelta","multiArrayMaxSquaredDelta","assignClosestPoint","isRing","opt_tmpPoint","tmpPoint","assignClosestArrayPoint","assignClosestMultiArrayPoint","IMAGE","HYBRID","VECTOR","IMAGE_REPLAYS","VECTOR_REPLAYS","CanvasVectorTileLayerRenderer","renderedLayerRevision_","renderedPixelToCoordinateTransform_","tmpTransform_","prepareTile","updateExecutorGroup_","tileImageNeedsRender_","hifi","getRenderMode","VectorTileRenderType","renderTileImage_","isDrawableTile","getTileImage","layerRevision","renderedTiles","renderOrder","builderState","declutter","layerUid","tt","sourceTileExtent","sharedExtent","builderExtent","tmpExtent","bufferedExtent","executorGroupInstructions","replayExtent","renderingReplayGroup","hitExtent","found","_loop_2","declutteredFeatures","renderedProjection","tilePixel","getTileRenderTransform","worldOffset","renderMode","replayTypes","tileSource","clips","clipZs","hasExecutors","currentZ","contextSaved","currentClip","getClipCoords","replayState","renderPixelRatio","renderScale","pixelScale","VectorTileLayer","renderMode_","appendPoint","multiPoint","getPoint","points","getFirstCoordinate","getLastCoordinate","getStrideForLayout","nesting","getLayoutForStride","transformGeom2D","simpleGeometry","containerWidth","containerHeight","contentWidth","contentHeight","isRtl","isNegativeScroll","negativeScrollAdjustment","scrollWidth","clientWidth","scrollbarXRail","scrollbarX","scrollbarXActive","scrollbarXWidth","scrollbarXLeft","scrollbarXBottom","toInt","isScrollbarXUsingBottom","scrollbarXTop","railBorderXWidth","railXMarginWidth","railXWidth","railXRatio","scrollbarYRail","scrollbarY","scrollbarYActive","scrollbarYHeight","scrollbarYTop","scrollbarYRight","isScrollbarYUsingRight","scrollbarYLeft","scrollbarYOuterWidth","railBorderYWidth","railYMarginHeight","railYHeight","railYRatio","minScrollbarLength","maxScrollbarLength","bottom","clientHeight","scrollHeight","queryChildren","suppressScrollX","scrollXMarginOffset","suppressScrollY","scrollYMarginOffset","isEditable","removePsClasses","startScrolling","stopScrolling","isWebKit","DocumentTouch","supportsIePointer","createEvent","initEvent","lastTop","lastLeft","swicher","tagname","scrollHanle","__init","_ps_inited","__uninit","watch","$route","mounted","updated","$nextTick","activated","deactivated","beforeDestroy","unbindAll","eventElements","eventElement","swipePropagation","swipeEasing","useBothWheelAxes","wheelPropagation","wheelSpeed","theme","shadowRoot","wheelDeltaX","wheelDeltaY","wheelDelta","onwheel","onmousewheel","getSelection","getRangeAt","commonAncestorContainer","targetTouches","buttons","MSPOINTER_TYPE_MOUSE","PointerEvent","MSPointerEvent","wheel","touch","_scopeId","esModule","$props","refs","media","sourceMap","insertAt","singleton","styleSheet","locals","binarySearch","haystack","needle","opt_comparator","cmp","numberSafeCompareFunction","linearFindNearest","reverseSubArray","extension","arr1","arr2","opt_func","opt_strict","currentVal","CENTER","RESOLUTION","ROTATION","createExtent","onlyCenter","smooth","opt_centerShift","viewWidth","viewHeight","shiftX","shiftY","getViewportClampedResolution","viewportSize","showFullExtent","xResolution","yResolution","getSmoothClampedResolution","createSnapToResolutions","opt_smooth","opt_maxExtent","opt_showFullExtent","cappedMaxRes","capped","createSnapToPower","opt_minResolution","minZoomLevel","cappedZoomLevel","zoomLevel","createMinMaxResolution","DEFAULT_MIN_ZOOM","hints_","animations_","updateAnimationKey_","projection_","viewportSize_","targetCenter_","targetResolution_","targetRotation_","nextCenter_","nextResolution_","nextRotation_","cancelAnchor_","applyOptions_","ViewProperty","resolutionConstraintInfo","createResolutionConstraint","maxResolution_","minResolution_","minZoom_","centerConstraint","createCenterConstraint","resolutionConstraint","constraint","rotationConstraint","createRotationConstraint","constraints_","setCenterInternal","setResolution","oldPadding","newPadding","getUpdatedOptions_","newOptions","animationCount","series","sourceRotation","targetRotation","isNoopAnimation","setHint","updateAnimations_","animationCallback","getInteracting","more","seriesComplete","getViewportSize_","constrainedResolution","calculateCenterZoom","applyTargetState_","constrainedRotation","calculateCenterRotate","currentResolution","opt_rotation","opt_hints","calculateExtent","calculateExtentInternal","getViewportSizeMinusPadding_","getZoomForResolution","setConstrainResolution","getResolutionForExtent","getResolutionForValueFunction","opt_power","getConstrainedResolution","getValueForResolutionFunction","logPower","reducedSize","calculateCenterOn","nearest","baseLevel","geometryOrExtent","cosAngle","sinAngle","minRotX","minRotY","maxRotX","maxRotY","rotX","rotY","centerRot","centerOn","centerOnInternal","calculateCenterShift","centerShift","shiftedCenter","adjustCenter","deltaCoordinates","adjustResolution","isMoving","adjustRotation","newRotation","hint","opt_doNotCancelAnims","opt_forceMoving","newCenter","opt_resolutionDirection","endInteractionInternal","opt_targetResolution","targetZoom","targetRes","smoothExtentConstraint","constrainOnlyCenter","defaultMaxZoom","defaultZoomFactor","smoothResolutionConstraint","projExtent","defaultMaxResolution","defaultMinResolution","enableRotation","constrainRotation","JSONFeature","readFeatureFromObject","getObject","readFeaturesFromObject","readGeometryFromObject","readProjectionFromObject","writeFeatureObject","writeFeaturesObject","writeGeometryObject","GeoJSON","defaultFeatureProjection","geometryName","extractGeometryName_","extractGeometryName","geoJSONFeature","geoJSONObject","geoJSONFeatureCollection","geoJSONFeatures","objects","readPointGeometry","readLineStringGeometry","readPolygonGeometry","readMultiPointGeometry","readMultiLineStringGeometry","readMultiPolygonGeometry","readGeometryCollectionGeometry","geoJSON","writePointGeometry","writeLineStringGeometry","writePolygonGeometry","writeMultiPointGeometry","writeMultiLineStringGeometry","writeMultiPolygonGeometry","writeGeometryCollectionGeometry","rightHanded","ERROR_THRESHOLD","ENABLE_RASTER_REPROJECTION","coordinate1","coordinate2","coord1","coord2","getWorldsAway","opt_sourceExtentWidth","sourceExtentWidth","transformStringDiv","tmp_","multiply","transform1","transform2","d1","e1","f1","d2","f2","setFromArray","makeScale","makeInverse","det","determinant","transformString","newPromiseCapability","perform","callbackfn","promiseCapability","ImageStyle","displacement_","declutterMode_","setDisplacement","deflateCoordinate","deflateCoordinates","deflateCoordinatesArray","coordinatess","deflateMultiCoordinatesArray","coordinatesss","LINE_STRING","DrawEventType","DRAWSTART","DRAWEND","DRAWABORT","DrawEvent","shouldHandle_","downPx_","downTimeout_","lastDragTime_","pointerType_","freehand_","source_","snapTolerance_","snapTolerance","getMode","stopClick_","stopClick","minPoints_","minPoints","maxPoints_","maxPoints","finishCondition_","finishCondition","geometryLayout_","geometryLayout","geometryFunction","Constructor_1","mode_1","squaredLength","setCenterAndRadius","dragVertexDelay_","dragVertexDelay","finishCoordinate_","sketchFeature_","sketchPoint_","sketchCoords_","sketchLine_","sketchLineCoords_","squaredClickTolerance_","clickTolerance","overlay_","freehandCondition_","freehand","freehandCondition","updateState_","getOverlay","addToDrawing_","startDrawing_","startingToDraw","finishDrawing","atFinish_","abortDrawing","downPx","clickPx","modifyDrawing_","createOrUpdateSketchPoint_","potentiallyDone","potentiallyFinishCoordinates","sketchCoords","finishCoordinate","finishPixel","sketchPointGeom","updateSketchFeatures_","createOrUpdateCustomSketchLine_","ring","sketchLineGeom","removeLastPoint","sketchFeature","abortDrawing_","appendCoordinates","newDrawing","ending","sketchFeatures","overlaySource","RENDER_ORDER","BaseVectorLayer","renderBuffer","declutter_","renderBuffer_","updateWhileAnimating_","updateWhileInteracting_","setRenderOrder","padNumber","opt_precision","numberString","interpolatePoint","cumulativeLengths","lineStringCoordinateAtM","m0","m1","lineStringsCoordinateAtM","twiceArea","FeatureFormat","setWorldExtent","transformGeometryWithOptions","transformed","power_1","CanvasTileLayerRenderer","extentChanged","renderedPixelRatio","newTiles_","tmpTileRange_","tileOrigin","viewResolution","viewCenter","sourceRevision","canvasExtent","tilesToDrawByZ","findLoadedTiles","tmpTileRange","childTileRange","canvasScale","zs","currentTilePixelSize","currentScale","dx_1","dy_1","originTileCoord","originTileExtent","tileGutter","tilesToDraw","xIndex","nextX","yIndex","nextY","i_1","drawTileImage","updateUsedTiles","manageTilePyramid","scheduleExpireCache","alphaChanged","postRenderFunction","opt_tileCallback","webpackAsyncContext","inflateCoordinates","opt_coordinates","inflateCoordinatesArray","opt_coordinatess","inflateMultiCoordinatesArray","opt_coordinatesss","transform2D","anchorX","anchorY","FullScreenEventType","ENTERFULLSCREEN","LEAVEFULLSCREEN","keys_","isInFullscreen_","boundHandleMapTargetChange_","handleMapTargetChange_","cssClassName_","documentListeners_","activeClassName_","activeClassName","inactiveClassName_","inactiveClassName","labelNode_","labelActive","labelActiveNode_","button_","setClassName_","handleFullScreen_","isFullScreenSupported","isFullScreen","exitFullScreen","requestFullScreenWithKeys","requestFullScreen","handleFullScreenChange_","wasInFullscreen","_b","_d","oldMap","requestFullscreen","fullscreenEnabled","fullscreenElement","exitFullscreen","intersectsLineString","coordinatesExtent","point1","point2","intersectsLineStringArray","intersectsLinearRing","intersectsLinearRingArray","intersectsLinearRingMultiArray","easeIn","easeOut","inAndOut","CLASS_HIDDEN","CLASS_SELECTABLE","CLASS_UNSELECTABLE","CLASS_UNSUPPORTED","CLASS_CONTROL","CLASS_COLLAPSED","fontRegEx","fontRegExMatchIndex","getFontParameters","fontSpec","lineHeight","weight","variant","families","family","RegularShape","hitDetectionCanvas_","radius_","radius1","radius2_","radius2","renderOptions_","getRadius2","createHitDetectionCanvas_","renderOptions","draw_","calculateLineJoinSize_","r1","r2","miterRatio","maxr","bevelAdd","aa","bb","dd","ee","innerMiterRatio","innerLength","createRenderOptions","maxRadius","createPath_","drawHitDetectionCanvas_","angle0","radiusC","CircleStyle","setRadius","BaseEvent","TranslateEventType","TRANSLATESTART","TRANSLATING","TRANSLATEEND","TranslateEvent","startCoordinate","Translate","lastCoordinate_","startCoordinate_","lastFeature_","handleActiveChanged_","featuresAtPixel_","newCoordinate","deltaX_1","deltaY_1","geom","opt_geometries","geometries_","changeEventsKeys_","listenGeometriesChange_","unlistenGeometriesChange_","geometryCollection","setGeometries","cloneGeometries","geometriesArray","simplifiedGeometries","simplified","simplifiedGeometryCollection","setGeometriesArray","clonedGeometries","resourceData","getTransmissionColor","getTransmissionText","gOPS","pIE","getSymbols","symbols","divName","disposed","openLoadingDiv","divId","colorDivLoading","closeLoadingDiv","openLoadingButton","btnId","backgroundBtnLoading","colorBtnLoading","closeLoadingButton","generateSelectOptios","propLabel","propValue","manageError","methodName","validatorMessage","reasonMessage","absolute_path","manageErrorValidator","findText","searhStr","messageValidator","validator","patter","findErrorNamePropertyValidator","expresion","foundMatch","findErrorNameProperty","generateSelectOptionsAdditionalData","propValueAdditional","valueAdditional","CanvasImageBuilder","imagePixelRatio_","anchorX_","anchorY_","height_","originX_","originY_","pointGeometry","myBegin","myEnd","multiPointGeometry","reverseHitDetectionInstructions","CanvasLineStringBuilder","drawFlatCoordinates_","appendFlatLineCoordinates","moveToLineToInstruction","lineStringGeometry","multiLineStringGeometry","lastStroke","CanvasPolygonBuilder","drawFlatCoordinatess_","numEnds","circleGeometry","setFillStrokeStyles_","circleInstruction","polygonGeometry","multiPolygonGeometry","BATCH_CONSTRUCTORS","PolygonBuilder","Builder","ImageBuilder","LineStringBuilder","TextBuilder","BuilderGroup","tolerance_","maxExtent_","resolution_","buildersByZIndex_","builderInstructions","zKey","builders","builderKey","builderInstruction","builderType","zIndexKey","replays","TileRange","containsTileRange","CanvasBuilder","maxLineWidth","beginGeometryInstruction1_","beginGeometryInstruction2_","bufferedMaxExtent_","tmpCoordinate_","applyPixelRatio","dashArray","dash","closed","skipFirst","lastRel","nextRel","lastXCoord","lastYCoord","nextCoord","skipped","drawCustomCoordinates_","builderEnds","builderEnd","builderEndss","builderBegin","myEnds","instruction","currentFillStyle","currentStrokeStyle","currentLineCap","currentLineDash","currentLineDashOffset","currentLineJoin","currentLineWidth","currentMiterLimit","endGeometryInstruction","defaultFont","defaultFillStyle","defaultLineCap","defaultLineDash","defaultLineDashOffset","defaultLineJoin","defaultMiterLimit","defaultStrokeStyle","defaultTextAlign","defaultTextBaseline","defaultPadding","defaultLineWidth","checkedFonts","labelCache","measureFont","measureContext","textHeights","registerFont","referenceWidth","retries","referenceFonts","fontStyle","fontFamily","available","referenceFont","measureTextWidth","fonts","measureTextHeight","measureElement","measureText","actualBoundingBoxAscent","actualBoundingBoxDescent","minHeight","measureAndCacheTextWidth","curr","getTextDimensions","chunks","widths","heights","lineWidths","currentWidth","currentHeight","drawImageOrLabel","labelOrImage","originX","originY","contextInstructions","executeLabelInstructions","userInfo","User","localStorage","getItem","cartoTableName","datarutas_company_id","ObjectEvent","BaseObject","opt_values","values_","opt_silent","LENGTH","CollectionEvent","opt_element","opt_index","unique_","array_","assertUnique_","updateLength_","opt_except","drawTextOnPath","startM","segmentM","advance","beginX","beginY","startOffset","endM","previousAngle","singleSegment","iStart","charLength","p4","getDeclutterBox","replayImageOrLabelArgs","declutterBox","rtlRegEx","horizontalTextAlign","align","createTextChunks","Executor","alignFill_","coordinateCache_","renderedTransform_","widths_","createLabel","textIsArray","renderWidth","Context","OffscreenCanvasRenderingContext2D","CanvasRenderingContext2D","previousFont","leftRight","strokeInstructions","fillInstructions","lineOffset","widthHeightIndex","lineWidthIndex","text_1","fillStrokeArgs","replayTextBackground_","setStrokeStyle_","calculateImageOrLabelDimensions_","sheetWidth","sheetHeight","fillStroke","boxW","boxH","boxX","boxY","drawImageX","drawImageY","drawImageW","drawImageH","replayImageOrLabel_","contextScale","imageOrLabel","dimensions","strokePadding","repeatSize","drawLabelWithPointPlacement_","execute_","opt_featureCallback","opt_hitExtent","prevX","prevY","roundX","roundY","currentGeometry","pendingFill","pendingStroke","lastFillInstruction","lastStrokeInstruction","coordinateCache","viewRotationFromTransform","batchSize","labelWithAnchor","widthIndex","imageArgs","imageDeclutterBox","measurePixelRatio","pixelRatioScale","cachedWidths","pathLength","textLength","drawChars","cc","part","ii_1","executeHitDetection","ORDER","allInstructions","opt_renderBuffer","executorsByZIndex_","hitDetectionContext_","hitDetectionTransform_","createExecutors_","flatClipCoords","executors","instructionByZindex","candidates","contextSize","getPixelIndexArray","result_1","executor","opt_builderTypes","builderTypes","circlePixelIndexArrayCache","maxDistanceSq","pixelIndex","asColorLike","code_","units_","worldExtent_","axisOrientation_","global_","canWrapX_","getPointResolutionFunc_","defaultTileGrid_","metersPerUnit_","getAxisOrientation","setGlobal","setGetPointResolution","Group","pagination","next_page","total_pages","total_records","groupsActivity","ADD_GROUP","SET_GROUPS","SET_SELECTED_GROUP","UPDATE_GROUP","groupIndex","REMOVE_GROUP","itemId","ItemIndex","SET_GROUPS_ACTIVITY","ADD_GROUP_ACTIVITY","arrayNew","REMOVE_GROUP_ACTIVITY","CLEAN_GROUP_ACTIVITY","fetchGroupItems","page","quantity","dirtrad","hour_init","hour_end","order_by","createGroup","updateGroup","put","removeGroup","groupId","delete","addGroupActivity","groupItem","removeGroupActivity","cleanGroupActivity","getGroupsByFilter","getGroupById","getSelectedGroup","geometryCollectionGeometry","opt_declutterImageWithText","getRadiusSquared_","circleExtent","super","closer","that","enableTouchScroll_","HTMLElement","elm","isTouchDevice_","scrollStartPos","touches","Vue","RADIANS","FEET","USFEET","featureClass_","featureClass","layerName_","layers_","idProperty_","idProperty","readRawGeometry_","cmd","coordsLen","currentEnd","cmdLen","createFeature_","rawFeature","getGeometryType","ctor","pbfLayers","layersPBFReader","pbfLayer","readRawFeature","layerPBFReader","featurePBFReader","executeQuery","axios","executeQueryImport","urlFile","create_vis","privacy","type_guessing","content_guessing","axiosConfig","generateUpdateQuery","featureObj","generateUpdateQueryZoneInfo","generateCreateQuery","generateCreateTableQuery","generateDeleteZoneQuery","generateDeleteAllZonesQuery","generateCartoCSS","polygonFill","validateCreateTableQuery","attributions_","adaptAttributions","attributionsCollapsible_","wrapX_","interpolate_","viewResolver","viewRejector","viewPromise_","setAttributions","attributionLike"],"mappings":"mIAOe,QAMXA,OAAQ,SAMRC,MAAO,QACPC,KAAM,OACNC,MAAO,QACPC,YAAa,cACbC,MAAO,QACPC,SAAU,WACVC,UAAW,YACXC,SAAU,WACVC,KAAM,OACNC,MAAO,QACPC,QAAS,UACTC,SAAU,WACVC,KAAM,OACNC,OAAQ,SACRC,UAAW,YACXC,MAAO,U,6DClCX,oEAOO,IAAIC,EAAmB,GAKnBC,EAAoB,K,oCCLhB,QACXC,QAAS,EACTC,aAAc,EACdC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,KAAM,K,sFCXV,IAAIC,EAAU,EAAQ,QAClBC,EAAO,GACXA,EAAK,EAAQ,OAAR,CAAkB,gBAAkB,IACrCA,EAAO,IAAM,cACf,EAAQ,OAAR,CAAuBC,OAAOC,UAAW,YAAY,WACnD,MAAO,WAAaH,EAAQI,MAAQ,OACnC,I,oCCRL,8cAkBO,SAASC,EAAIC,GAChB,IAAIC,EAAaC,UAKjB,OAAO,SAAUC,GAEb,IADA,IAAIC,GAAO,EACFC,EAAI,EAAGC,EAAKL,EAAWM,OAAQF,EAAIC,IAAMD,EAE9C,GADAD,EAAOA,GAAQH,EAAWI,GAAGF,IACxBC,EACD,MAGR,OAAOA,GAWR,IAcII,EAAmB,SAAUC,GACpC,IAAIC,EAAoED,EAA6B,cACrG,OAAQC,EAAcC,UAChBD,EAAcE,SAAWF,EAAcG,UACzCH,EAAcI,UAUXC,EAAQ,SAAUZ,GACzB,IAAIa,EAAgBb,EAAMc,IAAIC,mBAC1BC,EAAgBhB,EAAMc,IAAIG,mBAAmBD,cACjD,OAAOH,EAAcK,SAASF,IAQvBG,EAAoB,SAAUnB,GACrC,OAAOA,EAAMc,IAAIC,mBAAmBK,aAAa,aAC3CR,EAAMZ,IAULqB,EAAS,OAoBTC,EAAoB,SAAUhB,GACrC,IAAIC,EAA2CD,EAA6B,cAC5E,OAA+B,GAAxBC,EAAcgB,UAAiB,QAAU,QAAOhB,EAAcG,UAS9Dc,EAAQ,OAmBRC,EAAc,SAAUnB,GAC/B,OAAOA,EAAgBoB,MAAQ,OAAoBC,aAoB5CC,EAAiB,SAAUtB,GAClC,IAAIC,EAAoED,EAA6B,cACrG,OAASC,EAAcC,UACjBD,EAAcE,SAAWF,EAAcG,WACxCH,EAAcI,UAyBZkB,EAAe,SAAUvB,GAChC,IAAIC,EAAoED,EAA6B,cACrG,OAASC,EAAcC,UACjBD,EAAcE,SAAWF,EAAcG,UACzCH,EAAcI,UAWXmB,EAAoB,SAAUxB,GACrC,IAAIC,EAAoED,EAA6B,cACjGyB,EAAkCxB,EAAoB,OAAEwB,QAC5D,MAAoB,UAAZA,GACQ,WAAZA,GACY,aAAZA,IAICxB,EAAcyB,OAAOC,mBASnBC,EAAY,SAAU5B,GAC7B,IAAI6B,EAAmE,EAAkB5B,cAGzF,OAFA,oBAAwB6B,IAAjBD,EAA4B,IAEA,SAA5BA,EAAaE,aAqCbC,EAAgB,SAAUhC,GACjC,IAAI6B,EAAmE,EAAkB5B,cAEzF,OADA,oBAAwB6B,IAAjBD,EAA4B,IAC5BA,EAAaI,WAAqC,IAAxBJ,EAAaZ,S,oCCzQnC,QAMXiB,UAAW,YAMXC,WAAY,aAQZC,WAAY,aAQZC,YAAa,cAQbC,eAAgB,mB,oCC1CpB,mFAAIC,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA6FxCG,EAAW,CACXC,QAAS,UACTC,IAAK,MACLC,OAAQ,SACRC,SAAU,WACVC,YAAa,eAgCbC,EAAyB,SAAUC,GAKnC,SAASD,EAAQE,GACb,IAAIC,EAAQF,EAAOb,KAAK3D,OAASA,KAIjC0E,EAAMC,GAIND,EAAME,KAINF,EAAMG,GAKNH,EAAMD,QAAUA,EAKhBC,EAAMI,GAAKL,EAAQK,GAKnBJ,EAAMK,iBACsBtC,IAAxBgC,EAAQM,aAA4BN,EAAQM,YAKhDL,EAAMM,eAAkCvC,IAAtBgC,EAAQO,WAA0BP,EAAQO,UAK5DN,EAAMO,QAAUC,SAASC,cAAc,OACvCT,EAAMO,QAAQG,eACY3C,IAAtBgC,EAAQW,UACFX,EAAQW,UACR,wBAA0B,OACpCV,EAAMO,QAAQI,MAAMC,SAAW,WAC/BZ,EAAMO,QAAQI,MAAME,cAAgB,OACpC,IAAIC,EAAUf,EAAQe,QAuCtB,OAtCIA,GAAW,kBAAoBA,IAC/BA,EAAU,CACNC,UAAWhB,EAAQiB,iBACnBC,OAAQlB,EAAQmB,gBAOxBlB,EAAMc,QAA4C,IAAa,EAM/Dd,EAAMmB,SAAW,CACbC,WAAY,GACZC,SAAS,GAMbrB,EAAMsB,yBAA2B,KACjCtB,EAAMuB,kBAAkBhC,EAASC,QAASQ,EAAMwB,sBAChDxB,EAAMuB,kBAAkBhC,EAASE,IAAKO,EAAMyB,kBAC5CzB,EAAMuB,kBAAkBhC,EAASG,OAAQM,EAAM0B,qBAC/C1B,EAAMuB,kBAAkBhC,EAASI,SAAUK,EAAM2B,uBACjD3B,EAAMuB,kBAAkBhC,EAASK,YAAaI,EAAM4B,+BAC5B7D,IAApBgC,EAAQQ,SACRP,EAAM6B,WAAW9B,EAAQQ,SAE7BP,EAAM8B,eAA6B/D,IAAnBgC,EAAQgC,OAAuBhC,EAAQgC,OAAS,CAAC,EAAG,IACpE/B,EAAMgC,eAAejC,EAAQkC,aAAe,iBACnBlE,IAArBgC,EAAQa,UACRZ,EAAMkC,YAAYnC,EAAQa,UAEvBZ,EAmUX,OA5ZAxB,EAAUqB,EAASC,GAiGnBD,EAAQxE,UAAU8G,WAAa,WAC3B,OAA6C7G,KAAK8G,IAAI7C,EAASC,UAOnEK,EAAQxE,UAAUgH,MAAQ,WACtB,OAAO/G,KAAK8E,IAShBP,EAAQxE,UAAUiH,OAAS,WACvB,OAAgEhH,KAAK8G,IAAI7C,EAASE,MAAQ,MAQ9FI,EAAQxE,UAAUkH,UAAY,WAC1B,OAAqCjH,KAAK8G,IAAI7C,EAASG,SAS3DG,EAAQxE,UAAUmH,YAAc,WAC5B,OAAsElH,KAAK8G,IAAI7C,EAASI,WAS5FE,EAAQxE,UAAUoH,eAAiB,WAC/B,OAAmCnH,KAAK8G,IAAI7C,EAASK,cAKzDC,EAAQxE,UAAUmG,qBAAuB,WACrC,eAAelG,KAAKiF,SACpB,IAAIA,EAAUjF,KAAK6G,aACf5B,GACAjF,KAAKiF,QAAQmC,YAAYnC,IAMjCV,EAAQxE,UAAUoG,iBAAmB,WAC7BnG,KAAKgG,2BACL,eAAWhG,KAAKiF,SAChB,eAAcjF,KAAKgG,0BACnBhG,KAAKgG,yBAA2B,MAEpC,IAAI7E,EAAMnB,KAAKgH,SACf,GAAI7F,EAAK,CACLnB,KAAKgG,yBAA2B,eAAO7E,EAAK,OAAa2B,WAAY9C,KAAKqH,OAAQrH,MAClFA,KAAKsH,sBACL,IAAIC,EAAYvH,KAAKgF,UACf7D,EAAIqG,+BACJrG,EAAIsG,sBACNzH,KAAK+E,YACLwC,EAAUG,aAAa1H,KAAKiF,QAASsC,EAAUI,WAAW,IAAM,MAGhEJ,EAAUH,YAAYpH,KAAKiF,SAE/BjF,KAAK4H,mBAMbrD,EAAQxE,UAAUsH,OAAS,WACvBrH,KAAKsH,uBAKT/C,EAAQxE,UAAUqG,oBAAsB,WACpCpG,KAAKsH,uBAKT/C,EAAQxE,UAAUsG,sBAAwB,WACtCrG,KAAKsH,sBACLtH,KAAK4H,kBAKTrD,EAAQxE,UAAUuG,yBAA2B,WACzCtG,KAAKsH,uBAQT/C,EAAQxE,UAAUwG,WAAa,SAAUtB,GACrCjF,KAAK6H,IAAI5D,EAASC,QAASe,IAS/BV,EAAQxE,UAAU+H,OAAS,SAAU3G,GACjCnB,KAAK6H,IAAI5D,EAASE,IAAKhD,IAQ3BoD,EAAQxE,UAAUyG,UAAY,SAAUC,GACpCzG,KAAK6H,IAAI5D,EAASG,OAAQqC,IAU9BlC,EAAQxE,UAAU6G,YAAc,SAAUtB,GACtCtF,KAAK6H,IAAI5D,EAASI,SAAUiB,IAOhCf,EAAQxE,UAAU6H,eAAiB,WAC3B5H,KAAKwF,SACLxF,KAAK+H,YAAY/H,KAAKwF,UAS9BjB,EAAQxE,UAAUgI,YAAc,SAAUC,GACtC,IAAI7G,EAAMnB,KAAKgH,SACf,GAAK7F,GAAQA,EAAIC,oBAAuBpB,KAAK8G,IAAI7C,EAASI,UAA1D,CAGA,IAAI4D,EAAUjI,KAAKkI,QAAQ/G,EAAIC,mBAAoBD,EAAIgH,WACnDlD,EAAUjF,KAAK6G,aACfuB,EAAcpI,KAAKkI,QAAQjD,EAAS,CACpC,eAAWA,GACX,eAAYA,KAEZoD,EAAqBL,GAA0B,GAC/CM,OAAyC7F,IAA9B4F,EAAmB1C,OAAuB,GAAK0C,EAAmB1C,OACjF,IAAK,eAAesC,EAASG,GAAc,CAEvC,IAAIG,EAAaH,EAAY,GAAKH,EAAQ,GACtCO,EAAcP,EAAQ,GAAKG,EAAY,GACvCK,EAAYL,EAAY,GAAKH,EAAQ,GACrCS,EAAeT,EAAQ,GAAKG,EAAY,GACxCO,EAAQ,CAAC,EAAG,GAiBhB,GAhBIJ,EAAa,EAEbI,EAAM,GAAKJ,EAAaD,EAEnBE,EAAc,IAEnBG,EAAM,GAAKC,KAAKC,IAAIL,GAAeF,GAEnCG,EAAY,EAEZE,EAAM,GAAKF,EAAYH,EAElBI,EAAe,IAEpBC,EAAM,GAAKC,KAAKC,IAAIH,GAAgBJ,GAEvB,IAAbK,EAAM,IAAyB,IAAbA,EAAM,GAAU,CAClC,IAAIG,EAA8D3H,EAAI4H,UAAUC,oBAC5EC,EAAW9H,EAAI+H,+BAA+BJ,GAClD,IAAKG,EACD,OAEJ,IAAIE,EAAc,CAACF,EAAS,GAAKN,EAAM,GAAIM,EAAS,GAAKN,EAAM,IAC3DS,EAAaf,EAAmB5C,WAAa,GACjDtE,EAAI4H,UAAUM,gBAAgB,CAC1BP,OAAQ3H,EAAImI,+BAA+BH,GAC3CI,SAAUH,EAAWG,SACrBC,OAAQJ,EAAWI,aAYnCjF,EAAQxE,UAAUmI,QAAU,SAAUjD,EAASwE,GAC3C,IAAIC,EAAMzE,EAAQ0E,wBACdC,EAAUF,EAAIG,KAAOC,OAAOC,YAC5BC,EAAUN,EAAIO,IAAMH,OAAOI,YAC/B,MAAO,CAACN,EAASI,EAASJ,EAAUH,EAAK,GAAIO,EAAUP,EAAK,KAShElF,EAAQxE,UAAU2G,eAAiB,SAAUC,GACzC3G,KAAK6H,IAAI5D,EAASK,YAAaqC,IAOnCpC,EAAQxE,UAAUoK,WAAa,SAAUpE,GACjC/F,KAAK6F,SAASE,UAAYA,IAC1B/F,KAAKiF,QAAQI,MAAM+E,QAAUrE,EAAU,GAAK,OAC5C/F,KAAK6F,SAASE,QAAUA,IAOhCxB,EAAQxE,UAAUuH,oBAAsB,WACpC,IAAInG,EAAMnB,KAAKgH,SACX1B,EAAWtF,KAAKkH,cACpB,GAAK/F,GAAQA,EAAIkJ,cAAiB/E,EAAlC,CAIA,IAAIgF,EAAQnJ,EAAIoJ,uBAAuBjF,GACnCkF,EAAUrJ,EAAIgH,UAClBnI,KAAKyK,uBAAuBH,EAAOE,QAL/BxK,KAAKmK,YAAW,IAYxB5F,EAAQxE,UAAU0K,uBAAyB,SAAUH,EAAOE,GACxD,IAAInF,EAAQrF,KAAKiF,QAAQI,MACrBoB,EAASzG,KAAKiH,YACdN,EAAc3G,KAAKmH,iBACvBnH,KAAKmK,YAAW,GAChB,IAAIO,EAAI9B,KAAK+B,MAAML,EAAM,GAAK7D,EAAO,IAAM,KACvCmE,EAAIhC,KAAK+B,MAAML,EAAM,GAAK7D,EAAO,IAAM,KACvCoE,EAAO,KACPC,EAAO,KACQ,gBAAfnE,GACe,gBAAfA,GACe,aAAfA,EACAkE,EAAO,QAEa,iBAAflE,GACU,iBAAfA,GACe,cAAfA,IACAkE,EAAO,QAEQ,eAAflE,GACe,iBAAfA,GACe,gBAAfA,EACAmE,EAAO,QAEa,eAAfnE,GACU,iBAAfA,GACe,gBAAfA,IACAmE,EAAO,QAEX,IAAIC,EAAY,aAAaC,OAAOH,EAAM,MAAMG,OAAOF,EAAM,gBAAgBE,OAAON,EAAG,MAAMM,OAAOJ,EAAG,KACnG5K,KAAK6F,SAASC,YAAciF,IAC5B/K,KAAK6F,SAASC,WAAaiF,EAC3B1F,EAAM0F,UAAYA,EAElB1F,EAAM4F,YAAcF,IAO5BxG,EAAQxE,UAAUmL,WAAa,WAC3B,OAAOlL,KAAKyE,SAETF,EA7ZiB,CA8Z1B,QACa,gB,oCCjiBf,oNAcO,SAAS4G,EAAiBC,GAC7B,IAAIC,EAAWD,EAAWE,qBAK1B,OAJKD,IACDA,EAAWE,EAAoBH,GAC/BA,EAAWI,mBAAmBH,IAE3BA,EAQJ,SAASI,EAAMJ,EAAUK,EAAWN,GACvC,IAAIO,EAAID,EAAU,GACd5C,EAASuC,EAASO,mBAAmBF,GACrCG,EAAmBC,EAAqBV,GAC5C,GAAK,eAAmBS,EAAkB/C,GAOtC,OAAO4C,EANP,IAAIK,EAAa,eAASF,GACtBG,EAAapD,KAAKqD,MAAMJ,EAAiB,GAAK/C,EAAO,IAAMiD,GAE/D,OADAjD,EAAO,IAAMiD,EAAaC,EACnBX,EAASa,yBAAyBpD,EAAQ6C,GAelD,SAASQ,EAAgBC,EAAQC,EAAaC,EAAcC,GAC/D,IAAIC,OAAwB/J,IAAf8J,EAA2BA,EAAa,WACjDE,EAAcC,EAAsBN,EAAQC,EAAaC,GAC7D,OAAO,IAAI,OAAS,CAChBF,OAAQA,EACRO,OAAQ,eAAUP,EAAQI,GAC1BC,YAAaA,EACbG,SAAUN,IAoBX,SAASO,EAAUC,GACtB,IAAIC,EAAaD,GAAe,GAC5BV,EAASW,EAAWX,QAAU,eAAc,aAAaY,YACzDC,EAAc,CACdb,OAAQA,EACRc,QAASH,EAAWG,QACpBN,SAAUG,EAAWH,SACrBH,YAAaC,EAAsBN,EAAQW,EAAWI,QAASJ,EAAWH,SAAUG,EAAWK,gBAEnG,OAAO,IAAI,OAASH,GAYxB,SAASP,EAAsBN,EAAQC,EAAaC,EAAce,GAU9D,IATA,IAAIF,OAA0B1K,IAAhB4J,EAA4BA,EAAc,OACpDiB,EAAS,eAAUlB,GACnBmB,EAAQ,eAASnB,GACjBQ,EAAW,oBAAwBnK,IAAjB6J,EAA6BA,EAAe,QAC9Dc,EAAgBC,EAAoB,EAClCA,EACAzE,KAAK4E,IAAID,EAAQX,EAAS,GAAIU,EAASV,EAAS,IAClDnM,EAAS0M,EAAU,EACnBV,EAAc,IAAIjJ,MAAM/C,GACnBkL,EAAI,EAAGA,EAAIlL,IAAUkL,EAC1Bc,EAAYd,GAAKyB,EAAgBxE,KAAK6E,IAAI,EAAG9B,GAEjD,OAAOc,EAWJ,SAASlB,EAAoBH,EAAYiB,EAAaC,EAAcC,GACvE,IAAIH,EAASN,EAAqBV,GAClC,OAAOe,EAAgBC,EAAQC,EAAaC,EAAcC,GAQvD,SAAST,EAAqBV,GACjCA,EAAa,eAAcA,GAC3B,IAAIgB,EAAShB,EAAW4B,YACxB,IAAKZ,EAAQ,CACT,IAAIsB,EAAQ,IAAM,OAAgB,OAAMC,SAAYvC,EAAWwC,mBAC/DxB,EAAS,gBAAgBsB,GAAOA,EAAMA,EAAMA,GAEhD,OAAOtB,I,oCC5IX,iSAaO,SAASyB,EAAsBC,EAAWC,EAAYC,EAAgBC,GAEzE,IAAIC,EAiBJ,OAfIA,EADAF,GAAkBA,EAAevN,OACxBuN,EAAeG,QAEnB,OACI,IAAIC,gBAAgBN,GAAa,IAAKC,GAAc,KAGpD7I,SAASC,cAAc,UAEhC2I,IACAI,EAAOX,MAAQO,GAEfC,IACAG,EAAOZ,OAASS,GAG4BG,EAAOG,WAAW,KAAMJ,GAOrE,SAASK,EAAcC,GAC1B,IAAIL,EAASK,EAAQL,OACrBA,EAAOX,MAAQ,EACfW,EAAOZ,OAAS,EAChBiB,EAAQC,UAAU,EAAG,EAAG,EAAG,GASxB,SAASC,EAAWxJ,GACvB,IAAIsI,EAAQtI,EAAQyJ,YAChBrJ,EAAQsJ,iBAAiB1J,GAE7B,OADAsI,GAASqB,SAASvJ,EAAMwJ,WAAY,IAAMD,SAASvJ,EAAMyJ,YAAa,IAC/DvB,EASJ,SAASwB,EAAY9J,GACxB,IAAIqI,EAASrI,EAAQ+J,aACjB3J,EAAQsJ,iBAAiB1J,GAE7B,OADAqI,GAAUsB,SAASvJ,EAAM4J,UAAW,IAAML,SAASvJ,EAAM6J,aAAc,IAChE5B,EAMJ,SAAS6B,EAAYC,EAASC,GACjC,IAAIC,EAASD,EAAQE,WACjBD,GACAA,EAAOE,aAAaJ,EAASC,GAO9B,SAASI,EAAWC,GACvB,OAAOA,GAAQA,EAAKH,WAAaG,EAAKH,WAAWI,YAAYD,GAAQ,KAKlE,SAASE,EAAeF,GAC3B,MAAOA,EAAKG,UACRH,EAAKC,YAAYD,EAAKG,WAWvB,SAASC,EAAgBJ,EAAMK,GAElC,IADA,IAAIC,EAAcN,EAAK/H,WACdpH,EAAI,EAAG,IAAQA,EAAG,CACvB,IAAI0P,EAAWD,EAAYzP,GACvB2P,EAAWH,EAASxP,GAExB,IAAK0P,IAAaC,EACd,MAGAD,IAAaC,IAIZD,EAKAC,EAMLR,EAAKhI,aAAawI,EAAUD,IALxBP,EAAKC,YAAYM,KACf1P,GANFmP,EAAKtI,YAAY8I,O,oCCvH7B,gGAkBO,SAASC,EAAwBC,EAAiB3J,EAAQ4J,EAAMC,EAAQC,EAAaC,EAAmBC,GAM3G,IALA,IAAIlQ,EAAGC,EAAIkK,EAAGgG,EAAIC,EAAIC,EAAIC,EACtBjG,EAAI2F,EAAYC,EAAoB,GAEpCM,EAAgB,GAEXC,EAAI,EAAGC,EAAKX,EAAK5P,OAAQsQ,EAAIC,IAAMD,EAAG,CAC3C,IAAIE,EAAMZ,EAAKU,GAGf,IAFAL,EAAKN,EAAgBa,EAAMX,GAC3BM,EAAKR,EAAgBa,EAAMX,EAAS,GAC/B/P,EAAIkG,EAAQlG,EAAI0Q,EAAK1Q,GAAK+P,EAC3BK,EAAKP,EAAgB7P,GACrBsQ,EAAKT,EAAgB7P,EAAI,IACpBqK,GAAKgG,GAAMC,GAAMjG,GAAOgG,GAAMhG,GAAKA,GAAKiG,KACzCnG,GAAME,EAAIgG,IAAOC,EAAKD,IAAQD,EAAKD,GAAMA,EACzCI,EAAcI,KAAKxG,IAEvBgG,EAAKC,EACLC,EAAKC,EAKb,IAAIM,EAASC,IACTC,GAAoBC,IAGxB,IAFAR,EAAcS,KAAK,QACnBb,EAAKI,EAAc,GACdvQ,EAAI,EAAGC,EAAKsQ,EAAcrQ,OAAQF,EAAIC,IAAMD,EAAG,CAChDoQ,EAAKG,EAAcvQ,GACnB,IAAIiR,EAAgB5I,KAAKC,IAAI8H,EAAKD,GAC9Bc,EAAgBH,IAChB3G,GAAKgG,EAAKC,GAAM,EACZ,eAAsBP,EAAiB3J,EAAQ4J,EAAMC,EAAQ5F,EAAGE,KAChEuG,EAASzG,EACT2G,EAAmBG,IAG3Bd,EAAKC,EAOT,OALIc,MAAMN,KAGNA,EAASZ,EAAYC,IAErBC,GACAA,EAASS,KAAKC,EAAQvG,EAAGyG,GAClBZ,GAGA,CAACU,EAAQvG,EAAGyG,GAYpB,SAASK,EAA8BtB,EAAiB3J,EAAQkL,EAAOrB,EAAQC,GAElF,IADA,IAAIqB,EAAiB,GACZrR,EAAI,EAAGC,EAAKmR,EAAMlR,OAAQF,EAAIC,IAAMD,EAAG,CAC5C,IAAI8P,EAAOsB,EAAMpR,GACjBqR,EAAiBzB,EAAwBC,EAAiB3J,EAAQ4J,EAAMC,EAAQC,EAAa,EAAIhQ,EAAGqR,GACpGnL,EAAS4J,EAAKA,EAAK5P,OAAS,GAEhC,OAAOmR,I,6DCtFX,uwCAqBO,SAASC,EAAeC,GAE3B,IADA,IAAI1F,EAAS2F,IACJxR,EAAI,EAAGC,EAAKsR,EAAYrR,OAAQF,EAAIC,IAAMD,EAC/CyR,EAAiB5F,EAAQ0F,EAAYvR,IAEzC,OAAO6L,EASX,SAAS6F,EAAmBC,EAAIC,EAAIC,GAChC,IAAIC,EAAOzJ,KAAK0J,IAAIC,MAAM,KAAML,GAC5BM,EAAO5J,KAAK0J,IAAIC,MAAM,KAAMJ,GAC5BM,EAAO7J,KAAK4E,IAAI+E,MAAM,KAAML,GAC5BQ,EAAO9J,KAAK4E,IAAI+E,MAAM,KAAMJ,GAChC,OAAOQ,EAAeN,EAAMG,EAAMC,EAAMC,EAAMN,GAU3C,SAASQ,EAAOxG,EAAQyG,EAAOT,GAClC,OAAIA,GACAA,EAAW,GAAKhG,EAAO,GAAKyG,EAC5BT,EAAW,GAAKhG,EAAO,GAAKyG,EAC5BT,EAAW,GAAKhG,EAAO,GAAKyG,EAC5BT,EAAW,GAAKhG,EAAO,GAAKyG,EACrBT,GAGA,CACHhG,EAAO,GAAKyG,EACZzG,EAAO,GAAKyG,EACZzG,EAAO,GAAKyG,EACZzG,EAAO,GAAKyG,GAWjB,SAASC,EAAM1G,EAAQgG,GAC1B,OAAIA,GACAA,EAAW,GAAKhG,EAAO,GACvBgG,EAAW,GAAKhG,EAAO,GACvBgG,EAAW,GAAKhG,EAAO,GACvBgG,EAAW,GAAKhG,EAAO,GAChBgG,GAGAhG,EAAO2G,QASf,SAASC,EAAyB5G,EAAQ1B,EAAGE,GAChD,IAAIqI,EAAIC,EAmBR,OAjBID,EADAvI,EAAI0B,EAAO,GACNA,EAAO,GAAK1B,EAEZ0B,EAAO,GAAK1B,EACZA,EAAI0B,EAAO,GAGX,EAGL8G,EADAtI,EAAIwB,EAAO,GACNA,EAAO,GAAKxB,EAEZwB,EAAO,GAAKxB,EACZA,EAAIwB,EAAO,GAGX,EAEF6G,EAAKA,EAAKC,EAAKA,EAUnB,SAASC,EAAmB/G,EAAQgH,GACvC,OAAOC,EAAWjH,EAAQgH,EAAW,GAAIA,EAAW,IAcjD,SAASE,EAAeC,EAASC,GACpC,OAAQD,EAAQ,IAAMC,EAAQ,IAC1BA,EAAQ,IAAMD,EAAQ,IACtBA,EAAQ,IAAMC,EAAQ,IACtBA,EAAQ,IAAMD,EAAQ,GAWvB,SAASF,EAAWjH,EAAQ1B,EAAGE,GAClC,OAAOwB,EAAO,IAAM1B,GAAKA,GAAK0B,EAAO,IAAMA,EAAO,IAAMxB,GAAKA,GAAKwB,EAAO,GAStE,SAASqH,EAAuBrH,EAAQgH,GAC3C,IAAIf,EAAOjG,EAAO,GACdoG,EAAOpG,EAAO,GACdqG,EAAOrG,EAAO,GACdsG,EAAOtG,EAAO,GACd1B,EAAI0I,EAAW,GACfxI,EAAIwI,EAAW,GACfM,EAAe,OAAapU,QAgBhC,OAfIoL,EAAI2H,EACJqB,GAA8B,OAAa/T,KAEtC+K,EAAI+H,IACTiB,GAA8B,OAAajU,OAE3CmL,EAAI4H,EACJkB,GAA8B,OAAahU,MAEtCkL,EAAI8H,IACTgB,GAA8B,OAAalU,OAE3CkU,IAAiB,OAAapU,UAC9BoU,EAAe,OAAanU,cAEzBmU,EAOJ,SAAS3B,IACZ,MAAO,CAACT,IAAUA,KAAWA,KAAWA,KAWrC,SAASqB,EAAeN,EAAMG,EAAMC,EAAMC,EAAMN,GACnD,OAAIA,GACAA,EAAW,GAAKC,EAChBD,EAAW,GAAKI,EAChBJ,EAAW,GAAKK,EAChBL,EAAW,GAAKM,EACTN,GAGA,CAACC,EAAMG,EAAMC,EAAMC,GAQ3B,SAASiB,EAAoBvB,GAChC,OAAOO,EAAerB,IAAUA,KAAWA,KAAWA,IAAUc,GAO7D,SAASwB,EAA6BR,EAAYhB,GACrD,IAAI1H,EAAI0I,EAAW,GACfxI,EAAIwI,EAAW,GACnB,OAAOT,EAAejI,EAAGE,EAAGF,EAAGE,EAAGwH,GAmB/B,SAASyB,EAAkCzD,EAAiB3J,EAAQwK,EAAKX,EAAQ8B,GACpF,IAAIhG,EAASuH,EAAoBvB,GACjC,OAAO0B,EAAsB1H,EAAQgE,EAAiB3J,EAAQwK,EAAKX,GAkBhE,SAASyD,EAAOR,EAASC,GAC5B,OAAQD,EAAQ,IAAMC,EAAQ,IAC1BD,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,GAsBvB,SAASQ,EAAOT,EAASC,GAa5B,OAZIA,EAAQ,GAAKD,EAAQ,KACrBA,EAAQ,GAAKC,EAAQ,IAErBA,EAAQ,GAAKD,EAAQ,KACrBA,EAAQ,GAAKC,EAAQ,IAErBA,EAAQ,GAAKD,EAAQ,KACrBA,EAAQ,GAAKC,EAAQ,IAErBA,EAAQ,GAAKD,EAAQ,KACrBA,EAAQ,GAAKC,EAAQ,IAElBD,EAMJ,SAASvB,EAAiB5F,EAAQgH,GACjCA,EAAW,GAAKhH,EAAO,KACvBA,EAAO,GAAKgH,EAAW,IAEvBA,EAAW,GAAKhH,EAAO,KACvBA,EAAO,GAAKgH,EAAW,IAEvBA,EAAW,GAAKhH,EAAO,KACvBA,EAAO,GAAKgH,EAAW,IAEvBA,EAAW,GAAKhH,EAAO,KACvBA,EAAO,GAAKgH,EAAW,IAsBxB,SAASU,EAAsB1H,EAAQgE,EAAiB3J,EAAQwK,EAAKX,GACxE,KAAO7J,EAASwK,EAAKxK,GAAU6J,EAC3B2D,EAAS7H,EAAQgE,EAAgB3J,GAAS2J,EAAgB3J,EAAS,IAEvE,OAAO2F,EAkBJ,SAAS6H,EAAS7H,EAAQ1B,EAAGE,GAChCwB,EAAO,GAAKxD,KAAK0J,IAAIlG,EAAO,GAAI1B,GAChC0B,EAAO,GAAKxD,KAAK0J,IAAIlG,EAAO,GAAIxB,GAChCwB,EAAO,GAAKxD,KAAK4E,IAAIpB,EAAO,GAAI1B,GAChC0B,EAAO,GAAKxD,KAAK4E,IAAIpB,EAAO,GAAIxB,GAW7B,SAASsJ,EAAc9H,EAAQ+H,GAClC,IAAIC,EAEJ,OADAA,EAAMD,EAASE,EAAcjI,IACzBgI,IAGJA,EAAMD,EAASG,EAAelI,IAC1BgI,IAGJA,EAAMD,EAASI,EAAYnI,IACvBgI,IAGJA,EAAMD,EAASK,EAAWpI,IACtBgI,IAGG,KAQJ,SAASK,EAAQrI,GACpB,IAAIsI,EAAO,EAIX,OAHKC,EAAQvI,KACTsI,EAAOE,EAASxI,GAAUyI,EAAUzI,IAEjCsI,EAQJ,SAASL,EAAcjI,GAC1B,MAAO,CAACA,EAAO,GAAIA,EAAO,IAQvB,SAASkI,EAAelI,GAC3B,MAAO,CAACA,EAAO,GAAIA,EAAO,IAQvB,SAAS0I,EAAU1I,GACtB,MAAO,EAAEA,EAAO,GAAKA,EAAO,IAAM,GAAIA,EAAO,GAAKA,EAAO,IAAM,GAQ5D,SAAS2I,EAAU3I,EAAQI,GAC9B,IAAI4G,EAgBJ,MAfe,gBAAX5G,EACA4G,EAAaiB,EAAcjI,GAEX,iBAAXI,EACL4G,EAAakB,EAAelI,GAEZ,aAAXI,EACL4G,EAAaoB,EAAWpI,GAER,cAAXI,EACL4G,EAAamB,EAAYnI,GAGzB,gBAAO,EAAO,IAEXgH,EAsBJ,SAAS4B,EAAkBlM,EAAQmM,EAAYC,EAAUzL,EAAM2I,GAClE,IAAI+C,EAAKC,EAAmBtM,EAAQmM,EAAYC,EAAUzL,GAAO4L,EAAKF,EAAG,GAAIG,EAAKH,EAAG,GAAIzE,EAAKyE,EAAG,GAAIvE,EAAKuE,EAAG,GAAIxE,EAAKwE,EAAG,GAAItE,EAAKsE,EAAG,GAAII,EAAKJ,EAAG,GAAIK,EAAKL,EAAG,GAC7J,OAAOxC,EAAe/J,KAAK0J,IAAI+C,EAAI3E,EAAIC,EAAI4E,GAAK3M,KAAK0J,IAAIgD,EAAI1E,EAAIC,EAAI2E,GAAK5M,KAAK4E,IAAI6H,EAAI3E,EAAIC,EAAI4E,GAAK3M,KAAK4E,IAAI8H,EAAI1E,EAAIC,EAAI2E,GAAKpD,GAS3H,SAASgD,EAAmBtM,EAAQmM,EAAYC,EAAUzL,GAC7D,IAAIwJ,EAAMgC,EAAaxL,EAAK,GAAM,EAC9ByJ,EAAM+B,EAAaxL,EAAK,GAAM,EAC9BgM,EAAc7M,KAAK8M,IAAIR,GACvBS,EAAc/M,KAAKgN,IAAIV,GACvBW,EAAO5C,EAAKwC,EACZK,EAAO7C,EAAK0C,EACZI,EAAO7C,EAAKuC,EACZO,EAAO9C,EAAKyC,EACZjL,EAAI5B,EAAO,GACX8B,EAAI9B,EAAO,GACf,MAAO,CACH4B,EAAImL,EAAOG,EACXpL,EAAIkL,EAAOC,EACXrL,EAAImL,EAAOG,EACXpL,EAAIkL,EAAOC,EACXrL,EAAImL,EAAOG,EACXpL,EAAIkL,EAAOC,EACXrL,EAAImL,EAAOG,EACXpL,EAAIkL,EAAOC,EACXrL,EAAImL,EAAOG,EACXpL,EAAIkL,EAAOC,GASZ,SAASlB,EAAUzI,GACtB,OAAOA,EAAO,GAAKA,EAAO,GAmBvB,SAAS6J,EAAgB1C,EAASC,EAASpB,GAC9C,IAAI8D,EAAe9D,GAA0BL,IA8B7C,OA7BIoE,EAAW5C,EAASC,IAChBD,EAAQ,GAAKC,EAAQ,GACrB0C,EAAa,GAAK3C,EAAQ,GAG1B2C,EAAa,GAAK1C,EAAQ,GAE1BD,EAAQ,GAAKC,EAAQ,GACrB0C,EAAa,GAAK3C,EAAQ,GAG1B2C,EAAa,GAAK1C,EAAQ,GAE1BD,EAAQ,GAAKC,EAAQ,GACrB0C,EAAa,GAAK3C,EAAQ,GAG1B2C,EAAa,GAAK1C,EAAQ,GAE1BD,EAAQ,GAAKC,EAAQ,GACrB0C,EAAa,GAAK3C,EAAQ,GAG1B2C,EAAa,GAAK1C,EAAQ,IAI9BG,EAAoBuC,GAEjBA,EAwBJ,SAAS1B,EAAWpI,GACvB,MAAO,CAACA,EAAO,GAAIA,EAAO,IAQvB,SAASmI,EAAYnI,GACxB,MAAO,CAACA,EAAO,GAAIA,EAAO,IAQvB,SAASwI,EAASxI,GACrB,OAAOA,EAAO,GAAKA,EAAO,GASvB,SAAS+J,EAAW5C,EAASC,GAChC,OAAQD,EAAQ,IAAMC,EAAQ,IAC1BD,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,GAQvB,SAASmB,EAAQvI,GACpB,OAAOA,EAAO,GAAKA,EAAO,IAAMA,EAAO,GAAKA,EAAO,GAOhD,SAASgK,EAAehK,EAAQgG,GACnC,OAAIA,GACAA,EAAW,GAAKhG,EAAO,GACvBgG,EAAW,GAAKhG,EAAO,GACvBgG,EAAW,GAAKhG,EAAO,GACvBgG,EAAW,GAAKhG,EAAO,GAChBgG,GAGAhG,EAuBR,SAASiK,EAAkBjK,EAAQkK,EAAOrF,GAC7C,IAAIkF,GAAa,EACbI,EAAW9C,EAAuBrH,EAAQkK,GAC1CE,EAAS/C,EAAuBrH,EAAQ6E,GAC5C,GAAIsF,IAAa,OAAahX,cAC1BiX,IAAW,OAAajX,aACxB4W,GAAa,MAEZ,CACD,IAAI9D,EAAOjG,EAAO,GACdoG,EAAOpG,EAAO,GACdqG,EAAOrG,EAAO,GACdsG,EAAOtG,EAAO,GACdqK,EAASH,EAAM,GACfI,EAASJ,EAAM,GACfK,EAAO1F,EAAI,GACX2F,EAAO3F,EAAI,GACX4F,GAASD,EAAOF,IAAWC,EAAOF,GAClC/L,OAAI,EAAQE,OAAI,EACb4L,EAAS,OAAahX,SAAY+W,EAAW,OAAa/W,SAE7DkL,EAAIiM,GAAQC,EAAOlE,GAAQmE,EAC3BV,EAAazL,GAAK2H,GAAQ3H,GAAK+H,GAE9B0D,KACEK,EAAS,OAAa/W,QACvB8W,EAAW,OAAa9W,QAE1BmL,EAAIgM,GAAQD,EAAOlE,GAAQoE,EAC3BV,EAAavL,GAAK4H,GAAQ5H,GAAK8H,GAE9ByD,KACEK,EAAS,OAAa9W,QACvB6W,EAAW,OAAa7W,QAE1BgL,EAAIiM,GAAQC,EAAOpE,GAAQqE,EAC3BV,EAAazL,GAAK2H,GAAQ3H,GAAK+H,GAE9B0D,KACEK,EAAS,OAAa7W,OACvB4W,EAAW,OAAa5W,OAE1BiL,EAAIgM,GAAQD,EAAOtE,GAAQwE,EAC3BV,EAAavL,GAAK4H,GAAQ5H,GAAK8H,GAGvC,OAAOyD,EAaJ,SAASW,EAAe1K,EAAQ2K,EAAa3E,EAAY4E,GAC5D,IAAIlF,EAAc,GAClB,GAAIkF,EAAY,EAGZ,IAFA,IAAIzJ,EAAQnB,EAAO,GAAKA,EAAO,GAC3BkB,EAASlB,EAAO,GAAKA,EAAO,GACvB7L,EAAI,EAAGA,EAAIyW,IAAazW,EAC7BuR,EAAYZ,KAAK9E,EAAO,GAAMmB,EAAQhN,EAAKyW,EAAW5K,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAMkB,EAAS/M,EAAKyW,EAAW5K,EAAO,GAAMmB,EAAQhN,EAAKyW,EAAW5K,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAMkB,EAAS/M,EAAKyW,QAI5MlF,EAAc,CACV1F,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,IAGf2K,EAAYjF,EAAaA,EAAa,GAGtC,IAFA,IAAII,EAAK,GACLC,EAAK,GACO8E,GAAP1W,EAAI,EAAOuR,EAAYrR,QAAQF,EAAI0W,EAAG1W,GAAK,EAChD2R,EAAGhB,KAAKY,EAAYvR,IACpB4R,EAAGjB,KAAKY,EAAYvR,EAAI,IAE5B,OAAO0R,EAAmBC,EAAIC,EAAIC,GAU/B,SAAS3G,EAAMW,EAAQhB,GAC1B,IAAIS,EAAmBT,EAAW4B,YAC9BlE,EAASgM,EAAU1I,GACvB,GAAIhB,EAAW8L,aACVpO,EAAO,GAAK+C,EAAiB,IAAM/C,EAAO,IAAM+C,EAAiB,IAAK,CACvE,IAAIE,EAAa6I,EAAS/I,GACtBG,EAAapD,KAAKuO,OAAOrO,EAAO,GAAK+C,EAAiB,IAAME,GAC5DtF,EAASuF,EAAaD,EAC1BK,EAAO,IAAM3F,EACb2F,EAAO,IAAM3F,EAEjB,OAAO2F,EAcJ,SAASgL,EAAchL,EAAQhB,GAClC,GAAIA,EAAW8L,WAAY,CACvB,IAAIrL,EAAmBT,EAAW4B,YAClC,IAAKqK,SAASjL,EAAO,MAAQiL,SAASjL,EAAO,IACzC,MAAO,CAAC,CAACP,EAAiB,GAAIO,EAAO,GAAIP,EAAiB,GAAIO,EAAO,KAEzEX,EAAMW,EAAQhB,GACd,IAAIW,EAAa6I,EAAS/I,GAC1B,GAAI+I,EAASxI,GAAUL,EAEnB,MAAO,CAAC,CAACF,EAAiB,GAAIO,EAAO,GAAIP,EAAiB,GAAIO,EAAO,KAEpE,GAAIA,EAAO,GAAKP,EAAiB,GAElC,MAAO,CACH,CAACO,EAAO,GAAKL,EAAYK,EAAO,GAAIP,EAAiB,GAAIO,EAAO,IAChE,CAACP,EAAiB,GAAIO,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAGtD,GAAIA,EAAO,GAAKP,EAAiB,GAElC,MAAO,CACH,CAACO,EAAO,GAAIA,EAAO,GAAIP,EAAiB,GAAIO,EAAO,IACnD,CAACP,EAAiB,GAAIO,EAAO,GAAIA,EAAO,GAAKL,EAAYK,EAAO,KAI5E,MAAO,CAACA,K,oCCp0BZ,oEAOO,IAAIkL,EAA2B,CAClCC,uBAAuB,EACvBC,yBAAyB,GAMlBC,EAA0B,CACjCF,uBAAuB,EACvBC,yBAAyB,I,oCCjB7B,gBAQe,QAOXxV,YAAa,cAMbxD,MAAO,OAAUA,MAMjBC,SAAU,OAAUA,SAMpBiZ,YAAa,cAObC,YAAa,cACbC,YAAa,cACbC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,aAAc,eACdC,aAAc,eACdC,cAAe,kB,uBC/CnBC,EAAOC,QAAU,IAA0B,+B,oCCA3C,gMAkBIC,EAAe,iBAMfC,EAA+B,WAS/B,SAASA,EAAcvW,EAAMqO,EAAiBC,EAAMkI,EAAYzT,GAI5D9E,KAAKwY,cAKLxY,KAAKyY,QAKLzY,KAAK0Y,IAAM5T,EAKX9E,KAAK2Y,MAAQ5W,EAKb/B,KAAK4Y,iBAAmBxI,EAKxBpQ,KAAK6Y,oBAAsB,KAK3B7Y,KAAK8Y,eAAiB,KAKtB9Y,KAAK+Y,MAAQ1I,EAKbrQ,KAAKgZ,YAAcT,EAqKvB,OA7JAD,EAAcvY,UAAU+G,IAAM,SAAUmS,GACpC,OAAOjZ,KAAKgZ,YAAYC,IAO5BX,EAAcvY,UAAUiN,UAAY,WAOhC,OANKhN,KAAKyY,UACNzY,KAAKyY,QACc,UAAfzY,KAAK2Y,MACC,eAA6B3Y,KAAK4Y,kBAClC,eAAkC5Y,KAAK4Y,iBAAkB,EAAG5Y,KAAK4Y,iBAAiBnY,OAAQ,IAEjGT,KAAKyY,SAKhBH,EAAcvY,UAAUmZ,qBAAuB,WAC3C,IAAKlZ,KAAK6Y,oBAAqB,CAC3B,IAAIM,EAAa,eAAUnZ,KAAKgN,aAChChN,KAAK6Y,oBAAsB,eAAwB7Y,KAAK4Y,iBAAkB,EAC5C5Y,KAAU,MAAG,EAAGmZ,EAAY,GAE9D,OAAOnZ,KAAK6Y,qBAKhBP,EAAcvY,UAAUqZ,sBAAwB,WAC5C,IAAKpZ,KAAK6Y,oBAAqB,CAC3B,IAAItI,EAAc,eAAmBvQ,KAAK4Y,iBAAkB,EACvB5Y,KAAU,MAAG,GAClDA,KAAK6Y,oBAAsB,eAA8B7Y,KAAK4Y,iBAAkB,EAC3C5Y,KAAU,MAAG,EAAGuQ,GAEzD,OAAOvQ,KAAK6Y,qBAKhBP,EAAcvY,UAAUsZ,gBAAkB,WAItC,OAHKrZ,KAAK8Y,iBACN9Y,KAAK8Y,eAAiB,eAAiB9Y,KAAK4Y,iBAAkB,EAAG5Y,KAAK4Y,iBAAiBnY,OAAQ,EAAG,KAE/FT,KAAK8Y,gBAKhBR,EAAcvY,UAAUuZ,iBAAmB,WACvC,IAAKtZ,KAAK8Y,eAAgB,CACtB9Y,KAAK8Y,eAAiB,GAItB,IAHA,IAAI1I,EAAkBpQ,KAAK4Y,iBACvBnS,EAAS,EACT4J,EAAqCrQ,KAAU,MAC1CO,EAAI,EAAGC,EAAK6P,EAAK5P,OAAQF,EAAIC,IAAMD,EAAG,CAC3C,IAAI0Q,EAAMZ,EAAK9P,GACXgZ,EAAW,eAAiBnJ,EAAiB3J,EAAQwK,EAAK,EAAG,IACjE,eAAOjR,KAAK8Y,eAAgBS,GAC5B9S,EAASwK,GAGjB,OAAOjR,KAAK8Y,gBAQhBR,EAAcvY,UAAUgH,MAAQ,WAC5B,OAAO/G,KAAK0Y,KAKhBJ,EAAcvY,UAAUyZ,2BAA6B,WACjD,OAAOxZ,KAAK4Y,kBAQhBN,EAAcvY,UAAU0Z,YAAc,WAClC,OAAOzZ,MAMXsY,EAAcvY,UAAU2Z,sBAAwB,SAAUC,GACtD,OAAO3Z,MASXsY,EAAcvY,UAAU6Z,oBAAsB,SAAUD,EAAkBE,GACtE,OAAO7Z,MAOXsY,EAAcvY,UAAU+Z,cAAgB,WACpC,OAAO9Z,KAAKgZ,aAKhBV,EAAcvY,UAAUga,UAAY,WAChC,OAAO,GAKXzB,EAAcvY,UAAUia,iBAAmB,WACvC,OAAOha,KAAKwY,eAOhBF,EAAcvY,UAAUka,QAAU,WAC9B,OAAOja,KAAK2Y,OAOhBL,EAAcvY,UAAUgL,UAAY,SAAUK,GAC1CA,EAAa,eAAcA,GAC3B,IAAI8O,EAAc9O,EAAW4B,YACzBmN,EAAkB/O,EAAWgP,iBACjC,GAAIF,GAAeC,EAAiB,CAChC,IAAIE,EAAQ,eAAUF,GAAmB,eAAUD,GACnD,eAAiB7B,EAAc8B,EAAgB,GAAIA,EAAgB,GAAIE,GAAQA,EAAO,EAAG,EAAG,GAC5F,eAAYra,KAAK4Y,iBAAkB,EAAG5Y,KAAK4Y,iBAAiBnY,OAAQ,EAAG4X,EAAcrY,KAAK4Y,oBAMlGN,EAAcvY,UAAUua,QAAU,WAC9B,OAAOta,KAAK+Y,OAETT,EA1NuB,GA4NlCA,EAAcvY,UAAUwa,SAAWjC,EAAcvY,UAAUua,QAI3DhC,EAAcvY,UAAUya,mBACpBlC,EAAcvY,UAAUyZ,2BAwDb,U,oCCjTf,W,8JCYO,SAASiB,EAAcC,EAAUtK,EAAiB3J,EAAQwK,EAAKX,GAClE,IAKIqK,EAAMpa,EAAGqa,EAAKC,EAAKnK,EAAIE,EAAIkK,EAAKC,EAAKC,EAAKC,EAL1CC,EAAazU,EACb0U,EAAW1U,EACX2U,EAAS,EACTC,EAAI,EACJ/E,EAAQ7P,EAEZ,IAAKlG,EAAIkG,EAAQlG,EAAI0Q,EAAK1Q,GAAK+P,EAAQ,CACnC,IAAIK,EAAKP,EAAgB7P,GACrBsQ,EAAKT,EAAgB7P,EAAI,QAClBkC,IAAPiO,IACAsK,EAAMrK,EAAKD,EACXuK,EAAMpK,EAAKD,EACXiK,EAAMjS,KAAK0S,KAAKN,EAAMA,EAAMC,EAAMA,QACtBxY,IAARqY,IACAO,GAAKT,EACLD,EAAO/R,KAAK+R,MAAMG,EAAME,EAAMD,EAAME,IAAQL,EAAMC,IAC9CF,EAAOD,IACHW,EAAID,IACJA,EAASC,EACTH,EAAa5E,EACb6E,EAAW5a,GAEf8a,EAAI,EACJ/E,EAAQ/V,EAAI+P,IAGpBsK,EAAMC,EACNC,EAAME,EACND,EAAME,GAEVvK,EAAKC,EACLC,EAAKC,EAGT,OADAwK,GAAKR,EACEQ,EAAID,EAAS,CAAC9E,EAAO/V,GAAK,CAAC2a,EAAYC,GC/ClD,IAAIjY,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA8BjCyX,EAAa,CACpB,KAAQ,EACR,IAAO,EACP,OAAU,GACV,MAAS,EACT,MAAS,EACT,IAAO,EACP,OAAU,GACV,QAAW,GACX,WAAc,GACd,YAAe,GACf,OAAU,GAEV,EAAmC,SAAU/W,GAQ7C,SAASgX,EAAkBC,EAAWC,EAAWzG,EAAY0G,GACzD,IAAIjX,EAAQF,EAAOb,KAAK3D,KAAMyb,EAAWC,EAAWzG,EAAY0G,IAAe3b,KA+E/E,OA1EA0E,EAAMkX,QAAU,KAKhBlX,EAAMmX,MAAQ,GAKdnX,EAAMoX,aAAe,EAKrBpX,EAAMqX,aAAe,EAKrBrX,EAAMsX,yBAAsBvZ,EAK5BiC,EAAMuX,cAAgB,EAKtBvX,EAAMwX,eAAiB,KAIvBxX,EAAMyX,WAAa,GAKnBzX,EAAM0X,iBAAmB,KAIzB1X,EAAM2X,aAAe,GAKrB3X,EAAM4X,WAA6D,GAInE5X,EAAM6X,WAAa,GAKnB7X,EAAM8X,SAAW,GAKjB9X,EAAM+X,SAAW,GAKjB/X,EAAMgY,WAAa,GAMnBhY,EAAMiY,6BAA0Bla,EACzBiC,EAqbX,OA5gBAxB,EAAUsY,EAAmBhX,GA4F7BgX,EAAkBzb,UAAU6c,OAAS,WACjC,IAAIC,EAAerY,EAAOzE,UAAU6c,OAAOjZ,KAAK3D,MAIhD,OAHA6c,EAAaN,WAAavc,KAAKuc,WAC/BM,EAAaV,WAAanc,KAAKmc,WAC/BU,EAAaR,aAAerc,KAAKqc,aAC1BQ,GAMXrB,EAAkBzb,UAAU+c,SAAW,SAAUC,EAAUC,GACvD,IAAIC,EAAYjd,KAAKkc,eACjBgB,EAAcld,KAAKoc,iBACnBe,EAAYnd,KAAKsc,WACrB,GAAmB,KAAftc,KAAK6b,OAAiBsB,IAAeF,GAAcC,GAAvD,CAGA,IAAIpL,EAAc9R,KAAK8R,YACnBsL,EAAQtL,EAAYrR,OACpB4c,EAAeN,EAAS9C,UACxB7J,EAAkB,KAClBE,EAASyM,EAAShD,YACtB,GAAIoD,EAAUG,YAAcC,EAAA,KAAcC,MACrB,cAAhBH,GACmB,mBAAhBA,GACgB,WAAhBA,GACgB,gBAAhBA,EAiDH,CACD,IAAII,EAAiBN,EAAUO,SAAW,KAAO,GACjD,OAAQL,GACJ,IAAK,QACL,IAAK,aACDjN,EAC8D,EAAWoK,qBACzE,MACJ,IAAK,aACDpK,EAC8D,EAAWiJ,kBACzE,MACJ,IAAK,SACDjJ,EAC0D,EAAW0E,YACrE,MACJ,IAAK,kBACD1E,EACmE,EAAWkJ,mBAC9EhJ,EAAS,EACT,MACJ,IAAK,UACDF,EAC2D,EAAW8I,uBACjEiE,EAAUO,UACXD,EAAevM,KAAKd,EAAgB,GAAKpQ,KAAKiV,YAElD3E,EAAS,EACT,MACJ,IAAK,eACD,IAAIsB,EACwD,EAAWwH,wBACvEhJ,EAAkB,GAClB,IAAS7P,EAAI,EAAGC,EAAKoR,EAAenR,OAAQF,EAAIC,EAAID,GAAK,EAChD4c,EAAUO,UACXD,EAAevM,KAAKU,EAAerR,EAAI,GAAKP,KAAKiV,YAErD7E,EAAgBc,KAAKU,EAAerR,GAAIqR,EAAerR,EAAI,IAE/D,GAA+B,IAA3B6P,EAAgB3P,OAChB,OAEJ6P,EAAS,EACT,MACJ,SAEAW,EAAMjR,KAAK2d,2BAA2BvN,EAAiBE,GAC3D,GAAIW,IAAQmM,EACR,OAEJ,GAAIK,IACCxM,EAAMmM,GAAS,IAAMhN,EAAgB3P,OAAS6P,EAAQ,CACvD,IAAIsN,EAAQR,EAAQ,EACpBK,EAAiBA,EAAeI,QAAO,SAAUC,EAAGvd,GAChD,IAAIwd,EAAOjM,EAA0B,GAAb8L,EAAQrd,MAAY6P,EAAgB7P,EAAI+P,IAC5DwB,EAA0B,GAAb8L,EAAQrd,GAAS,KAAO6P,EAAgB7P,EAAI+P,EAAS,GAItE,OAHKyN,KACCH,EAECG,KAGf/d,KAAKge,mBACDb,EAAUc,gBAAkBd,EAAUe,oBACtCle,KAAKme,mBAAmBhB,EAAUc,eAAgBd,EAAUe,kBACxDf,EAAUc,iBACVje,KAAKoe,gBAAgBpe,KAAKqe,MAAOre,KAAKse,YACtCte,KAAKue,yBAAyBrN,KAAKlR,KAAKse,WAAWte,KAAKqe,SAExDlB,EAAUe,mBACVle,KAAKwe,kBAAkBxe,KAAKqe,MAAOre,KAAKye,aACxCze,KAAKue,yBAAyBrN,KAAKlR,KAAK0e,aAAa1e,KAAKqe,UAGlEre,KAAK2e,cAAc5B,EAAUC,GAE7B,IAAI4B,EAAUzB,EAAUyB,QACxB,GAAIA,GAAW,SACVzB,EAAU9C,MAAM,GAAK,GAAK8C,EAAU9C,MAAM,GAAK,GAAI,CACpD,IAAIwE,EAAK1B,EAAUyB,QAAQ,GACvBE,EAAK3B,EAAUyB,QAAQ,GACvBG,EAAK5B,EAAUyB,QAAQ,GACvBI,EAAK7B,EAAUyB,QAAQ,GACvBzB,EAAU9C,MAAM,GAAK,IACrByE,GAAMA,EACNE,GAAMA,GAEN7B,EAAU9C,MAAM,GAAK,IACrBwE,GAAMA,EACNE,GAAMA,GAEVH,EAAU,CAACC,EAAIC,EAAIC,EAAIC,GAK3B,IAAIC,EAAejf,KAAK2b,WACxB3b,KAAK6c,aAAa3L,KAAK,CACnB,OAAkBgO,WAClB9B,EACAnM,EACA,KACAG,IACAA,IACAA,IACA,EACA,EACA,EACApR,KAAKgc,oBACLhc,KAAKic,cACL,CAAC,EAAG,GACJ7K,SACA3O,EACAzC,KAAK2c,wBACLiC,GAAW,OACL,OACAA,EAAQzd,KAAI,SAAUsC,GACpB,OAAOA,EAAIwb,OAEjB9B,EAAUc,iBACVd,EAAUe,iBACZle,KAAK6b,MACL7b,KAAKwc,SACLxc,KAAK0c,WACL1c,KAAKyc,SACLzc,KAAK8b,aACL9b,KAAK+b,aACL0B,IAEJ,IAAIpD,EAAQ,EAAI4E,EAChBjf,KAAKue,yBAAyBrN,KAAK,CAC/B,OAAkBgO,WAClB9B,EACAnM,EACA,KACAG,IACAA,IACAA,IACA,EACA,EACA,EACApR,KAAKgc,oBACLhc,KAAKic,cACL,CAAC5B,EAAOA,GACRjJ,SACA3O,EACAzC,KAAK2c,wBACLiC,IACEzB,EAAUc,iBACVd,EAAUe,iBACZle,KAAK6b,MACL7b,KAAKwc,SACLxc,KAAK0c,WACL1c,KAAKyc,SACLzc,KAAK8b,aACL9b,KAAK+b,aACL0B,IAEJzd,KAAKmf,YAAYnC,OA/MoB,CACrC,IAAK,eAAWhd,KAAKof,uBAAwBrC,EAAS/P,aAClD,OAEJ,IAAIqD,OAAO,EAEX,GADAD,EAAkB2M,EAASvC,qBACP,cAAhB6C,EACAhN,EAAO,CAACD,EAAgB3P,aAEvB,GAAoB,mBAAhB4c,EACLhN,EAAsE,EAAWiK,eAEhF,GAAoB,WAAhB+C,EACLhN,EAA8D,EACzDiK,UACAvH,MAAM,EAAG,QAEb,GAAoB,gBAAhBsK,EAAgC,CACrC,IAAI1L,EACwD,EAAW4I,WACvElK,EAAO,GACP,IAAK,IAAI9P,EAAI,EAAGC,EAAKmR,EAAMlR,OAAQF,EAAIC,IAAMD,EACzC8P,EAAKa,KAAKS,EAAMpR,GAAG,IAG3BP,KAAK2e,cAAc5B,EAAUC,GAK7B,IAJA,IAAIqC,EAAYlC,EAAUkC,UAEtBC,EAAa,EACbC,OAAU,EACLC,EAAI,EAAGC,EAAKpP,EAAK5P,OAAQ+e,EAAIC,IAAMD,EAAG,CAC3C,QAAiB/c,GAAb4c,EAAwB,CACxB,IAAIK,EAAQjF,EAAc0C,EAAUzC,SAAUtK,EAAiBkP,EAAYjP,EAAKmP,GAAIlP,GACpFgP,EAAaI,EAAM,GACnBH,EAAUG,EAAM,QAGhBH,EAAUlP,EAAKmP,GAEnB,IAAK,IAAIjf,EAAI+e,EAAY/e,EAAIgf,EAAShf,GAAK+P,EACvCwB,EAAYZ,KAAKd,EAAgB7P,GAAI6P,EAAgB7P,EAAI,IAE7D,IAAI0Q,EAAMa,EAAYrR,OACtB6e,EAAajP,EAAKmP,GAClBxf,KAAK2f,WAAWvC,EAAOnM,GACvBmM,EAAQnM,EAEZjR,KAAKmf,YAAYnC,MAsKzBxB,EAAkBzb,UAAUie,gBAAkB,WAC1C,IAAId,EAAcld,KAAKoc,iBACnBe,EAAYnd,KAAKsc,WACjBW,EAAYjd,KAAKkc,eACjB0D,EAAY5f,KAAK0c,WACjBQ,IACM0C,KAAa5f,KAAKqc,eACpBrc,KAAKqc,aAAauD,GAAa,CAC3BC,YAAa3C,EAAY2C,YACzBC,QAAS5C,EAAY4C,QACrBC,eAAgB7C,EAAY6C,eAC5BC,UAAW9C,EAAY8C,UACvBC,SAAU/C,EAAY+C,SACtBC,WAAYhD,EAAYgD,WACxBC,SAAUjD,EAAYiD,YAIlC,IAAIC,EAAUpgB,KAAKwc,SACb4D,KAAWpgB,KAAKuc,aAClBvc,KAAKuc,WAAW6D,GAAW,CACvBC,KAAMlD,EAAUkD,KAChBhB,UAAWlC,EAAUkC,WAAa,OAClCiB,QAASnD,EAAUmD,QACnBC,aAAcpD,EAAUoD,cAAgB,OACxClG,MAAO8C,EAAU9C,QAGzB,IAAImG,EAAUxgB,KAAKyc,SACfQ,IACMuD,KAAWxgB,KAAKmc,aAClBnc,KAAKmc,WAAWqE,GAAW,CACvBC,UAAWxD,EAAUwD,cAUrCjF,EAAkBzb,UAAU4f,WAAa,SAAUvC,EAAOnM,GACtD,IAAIiM,EAAcld,KAAKoc,iBACnBe,EAAYnd,KAAKsc,WACjBsD,EAAY5f,KAAK0c,WACjB0D,EAAUpgB,KAAKwc,SACfgE,EAAUxgB,KAAKyc,SACnBzc,KAAKge,kBACL,IAAIrC,EAAa3b,KAAK2b,WAClB+E,EAAWnF,EAAW4B,EAAUoD,cAChCvW,EAAUhK,KAAK+b,aAAeJ,EAC9BgF,EAAO3gB,KAAK6b,MACZ+E,EAAc1D,EACXA,EAAY8C,UAAYpX,KAAKC,IAAIsU,EAAU9C,MAAM,IAAO,EACzD,EACNra,KAAK6c,aAAa3L,KAAK,CACnB,OAAkB2P,WAClBzD,EACAnM,EACAyP,EACAvD,EAAUO,SACV8C,EACArD,EAAUzC,SACViB,EACA3R,EACA4V,EACAgB,EAAcjF,EACdgF,EACAP,EACA,IAEJpgB,KAAKue,yBAAyBrN,KAAK,CAC/B,OAAkB2P,WAClBzD,EACAnM,EACAyP,EACAvD,EAAUO,SACV8C,EACArD,EAAUzC,SACV,EACA1Q,EACA4V,EACAgB,EACAD,EACAP,EACA,EAAIzE,KAOZH,EAAkBzb,UAAU+gB,aAAe,SAAUC,EAAWC,GAC5D,IAAI7D,EAAWF,EAAWC,EAC1B,GAAK6D,EAGA,CACD,IAAIE,EAAgBF,EAAUG,UACzBD,GAKDhE,EAAYjd,KAAKkc,eACZe,IACDA,EAA4D,GAC5Djd,KAAKkc,eAAiBe,GAE1BA,EAAUwD,UAAY,eAAYQ,EAAcE,YAAc,UAT9DlE,EAAY,KACZjd,KAAKkc,eAAiBe,GAU1B,IAAImE,EAAkBL,EAAUM,YAChC,GAAKD,EAIA,CACDlE,EAAcld,KAAKoc,iBACdc,IACDA,EAAgE,GAChEld,KAAKoc,iBAAmBc,GAE5B,IAAIiD,EAAWiB,EAAgBE,cAC3BvB,EAAiBqB,EAAgBG,oBACjCvB,EAAYoB,EAAgBxM,WAC5BsL,EAAakB,EAAgBI,gBACjCtE,EAAY4C,QAAUsB,EAAgBK,cAAgB,OACtDvE,EAAYiD,SAAWA,EAAWA,EAASpN,QAAU,OACrDmK,EAAY6C,oBACWtd,IAAnBsd,EAA+B,OAAwBA,EAC3D7C,EAAY+C,SAAWmB,EAAgBM,eAAiB,OACxDxE,EAAY8C,eACMvd,IAAdud,EAA0B,OAAmBA,EACjD9C,EAAYgD,gBACOzd,IAAfyd,EAA2B,OAAoBA,EACnDhD,EAAY2C,YAAc,eAAYuB,EAAgBD,YAAc,aAtBpEjE,EAAc,KACdld,KAAKoc,iBAAmBc,EAuB5BC,EAAYnd,KAAKsc,WACjB,IAAI+D,EAAOU,EAAUY,WAAa,OAClC,eAAatB,GACb,IAAIuB,EAAYb,EAAUc,gBAC1B1E,EAAUO,SAAWqD,EAAUe,cAC/B3E,EAAUkD,KAAOA,EACjBlD,EAAUzC,SAAWqG,EAAUgB,cAC/B5E,EAAUG,UAAYyD,EAAUiB,eAChC7E,EAAUkC,UAAY0B,EAAUkB,eAChC9E,EAAUmD,QAAUS,EAAUmB,aAC9B/E,EAAUoD,aACNQ,EAAUoB,mBAAqB,OACnChF,EAAUc,eAAiB8C,EAAUqB,oBACrCjF,EAAUe,iBAAmB6C,EAAUsB,sBACvClF,EAAUyB,QAAUmC,EAAUuB,cAAgB,OAC9CnF,EAAU9C,WAAsB5X,IAAdmf,EAA0B,CAAC,EAAG,GAAKA,EACrD,IAAIW,EAAcxB,EAAUyB,aACxBC,EAAc1B,EAAU2B,aACxBC,EAAqB5B,EAAU6B,oBAC/BC,EAAe9B,EAAU+B,cAC7B9iB,KAAK6b,MAAQkF,EAAUgC,WAAa,GACpC/iB,KAAK8b,kBAA+BrZ,IAAhB8f,EAA4B,EAAIA,EACpDviB,KAAK+b,kBAA+BtZ,IAAhBggB,EAA4B,EAAIA,EACpDziB,KAAKgc,yBACsBvZ,IAAvBkgB,GAA2CA,EAC/C3iB,KAAKic,mBAAiCxZ,IAAjBogB,EAA6B,EAAIA,EACtD7iB,KAAK0c,WAAaQ,GACuB,iBAA3BA,EAAY2C,YAChB3C,EAAY2C,YACZ,eAAO3C,EAAY2C,cACrB3C,EAAY4C,QACZ5C,EAAY6C,eACZ,IACA7C,EAAY8C,UACZ9C,EAAY+C,SACZ/C,EAAYgD,WACZ,IACAhD,EAAYiD,SAAS6C,OACrB,IACF,GACNhjB,KAAKwc,SACDW,EAAUkD,KACNlD,EAAU9C,OACT8C,EAAUkC,WAAa,MACvBlC,EAAUmD,SAAW,MACrBnD,EAAUoD,cAAgB,KACnCvgB,KAAKyc,SAAWQ,EACoB,iBAAvBA,EAAUwD,UACbxD,EAAUwD,UACV,IAAM,eAAOxD,EAAUwD,WAC3B,QA5FNzgB,KAAK6b,MAAQ,GA8FjB7b,KAAK2c,wBAA0BqE,GAE5BxF,EA7gB2B,CA8gBpC,QACa,U,oCC1jBf,oDAAItY,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAwCxCmf,EAAwB,SAAUze,GAKlC,SAASye,EAAOC,GACZ,IAAIxe,EAAQF,EAAOb,KAAK3D,OAASA,KAqBjC,OAhBA0E,EAAMye,aAAeD,EAKrBxe,EAAM0e,iBAAmB,KAKzB1e,EAAM2e,aAAe,KAKrB3e,EAAM4e,WAAa,KACZ5e,EAuHX,OAjJAxB,EAAU+f,EAAQze,GAgClBye,EAAOljB,UAAUwjB,iBAAmB,SAAUxhB,EAAMyhB,GAChD,GAAKzhB,GAASyhB,EAAd,CAGA,IAAIC,EAAYzjB,KAAKsjB,aAAetjB,KAAKsjB,WAAa,IAClDI,EAAmBD,EAAU1hB,KAAU0hB,EAAU1hB,GAAQ,KACjB,IAAxC2hB,EAAiBC,QAAQH,IACzBE,EAAiBxS,KAAKsS,KAa9BP,EAAOljB,UAAU6jB,cAAgB,SAAUvjB,GACvC,IAAIwjB,EAA4B,kBAAVxjB,EAClB0B,EAAO8hB,EAAWxjB,EAAQA,EAAM0B,KAChC0hB,EAAYzjB,KAAKsjB,YAActjB,KAAKsjB,WAAWvhB,GACnD,GAAK0hB,EAAL,CAGA,IAAIK,EAAMD,EAAW,IAAI,OAAMxjB,GAA8B,EACxDyjB,EAAIzhB,SACLyhB,EAAIzhB,OAASrC,KAAKmjB,cAAgBnjB,MAEtC,IAOI+jB,EAPAC,EAAchkB,KAAKqjB,eAAiBrjB,KAAKqjB,aAAe,IACxDY,EAAkBjkB,KAAKojB,mBAAqBpjB,KAAKojB,iBAAmB,IAClErhB,KAAQiiB,IACVA,EAAYjiB,GAAQ,EACpBkiB,EAAgBliB,GAAQ,KAE1BiiB,EAAYjiB,GAEd,IAAK,IAAIxB,EAAI,EAAGC,EAAKijB,EAAUhjB,OAAQF,EAAIC,IAAMD,EAO7C,GALIwjB,EADA,gBAAiBN,EAAUljB,GACuCkjB,EAAUljB,GAAI2jB,YAAYJ,GAGxBL,EAAUljB,GAAIoD,KAAK3D,KAAM8jB,IAE/E,IAAdC,GAAuBD,EAAIK,mBAAoB,CAC/CJ,GAAY,EACZ,MAGR,GAA4B,MAAtBC,EAAYjiB,GAAa,CAC3B,IAAIqiB,EAAKH,EAAgBliB,UAClBkiB,EAAgBliB,GACvB,MAAOqiB,IACHpkB,KAAKqkB,oBAAoBtiB,EAAM,eAE5BiiB,EAAYjiB,GAEvB,OAAOgiB,IAKXd,EAAOljB,UAAUukB,gBAAkB,WAC/BtkB,KAAKsjB,YAAc,eAAMtjB,KAAKsjB,aASlCL,EAAOljB,UAAUwkB,aAAe,SAAUxiB,GACtC,OAAQ/B,KAAKsjB,YAActjB,KAAKsjB,WAAWvhB,SAAUU,GAOzDwgB,EAAOljB,UAAUykB,YAAc,SAAUC,GACrC,QAAKzkB,KAAKsjB,aAGHmB,EACDA,KAAYzkB,KAAKsjB,WACjBxjB,OAAO4kB,KAAK1kB,KAAKsjB,YAAY7iB,OAAS,IAMhDwiB,EAAOljB,UAAUskB,oBAAsB,SAAUtiB,EAAMyhB,GACnD,IAAIC,EAAYzjB,KAAKsjB,YAActjB,KAAKsjB,WAAWvhB,GACnD,GAAI0hB,EAAW,CACX,IAAIkB,EAAQlB,EAAUE,QAAQH,IACf,IAAXmB,IACI3kB,KAAKojB,kBAAoBrhB,KAAQ/B,KAAKojB,kBAEtCK,EAAUkB,GAAS,SACjB3kB,KAAKojB,iBAAiBrhB,KAGxB0hB,EAAUmB,OAAOD,EAAO,GACC,IAArBlB,EAAUhjB,eACHT,KAAKsjB,WAAWvhB,OAMpCkhB,EAlJgB,CAmJzB,QACa,U,oCC5Lf,W,kCCMO,SAAS4B,IACZ,OAAyB,WACrB,MAAM,IAAIC,MAAM,kCADI,GAP5B,sGAgBA,IAAIC,EAAc,EAUX,SAASC,EAAOC,GACnB,OAAOA,EAAIC,SAAWD,EAAIC,OAASrhB,SAASkhB,IAMzC,IAAII,EAAU,U,oCCjCrB,W,0HCAIjiB,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAyBxC,EAA+B,SAAUU,GAKzC,SAAS4gB,EAAcC,GACnB,IAAI3gB,EAAQF,EAAOb,KAAK3D,OAASA,KAiBjC,OAZA0E,EAAM4gB,OAAQ,EAEd5gB,EAAM6gB,wBAA0B7gB,EAAM8gB,mBAAmBC,KAAK/gB,GAK9DA,EAAMghB,OAASL,EAIf3gB,EAAMihB,uBAAyB,KACxBjhB,EAyJX,OA/KAxB,EAAUkiB,EAAe5gB,GA8BzB4gB,EAAcrlB,UAAU6lB,YAAc,SAAUtb,GAC5C,OAAO,kBAMX8a,EAAcrlB,UAAU8lB,QAAU,SAAUvb,GACxC,OAAO,MAQX8a,EAAcrlB,UAAU+lB,aAAe,SAAUC,GAC7C,OAAO,kBASXX,EAAcrlB,UAAUimB,YAAc,SAAUD,EAAY1jB,GACxD,OAAO,kBAQX+iB,EAAcrlB,UAAUkmB,mBAAqB,SAAUC,EAAOC,EAAMC,GAC3DF,EAAMC,KACPD,EAAMC,GAAQ,IAElBD,EAAMC,GAAMC,EAAK1a,UAAU2a,YAAcD,GAY7ChB,EAAcrlB,UAAUumB,uBAAyB,SAAUC,EAAQnb,EAAY8a,GAC3E,OAOA,SAAUC,EAAMK,GACZ,IAAIrS,EAAWnU,KAAKimB,mBAAmBR,KAAKzlB,KAAMkmB,EAAOC,GACzD,OAAOI,EAAOE,kBAAkBrb,EAAY+a,EAAMK,EAAWrS,IAC/DsR,KAAKzlB,OAYXolB,EAAcrlB,UAAU2mB,2BAA6B,SAAUtT,EAAY2S,EAAYY,EAAcxS,EAAUyS,KAY/GxB,EAAcrlB,UAAU8mB,eAAiB,SAAUvc,EAAOyb,EAAYY,GAClE,OAAO,MAKXvB,EAAcrlB,UAAU+mB,SAAW,WAC/B,OAAO9mB,KAAK0lB,QAMhBN,EAAcrlB,UAAUgnB,mBAAqB,aAM7C3B,EAAcrlB,UAAUylB,mBAAqB,SAAUnlB,GACnD,IAAI2mB,EAAsD3mB,EAAY,OAClE2mB,EAAMC,aAAeC,EAAA,KAAWC,QAChCnnB,KAAKonB,2BAUbhC,EAAcrlB,UAAUsnB,UAAY,SAAUL,GAC1C,IAAIM,EAAaN,EAAMC,WAQvB,OAPIK,GAAcJ,EAAA,KAAWC,QAAUG,GAAcJ,EAAA,KAAW9oB,OAC5D4oB,EAAMzD,iBAAiBgE,EAAA,KAAUppB,OAAQ6B,KAAKulB,yBAE9C+B,GAAcJ,EAAA,KAAWM,OACzBR,EAAMS,OACNH,EAAaN,EAAMC,YAEhBK,GAAcJ,EAAA,KAAWC,QAKpC/B,EAAcrlB,UAAUqnB,wBAA0B,WAC9C,IAAI/B,EAAQrlB,KAAK8mB,WACbzB,GAASA,EAAMqC,cAA2C,UAA3BrC,EAAMsC,kBACrCtC,EAAMuC,WAMdxC,EAAcrlB,UAAUukB,gBAAkB,kBAC/BtkB,KAAK0lB,OACZlhB,EAAOzE,UAAUukB,gBAAgB3gB,KAAK3D,OAEnColB,EAhLuB,CAiLhCyC,EAAA,MACaC,EAAA,E,oFC3MX,EAAwC,WACxC,IAAI3kB,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA6BjCikB,EAAa,GAIpB,EAAe,KACnB,SAASC,IACL,IAAI9Z,EAAShJ,SAASC,cAAc,UACpC+I,EAAOX,MAAQ,EACfW,EAAOZ,OAAS,EAChB,EAAeY,EAAOG,WAAW,MAOrC,IAAI,EAAqC,SAAU7J,GAK/C,SAASyjB,EAAoB5C,GACzB,IAAI3gB,EAAQF,EAAOb,KAAK3D,KAAMqlB,IAAUrlB,KAkDxC,OA7CA0E,EAAM6C,UAAY,KAKlB7C,EAAMwjB,mBAONxjB,EAAMyjB,cAAgB,iBAOtBzjB,EAAM0jB,eAAiB,iBAOvB1jB,EAAM2jB,sBAAwB,iBAI9B3jB,EAAM6J,QAAU,KAIhB7J,EAAM4jB,iBAAkB,EAKxB5jB,EAAM6jB,cAAgB,KAKtB7jB,EAAMqhB,WAAa,KACZrhB,EAkOX,OAzRA,EAAUujB,EAAqBzjB,GA+D/ByjB,EAAoBloB,UAAUyoB,aAAe,SAAUxB,EAAOyB,EAAKC,GAK/D,IAAIC,EAJC,GACDX,IAEJ,EAAaxZ,UAAU,EAAG,EAAG,EAAG,GAEhC,IACI,EAAaoa,UAAU5B,EAAOyB,EAAKC,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GACvDC,EAAO,EAAaH,aAAa,EAAG,EAAG,EAAG,GAAGG,KAEjD,MAAOE,GAEH,OADA,EAAe,KACR,KAEX,OAAOF,GAMXV,EAAoBloB,UAAU+oB,cAAgB,SAAU/C,GACpD,IAAIV,EAAQrlB,KAAK8mB,WACbiC,EAAa1D,EAAMyD,gBAIvB,MAH0B,oBAAfC,IACPA,EAAaA,EAAWhD,EAAWiD,UAAU/T,aAE1C8T,QAActmB,GAQzBwlB,EAAoBloB,UAAUkpB,aAAe,SAAU5mB,EAAQ0I,EAAWme,GACtE,IACI3hB,EAAWgH,EADX4a,EAAiBnpB,KAAK8mB,WAAWsC,eAErC,GAAI/mB,GACAA,EAAO+C,YAAc+jB,KACnBD,GACG7mB,GACGA,EAAOgD,MAAMgkB,iBACb,eAAO,eAAQhnB,EAAOgD,MAAMgkB,iBAAkB,eAAQH,KAAyB,CACvF,IAAIhb,EAAS7L,EAAOinB,kBAChBpb,aAAkBqb,oBAClBhb,EAAUL,EAAOG,WAAW,OAepC,GAZIE,GAAWA,EAAQL,OAAO7I,MAAM0F,YAAcA,GAE9C/K,KAAKuH,UAAYlF,EACjBrC,KAAKuO,QAAUA,EACfvO,KAAKsoB,iBAAkB,GAElBtoB,KAAKsoB,kBAEVtoB,KAAKuH,UAAY,KACjBvH,KAAKuO,QAAU,KACfvO,KAAKsoB,iBAAkB,IAEtBtoB,KAAKuH,UAAW,CACjBA,EAAYrC,SAASC,cAAc,OACnCoC,EAAUnC,UAAY+jB,EACtB,IAAI9jB,EAAQkC,EAAUlC,MACtBA,EAAMC,SAAW,WACjBD,EAAMkI,MAAQ,OACdlI,EAAMiI,OAAS,OACfiB,EAAU,iBACNL,EAASK,EAAQL,OACrB3G,EAAUH,YAAY8G,GACtB7I,EAAQ6I,EAAO7I,MACfA,EAAMC,SAAW,WACjBD,EAAMwE,KAAO,IACbxE,EAAMmkB,gBAAkB,WACxBxpB,KAAKuH,UAAYA,EACjBvH,KAAKuO,QAAUA,EAEdvO,KAAKsoB,kBACNY,GACClpB,KAAKuH,UAAUlC,MAAMgkB,kBACtBrpB,KAAKuH,UAAUlC,MAAMgkB,gBAAkBH,IAS/CjB,EAAoBloB,UAAU0pB,cAAgB,SAAUlb,EAASwX,EAAY3Z,GACzE,IAAIsd,EAAU,eAAWtd,GACrBud,EAAW,eAAYvd,GACvBwd,EAAc,eAAexd,GAC7Byd,EAAa,eAAczd,GAC/B,eAAe2Z,EAAW+D,2BAA4BJ,GACtD,eAAe3D,EAAW+D,2BAA4BH,GACtD,eAAe5D,EAAW+D,2BAA4BF,GACtD,eAAe7D,EAAW+D,2BAA4BD,GACtD,IAAIE,EAAW/pB,KAAKqoB,sBACpB,eAAe0B,EAAUL,GACzB,eAAeK,EAAUJ,GACzB,eAAeI,EAAUH,GACzB,eAAeG,EAAUF,GACzBtb,EAAQyb,OACRzb,EAAQ0b,YACR1b,EAAQ2b,OAAOthB,KAAK+B,MAAM+e,EAAQ,IAAK9gB,KAAK+B,MAAM+e,EAAQ,KAC1Dnb,EAAQ4b,OAAOvhB,KAAK+B,MAAMgf,EAAS,IAAK/gB,KAAK+B,MAAMgf,EAAS,KAC5Dpb,EAAQ4b,OAAOvhB,KAAK+B,MAAMif,EAAY,IAAKhhB,KAAK+B,MAAMif,EAAY,KAClErb,EAAQ4b,OAAOvhB,KAAK+B,MAAMkf,EAAW,IAAKjhB,KAAK+B,MAAMkf,EAAW,KAChEtb,EAAQ6b,QAQZnC,EAAoBloB,UAAUsqB,qBAAuB,SAAUtoB,EAAMwM,EAASwX,GAC1E,IAAIV,EAAQrlB,KAAK8mB,WACjB,GAAIzB,EAAMb,YAAYziB,GAAO,CACzB,IAAIuoB,EAAU,IAAI,OAAYvoB,EAAM/B,KAAKqoB,sBAAuBtC,EAAYxX,GAC5E8W,EAAMzB,cAAc0G,KAQ5BrC,EAAoBloB,UAAUwqB,UAAY,SAAUhc,EAASwX,GACzD/lB,KAAK+lB,WAAaA,EAClB/lB,KAAKqqB,qBAAqB,OAAgBxnB,UAAW0L,EAASwX,IAOlEkC,EAAoBloB,UAAUyqB,WAAa,SAAUjc,EAASwX,GAC1D/lB,KAAKqqB,qBAAqB,OAAgBvnB,WAAYyL,EAASwX,IAcnEkC,EAAoBloB,UAAU0qB,mBAAqB,SAAU3hB,EAAQmM,EAAYC,EAAUyG,EAAYpO,EAAOD,EAAQ1D,GAClH,IAAI8gB,EAAMnd,EAAQ,EACdod,EAAMrd,EAAS,EACfsd,EAAKjP,EAAa1G,EAClB4V,GAAMD,EACNE,GAAOhiB,EAAO,GAAKc,EACnBmhB,GAAOjiB,EAAO,GAClB,OAAO,eAAiB9I,KAAKmoB,cAAeuC,EAAKC,EAAKC,EAAIC,GAAK3V,EAAU4V,EAAKC,IAUlF9C,EAAoBloB,UAAU8mB,eAAiB,SAAUvc,EAAOyb,EAAYY,GACxE,IAAIqE,EAAc,eAAehrB,KAAKqoB,sBAAuB/d,EAAMyI,SAC/DxE,EAAUvO,KAAKuO,QACf8W,EAAQrlB,KAAK8mB,WACbmE,EAAc5F,EAAMrY,YACxB,GAAIie,EAAa,CACb,IAAIC,EAAmB,eAAenF,EAAWoF,2BAA4B7gB,EAAMyI,SAEnF,IAAK,eAAmBkY,EAAaC,GACjC,OAAO,KAGf,IAWIvC,EAXAje,EAAI9B,KAAK+B,MAAMqgB,EAAY,IAC3BpgB,EAAIhC,KAAK+B,MAAMqgB,EAAY,IAC3BI,EAAeprB,KAAKuoB,cACxB,IAAK6C,EAAc,CACf,IAAIC,EAAcnmB,SAASC,cAAc,UACzCkmB,EAAY9d,MAAQ,EACpB8d,EAAY/d,OAAS,EACrB8d,EAAeC,EAAYhd,WAAW,MACtCrO,KAAKuoB,cAAgB6C,EAEzBA,EAAa5c,UAAU,EAAG,EAAG,EAAG,GAEhC,IACI4c,EAAaxC,UAAUra,EAAQL,OAAQxD,EAAGE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC5D+d,EAAOyC,EAAa5C,aAAa,EAAG,EAAG,EAAG,GAAGG,KAEjD,MAAOE,GACH,MAAiB,kBAAbA,EAAIyC,MAEJtrB,KAAKuoB,cAAgB,KACd,IAAIgD,YAER5C,EAEX,OAAgB,IAAZA,EAAK,GACE,KAEJA,GAKXV,EAAoBloB,UAAUukB,gBAAkB,kBACrCtkB,KAAK+lB,WACZvhB,EAAOzE,UAAUukB,gBAAgB3gB,KAAK3D,OAEnCioB,EA1R6B,CA2RtCH,GACa,U,mBCzUf3P,EAAOC,QAAU,0gC,oCCMF,QAMXoT,IAAK,MAMLC,OAAQ,W,oCClBZ,W,oCCAA,W,oCCAA,2HAAIvoB,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA2GxCgkB,EAAuB,SAAUtjB,GAKjC,SAASsjB,EAAMrjB,GACX,IAAIC,EAAQ1E,KACR0rB,EAAc,eAAO,GAAIjnB,UACtBinB,EAAYnF,OACnB7hB,EAAQF,EAAOb,KAAK3D,KAAM0rB,IAAgB1rB,KAI1C0E,EAAMC,GAIND,EAAME,KAINF,EAAMG,GAKNH,EAAMinB,kBAAoB,KAK1BjnB,EAAMknB,cAAgB,KAKtBlnB,EAAMmnB,iBAAmB,KAKzBnnB,EAAMonB,UAAY,KAKlBpnB,EAAMmB,UAAW,EAEbpB,EAAQ4C,SACR3C,EAAM2C,OAAS5C,EAAQ4C,QAEvB5C,EAAQtD,KACRuD,EAAMoD,OAAOrD,EAAQtD,KAEzBuD,EAAMuB,kBAAkB,OAAc8lB,OAAQrnB,EAAMsnB,6BACpD,IAAIzF,EAAS9hB,EAAQ8hB,OACY9hB,EAAc,OACzC,KAEN,OADAC,EAAMunB,UAAU1F,GACT7hB,EA6MX,OAvQAxB,EAAU4kB,EAAOtjB,GAgEjBsjB,EAAM/nB,UAAUmsB,eAAiB,SAAUC,GACvC,IAAIC,EAAQD,GAAwB,GAEpC,OADAC,EAAMlb,KAAKlR,MACJosB,GAMXtE,EAAM/nB,UAAUssB,oBAAsB,SAAUC,GAC5C,IAAIC,EAASD,GAA0B,GAEvC,OADAC,EAAOrb,KAAKlR,KAAKwsB,iBACVD,GAQXzE,EAAM/nB,UAAU0sB,UAAY,WACxB,OAAkCzsB,KAAK8G,IAAI,OAAcilB,SAAY,MAKzEjE,EAAM/nB,UAAU2sB,gBAAkB,WAC9B,OAAO1sB,KAAKysB,aAKhB3E,EAAM/nB,UAAU4nB,eAAiB,WAC7B,IAAIpB,EAASvmB,KAAKysB,YAClB,OAAQlG,EAAuBA,EAAOU,WAArB,aAKrBa,EAAM/nB,UAAU4sB,oBAAsB,WAClC3sB,KAAK4nB,WAKTE,EAAM/nB,UAAUisB,4BAA8B,WACtChsB,KAAK6rB,mBACL,eAAc7rB,KAAK6rB,kBACnB7rB,KAAK6rB,iBAAmB,MAE5B,IAAItF,EAASvmB,KAAKysB,YACdlG,IACAvmB,KAAK6rB,iBAAmB,eAAOtF,EAAQ,OAAUpoB,OAAQ6B,KAAK2sB,oBAAqB3sB,OAEvFA,KAAK4nB,WAOTE,EAAM/nB,UAAU6lB,YAAc,SAAUtb,GACpC,OAAKtK,KAAK8rB,UAGH9rB,KAAK8rB,UAAUlG,YAAYtb,GAFvB,IAAIsiB,SAAQ,SAAUC,GAAW,OAAOA,EAAQ,QAQ/D/E,EAAM/nB,UAAU8lB,QAAU,SAAUvb,GAChC,OAAKtK,KAAK8rB,WAAc9rB,KAAK6F,SAGtB7F,KAAK8rB,UAAUjG,QAAQvb,GAFnB,MAYfwd,EAAM/nB,UAAUsH,OAAS,SAAU0e,EAAY1jB,GAC3C,IAAIyqB,EAAgB9sB,KAAK+sB,cACzB,GAAID,EAAchH,aAAaC,GAE3B,OADA/lB,KAAK6F,UAAW,EACTinB,EAAc9G,YAAYD,EAAY1jB,IAMrDylB,EAAM/nB,UAAUitB,SAAW,WACvBhtB,KAAK6F,UAAW,GAMpBiiB,EAAM/nB,UAAUktB,eAAiB,SAAU9rB,GAClCA,GACDnB,KAAKgtB,WAEThtB,KAAK6H,IAAI,OAAc1D,IAAKhD,IAMhC2mB,EAAM/nB,UAAUmtB,eAAiB,WAC7B,OAAOltB,KAAK8G,IAAI,OAAc3C,MAclC2jB,EAAM/nB,UAAU+H,OAAS,SAAU3G,GAC3BnB,KAAK2rB,oBACL,eAAc3rB,KAAK2rB,mBACnB3rB,KAAK2rB,kBAAoB,MAExBxqB,GACDnB,KAAK4nB,UAEL5nB,KAAK4rB,gBACL,eAAc5rB,KAAK4rB,eACnB5rB,KAAK4rB,cAAgB,MAErBzqB,IACAnB,KAAK2rB,kBAAoB,eAAOxqB,EAAK,OAAgB4B,YAAY,SAAU+gB,GACvE,IAAIqJ,EACgD,EAChDC,EAAmBD,EAAYpH,WAAWqH,iBAC1CC,EAAartB,KAAKwsB,eAAc,GAEpC,gBAAQY,EAAiBE,MAAK,SAAUC,GACpC,OAAOA,EAAgBlI,QAAUgI,EAAWhI,SAC5C,IACJ+H,EAAiBlc,KAAKmc,KACvBrtB,MACHA,KAAK4rB,cAAgB,eAAO5rB,KAAM,OAAU7B,OAAQgD,EAAIkG,OAAQlG,GAChEnB,KAAK4nB,YASbE,EAAM/nB,UAAUksB,UAAY,SAAU1F,GAClCvmB,KAAK6H,IAAI,OAAckkB,OAAQxF,IAMnCuB,EAAM/nB,UAAUgtB,YAAc,WAI1B,OAHK/sB,KAAK8rB,YACN9rB,KAAK8rB,UAAY9rB,KAAKwtB,kBAEnBxtB,KAAK8rB,WAKhBhE,EAAM/nB,UAAU0tB,YAAc,WAC1B,QAASztB,KAAK8rB,WAOlBhE,EAAM/nB,UAAUytB,eAAiB,WAC7B,OAAO,MAKX1F,EAAM/nB,UAAUukB,gBAAkB,WAC1BtkB,KAAK8rB,YACL9rB,KAAK8rB,UAAU4B,iBACR1tB,KAAK8rB,WAEhB9rB,KAAKisB,UAAU,MACfznB,EAAOzE,UAAUukB,gBAAgB3gB,KAAK3D,OAEnC8nB,EAxQe,CAyQxB,QAQK,SAAS6F,EAAON,EAAYrE,GAC/B,IAAKqE,EAAWtnB,QACZ,OAAO,EAEX,IAAIkP,EAAa+T,EAAU/T,WAC3B,GAAIA,EAAaoY,EAAWO,eACxB3Y,GAAcoY,EAAWjgB,cACzB,OAAO,EAEX,IAAI+Y,EAAO6C,EAAU7C,KACrB,OAAOA,EAAOkH,EAAWngB,SAAWiZ,GAAQkH,EAAWlgB,QAE5C,U,oCCxYf,0LAgEO,SAAS0gB,EAAezd,EAAiB3J,EAAQwK,EAAKX,EAAQqJ,EAAkBmU,EAA2BC,GAC9G,IAAIC,GAAK/c,EAAMxK,GAAU6J,EACzB,GAAI0d,EAAI,EAAG,CACP,KAAOvnB,EAASwK,EAAKxK,GAAU6J,EAC3Bwd,EAA0BC,KAAsB3d,EAAgB3J,GAChEqnB,EAA0BC,KACtB3d,EAAgB3J,EAAS,GAEjC,OAAOsnB,EAGX,IAAIE,EAAU,IAAIzqB,MAAMwqB,GACxBC,EAAQ,GAAK,EACbA,EAAQD,EAAI,GAAK,EAEjB,IAAIE,EAAQ,CAACznB,EAAQwK,EAAMX,GACvBqU,EAAQ,EACZ,MAAOuJ,EAAMztB,OAAS,EAAG,CAQrB,IAPA,IAAI0tB,EAAOD,EAAME,MACbC,EAAQH,EAAME,MACdE,EAAqB,EACrB5d,EAAKN,EAAgBie,GACrBzd,EAAKR,EAAgBie,EAAQ,GAC7B1d,EAAKP,EAAgB+d,GACrBtd,EAAKT,EAAgB+d,EAAO,GACvB5tB,EAAI8tB,EAAQ/d,EAAQ/P,EAAI4tB,EAAM5tB,GAAK+P,EAAQ,CAChD,IAAI5F,EAAI0F,EAAgB7P,GACpBqK,EAAIwF,EAAgB7P,EAAI,GACxBguB,EAAoB,eAAuB7jB,EAAGE,EAAG8F,EAAIE,EAAID,EAAIE,GAC7D0d,EAAoBD,IACpB3J,EAAQpkB,EACR+tB,EAAqBC,GAGzBD,EAAqB3U,IACrBsU,GAAStJ,EAAQle,GAAU6J,GAAU,EACjC+d,EAAQ/d,EAASqU,GACjBuJ,EAAMhd,KAAKmd,EAAO1J,GAElBA,EAAQrU,EAAS6d,GACjBD,EAAMhd,KAAKyT,EAAOwJ,IAI9B,IAAS5tB,EAAI,EAAGA,EAAIytB,IAAKztB,EACjB0tB,EAAQ1tB,KACRutB,EAA0BC,KACtB3d,EAAgB3J,EAASlG,EAAI+P,GACjCwd,EAA0BC,KACtB3d,EAAgB3J,EAASlG,EAAI+P,EAAS,IAGlD,OAAOyd,EAcJ,SAASS,EAAoBpe,EAAiB3J,EAAQ4J,EAAMC,EAAQqJ,EAAkBmU,EAA2BC,EAAkBU,GACtI,IAAK,IAAIluB,EAAI,EAAGC,EAAK6P,EAAK5P,OAAQF,EAAIC,IAAMD,EAAG,CAC3C,IAAI0Q,EAAMZ,EAAK9P,GACfwtB,EAAmBF,EAAezd,EAAiB3J,EAAQwK,EAAKX,EAAQqJ,EAAkBmU,EAA2BC,GACrHU,EAAevd,KAAK6c,GACpBtnB,EAASwK,EAEb,OAAO8c,EA2EJ,SAASW,EAAK7b,EAAO4I,GACxB,OAAOA,EAAY7S,KAAK+B,MAAMkI,EAAQ4I,GAqBnC,SAASkT,EAASve,EAAiB3J,EAAQwK,EAAKX,EAAQmL,EAAWqS,EAA2BC,GAEjG,GAAItnB,GAAUwK,EACV,OAAO8c,EAGX,IAQIpd,EAAIE,EARJH,EAAKge,EAAKte,EAAgB3J,GAASgV,GACnC7K,EAAK8d,EAAKte,EAAgB3J,EAAS,GAAIgV,GAC3ChV,GAAU6J,EAEVwd,EAA0BC,KAAsBrd,EAChDod,EAA0BC,KAAsBnd,EAIhD,GAII,GAHAD,EAAK+d,EAAKte,EAAgB3J,GAASgV,GACnC5K,EAAK6d,EAAKte,EAAgB3J,EAAS,GAAIgV,GACvChV,GAAU6J,EACN7J,GAAUwK,EAOV,OAFA6c,EAA0BC,KAAsBpd,EAChDmd,EAA0BC,KAAsBld,EACzCkd,QAENpd,GAAMD,GAAMG,GAAMD,GAC3B,MAAOnK,EAASwK,EAAK,CAEjB,IAAIsE,EAAKmZ,EAAKte,EAAgB3J,GAASgV,GACnCjG,EAAKkZ,EAAKte,EAAgB3J,EAAS,GAAIgV,GAG3C,GAFAhV,GAAU6J,EAENiF,GAAM5E,GAAM6E,GAAM3E,EAAtB,CAIA,IAAI6Z,EAAM/Z,EAAKD,EACXia,EAAM9Z,EAAKD,EAEXka,EAAMvV,EAAK7E,EACXqa,EAAMvV,EAAK5E,EAIX8Z,EAAMK,GAAOJ,EAAMG,IACjBJ,EAAM,GAAKI,EAAMJ,GAAQA,GAAOI,GAAQJ,EAAM,GAAKI,EAAMJ,KACzDC,EAAM,GAAKI,EAAMJ,GAAQA,GAAOI,GAAQJ,EAAM,GAAKI,EAAMJ,IAE3Dha,EAAK4E,EACL1E,EAAK2E,IAMTsY,EAA0BC,KAAsBpd,EAChDmd,EAA0BC,KAAsBld,EAChDH,EAAKC,EACLC,EAAKC,EACLF,EAAK4E,EACL1E,EAAK2E,IAKT,OAFAsY,EAA0BC,KAAsBpd,EAChDmd,EAA0BC,KAAsBld,EACzCkd,EAcJ,SAASa,EAAcxe,EAAiB3J,EAAQ4J,EAAMC,EAAQmL,EAAWqS,EAA2BC,EAAkBU,GACzH,IAAK,IAAIluB,EAAI,EAAGC,EAAK6P,EAAK5P,OAAQF,EAAIC,IAAMD,EAAG,CAC3C,IAAI0Q,EAAMZ,EAAK9P,GACfwtB,EAAmBY,EAASve,EAAiB3J,EAAQwK,EAAKX,EAAQmL,EAAWqS,EAA2BC,GACxGU,EAAevd,KAAK6c,GACpBtnB,EAASwK,EAEb,OAAO8c,EAcJ,SAASc,EAAmBze,EAAiB3J,EAAQkL,EAAOrB,EAAQmL,EAAWqS,EAA2BC,EAAkBe,GAC/H,IAAK,IAAIvuB,EAAI,EAAGC,EAAKmR,EAAMlR,OAAQF,EAAIC,IAAMD,EAAG,CAC5C,IAAI8P,EAAOsB,EAAMpR,GACbkuB,EAAiB,GACrBV,EAAmBa,EAAcxe,EAAiB3J,EAAQ4J,EAAMC,EAAQmL,EAAWqS,EAA2BC,EAAkBU,GAChIK,EAAgB5d,KAAKud,GACrBhoB,EAAS4J,EAAKA,EAAK5P,OAAS,GAEhC,OAAOstB,I,oCCzVX,sHAyCO,SAASgB,EAAO1sB,EAAQN,EAAMyhB,EAAUwL,EAAUC,GAIrD,GAHID,GAAYA,IAAa3sB,IACzBmhB,EAAWA,EAASiC,KAAKuJ,IAEzBC,EAAU,CACV,IAAIC,EAAqB1L,EACzBA,EAAW,WACPnhB,EAAOgiB,oBAAoBtiB,EAAMyhB,GACjC0L,EAAmB3c,MAAMvS,KAAMI,YAGvC,IAAI+uB,EAAY,CACZ9sB,OAAQA,EACRN,KAAMA,EACNyhB,SAAUA,GAGd,OADAnhB,EAAOkhB,iBAAiBxhB,EAAMyhB,GACvB2L,EAsBJ,SAASC,EAAW/sB,EAAQN,EAAMyhB,EAAUwL,GAC/C,OAAOD,EAAO1sB,EAAQN,EAAMyhB,EAAUwL,GAAU,GAW7C,SAASK,EAAcpW,GACtBA,GAAOA,EAAI5W,SACX4W,EAAI5W,OAAOgiB,oBAAoBpL,EAAIlX,KAAMkX,EAAIuK,UAC7C,eAAMvK,M,kJC/FV/V,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA2DxC,EAA6B,SAAUU,GAKvC,SAAS8qB,EAAYxiB,GACjB,IAAIpI,EAAQ1E,KACRyE,EAAUqI,GAA4B,GAC1CpI,EAAQF,EAAOb,KAAK3D,KAAM,CACtBiF,QAASC,SAASC,cAAc,OAChCkC,OAAQ5C,EAAQ4C,OAChBhF,OAAQoC,EAAQpC,UACdrC,KAKN0E,EAAM6qB,WAAarqB,SAASC,cAAc,MAK1CT,EAAM8qB,gBACoB/sB,IAAtBgC,EAAQgrB,WAA0BhrB,EAAQgrB,UAK9C/qB,EAAMgrB,eAAiBhrB,EAAM8qB,WAK7B9qB,EAAMirB,0BAA+CltB,IAAxBgC,EAAQmrB,YAKrClrB,EAAMmrB,kBACsBptB,IAAxBgC,EAAQmrB,aAA4BnrB,EAAQmrB,YAC3ClrB,EAAMmrB,eACPnrB,EAAM8qB,YAAa,GAEvB,IAAIpqB,OAAkC3C,IAAtBgC,EAAQW,UAA0BX,EAAQW,UAAY,iBAClE0qB,OAAgCrtB,IAArBgC,EAAQqrB,SAAyBrrB,EAAQqrB,SAAW,eAC/DC,OAA8CttB,IAA5BgC,EAAQsrB,gBACxBtrB,EAAQsrB,gBACR3qB,EAAY,UACd4qB,OAA0CvtB,IAA1BgC,EAAQurB,cAA8BvrB,EAAQurB,cAAgB,IAC9EC,OAAkDxtB,IAA9BgC,EAAQwrB,kBAC1BxrB,EAAQwrB,kBACR7qB,EAAY,YACW,kBAAlB4qB,GAKPtrB,EAAMwrB,eAAiBhrB,SAASC,cAAc,QAC9CT,EAAMwrB,eAAeC,YAAcH,EACnCtrB,EAAMwrB,eAAe9qB,UAAY6qB,GAGjCvrB,EAAMwrB,eAAiBF,EAE3B,IAAII,OAA0B3tB,IAAlBgC,EAAQ2rB,MAAsB3rB,EAAQ2rB,MAAQ,IACrC,kBAAVA,GAKP1rB,EAAM2rB,OAASnrB,SAASC,cAAc,QACtCT,EAAM2rB,OAAOF,YAAcC,EAC3B1rB,EAAM2rB,OAAOjrB,UAAY2qB,GAGzBrrB,EAAM2rB,OAASD,EAEnB,IAAIE,EAAc5rB,EAAMmrB,eAAiBnrB,EAAM8qB,WAAa9qB,EAAMwrB,eAAiBxrB,EAAM2rB,OAKzF3rB,EAAM6rB,cAAgBrrB,SAASC,cAAc,UAC7CT,EAAM6rB,cAAcC,aAAa,OAAQ,UACzC9rB,EAAM6rB,cAAcC,aAAa,gBAAiB3sB,QAAQa,EAAM8qB,aAChE9qB,EAAM6rB,cAAcE,MAAQX,EAC5BprB,EAAM6rB,cAAcnpB,YAAYkpB,GAChC5rB,EAAM6rB,cAAchN,iBAAiBgE,EAAA,KAAU/oB,MAAOkG,EAAMgsB,aAAajL,KAAK/gB,IAAQ,GACtF,IAAIisB,EAAavrB,EACb,IACA,OACA,IACA,QACCV,EAAM8qB,YAAc9qB,EAAMmrB,aAAe,IAAM,OAAkB,KACjEnrB,EAAMmrB,aAAe,GAAK,qBAC3B5qB,EAAUP,EAAMO,QAepB,OAdAA,EAAQG,UAAYurB,EACpB1rB,EAAQmC,YAAY1C,EAAM6rB,eAC1BtrB,EAAQmC,YAAY1C,EAAM6qB,YAM1B7qB,EAAMksB,sBAAwB,GAK9BlsB,EAAMmsB,kBAAmB,EAClBnsB,EAuKX,OApRAxB,EAAUosB,EAAa9qB,GAqHvB8qB,EAAYvvB,UAAU+wB,2BAA6B,SAAU/K,GAazD,IARA,IAAIgL,EAAS,GAKTC,EAAsB,GACtBpB,GAAc,EACdxC,EAAmBrH,EAAWqH,iBACzB7sB,EAAI,EAAGC,EAAK4sB,EAAiB3sB,OAAQF,EAAIC,IAAMD,EAAG,CACvD,IAAI8sB,EAAaD,EAAiB7sB,GAClC,GAAK,eAAO8sB,EAAYtH,EAAWiD,WAAnC,CAGA,IAAIzC,EAA6D8G,EAAgB,MAAEZ,YACnF,GAAKlG,EAAL,CAGA,IAAI0K,EAAoB1K,EAAO2K,kBAC/B,GAAKD,EAAL,CAGA,IAAIE,EAAeF,EAAkBlL,GACrC,GAAKoL,EAKL,GAFAvB,EACIA,IAAuD,IAAxCrJ,EAAO6K,6BACtB5tB,MAAM6tB,QAAQF,GACd,IAAK,IAAIG,EAAI,EAAGC,EAAKJ,EAAa1wB,OAAQ6wB,EAAIC,IAAMD,EAC1CH,EAAaG,KAAMP,IACrBC,EAAoB9f,KAAKigB,EAAaG,IACtCP,EAAOI,EAAaG,KAAM,QAK5BH,KAAgBJ,IAClBC,EAAoB9f,KAAKigB,GACzBJ,EAAOI,IAAgB,MAOnC,OAHKnxB,KAAK2vB,sBACN3vB,KAAKwxB,eAAe5B,GAEjBoB,GAMX1B,EAAYvvB,UAAU0xB,eAAiB,SAAU1L,GAC7C,GAAKA,EAAL,CAOA,IAAIoL,EAAenxB,KAAK8wB,2BAA2B/K,GAC/ChgB,EAAUorB,EAAa1wB,OAAS,EAKpC,GAJIT,KAAK6wB,kBAAoB9qB,IACzB/F,KAAKiF,QAAQI,MAAM+E,QAAUrE,EAAU,GAAK,OAC5C/F,KAAK6wB,iBAAmB9qB,IAExB,eAAOorB,EAAcnxB,KAAK4wB,uBAA9B,CAGA,eAAe5wB,KAAKuvB,YAEpB,IAAK,IAAIhvB,EAAI,EAAGC,EAAK2wB,EAAa1wB,OAAQF,EAAIC,IAAMD,EAAG,CACnD,IAAI0E,EAAUC,SAASC,cAAc,MACrCF,EAAQysB,UAAYP,EAAa5wB,GACjCP,KAAKuvB,WAAWnoB,YAAYnC,GAEhCjF,KAAK4wB,sBAAwBO,QAtBrBnxB,KAAK6wB,mBACL7wB,KAAKiF,QAAQI,MAAM+E,QAAU,OAC7BpK,KAAK6wB,kBAAmB,IA0BpCvB,EAAYvvB,UAAU2wB,aAAe,SAAUrwB,GAC3CA,EAAMsxB,iBACN3xB,KAAK4xB,gBACL5xB,KAAK0vB,eAAiB1vB,KAAKwvB,YAK/BF,EAAYvvB,UAAU6xB,cAAgB,WAClC5xB,KAAKiF,QAAQ4sB,UAAUC,OAAO,QAC1B9xB,KAAKwvB,WACL,eAAYxvB,KAAKkwB,eAAgBlwB,KAAKqwB,QAGtC,eAAYrwB,KAAKqwB,OAAQrwB,KAAKkwB,gBAElClwB,KAAKwvB,YAAcxvB,KAAKwvB,WACxBxvB,KAAKuwB,cAAcC,aAAa,gBAAiB3sB,QAAQ7D,KAAKwvB,cAOlEF,EAAYvvB,UAAUgyB,eAAiB,WACnC,OAAO/xB,KAAK6vB,cAOhBP,EAAYvvB,UAAUyxB,eAAiB,SAAU5B,GACzC5vB,KAAK6vB,eAAiBD,IAG1B5vB,KAAK6vB,aAAeD,EACpB5vB,KAAKiF,QAAQ4sB,UAAUC,OAAO,oBAC1B9xB,KAAK0vB,gBACL1vB,KAAK4xB,kBAUbtC,EAAYvvB,UAAUiyB,aAAe,SAAUvC,GAC3CzvB,KAAK0vB,eAAiBD,EACjBzvB,KAAK6vB,cAAgB7vB,KAAKwvB,aAAeC,GAG9CzvB,KAAK4xB,iBAQTtC,EAAYvvB,UAAUkyB,aAAe,WACjC,OAAOjyB,KAAKwvB,YAOhBF,EAAYvvB,UAAUsH,OAAS,SAAU6qB,GACrClyB,KAAKyxB,eAAeS,EAASnM,aAE1BuJ,EArRqB,CAsR9B6C,EAAA,MACa,I,wBClVX,EAAwC,WACxC,IAAIhvB,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA8CxC,EAAwB,SAAUU,GAKlC,SAAS4tB,EAAOtlB,GACZ,IAAIpI,EAAQ1E,KACRyE,EAAUqI,GAA4B,GAC1CpI,EAAQF,EAAOb,KAAK3D,KAAM,CACtBiF,QAASC,SAASC,cAAc,OAChCkC,OAAQ5C,EAAQ4C,OAChBhF,OAAQoC,EAAQpC,UACdrC,KACN,IAAIoF,OAAkC3C,IAAtBgC,EAAQW,UAA0BX,EAAQW,UAAY,YAClEgrB,OAA0B3tB,IAAlBgC,EAAQ2rB,MAAsB3rB,EAAQ2rB,MAAQ,IACtDiC,OAAgD5vB,IAA7BgC,EAAQ4tB,iBACzB5tB,EAAQ4tB,iBACR,aAKN3tB,EAAM2rB,OAAS,KACM,kBAAVD,GACP1rB,EAAM2rB,OAASnrB,SAASC,cAAc,QACtCT,EAAM2rB,OAAOjrB,UAAYitB,EACzB3tB,EAAM2rB,OAAOF,YAAcC,IAG3B1rB,EAAM2rB,OAASD,EACf1rB,EAAM2rB,OAAOwB,UAAUS,IAAID,IAE/B,IAAIvC,EAAWrrB,EAAQqrB,SAAWrrB,EAAQqrB,SAAW,iBACjDluB,EAASsD,SAASC,cAAc,UACpCvD,EAAOwD,UAAYA,EAAY,SAC/BxD,EAAO4uB,aAAa,OAAQ,UAC5B5uB,EAAO6uB,MAAQX,EACfluB,EAAOwF,YAAY1C,EAAM2rB,QACzBzuB,EAAO2hB,iBAAiBgE,EAAA,KAAU/oB,MAAOkG,EAAMgsB,aAAajL,KAAK/gB,IAAQ,GACzE,IAAIisB,EAAavrB,EAAY,IAAM,OAAqB,IAAM,OAC1DH,EAAUP,EAAMO,QAsBpB,OArBAA,EAAQG,UAAYurB,EACpB1rB,EAAQmC,YAAYxF,GACpB8C,EAAM6tB,gBAAkB9tB,EAAQ+tB,WAAa/tB,EAAQ+tB,gBAAa/vB,EAKlEiC,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAKtE7E,EAAMguB,eAAiCjwB,IAArBgC,EAAQkuB,UAAyBluB,EAAQkuB,SAK3DjuB,EAAMkuB,eAAYnwB,EACdiC,EAAMguB,WACNhuB,EAAMO,QAAQ4sB,UAAUS,IAAI,QAEzB5tB,EAkEX,OA/HA,EAAU0tB,EAAQ5tB,GAmElB4tB,EAAOryB,UAAU2wB,aAAe,SAAUrwB,GACtCA,EAAMsxB,sBACuBlvB,IAAzBzC,KAAKuyB,gBACLvyB,KAAKuyB,kBAGLvyB,KAAK6yB,eAMbT,EAAOryB,UAAU8yB,YAAc,WAC3B,IAAI1xB,EAAMnB,KAAKgH,SACX8rB,EAAO3xB,EAAI4H,UACf,GAAK+pB,EAAL,CAKA,IAAI5d,EAAW4d,EAAKhQ,mBACHrgB,IAAbyS,IACIlV,KAAKyyB,UAAY,GAAKvd,GAAY,EAAItM,KAAKmqB,MAAQ,EACnDD,EAAKE,QAAQ,CACT9d,SAAU,EACV3L,SAAUvJ,KAAKyyB,UACfjpB,OAAQ,SAIZspB,EAAKG,YAAY,MAS7Bb,EAAOryB,UAAUsH,OAAS,SAAU6qB,GAChC,IAAInM,EAAamM,EAASnM,WAC1B,GAAKA,EAAL,CAGA,IAAI7Q,EAAW6Q,EAAWiD,UAAU9T,SACpC,GAAIA,GAAYlV,KAAK4yB,UAAW,CAC5B,IAAI7nB,EAAY,UAAYmK,EAAW,OACvC,GAAIlV,KAAK0yB,UAAW,CAChB,IAAInxB,EAAWvB,KAAKiF,QAAQ4sB,UAAUtwB,SAAS,QAC1CA,GAAyB,IAAb2T,EAGR3T,GAAyB,IAAb2T,GACjBlV,KAAKiF,QAAQ4sB,UAAUqB,OAAO,QAH9BlzB,KAAKiF,QAAQ4sB,UAAUS,IAAI,QAMnCtyB,KAAKqwB,OAAOhrB,MAAM0F,UAAYA,EAElC/K,KAAK4yB,UAAY1d,IAEdkd,EAhIgB,CAiIzBD,EAAA,MACa,IChLX,EAAwC,WACxC,IAAIhvB,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA8CxC,EAAsB,SAAUU,GAKhC,SAAS2uB,EAAKrmB,GACV,IAAIpI,EAAQ1E,KACRyE,EAAUqI,GAA4B,GAC1CpI,EAAQF,EAAOb,KAAK3D,KAAM,CACtBiF,QAASC,SAASC,cAAc,OAChC9C,OAAQoC,EAAQpC,UACdrC,KACN,IAAIoF,OAAkC3C,IAAtBgC,EAAQW,UAA0BX,EAAQW,UAAY,UAClEuD,OAA0BlG,IAAlBgC,EAAQkE,MAAsBlE,EAAQkE,MAAQ,EACtDyqB,OAA8C3wB,IAA5BgC,EAAQ2uB,gBACxB3uB,EAAQ2uB,gBACRhuB,EAAY,MACdiuB,OAAgD5wB,IAA7BgC,EAAQ4uB,iBACzB5uB,EAAQ4uB,iBACRjuB,EAAY,OACdkuB,OAAsC7wB,IAAxBgC,EAAQ6uB,YAA4B7uB,EAAQ6uB,YAAc,IACxEC,OAAwC9wB,IAAzBgC,EAAQ8uB,aAA6B9uB,EAAQ8uB,aAAe,IAC3EC,OAA4C/wB,IAA3BgC,EAAQ+uB,eAA+B/uB,EAAQ+uB,eAAiB,UACjFC,OAA8ChxB,IAA5BgC,EAAQgvB,gBACxBhvB,EAAQgvB,gBACR,WACFC,EAAYxuB,SAASC,cAAc,UACvCuuB,EAAUtuB,UAAYguB,EACtBM,EAAUlD,aAAa,OAAQ,UAC/BkD,EAAUjD,MAAQ+C,EAClBE,EAAUtsB,YAAmC,kBAAhBksB,EACvBpuB,SAASyuB,eAAeL,GACxBA,GACNI,EAAUnQ,iBAAiBgE,EAAA,KAAU/oB,MAAOkG,EAAMgsB,aAAajL,KAAK/gB,EAAOiE,IAAQ,GACnF,IAAIirB,EAAa1uB,SAASC,cAAc,UACxCyuB,EAAWxuB,UAAYiuB,EACvBO,EAAWpD,aAAa,OAAQ,UAChCoD,EAAWnD,MAAQgD,EACnBG,EAAWxsB,YAAoC,kBAAjBmsB,EACxBruB,SAASyuB,eAAeJ,GACxBA,GACNK,EAAWrQ,iBAAiBgE,EAAA,KAAU/oB,MAAOkG,EAAMgsB,aAAajL,KAAK/gB,GAAQiE,IAAQ,GACrF,IAAIgoB,EAAavrB,EAAY,IAAM,OAAqB,IAAM,OAC1DH,EAAUP,EAAMO,QASpB,OARAA,EAAQG,UAAYurB,EACpB1rB,EAAQmC,YAAYssB,GACpBzuB,EAAQmC,YAAYwsB,GAKpBlvB,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAC/D7E,EAyCX,OA5FA,EAAUyuB,EAAM3uB,GA0DhB2uB,EAAKpzB,UAAU2wB,aAAe,SAAU/nB,EAAOtI,GAC3CA,EAAMsxB,iBACN3xB,KAAK6zB,aAAalrB,IAMtBwqB,EAAKpzB,UAAU8zB,aAAe,SAAUlrB,GACpC,IAAIxH,EAAMnB,KAAKgH,SACX8rB,EAAO3xB,EAAI4H,UACf,GAAK+pB,EAAL,CAKA,IAAIgB,EAAchB,EAAKiB,UACvB,QAAoBtxB,IAAhBqxB,EAA2B,CAC3B,IAAIE,EAAUlB,EAAKmB,mBAAmBH,EAAcnrB,GAChD3I,KAAKyyB,UAAY,GACbK,EAAKoB,gBACLpB,EAAKqB,mBAETrB,EAAKE,QAAQ,CACT7M,KAAM6N,EACNzqB,SAAUvJ,KAAKyyB,UACfjpB,OAAQ,UAIZspB,EAAKsB,QAAQJ,MAIlBb,EA7Fc,CA8FvBhB,EAAA,MACa,IC/FR,SAASkC,EAASvnB,GACrB,IAAIrI,EAAUqI,GAA4B,GACtCwnB,EAAW,IAAIC,EAAA,KACfC,OAA+B/xB,IAAjBgC,EAAQ0hB,MAAqB1hB,EAAQ0hB,KACnDqO,GACAF,EAASpjB,KAAK,IAAI,EAAKzM,EAAQgwB,cAEnC,IAAIC,OAAmCjyB,IAAnBgC,EAAQkwB,QAAuBlwB,EAAQkwB,OACvDD,GACAJ,EAASpjB,KAAK,IAAI,EAAOzM,EAAQmwB,gBAErC,IAAIC,OAA6CpyB,IAAxBgC,EAAQqwB,aAA4BrwB,EAAQqwB,YAIrE,OAHID,GACAP,EAASpjB,KAAK,IAAI,EAAYzM,EAAQswB,qBAEnCT,I,4GC7DUU,E,WACpB,cAAiG,IAApFC,EAAoF,EAApFA,WAAYC,EAAwE,EAAxEA,YAAa7P,EAA2D,EAA3DA,MAAOiG,EAAoD,EAApDA,KAAM6J,EAA8C,EAA9CA,SAAUC,EAAoC,EAApCA,qBAAsBtjB,EAAc,EAAdA,YAAc,uBAChG9R,KAAKi1B,WAAaA,GAAc,EAChCj1B,KAAKk1B,YAAcA,GAAe,GAClCl1B,KAAKqlB,MAAQA,GAAS,GACtBrlB,KAAKsrB,KAAOA,GAAQ,uBACpBtrB,KAAKm1B,SAAWA,GAAsBn1B,KAAKq1B,gBAAgB,CAACH,cAAa7P,QAAOiG,OAAMxZ,gBACtF9R,KAAKo1B,qBAAuBA,GAEzBp1B,KAAKq1B,gBAAgB,CAACH,cAAa7P,QAAOiG,OAAMxZ,gB,sDAYpD,YAAyD,IAAxCojB,EAAwC,EAAxCA,YAAa7P,EAA2B,EAA3BA,MAAOiG,EAAoB,EAApBA,KAAMxZ,EAAc,EAAdA,YAC1C,MAAO,CACN/P,KAAM,UACN+P,YAAa,CAACA,GAAe,IAC7BwjB,IAAK,CAACvzB,KAAMupB,EAAM/S,WAAY,CAAC+S,KAAM,cACrC/S,WAAY,CACX2c,cACA7P,QACAiG,a,6rBC7BApoB,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA2BjCyxB,EAAS,QAKTC,EAAY5sB,KAAKmqB,GAAKwC,EAKtBE,EAAS,EAAED,GAAYA,EAAWA,EAAWA,GAK7CE,EAAe,EAAE,KAAM,GAAI,IAAK,IAMhCC,EAAaJ,EAAS3sB,KAAKgtB,IAAIhtB,KAAKitB,IAAIjtB,KAAKmqB,GAAK,IAKzD,EAAoC,SAAUvuB,GAK9C,SAASsxB,EAAmBC,GACxB,OAAOvxB,EAAOb,KAAK3D,KAAM,CACrB+1B,KAAMA,EACNC,MAAOC,EAAA,KAAMC,OACb9pB,OAAQqpB,EACRU,QAAQ,EACRC,YAAaV,EACbW,mBAAoB,SAAUphB,EAAYqhB,GACtC,OAAOrhB,EAAa,eAAKqhB,EAAM,GAAKf,OAEtCv1B,KAEV,OAhBAkD,EAAU4yB,EAAoBtxB,GAgBvBsxB,EAjB4B,CAkBrCS,EAAA,MAOSC,EAAc,CACrB,IAAI,EAAmB,aACvB,IAAI,EAAmB,eACvB,IAAI,EAAmB,eACvB,IAAI,EAAmB,eACvB,IAAI,EAAmB,8CACvB,IAAI,EAAmB,iDAUpB,SAASC,EAAaC,EAAOC,EAAYC,GAC5C,IAAIn2B,EAASi2B,EAAMj2B,OACfo2B,EAAYD,EAAgB,EAAIA,EAAgB,EAChDE,EAASH,OACEl0B,IAAXq0B,IAGIA,EAFAD,EAAY,EAEHH,EAAM3jB,QAGN,IAAIvP,MAAM/C,IAG3B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,GAAKs2B,EAAW,CACxCC,EAAOv2B,GAAMi1B,EAAYkB,EAAMn2B,GAAM,IACrC,IAAIqK,EAAI2qB,EAAS3sB,KAAKgtB,IAAIhtB,KAAKitB,IAAKjtB,KAAKmqB,KAAO2D,EAAMn2B,EAAI,GAAK,IAAO,MAClEqK,EAAI+qB,EACJ/qB,EAAI+qB,EAEC/qB,GAAK+qB,IACV/qB,GAAK+qB,GAETmB,EAAOv2B,EAAI,GAAKqK,EAEpB,OAAOksB,EAUJ,SAASC,EAAWL,EAAOC,EAAYC,GAC1C,IAAIn2B,EAASi2B,EAAMj2B,OACfo2B,EAAYD,EAAgB,EAAIA,EAAgB,EAChDE,EAASH,OACEl0B,IAAXq0B,IAGIA,EAFAD,EAAY,EAEHH,EAAM3jB,QAGN,IAAIvP,MAAM/C,IAG3B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,GAAKs2B,EAC7BC,EAAOv2B,GAAM,IAAMm2B,EAAMn2B,GAAMi1B,EAC/BsB,EAAOv2B,EAAI,GACN,IAAMqI,KAAKouB,KAAKpuB,KAAKquB,IAAIP,EAAMn2B,EAAI,GAAKg1B,IAAY3sB,KAAKmqB,GAAK,GAEvE,OAAO+D,EClJX,IAAI,EAAwC,WACxC,IAAI3zB,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA0BjC,EAAS,QAOT,EAAS,EAAE,KAAM,GAAI,IAAK,IAK1BozB,EAAmBtuB,KAAKmqB,GAAK,EAAU,IAS9C,EAAoC,SAAUvuB,GAM9C,SAAS2yB,EAAmBpB,EAAMqB,GAC9B,OAAO5yB,EAAOb,KAAK3D,KAAM,CACrB+1B,KAAMA,EACNC,MAAOC,EAAA,KAAMtoB,QACbvB,OAAQ,EACRirB,gBAAiBD,EACjBjB,QAAQ,EACRmB,cAAeJ,EACfd,YAAa,KACXp2B,KAEV,OAhBA,EAAUm3B,EAAoB3yB,GAgBvB2yB,EAjB4B,CAkBrCZ,EAAA,MAOS,EAAc,CACrB,IAAI,EAAmB,UACvB,IAAI,EAAmB,YAAa,OACpC,IAAI,EAAmB,iCACvB,IAAI,EAAmB,4BACvB,IAAI,EAAmB,gDACvB,IAAI,EAAmB,+CAAgD,OACvE,IAAI,EAAmB,6CAA8C,QCzErEgB,EAAQ,GAYL,SAASzwB,EAAIivB,GAChB,OAAQwB,EAAMxB,IACVwB,EAAMxB,EAAKyB,QAAQ,yCAA0C,aAC7D,KAOD,SAASlF,EAAIyD,EAAM3qB,GACtBmsB,EAAMxB,GAAQ3qB,E,cCrBdqsB,EAAa,GAeV,SAAS,EAAIlR,EAAQmR,EAAa3gB,GACrC,IAAI4gB,EAAapR,EAAOqR,UACpBC,EAAkBH,EAAYE,UAC5BD,KAAcF,IAChBA,EAAWE,GAAc,IAE7BF,EAAWE,GAAYE,GAAmB9gB,EA2BvC,SAAS,EAAI4gB,EAAYE,GAC5B,IAAI9sB,EAIJ,OAHI4sB,KAAcF,GAAcI,KAAmBJ,EAAWE,KAC1D5sB,EAAY0sB,EAAWE,GAAYE,IAEhC9sB,E,wCCoBP+sB,GAAwB,EAIrB,SAASC,EAAyBC,GACrC,IAAIC,OAAuBx1B,IAAhBu1B,GAAmCA,EAC9CF,GAAyBG,EAStB,SAASC,EAAexB,EAAOC,EAAYC,GAC9C,IAAIE,EACJ,QAAmBr0B,IAAfk0B,EAA0B,CAC1B,IAAK,IAAIp2B,EAAI,EAAGC,EAAKk2B,EAAMj2B,OAAQF,EAAIC,IAAMD,EACzCo2B,EAAWp2B,GAAKm2B,EAAMn2B,GAE1Bu2B,EAASH,OAGTG,EAASJ,EAAM3jB,QAEnB,OAAO+jB,EAQJ,SAASqB,EAAkBzB,EAAOC,EAAYC,GACjD,QAAmBn0B,IAAfk0B,GAA4BD,IAAUC,EAAY,CAClD,IAAK,IAAIp2B,EAAI,EAAGC,EAAKk2B,EAAMj2B,OAAQF,EAAIC,IAAMD,EACzCo2B,EAAWp2B,GAAKm2B,EAAMn2B,GAE1Bm2B,EAAQC,EAEZ,OAAOD,EASJ,SAAS0B,EAAchtB,GAC1BknB,EAAQlnB,EAAWwsB,UAAWxsB,GAC9B,EAAiBA,EAAYA,EAAY8sB,GAKtC,SAASG,EAAeC,GAC3BA,EAAYC,QAAQH,GAWjB,SAAS,EAAII,GAChB,MAAiC,kBAAnBA,EACR1xB,EAA8B,GACJ,GAAoB,KAsBjD,SAASuvB,EAAmBjrB,EAAY6J,EAAYqhB,EAAOmC,GAE9D,IAAIC,EADJttB,EAAa,EAAIA,GAEjB,IAAIutB,EAASvtB,EAAWwtB,yBACxB,GAAID,GAEA,GADAD,EAAkBC,EAAO1jB,EAAYqhB,GACjCmC,GAAaA,IAAcrtB,EAAWytB,WAAY,CAClD,IAAIvB,EAAgBlsB,EAAWwC,mBAC3B0pB,IACAoB,EACKA,EAAkBpB,EAAiB,OAAgBmB,SAI/D,CACD,IAAIzC,EAAQ5qB,EAAWytB,WACvB,GAAK7C,GAASC,EAAA,KAAMtoB,UAAY8qB,GAAcA,GAAaxC,EAAA,KAAMtoB,QAC7D+qB,EAAkBzjB,MAEjB,CAID,IAAI6jB,EAAeC,EAA4B3tB,EAAY,EAAI,cAC/D,GAAI0tB,IAAiBX,GAAqBnC,IAAUC,EAAA,KAAMtoB,QAEtD+qB,EAAkBzjB,EAAa7J,EAAWwC,uBAEzC,CACD,IAAIorB,EAAW,CACX1C,EAAM,GAAKrhB,EAAa,EACxBqhB,EAAM,GACNA,EAAM,GAAKrhB,EAAa,EACxBqhB,EAAM,GACNA,EAAM,GACNA,EAAM,GAAKrhB,EAAa,EACxBqhB,EAAM,GACNA,EAAM,GAAKrhB,EAAa,GAE5B+jB,EAAWF,EAAaE,EAAUA,EAAU,GAC5C,IAAIzrB,EAAQ,eAAYyrB,EAASjmB,MAAM,EAAG,GAAIimB,EAASjmB,MAAM,EAAG,IAC5DzF,EAAS,eAAY0rB,EAASjmB,MAAM,EAAG,GAAIimB,EAASjmB,MAAM,EAAG,IACjE2lB,GAAmBnrB,EAAQD,GAAU,EAErCgqB,EAAgBmB,EACd,OAAgBA,GAChBrtB,EAAWwC,wBACKnL,IAAlB60B,IACAoB,GAAmBpB,IAI/B,OAAOoB,EASJ,SAASO,EAAyBX,GACrCD,EAAeC,GACfA,EAAYC,SAAQ,SAAUhS,GAC1B+R,EAAYC,SAAQ,SAAUb,GACtBnR,IAAWmR,GACX,EAAiBnR,EAAQmR,EAAaQ,SAkB/C,SAASgB,EAAwBC,EAAcC,EAAcC,EAAkBC,GAClFH,EAAaZ,SAAQ,SAAUgB,GAC3BH,EAAab,SAAQ,SAAUiB,GAC3B,EAAiBD,EAAaC,EAAaH,GAC3C,EAAiBG,EAAaD,EAAaD,SAgBhD,SAASG,EAAiBruB,EAAYsuB,GACzC,OAAKtuB,EAG0B,kBAAfA,EACL,EAAIA,GAGsB,EAN1B,EAAIsuB,GA2EZ,SAASC,EAAWvmB,EAAYwmB,GAEnC,OADA7B,IACO,EAAU3kB,EAAY,iBAAgC3Q,IAAnBm3B,EAA+BA,EAAiB,aA6BvF,SAASC,EAAWN,EAAaC,GACpC,GAAID,IAAgBC,EAChB,OAAO,EAEX,IAAIM,EAAaP,EAAYV,aAAeW,EAAYX,WACxD,GAAIU,EAAY3B,YAAc4B,EAAY5B,UACtC,OAAOkC,EAGP,IAAIC,EAAgBhB,EAA4BQ,EAAaC,GAC7D,OAAOO,IAAkB7B,GAAkB4B,EAY5C,SAASf,EAA4BiB,EAAkBC,GAC1D,IAAItC,EAAaqC,EAAiBpC,UAC9BC,EAAkBoC,EAAsBrC,UACxCmC,EAAgB,EAAiBpC,EAAYE,GAIjD,OAHKkC,IACDA,EAAgB5B,GAEb4B,EAYJ,SAASG,EAAa3T,EAAQmR,GACjC,IAAIsC,EAAmB,EAAIzT,GACvB0T,EAAwB,EAAIvC,GAChC,OAAOqB,EAA4BiB,EAAkBC,GAgBlD,SAAS,EAAU7mB,EAAYmT,EAAQmR,GAC1C,IAAIqC,EAAgBG,EAAa3T,EAAQmR,GACzC,OAAOqC,EAAc3mB,OAAY3Q,EAAW2Q,EAAW3S,QAcpD,SAAS05B,EAAgB/tB,EAAQma,EAAQmR,EAAa1gB,GACzD,IAAI+iB,EAAgBG,EAAa3T,EAAQmR,GACzC,OAAO,eAAetrB,EAAQ2tB,OAAet3B,EAAWuU,GAiB5D,IAAIojB,EAAiB,KAwBd,SAASC,IACZ,OAAOD,EAiBJ,SAASE,EAAiBlnB,EAAY4mB,GACzC,OAAKI,EAGE,EAAUhnB,EAAY4mB,EAAkBI,GAFpChnB,EAWR,SAASmnB,EAAmBnnB,EAAYonB,GAC3C,OAAKJ,EAaE,EAAUhnB,EAAYgnB,EAAgBI,IAZrC1C,IACC,eAAO1kB,EAAY,CAAC,EAAG,KACxBA,EAAW,KAAO,KAClBA,EAAW,IAAM,KACjBA,EAAW,KAAO,IAClBA,EAAW,IAAM,KACjB0kB,GAAwB,EAExB2C,QAAQC,KAAK,2FAEVtnB,GAWR,SAASunB,EAAavuB,EAAQ4tB,GACjC,OAAKI,EAGED,EAAgB/tB,EAAQ4tB,EAAkBI,GAFtChuB,EAWR,SAASwuB,EAAexuB,EAAQouB,GACnC,OAAKJ,EAGED,EAAgB/tB,EAAQguB,EAAgBI,GAFpCpuB,EAYR,SAASyuB,GAAiB5lB,EAAY+kB,GACzC,IAAKI,EACD,OAAOnlB,EAEX,IAAI6lB,EAAc,EAAId,GAAkBnB,WACpCkC,EAAYX,EAAevB,WAC/B,OAAOiC,GAAeC,EACf9lB,EAAa,OAAgB6lB,GAAgB,OAAgBC,GAC9D9lB,EAUH,SAAS+lB,GAAmB/lB,EAAYulB,GAC3C,IAAKJ,EACD,OAAOnlB,EAEX,IAAI6lB,EAAc,EAAIN,GAAgB3B,WAClCkC,EAAYX,EAAevB,WAC/B,OAAOiC,GAAeC,EACf9lB,EAAa,OAAgB8lB,GAAc,OAAgBD,GAC5D7lB,EA2CH,SAASgmB,KAGZhC,EAAyB,GACzBA,EAAyB,GAGzBC,EAAwB,EAAsB,EAAsBzC,EAAcM,GAEtFkE,M,wBCzpBC,SAASC,EAAE36B,GAAwD4X,EAAOC,QAAQ7X,IAAlF,CAA6JP,GAAK,WAAW,aAAa,SAASk7B,EAAEA,EAAEnqB,EAAEoqB,EAAEC,EAAEC,IAAI,SAASH,EAAElN,EAAEjd,EAAEoqB,EAAEC,EAAEC,GAAG,KAAKD,EAAED,GAAG,CAAC,GAAGC,EAAED,EAAE,IAAI,CAAC,IAAI3b,EAAE4b,EAAED,EAAE,EAAEG,EAAEvqB,EAAEoqB,EAAE,EAAElkB,EAAErO,KAAKgtB,IAAIpW,GAAG+b,EAAE,GAAG3yB,KAAKquB,IAAI,EAAEhgB,EAAE,GAAGukB,EAAE,GAAG5yB,KAAK0S,KAAKrE,EAAEskB,GAAG/b,EAAE+b,GAAG/b,IAAI8b,EAAE9b,EAAE,EAAE,GAAG,EAAE,GAAGnE,EAAEzS,KAAK4E,IAAI2tB,EAAEvyB,KAAKuO,MAAMpG,EAAEuqB,EAAEC,EAAE/b,EAAEgc,IAAIC,EAAE7yB,KAAK0J,IAAI8oB,EAAExyB,KAAKuO,MAAMpG,GAAGyO,EAAE8b,GAAGC,EAAE/b,EAAEgc,IAAIN,EAAElN,EAAEjd,EAAEsK,EAAEogB,EAAEJ,GAAG,IAAI53B,EAAEuqB,EAAEjd,GAAG3N,EAAE+3B,EAAEzwB,EAAE0wB,EAAE,IAAI76B,EAAEytB,EAAEmN,EAAEpqB,GAAGsqB,EAAErN,EAAEoN,GAAG33B,GAAG,GAAGlD,EAAEytB,EAAEmN,EAAEC,GAAGh4B,EAAEsH,GAAG,CAAC,IAAInK,EAAEytB,EAAE5qB,EAAEsH,GAAGtH,IAAIsH,IAAI2wB,EAAErN,EAAE5qB,GAAGK,GAAG,GAAGL,IAAI,KAAKi4B,EAAErN,EAAEtjB,GAAGjH,GAAG,GAAGiH,IAAI,IAAI2wB,EAAErN,EAAEmN,GAAG13B,GAAGlD,EAAEytB,EAAEmN,EAAEzwB,GAAGnK,EAAEytB,IAAItjB,EAAE0wB,GAAG1wB,GAAGqG,IAAIoqB,EAAEzwB,EAAE,GAAGqG,GAAGrG,IAAI0wB,EAAE1wB,EAAE,IAA3Z,CAAgawwB,EAAEnqB,EAAEoqB,GAAG,EAAEC,GAAGF,EAAEz6B,OAAO,EAAE46B,GAAGrN,GAAG,SAASztB,EAAE26B,EAAE36B,EAAEytB,GAAG,IAAIjd,EAAEmqB,EAAE36B,GAAG26B,EAAE36B,GAAG26B,EAAElN,GAAGkN,EAAElN,GAAGjd,EAAE,SAASid,EAAEkN,EAAE36B,GAAG,OAAO26B,EAAE36B,GAAG,EAAE26B,EAAE36B,EAAE,EAAE,EAAE,IAAIwQ,EAAE,SAASmqB,QAAG,IAASA,IAAIA,EAAE,GAAGl7B,KAAK07B,YAAY9yB,KAAK4E,IAAI,EAAE0tB,GAAGl7B,KAAK27B,YAAY/yB,KAAK4E,IAAI,EAAE5E,KAAKqD,KAAK,GAAGjM,KAAK07B,cAAc17B,KAAK47B,SAAS,SAAST,EAAED,EAAE36B,EAAEytB,GAAG,IAAIA,EAAE,OAAOztB,EAAEojB,QAAQuX,GAAG,IAAI,IAAInqB,EAAE,EAAEA,EAAExQ,EAAEE,OAAOsQ,IAAI,GAAGid,EAAEkN,EAAE36B,EAAEwQ,IAAI,OAAOA,EAAE,OAAO,EAAE,SAASqqB,EAAEF,EAAE36B,GAAG86B,EAAEH,EAAE,EAAEA,EAAEnrB,SAAStP,OAAOF,EAAE26B,GAAG,SAASG,EAAEH,EAAE36B,EAAEytB,EAAEjd,EAAEoqB,GAAGA,IAAIA,EAAE13B,EAAE,OAAO03B,EAAE9oB,KAAK,IAAI8oB,EAAE3oB,KAAK,IAAI2oB,EAAE1oB,MAAK,IAAK0oB,EAAEzoB,MAAK,IAAK,IAAI,IAAI0oB,EAAE76B,EAAE66B,EAAEpN,EAAEoN,IAAI,CAAC,IAAIC,EAAEH,EAAEnrB,SAASqrB,GAAG5b,EAAE2b,EAAED,EAAEW,KAAK9qB,EAAEsqB,GAAGA,GAAG,OAAOF,EAAE,SAAS3b,EAAE0b,EAAE36B,GAAG,OAAO26B,EAAE7oB,KAAKzJ,KAAK0J,IAAI4oB,EAAE7oB,KAAK9R,EAAE8R,MAAM6oB,EAAE1oB,KAAK5J,KAAK0J,IAAI4oB,EAAE1oB,KAAKjS,EAAEiS,MAAM0oB,EAAEzoB,KAAK7J,KAAK4E,IAAI0tB,EAAEzoB,KAAKlS,EAAEkS,MAAMyoB,EAAExoB,KAAK9J,KAAK4E,IAAI0tB,EAAExoB,KAAKnS,EAAEmS,MAAMwoB,EAAE,SAASI,EAAEJ,EAAE36B,GAAG,OAAO26B,EAAE7oB,KAAK9R,EAAE8R,KAAK,SAAS4E,EAAEikB,EAAE36B,GAAG,OAAO26B,EAAE1oB,KAAKjS,EAAEiS,KAAK,SAAS+oB,EAAEL,GAAG,OAAOA,EAAEzoB,KAAKyoB,EAAE7oB,OAAO6oB,EAAExoB,KAAKwoB,EAAE1oB,MAAM,SAASgpB,EAAEN,GAAG,OAAOA,EAAEzoB,KAAKyoB,EAAE7oB,MAAM6oB,EAAExoB,KAAKwoB,EAAE1oB,MAAM,SAAS6I,EAAE6f,EAAE36B,GAAG,OAAO26B,EAAE7oB,MAAM9R,EAAE8R,MAAM6oB,EAAE1oB,MAAMjS,EAAEiS,MAAMjS,EAAEkS,MAAMyoB,EAAEzoB,MAAMlS,EAAEmS,MAAMwoB,EAAExoB,KAAK,SAAS+oB,EAAEP,EAAE36B,GAAG,OAAOA,EAAE8R,MAAM6oB,EAAEzoB,MAAMlS,EAAEiS,MAAM0oB,EAAExoB,MAAMnS,EAAEkS,MAAMyoB,EAAE7oB,MAAM9R,EAAEmS,MAAMwoB,EAAE1oB,KAAK,SAAS/O,EAAEy3B,GAAG,MAAM,CAACnrB,SAASmrB,EAAE5tB,OAAO,EAAEuuB,MAAK,EAAGxpB,KAAK,IAAIG,KAAK,IAAIC,MAAK,IAAKC,MAAK,KAAM,SAAStP,EAAE7C,EAAEytB,EAAEjd,EAAEoqB,EAAEC,GAAG,IAAI,IAAIC,EAAE,CAACrN,EAAEjd,GAAGsqB,EAAE56B,QAAQ,MAAMsQ,EAAEsqB,EAAEjN,QAAQJ,EAAEqN,EAAEjN,QAAQ+M,GAAG,CAAC,IAAI3b,EAAEwO,EAAEplB,KAAKqD,MAAM8E,EAAEid,GAAGmN,EAAE,GAAGA,EAAED,EAAE36B,EAAEif,EAAEwO,EAAEjd,EAAEqqB,GAAGC,EAAEnqB,KAAK8c,EAAExO,EAAEA,EAAEzO,IAAI,OAAOA,EAAEhR,UAAUE,IAAI,WAAW,OAAOD,KAAK87B,KAAK97B,KAAK2oB,KAAK,KAAK5X,EAAEhR,UAAUg8B,OAAO,SAASb,GAAG,IAAI36B,EAAEP,KAAK2oB,KAAKqF,EAAE,GAAG,IAAIyN,EAAEP,EAAE36B,GAAG,OAAOytB,EAAE,IAAI,IAAIjd,EAAE/Q,KAAKg8B,OAAOb,EAAE,GAAG56B,GAAG,CAAC,IAAI,IAAI66B,EAAE,EAAEA,EAAE76B,EAAEwP,SAAStP,OAAO26B,IAAI,CAAC,IAAIC,EAAE96B,EAAEwP,SAASqrB,GAAG5b,EAAEjf,EAAEs7B,KAAK9qB,EAAEsqB,GAAGA,EAAEI,EAAEP,EAAE1b,KAAKjf,EAAEs7B,KAAK7N,EAAE9c,KAAKmqB,GAAGhgB,EAAE6f,EAAE1b,GAAGxf,KAAK87B,KAAKT,EAAErN,GAAGmN,EAAEjqB,KAAKmqB,IAAI96B,EAAE46B,EAAE/M,MAAM,OAAOJ,GAAGjd,EAAEhR,UAAUk8B,SAAS,SAASf,GAAG,IAAI36B,EAAEP,KAAK2oB,KAAK,IAAI8S,EAAEP,EAAE36B,GAAG,OAAM,EAAG,IAAI,IAAIytB,EAAE,GAAGztB,GAAG,CAAC,IAAI,IAAIwQ,EAAE,EAAEA,EAAExQ,EAAEwP,SAAStP,OAAOsQ,IAAI,CAAC,IAAIoqB,EAAE56B,EAAEwP,SAASgB,GAAGqqB,EAAE76B,EAAEs7B,KAAK77B,KAAKg8B,OAAOb,GAAGA,EAAE,GAAGM,EAAEP,EAAEE,GAAG,CAAC,GAAG76B,EAAEs7B,MAAMxgB,EAAE6f,EAAEE,GAAG,OAAM,EAAGpN,EAAE9c,KAAKiqB,IAAI56B,EAAEytB,EAAEI,MAAM,OAAM,GAAIrd,EAAEhR,UAAU0nB,KAAK,SAASyT,GAAG,IAAIA,IAAIA,EAAEz6B,OAAO,OAAOT,KAAK,GAAGk7B,EAAEz6B,OAAOT,KAAK27B,YAAY,CAAC,IAAI,IAAIp7B,EAAE,EAAEA,EAAE26B,EAAEz6B,OAAOF,IAAIP,KAAKk8B,OAAOhB,EAAE36B,IAAI,OAAOP,KAAK,IAAIguB,EAAEhuB,KAAKm8B,OAAOjB,EAAEnoB,QAAQ,EAAEmoB,EAAEz6B,OAAO,EAAE,GAAG,GAAGT,KAAK2oB,KAAK5Y,SAAStP,OAAO,GAAGT,KAAK2oB,KAAKrb,SAAS0gB,EAAE1gB,OAAOtN,KAAKo8B,WAAWp8B,KAAK2oB,KAAKqF,OAAO,CAAC,GAAGhuB,KAAK2oB,KAAKrb,OAAO0gB,EAAE1gB,OAAO,CAAC,IAAIyD,EAAE/Q,KAAK2oB,KAAK3oB,KAAK2oB,KAAKqF,EAAEA,EAAEjd,EAAE/Q,KAAKq8B,QAAQrO,EAAEhuB,KAAK2oB,KAAKrb,OAAO0gB,EAAE1gB,OAAO,GAAE,QAAStN,KAAK2oB,KAAKqF,EAAE,OAAOhuB,MAAM+Q,EAAEhR,UAAUm8B,OAAO,SAAShB,GAAG,OAAOA,GAAGl7B,KAAKq8B,QAAQnB,EAAEl7B,KAAK2oB,KAAKrb,OAAO,GAAGtN,MAAM+Q,EAAEhR,UAAU67B,MAAM,WAAW,OAAO57B,KAAK2oB,KAAKllB,EAAE,IAAIzD,MAAM+Q,EAAEhR,UAAUmzB,OAAO,SAASgI,EAAE36B,GAAG,IAAI26B,EAAE,OAAOl7B,KAAK,IAAI,IAAIguB,EAAEjd,EAAEqqB,EAAEC,EAAEr7B,KAAK2oB,KAAKnJ,EAAExf,KAAKg8B,OAAOd,GAAGI,EAAE,GAAGrkB,EAAE,GAAGokB,GAAGC,EAAE76B,QAAQ,CAAC,GAAG46B,IAAIA,EAAEC,EAAElN,MAAMrd,EAAEuqB,EAAEA,EAAE76B,OAAO,GAAGutB,EAAE/W,EAAEmX,MAAMgN,GAAE,GAAIC,EAAEQ,KAAK,CAAC,IAAIN,EAAEJ,EAAED,EAAEG,EAAEtrB,SAASxP,GAAG,IAAI,IAAIg7B,EAAE,OAAOF,EAAEtrB,SAAS6U,OAAO2W,EAAE,GAAGD,EAAEpqB,KAAKmqB,GAAGr7B,KAAKs8B,UAAUhB,GAAGt7B,KAAKo7B,GAAGC,EAAEQ,OAAOxgB,EAAEggB,EAAE7b,GAAGzO,GAAGid,IAAIqN,EAAEtqB,EAAEhB,SAASie,GAAGoN,GAAE,GAAIC,EAAE,MAAMC,EAAEpqB,KAAKmqB,GAAGpkB,EAAE/F,KAAK8c,GAAGA,EAAE,EAAEjd,EAAEsqB,EAAEA,EAAEA,EAAEtrB,SAAS,IAAI,OAAO/P,MAAM+Q,EAAEhR,UAAUi8B,OAAO,SAASd,GAAG,OAAOA,GAAGnqB,EAAEhR,UAAUw8B,YAAY,SAASrB,EAAE36B,GAAG,OAAO26B,EAAE7oB,KAAK9R,EAAE8R,MAAMtB,EAAEhR,UAAUy8B,YAAY,SAAStB,EAAE36B,GAAG,OAAO26B,EAAE1oB,KAAKjS,EAAEiS,MAAMzB,EAAEhR,UAAU08B,OAAO,WAAW,OAAOz8B,KAAK2oB,MAAM5X,EAAEhR,UAAU28B,SAAS,SAASxB,GAAG,OAAOl7B,KAAK2oB,KAAKuS,EAAEl7B,MAAM+Q,EAAEhR,UAAU+7B,KAAK,SAASZ,EAAE36B,GAAG,IAAI,IAAIytB,EAAE,GAAGkN,GAAGA,EAAEW,KAAKt7B,EAAE2Q,KAAKqB,MAAMhS,EAAE26B,EAAEnrB,UAAUie,EAAE9c,KAAKqB,MAAMyb,EAAEkN,EAAEnrB,UAAUmrB,EAAElN,EAAEI,MAAM,OAAO7tB,GAAGwQ,EAAEhR,UAAUo8B,OAAO,SAASjB,EAAE36B,EAAEytB,EAAEjd,GAAG,IAAIoqB,EAAEE,EAAErN,EAAEztB,EAAE,EAAEif,EAAExf,KAAK07B,YAAY,GAAGL,GAAG7b,EAAE,OAAO4b,EAAED,EAAE13B,EAAEy3B,EAAEnoB,MAAMxS,EAAEytB,EAAE,IAAIhuB,KAAKg8B,QAAQb,EAAEpqB,IAAIA,EAAEnI,KAAKqD,KAAKrD,KAAKgtB,IAAIyF,GAAGzyB,KAAKgtB,IAAIpW,IAAIA,EAAE5W,KAAKqD,KAAKovB,EAAEzyB,KAAK6E,IAAI+R,EAAEzO,EAAE,MAAMoqB,EAAE13B,EAAE,KAAKo4B,MAAK,EAAGV,EAAE7tB,OAAOyD,EAAE,IAAIuqB,EAAE1yB,KAAKqD,KAAKovB,EAAE7b,GAAGvI,EAAEqkB,EAAE1yB,KAAKqD,KAAKrD,KAAK0S,KAAKkE,IAAIpc,EAAE83B,EAAE36B,EAAEytB,EAAE/W,EAAEjX,KAAKu8B,aAAa,IAAI,IAAIhB,EAAEh7B,EAAEg7B,GAAGvN,EAAEuN,GAAGtkB,EAAE,CAAC,IAAIukB,EAAE5yB,KAAK0J,IAAIipB,EAAEtkB,EAAE,EAAE+W,GAAG5qB,EAAE83B,EAAEK,EAAEC,EAAEF,EAAEt7B,KAAKw8B,aAAa,IAAI,IAAInhB,EAAEkgB,EAAElgB,GAAGmgB,EAAEngB,GAAGigB,EAAE,CAAC,IAAIG,EAAE7yB,KAAK0J,IAAI+I,EAAEigB,EAAE,EAAEE,GAAGL,EAAEprB,SAASmB,KAAKlR,KAAKm8B,OAAOjB,EAAE7f,EAAEogB,EAAE1qB,EAAE,KAAK,OAAOqqB,EAAED,EAAEn7B,KAAKg8B,QAAQb,GAAGpqB,EAAEhR,UAAU48B,eAAe,SAASzB,EAAE36B,EAAEytB,EAAEjd,GAAG,KAAKA,EAAEG,KAAK3Q,IAAIA,EAAEs7B,MAAM9qB,EAAEtQ,OAAO,IAAIutB,GAAG,CAAC,IAAI,IAAImN,EAAE,IAAIC,EAAE,IAAIC,OAAE,EAAO7b,EAAE,EAAEA,EAAEjf,EAAEwP,SAAStP,OAAO+e,IAAI,CAAC,IAAI8b,EAAE/6B,EAAEwP,SAASyP,GAAGvI,EAAEskB,EAAED,GAAGE,GAAGngB,EAAE6f,EAAEO,EAAEH,GAAG1yB,KAAK4E,IAAIiuB,EAAEhpB,KAAK4I,EAAE5I,MAAM7J,KAAK0J,IAAImpB,EAAEppB,KAAKgJ,EAAEhJ,QAAQzJ,KAAK4E,IAAIiuB,EAAE/oB,KAAK2I,EAAE3I,MAAM9J,KAAK0J,IAAImpB,EAAEjpB,KAAK6I,EAAE7I,OAAOyE,GAAGukB,EAAEJ,GAAGA,EAAEI,EAAEL,EAAElkB,EAAEkkB,EAAElkB,EAAEkkB,EAAEE,EAAEC,GAAGE,IAAIJ,GAAGnkB,EAAEkkB,IAAIA,EAAElkB,EAAEokB,EAAEC,GAAG/6B,EAAE86B,GAAG96B,EAAEwP,SAAS,GAAG,IAAIsL,EAAEogB,EAAE,OAAOl7B,GAAGwQ,EAAEhR,UAAUs8B,QAAQ,SAASnB,EAAE36B,EAAEytB,GAAG,IAAIjd,EAAEid,EAAEkN,EAAEl7B,KAAKg8B,OAAOd,GAAGC,EAAE,GAAGC,EAAEp7B,KAAK28B,eAAe5rB,EAAE/Q,KAAK2oB,KAAKpoB,EAAE46B,GAAG,IAAIC,EAAErrB,SAASmB,KAAKgqB,GAAG1b,EAAE4b,EAAErqB,GAAGxQ,GAAG,GAAG46B,EAAE56B,GAAGwP,SAAStP,OAAOT,KAAK07B,aAAa17B,KAAK48B,OAAOzB,EAAE56B,GAAGA,IAAIP,KAAK68B,oBAAoB9rB,EAAEoqB,EAAE56B,IAAIwQ,EAAEhR,UAAU68B,OAAO,SAAS1B,EAAE36B,GAAG,IAAIytB,EAAEkN,EAAE36B,GAAGwQ,EAAEid,EAAEje,SAAStP,OAAO06B,EAAEn7B,KAAK27B,YAAY37B,KAAK88B,iBAAiB9O,EAAEmN,EAAEpqB,GAAG,IAAIsqB,EAAEr7B,KAAK+8B,kBAAkB/O,EAAEmN,EAAEpqB,GAAGyO,EAAE/b,EAAEuqB,EAAEje,SAAS6U,OAAOyW,EAAErN,EAAEje,SAAStP,OAAO46B,IAAI7b,EAAElS,OAAO0gB,EAAE1gB,OAAOkS,EAAEqc,KAAK7N,EAAE6N,KAAKT,EAAEpN,EAAEhuB,KAAKg8B,QAAQZ,EAAE5b,EAAExf,KAAKg8B,QAAQz7B,EAAE26B,EAAE36B,EAAE,GAAGwP,SAASmB,KAAKsO,GAAGxf,KAAKo8B,WAAWpO,EAAExO,IAAIzO,EAAEhR,UAAUq8B,WAAW,SAASlB,EAAE36B,GAAGP,KAAK2oB,KAAKllB,EAAE,CAACy3B,EAAE36B,IAAIP,KAAK2oB,KAAKrb,OAAO4tB,EAAE5tB,OAAO,EAAEtN,KAAK2oB,KAAKkT,MAAK,EAAGT,EAAEp7B,KAAK2oB,KAAK3oB,KAAKg8B,SAASjrB,EAAEhR,UAAUg9B,kBAAkB,SAAS7B,EAAE36B,EAAEytB,GAAG,IAAI,IAAIjd,EAAEoqB,EAAEC,EAAE5b,EAAE8b,EAAErkB,EAAEukB,EAAEngB,EAAE,IAAIogB,EAAE,IAAIh4B,EAAElD,EAAEkD,GAAGuqB,EAAEztB,EAAEkD,IAAI,CAAC,IAAIL,EAAEi4B,EAAEH,EAAE,EAAEz3B,EAAEzD,KAAKg8B,QAAQtxB,EAAE2wB,EAAEH,EAAEz3B,EAAEuqB,EAAEhuB,KAAKg8B,QAAQgB,GAAG7B,EAAE/3B,EAAEg4B,EAAE1wB,EAAE8U,OAAE,EAAO8b,OAAE,EAAOrkB,OAAE,EAAOukB,OAAE,EAAOhc,EAAE5W,KAAK4E,IAAI2tB,EAAE9oB,KAAK+oB,EAAE/oB,MAAMipB,EAAE1yB,KAAK4E,IAAI2tB,EAAE3oB,KAAK4oB,EAAE5oB,MAAMyE,EAAErO,KAAK0J,IAAI6oB,EAAE1oB,KAAK2oB,EAAE3oB,MAAM+oB,EAAE5yB,KAAK0J,IAAI6oB,EAAEzoB,KAAK0oB,EAAE1oB,MAAM9J,KAAK4E,IAAI,EAAEyJ,EAAEuI,GAAG5W,KAAK4E,IAAI,EAAEguB,EAAEF,IAAI2B,EAAE1B,EAAEn4B,GAAGm4B,EAAE7wB,GAAGsyB,EAAE3hB,GAAGA,EAAE2hB,EAAEjsB,EAAEtN,EAAEg4B,EAAEwB,EAAExB,EAAEwB,EAAExB,GAAGuB,IAAI3hB,GAAG4hB,EAAExB,IAAIA,EAAEwB,EAAElsB,EAAEtN,GAAG,OAAOsN,GAAGid,EAAEztB,GAAGwQ,EAAEhR,UAAU+8B,iBAAiB,SAAS5B,EAAE36B,EAAEytB,GAAG,IAAIjd,EAAEmqB,EAAEW,KAAK77B,KAAKu8B,YAAYjB,EAAEH,EAAED,EAAEW,KAAK77B,KAAKw8B,YAAYvlB,EAAEjX,KAAKk9B,eAAehC,EAAE36B,EAAEytB,EAAEjd,GAAG/Q,KAAKk9B,eAAehC,EAAE36B,EAAEytB,EAAEmN,IAAID,EAAEnrB,SAASwB,KAAKR,IAAIA,EAAEhR,UAAUm9B,eAAe,SAAShC,EAAE36B,EAAEytB,EAAEjd,GAAGmqB,EAAEnrB,SAASwB,KAAKR,GAAG,IAAI,IAAIoqB,EAAEn7B,KAAKg8B,OAAOZ,EAAEC,EAAEH,EAAE,EAAE36B,EAAE46B,GAAGG,EAAED,EAAEH,EAAElN,EAAEztB,EAAEytB,EAAEmN,GAAGlkB,EAAEukB,EAAEJ,GAAGI,EAAEF,GAAGC,EAAEh7B,EAAEg7B,EAAEvN,EAAEztB,EAAEg7B,IAAI,CAAC,IAAIlgB,EAAE6f,EAAEnrB,SAASwrB,GAAG/b,EAAE4b,EAAEF,EAAEW,KAAKV,EAAE9f,GAAGA,GAAGpE,GAAGukB,EAAEJ,GAAG,IAAI,IAAIK,EAAEzN,EAAEztB,EAAE,EAAEk7B,GAAGl7B,EAAEk7B,IAAI,CAAC,IAAIh4B,EAAEy3B,EAAEnrB,SAAS0rB,GAAGjc,EAAE8b,EAAEJ,EAAEW,KAAKV,EAAE13B,GAAGA,GAAGwT,GAAGukB,EAAEF,GAAG,OAAOrkB,GAAGlG,EAAEhR,UAAU88B,oBAAoB,SAAS3B,EAAE36B,EAAEytB,GAAG,IAAI,IAAIjd,EAAEid,EAAEjd,GAAG,EAAEA,IAAIyO,EAAEjf,EAAEwQ,GAAGmqB,IAAInqB,EAAEhR,UAAUu8B,UAAU,SAASpB,GAAG,IAAI,IAAI36B,EAAE26B,EAAEz6B,OAAO,EAAEutB,OAAE,EAAOztB,GAAG,EAAEA,IAAI,IAAI26B,EAAE36B,GAAGwP,SAAStP,OAAOF,EAAE,GAAGytB,EAAEkN,EAAE36B,EAAE,GAAGwP,UAAU6U,OAAOoJ,EAAErK,QAAQuX,EAAE36B,IAAI,GAAGP,KAAK47B,QAAQR,EAAEF,EAAE36B,GAAGP,KAAKg8B,SAASjrB,M,oCCA3zM,wJAYO,SAASosB,EAAyB/sB,EAAiB3J,EAAQwK,EAAKX,EAAQlE,GAC3E,IAAIgxB,EAAU,eAAchxB,GAK5B,SAAUgH,GACN,OAAQiqB,EAAqBjtB,EAAiB3J,EAAQwK,EAAKX,EAAQ8C,EAAW,GAAIA,EAAW,OAEjG,OAAQgqB,EAWL,SAASC,EAAqBjtB,EAAiB3J,EAAQwK,EAAKX,EAAQ5F,EAAGE,GAW1E,IAHA,IAAI0yB,EAAK,EACL5sB,EAAKN,EAAgBa,EAAMX,GAC3BM,EAAKR,EAAgBa,EAAMX,EAAS,GACjC7J,EAASwK,EAAKxK,GAAU6J,EAAQ,CACnC,IAAIK,EAAKP,EAAgB3J,GACrBoK,EAAKT,EAAgB3J,EAAS,GAC9BmK,GAAMhG,EACFiG,EAAKjG,IAAM+F,EAAKD,IAAO9F,EAAIgG,IAAOlG,EAAIgG,IAAOG,EAAKD,GAAM,GACxD0sB,IAGCzsB,GAAMjG,IAAM+F,EAAKD,IAAO9F,EAAIgG,IAAOlG,EAAIgG,IAAOG,EAAKD,GAAM,GAC9D0sB,IAEJ5sB,EAAKC,EACLC,EAAKC,EAET,OAAc,IAAPysB,EAWJ,SAASC,EAAsBntB,EAAiB3J,EAAQ4J,EAAMC,EAAQ5F,EAAGE,GAC5E,GAAoB,IAAhByF,EAAK5P,OACL,OAAO,EAEX,IAAK48B,EAAqBjtB,EAAiB3J,EAAQ4J,EAAK,GAAIC,EAAQ5F,EAAGE,GACnE,OAAO,EAEX,IAAK,IAAIrK,EAAI,EAAGC,EAAK6P,EAAK5P,OAAQF,EAAIC,IAAMD,EACxC,GAAI88B,EAAqBjtB,EAAiBC,EAAK9P,EAAI,GAAI8P,EAAK9P,GAAI+P,EAAQ5F,EAAGE,GACvE,OAAO,EAGf,OAAO,EAWJ,SAAS4yB,EAAuBptB,EAAiB3J,EAAQkL,EAAOrB,EAAQ5F,EAAGE,GAC9E,GAAqB,IAAjB+G,EAAMlR,OACN,OAAO,EAEX,IAAK,IAAIF,EAAI,EAAGC,EAAKmR,EAAMlR,OAAQF,EAAIC,IAAMD,EAAG,CAC5C,IAAI8P,EAAOsB,EAAMpR,GACjB,GAAIg9B,EAAsBntB,EAAiB3J,EAAQ4J,EAAMC,EAAQ5F,EAAGE,GAChE,OAAO,EAEXnE,EAAS4J,EAAKA,EAAK5P,OAAS,GAEhC,OAAO,I,oCC5FI,QACXg9B,MAAO,QACPjgB,KAAM,S,6DCIH,SAAS7K,EAAehH,EAAGjB,EAAGE,EAAG8yB,GACpC,YAAsBj7B,IAAlBi7B,GACAA,EAAc,GAAK/xB,EACnB+xB,EAAc,GAAKhzB,EACnBgzB,EAAc,GAAK9yB,EACZ8yB,GAGA,CAAC/xB,EAAGjB,EAAGE,GASf,SAAS+yB,EAAUhyB,EAAGjB,EAAGE,GAC5B,OAAOe,EAAI,IAAMjB,EAAI,IAAME,EAOxB,SAASgzB,EAAOlyB,GACnB,OAAOiyB,EAAUjyB,EAAU,GAAIA,EAAU,GAAIA,EAAU,IAOpD,SAASmyB,EAAsBC,GAClC,IAAI3oB,EAAK2oB,EACJC,UAAUD,EAAQE,YAAY,KAAO,EAAGF,EAAQr9B,QAChDw9B,MAAM,KACN98B,IAAI+8B,QAASvyB,EAAIwJ,EAAG,GAAIzK,EAAIyK,EAAG,GAAIvK,EAAIuK,EAAG,GAC/C,OAAOwoB,EAAUhyB,EAAGjB,EAAGE,GAOpB,SAASuzB,EAAQllB,GACpB,OAAOA,EAAIglB,MAAM,KAAK98B,IAAI+8B,QAMvB,SAASE,EAAK1yB,GACjB,OAAQA,EAAU,IAAMA,EAAU,IAAMA,EAAU,GAO/C,SAAS2yB,EAAiB3yB,EAAWL,GACxC,IAAIM,EAAID,EAAU,GACdhB,EAAIgB,EAAU,GACdd,EAAIc,EAAU,GAClB,GAAIL,EAASizB,aAAe3yB,GAAKA,EAAIN,EAASkzB,aAC1C,OAAO,EAEX,IAAI/X,EAAYnb,EAASmzB,iBAAiB7yB,GAC1C,OAAK6a,GAIMA,EAAUnT,WAAW3I,EAAGE,GAxFvC,+O,uBCAAuN,EAAOC,QAAU,IAA0B,8B,oCCA3C,wIAAIlV,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAgCxC26B,EAAkB,CAMlBC,OAAQ,UAqERC,EAA6B,SAAUn6B,GASvC,SAASm6B,EAAY58B,EAAM68B,EAAUC,EAAYl+B,GAC7C,IAAI+D,EAAQF,EAAOb,KAAK3D,KAAM+B,IAAS/B,KAmBvC,OAbA0E,EAAMk6B,SAAWA,EAMjBl6B,EAAMm6B,WAAaA,EAMnBn6B,EAAM/D,gBAAkBA,EACjB+D,EAEX,OA9BAxB,EAAUy7B,EAAan6B,GA8BhBm6B,EA/BqB,CAgC9B,QAMEG,EAAwB,GAuBxBC,EAAwB,SAAUv6B,GAKlC,SAASu6B,EAAOjyB,GACZ,IAAIpI,EAAQF,EAAOb,KAAK3D,OAASA,KAIjC0E,EAAMC,GAIND,EAAME,KAINF,EAAMG,GACN,IA4DIm6B,EA5DAv6B,EAAUqI,GAA4B,GA6D1C,GAzDApI,EAAMu6B,iBAAmBv6B,EAAMw6B,YAAYzZ,KAAK/gB,GAIhDA,EAAMy6B,oBAAsBz6B,EAAM06B,eAAe3Z,KAAK/gB,GAKtDA,EAAM26B,WAAa56B,EAAQ66B,UAAY76B,EAAQ66B,UAAY,OAK3D56B,EAAM66B,cAAgB96B,EAAQ+6B,aAAe/6B,EAAQ+6B,aAAe,OAKpE96B,EAAM+6B,iBAAmBh7B,EAAQi7B,gBAC3Bj7B,EAAQi7B,gBACR,OAKNh7B,EAAMi7B,iBAAmBl7B,EAAQm7B,gBAC3Bn7B,EAAQm7B,gBACR,OAKNl7B,EAAMm7B,SAASp7B,EAAQq7B,OAAQr7B,EAAQq7B,MAKvCp7B,EAAMq7B,QAAUt7B,EAAQoZ,OAASpZ,EAAQoZ,OAAS,OAKlDnZ,EAAMs7B,cAAgBv7B,EAAQkiB,aAAeliB,EAAQkiB,aAAe,EAKpEjiB,EAAMu7B,YACgBx9B,IAAlBgC,EAAQY,MAAsBZ,EAAQY,MAAQ66B,IAKlDx7B,EAAMy7B,UAAY17B,EAAQ27B,UAAY,IAAI,OAGtC37B,EAAQ47B,OACR,GAA8B,oBAAnB57B,EAAQ47B,OACfrB,EAAcv6B,EAAQ47B,WAErB,CACD,IAAIC,EAAW77B,EAAQ47B,OACvBrB,EAAc,SAAU3Z,GACpB,OAAO,eAASib,EAAUjb,SAKlC2Z,EAAc,OAclB,OARAt6B,EAAM67B,aAAevB,EAOrBt6B,EAAM87B,yBAA2B,GAC1B97B,EA8OX,OAvVAxB,EAAU67B,EAAQv6B,GAgHlBu6B,EAAOh/B,UAAU0gC,4BAA8B,SAAUzjB,EAASqI,GAC9DrlB,KAAKwgC,yBAAyB,eAAOxjB,IAAYqI,GAOrD0Z,EAAOh/B,UAAU6lB,YAAc,WAC3B,OAAO5lB,KAAKmgC,WAOhBpB,EAAOh/B,UAAU2gC,gBAAkB,WAC/B,OAAO1gC,KAAKggC,eAShBjB,EAAOh/B,UAAU+mB,SAAW,SAAU9J,GAClC,OAA4Dhd,KAAKwgC,yBAAyB,eAAOxjB,KAQrG+hB,EAAOh/B,UAAU4gC,gBAAkB,SAAUha,GACzC3mB,KAAKggC,cAAgBrZ,GAQzBoY,EAAOh/B,UAAU+H,OAAS,SAAU3G,GAChC,IAAIy/B,EAAa5gC,KAAKgH,SAClB45B,GAAc5gC,KAAKigC,QACnBjgC,KAAKmgC,UAAU5H,QAAQv4B,KAAK6gC,sBAAsBpb,KAAKzlB,OAE3DwE,EAAOzE,UAAU+H,OAAOnE,KAAK3D,KAAMmB,GAC/BA,GACAnB,KAAKmgC,UAAU5c,iBAAiB,OAAoBiI,IAAKxrB,KAAKi/B,kBAC9Dj/B,KAAKmgC,UAAU5c,iBAAiB,OAAoBkI,OAAQzrB,KAAKm/B,qBAC7Dn/B,KAAKigC,QACLjgC,KAAKmgC,UAAU5H,QAAQv4B,KAAK8gC,oBAAoBrb,KAAKzlB,SAIzDA,KAAKmgC,UAAU9b,oBAAoB,OAAoBmH,IAAKxrB,KAAKi/B,kBACjEj/B,KAAKmgC,UAAU9b,oBAAoB,OAAoBoH,OAAQzrB,KAAKm/B,uBAO5EJ,EAAOh/B,UAAUm/B,YAAc,SAAUpb,GACrC,IAAI9G,EAAU8G,EAAI7e,QAIlB,GAHIjF,KAAKigC,QACLjgC,KAAK8gC,oBAAoB9jB,IAExBhd,KAAK8mB,SAAS9J,GAAU,CACzB,IAAIqI,EAAoCrlB,KAAKgH,SACxC+5B,eACAC,MAAK,SAAU3b,GAChB,GAAIA,aAAiB,QACjBA,EAAMoH,aACNpH,EAAMoH,YAAYwU,WAAWjkB,GAC7B,OAAOqI,KAGXA,GACArlB,KAAKygC,4BAA4BzjB,EAASqI,KAQtD0Z,EAAOh/B,UAAUq/B,eAAiB,SAAUtb,GACxC,IAAI9G,EAAU8G,EAAI7e,QACdjF,KAAKigC,QACLjgC,KAAK6gC,sBAAsB7jB,IAMnC+hB,EAAOh/B,UAAUmhC,SAAW,WACxB,OAAOlhC,KAAKigC,QAMhBlB,EAAOh/B,UAAU+gC,oBAAsB,SAAU9jB,GAC7C,IAAI/D,EAAM,eAAO+D,GACX/D,KAAO6lB,IACTA,EAAsB7lB,GAAO+D,EAAQkkB,YAEzClkB,EAAQmkB,SAASnhC,KAAKigC,SAM1BlB,EAAOh/B,UAAU8gC,sBAAwB,SAAU7jB,GAE/C,IADA,IAAIokB,EAAephC,KAAKgH,SAASq6B,kBAAkBC,WAC1C/gC,EAAI6gC,EAAa3gC,OAAS,EAAGF,GAAK,IAAKA,EAAG,CAC/C,IAAIghC,EAAcH,EAAa7gC,GAC/B,GAAIghC,IAAgBvhC,MAChBuhC,aAAuBxC,GACvBwC,EAAYL,aACmD,IAA/DK,EAAY3b,cAAc0b,WAAWtD,YAAYhhB,GAEjD,YADAA,EAAQmkB,SAASI,EAAYL,YAIrC,IAAIjoB,EAAM,eAAO+D,GACjBA,EAAQmkB,SAASrC,EAAsB7lB,WAChC6lB,EAAsB7lB,IAMjC8lB,EAAOh/B,UAAUyhC,+BAAiC,SAAUxkB,UACjDhd,KAAKwgC,yBAAyB,eAAOxjB,KAShD+hB,EAAOh/B,UAAUmkB,YAAc,SAAUvjB,GACrC,IAAKX,KAAKq/B,WAAW1+B,GACjB,OAAO,EAEX,IAAI2xB,EAAMtyB,KAAKu/B,cAAc5+B,GACzBuyB,EAASlzB,KAAKy/B,iBAAiB9+B,GAC/BmxB,EAAS9xB,KAAK2/B,iBAAiBh/B,GAC/BkH,GAAOyqB,IAAQY,IAAWpB,EAC1B3wB,EAAMR,EAAgBQ,IACtBi/B,EAAWpgC,KAAK4lB,cAChBiZ,EAAa,GACbD,EAAW,GACf,GAAI/2B,EAAK,CAIL,eAAM7H,KAAKwgC,0BACXr/B,EAAIsgC,sBAAsB9gC,EAAgB2J,MAM1C,SAAU0S,EAASqI,GACf,GAAIrlB,KAAK+/B,QAAQ/iB,EAASqI,GAGtB,OAFArlB,KAAKygC,4BAA4BzjB,EAASqI,GAC1CuZ,EAAS1tB,KAAK8L,IACNhd,KAAK6/B,QAEnBpa,KAAKzlB,MAAO,CACVg/B,YAAah/B,KAAKugC,aAClB5Z,aAAc3mB,KAAKggC,gBAEvB,IAAK,IAAIz/B,EAAI6/B,EAASsB,YAAc,EAAGnhC,GAAK,IAAKA,EAAG,CAChD,IAAIyc,EAAUojB,EAASuB,KAAKphC,GACxBokB,EAAQia,EAASjb,QAAQ3G,GACzB2H,GAAS,EAETia,EAASha,OAAOD,EAAO,IAGvByb,EAASlN,OAAOlW,GAChB6hB,EAAW3tB,KAAK8L,IAGA,IAApB4hB,EAASn+B,QACT2/B,EAASpsB,OAAO4qB,OAGnB,CAEDz9B,EAAIsgC,sBAAsB9gC,EAAgB2J,MAM1C,SAAU0S,EAASqI,GACf,GAAIrlB,KAAK+/B,QAAQ/iB,EAASqI,GAUtB,OATKiN,IAAOR,GAAY,eAASsO,EAASkB,WAAYtkB,IAI5CkW,GAAUpB,IAChB,eAASsO,EAASkB,WAAYtkB,KAC9B6hB,EAAW3tB,KAAK8L,GAChBhd,KAAKwhC,+BAA+BxkB,KANpChd,KAAKygC,4BAA4BzjB,EAASqI,GAC1CuZ,EAAS1tB,KAAK8L,KAOVhd,KAAK6/B,QAEnBpa,KAAKzlB,MAAO,CACVg/B,YAAah/B,KAAKugC,aAClB5Z,aAAc3mB,KAAKggC,gBAEvB,IAAK,IAAI1O,EAAIuN,EAAWp+B,OAAS,EAAG6wB,GAAK,IAAKA,EAC1C8O,EAASlN,OAAO2L,EAAWvN,IAE/B8O,EAASpsB,OAAO4qB,GAKpB,OAHIA,EAASn+B,OAAS,GAAKo+B,EAAWp+B,OAAS,IAC3CT,KAAK4jB,cAAc,IAAI+a,EAAYF,EAAgBC,OAAQE,EAAUC,EAAYl+B,KAE9E,GAEJo+B,EAxVgB,CAyVzB,QAIF,SAASmB,IACL,IAAI0B,EAAS,iBAGb,OAFA,eAAOA,EAAO,WAAYA,EAAO,eACjC,eAAOA,EAAO,sBAAuBA,EAAO,eACrC,SAAU5kB,GACb,OAAKA,EAAQvD,cAGNmoB,EAAO5kB,EAAQvD,cAAcQ,WAFzB,MAKJ,U,8GC/gBM4nB,E,gBACpB,cAAmE,IAAtDC,EAAsD,EAAtDA,SAAUC,EAA4C,EAA5CA,KAAM1hC,EAAsC,EAAtCA,MAAO4Y,EAA+B,EAA/BA,IAAK+oB,EAA0B,EAA1BA,OAAQvR,EAAkB,EAAlBA,MAAOwR,EAAW,EAAXA,GAAIC,EAAO,EAAPA,KAAO,uBAClEliC,KAAK8hC,SAAWA,GAAsBK,OAAUC,kBAAkB,IAAIC,MACtEriC,KAAK+hC,KAAOA,GAAQ,GACpB/hC,KAAKK,MAAQA,GAAS,GACtBL,KAAKgiC,OAASA,GAAU,GACxBhiC,KAAKywB,MAAQA,GAAS,GACtBzwB,KAAKiiC,GAAKA,GAAM,GAChBjiC,KAAKkiC,KAAOA,GAAQ,EAChBjpB,IACHjZ,KAAKiZ,IAAMA,O,oCCXd,W,wCCSIqpB,E,oFCUAC,EAAkB,GASlBC,EAAqB,IAMrB,EAA+B,WAS/B,SAASC,EAAcC,EAAYC,EAAYC,EAAcC,EAAiBC,EAAgBC,GAK1F/iC,KAAKgjC,YAAcN,EAKnB1iC,KAAKijC,YAAcN,EAEnB,IAAIO,EAAoB,GACpBC,EAAe,eAAanjC,KAAKijC,YAAajjC,KAAKgjC,aAMvDhjC,KAAKojC,cAAgB,SAAU3H,GAC3B,IAAIxiB,EAAMwiB,EAAE,GAAK,IAAMA,EAAE,GAIzB,OAHKyH,EAAkBjqB,KACnBiqB,EAAkBjqB,GAAOkqB,EAAa1H,IAEnCyH,EAAkBjqB,IAM7BjZ,KAAKqjC,iBAAmBR,EAKxB7iC,KAAKsjC,uBAAyBR,EAAiBA,EAK/C9iC,KAAKujC,WAAa,GAMlBvjC,KAAKwjC,iBAAkB,EAKvBxjC,KAAKyjC,kBACDzjC,KAAKgjC,YAAY9rB,cACX2rB,KACA7iC,KAAKgjC,YAAYh2B,aACnB,eAAS61B,IAAoB,eAAS7iC,KAAKgjC,YAAYh2B,aAK/DhN,KAAK0jC,kBAAoB1jC,KAAKgjC,YAAYh2B,YACpC,eAAShN,KAAKgjC,YAAYh2B,aAC1B,KAKNhN,KAAK2jC,kBAAoB3jC,KAAKijC,YAAYj2B,YACpC,eAAShN,KAAKijC,YAAYj2B,aAC1B,KACN,IAAI42B,EAAqB,eAAWhB,GAChCiB,EAAsB,eAAYjB,GAClCkB,EAAyB,eAAelB,GACxCmB,EAAwB,eAAcnB,GACtCoB,EAAgBhkC,KAAKojC,cAAcQ,GACnCK,EAAiBjkC,KAAKojC,cAAcS,GACpCK,EAAoBlkC,KAAKojC,cAAcU,GACvCK,EAAmBnkC,KAAKojC,cAAcW,GAWtCK,EAAiB7B,GAChBQ,EACKn6B,KAAK4E,IAAI,EAAG5E,KAAKqD,KAAK,eAAK,eAAQ22B,IAChCG,EACGA,EACA,IACA,QACN,GAEV,GADA/iC,KAAKqkC,SAAST,EAAoBC,EAAqBC,EAAwBC,EAAuBC,EAAeC,EAAgBC,EAAmBC,EAAkBC,GACtKpkC,KAAKwjC,gBAAiB,CACtB,IAAIc,EAAchzB,IAClBtR,KAAKujC,WAAWhL,SAAQ,SAAUgM,EAAUhkC,EAAGikC,GAC3CF,EAAc17B,KAAK0J,IAAIgyB,EAAaC,EAAShe,OAAO,GAAG,GAAIge,EAAShe,OAAO,GAAG,GAAIge,EAAShe,OAAO,GAAG,OAIzGvmB,KAAKujC,WAAWhL,QAAQ,SAAUgM,GAC9B,GAAI37B,KAAK4E,IAAI+2B,EAAShe,OAAO,GAAG,GAAIge,EAAShe,OAAO,GAAG,GAAIge,EAAShe,OAAO,GAAG,IAC1E+d,EACAtkC,KAAK0jC,kBAAoB,EAAG,CAC5B,IAAIe,EAAc,CACd,CAACF,EAAShe,OAAO,GAAG,GAAIge,EAAShe,OAAO,GAAG,IAC3C,CAACge,EAAShe,OAAO,GAAG,GAAIge,EAAShe,OAAO,GAAG,IAC3C,CAACge,EAAShe,OAAO,GAAG,GAAIge,EAAShe,OAAO,GAAG,KAE3Cke,EAAY,GAAG,GAAKH,EAActkC,KAAK0jC,kBAAoB,IAC3De,EAAY,GAAG,IAAMzkC,KAAK0jC,mBAE1Be,EAAY,GAAG,GAAKH,EAActkC,KAAK0jC,kBAAoB,IAC3De,EAAY,GAAG,IAAMzkC,KAAK0jC,mBAE1Be,EAAY,GAAG,GAAKH,EAActkC,KAAK0jC,kBAAoB,IAC3De,EAAY,GAAG,IAAMzkC,KAAK0jC,mBAK9B,IAAIrxB,EAAOzJ,KAAK0J,IAAImyB,EAAY,GAAG,GAAIA,EAAY,GAAG,GAAIA,EAAY,GAAG,IACrEhyB,EAAO7J,KAAK4E,IAAIi3B,EAAY,GAAG,GAAIA,EAAY,GAAG,GAAIA,EAAY,GAAG,IACrEhyB,EAAOJ,EAAOrS,KAAK0jC,kBAAoB,IACvCa,EAAShe,OAASke,KAG5Bhf,KAAKzlB,OAEXkjC,EAAoB,GA0LxB,OA9KAT,EAAc1iC,UAAU2kC,aAAe,SAAUtJ,EAAG/3B,EAAGo4B,EAAGkJ,EAAMC,EAAMC,GAClE7kC,KAAKujC,WAAWryB,KAAK,CACjBqV,OAAQ,CAACoe,EAAMC,EAAMC,GACrBxiC,OAAQ,CAAC+4B,EAAG/3B,EAAGo4B,MAmBvBgH,EAAc1iC,UAAUskC,SAAW,SAAUjJ,EAAG/3B,EAAGo4B,EAAGr4B,EAAGuhC,EAAMC,EAAMC,EAAMC,EAAMV,GAC7E,IAAIW,EAAmB,eAAe,CAACJ,EAAMC,EAAMC,EAAMC,IACrDE,EAAkBhlC,KAAK0jC,kBACrB,eAASqB,GAAoB/kC,KAAK0jC,kBAClC,KACFuB,EAA0CjlC,KAAsB,kBAGhEklC,EAASllC,KAAKgjC,YAAY9rB,YAC1B8tB,EAAkB,IAClBA,EAAkB,EAClBG,GAAmB,EACvB,GAAIf,EAAiB,EAAG,CACpB,GAAIpkC,KAAKijC,YAAYmC,YAAcplC,KAAK2jC,kBAAmB,CACvD,IAAI0B,EAAmB,eAAe,CAACjK,EAAG/3B,EAAGo4B,EAAGr4B,IAC5CkiC,EAAkB,eAASD,GAAoBrlC,KAAK2jC,kBACxDwB,EACIG,EAAkB9C,GAAsB2C,GAE3CD,GAAUllC,KAAKgjC,YAAYoC,YAAcJ,IAC1CG,EACIH,EAAkBxC,GAAsB2C,GAGpD,MAAKA,GAAoBnlC,KAAKqjC,kBACtBhsB,SAAS0tB,EAAiB,KAC1B1tB,SAAS0tB,EAAiB,KAC1B1tB,SAAS0tB,EAAiB,KAC1B1tB,SAAS0tB,EAAiB,MACrB,eAAWA,EAAkB/kC,KAAKqjC,kBAL/C,CAWA,IAAIkC,EAAc,EAClB,IAAKJ,KACI9tB,SAASstB,EAAK,MACdttB,SAASstB,EAAK,MACdttB,SAASutB,EAAK,MACdvtB,SAASutB,EAAK,MACdvtB,SAASwtB,EAAK,MACdxtB,SAASwtB,EAAK,MACdxtB,SAASytB,EAAK,MACdztB,SAASytB,EAAK,KACf,GAAIV,EAAiB,EACjBe,GAAmB,OAUnB,GALAI,GACMluB,SAASstB,EAAK,KAAQttB,SAASstB,EAAK,IAAU,EAAJ,IACtCttB,SAASutB,EAAK,KAAQvtB,SAASutB,EAAK,IAAU,EAAJ,IAC1CvtB,SAASwtB,EAAK,KAAQxtB,SAASwtB,EAAK,IAAU,EAAJ,IAC1CxtB,SAASytB,EAAK,KAAQztB,SAASytB,EAAK,IAAU,EAAJ,GACjC,GAAfS,GACe,GAAfA,GACe,GAAfA,GACe,GAAfA,EACA,OAKhB,GAAInB,EAAiB,EAAG,CACpB,IAAKe,EAAkB,CACnB,IAAIr8B,EAAS,EAAEsyB,EAAE,GAAKK,EAAE,IAAM,GAAIL,EAAE,GAAKK,EAAE,IAAM,GAC7C+J,EAAYxlC,KAAKojC,cAAct6B,GAC/BmK,OAAK,EACT,GAAIiyB,EAAQ,CACR,IAAIO,GAAmB,eAAOd,EAAK,GAAIM,GACnC,eAAOJ,EAAK,GAAII,IAChB,EACJhyB,EAAKwyB,EAAkB,eAAOD,EAAU,GAAIP,QAG5ChyB,GAAM0xB,EAAK,GAAKE,EAAK,IAAM,EAAIW,EAAU,GAE7C,IAAItyB,GAAMyxB,EAAK,GAAKE,EAAK,IAAM,EAAIW,EAAU,GACzCE,EAAwBzyB,EAAKA,EAAKC,EAAKA,EAC3CiyB,EAAmBO,EAAwB1lC,KAAKsjC,uBAEpD,GAAI6B,EAAkB,CAClB,GAAIv8B,KAAKC,IAAIuyB,EAAE,GAAKK,EAAE,KAAO7yB,KAAKC,IAAIuyB,EAAE,GAAKK,EAAE,IAAK,CAEhD,IAAIkK,EAAK,EAAEtiC,EAAE,GAAKo4B,EAAE,IAAM,GAAIp4B,EAAE,GAAKo4B,EAAE,IAAM,GACzCmK,EAAQ5lC,KAAKojC,cAAcuC,GAC3BE,EAAK,EAAEziC,EAAE,GAAKg4B,EAAE,IAAM,GAAIh4B,EAAE,GAAKg4B,EAAE,IAAM,GACzC0K,EAAQ9lC,KAAKojC,cAAcyC,GAC/B7lC,KAAKqkC,SAASjJ,EAAG/3B,EAAGsiC,EAAIE,EAAIlB,EAAMC,EAAMgB,EAAOE,EAAO1B,EAAiB,GACvEpkC,KAAKqkC,SAASwB,EAAIF,EAAIlK,EAAGr4B,EAAG0iC,EAAOF,EAAOf,EAAMC,EAAMV,EAAiB,OAEtE,CAED,IAAI2B,EAAK,EAAE3K,EAAE,GAAK/3B,EAAE,IAAM,GAAI+3B,EAAE,GAAK/3B,EAAE,IAAM,GACzC2iC,EAAQhmC,KAAKojC,cAAc2C,GAC3BE,EAAK,EAAExK,EAAE,GAAKr4B,EAAE,IAAM,GAAIq4B,EAAE,GAAKr4B,EAAE,IAAM,GACzC8iC,EAAQlmC,KAAKojC,cAAc6C,GAC/BjmC,KAAKqkC,SAASjJ,EAAG2K,EAAIE,EAAI7iC,EAAGuhC,EAAMqB,EAAOE,EAAOpB,EAAMV,EAAiB,GACvEpkC,KAAKqkC,SAAS0B,EAAI1iC,EAAGo4B,EAAGwK,EAAID,EAAOpB,EAAMC,EAAMqB,EAAO9B,EAAiB,GAE3E,QAGR,GAAIc,EAAQ,CACR,IAAKllC,KAAKyjC,kBACN,OAEJzjC,KAAKwjC,iBAAkB,EAMA,IAAR,GAAd+B,IACDvlC,KAAK0kC,aAAatJ,EAAGK,EAAGr4B,EAAGuhC,EAAME,EAAMC,GAEhB,IAAR,GAAdS,IACDvlC,KAAK0kC,aAAatJ,EAAGK,EAAGp4B,EAAGshC,EAAME,EAAMD,GAEvCW,IAE2B,IAAR,GAAdA,IACDvlC,KAAK0kC,aAAarhC,EAAGD,EAAGg4B,EAAGwJ,EAAME,EAAMH,GAEhB,IAAR,EAAdY,IACDvlC,KAAK0kC,aAAarhC,EAAGD,EAAGq4B,EAAGmJ,EAAME,EAAMD,MASnDpC,EAAc1iC,UAAUomC,sBAAwB,WAC5C,IAAI/5B,EAAS,iBAOb,OANApM,KAAKujC,WAAWhL,SAAQ,SAAUgM,EAAUhkC,EAAGikC,GAC3C,IAAI4B,EAAM7B,EAAShe,OACnB,eAAiBna,EAAQg6B,EAAI,IAC7B,eAAiBh6B,EAAQg6B,EAAI,IAC7B,eAAiBh6B,EAAQg6B,EAAI,OAE1Bh6B,GAKXq2B,EAAc1iC,UAAUsmC,aAAe,WACnC,OAAOrmC,KAAKujC,YAETd,EAxUuB,GA0UnB,I,oCD/VJ1a,EAAa,GAWxB,SAASue,EAAiBC,EAAKC,EAAIC,EAAIC,EAAIC,GACvCJ,EAAItc,YACJsc,EAAIrc,OAAO,EAAG,GACdqc,EAAIpc,OAAOqc,EAAIC,GACfF,EAAIpc,OAAOuc,EAAIC,GACfJ,EAAIK,YACJL,EAAIvc,OACJuc,EAAInc,OACJmc,EAAIM,SAAS,EAAG,EAAGj+B,KAAK4E,IAAIg5B,EAAIE,GAAM,EAAG99B,KAAK4E,IAAIi5B,EAAIE,IACtDJ,EAAIO,UAUR,SAASC,EAA8Bpe,EAAMliB,GAEzC,OAAQmC,KAAKC,IAAI8f,EAAc,EAATliB,GAAc,KAAO,GACvCmC,KAAKC,IAAI8f,EAAc,EAATliB,EAAa,GAAK,QAAc,EAYtD,SAASugC,IACL,QAAiCvkC,IAA7B6/B,EAAwC,CACxC,IAAIiE,EAAMrhC,SAASC,cAAc,UAAUkJ,WAAW,MACtDk4B,EAAIU,yBAA2B,UAC/BV,EAAI9lB,UAAY,wBAChB6lB,EAAiBC,EAAK,EAAG,EAAG,EAAG,GAC/BD,EAAiBC,EAAK,EAAG,EAAG,EAAG,GAC/B,IAAI5d,EAAO4d,EAAI/d,aAAa,EAAG,EAAG,EAAG,GAAGG,KACxC2Z,EACIyE,EAA8Bpe,EAAM,IAChCoe,EAA8Bpe,EAAM,IACpCoe,EAA8Bpe,EAAM,GAEhD,OAAO2Z,EAcJ,SAAS4E,EAA0BxE,EAAYC,EAAYwE,EAAcC,GAC5E,IAAIC,EAAe,eAAUF,EAAcxE,EAAYD,GAEnD4E,EAAmB,eAAmB3E,EAAYyE,EAAkBD,GACpEI,EAAsB5E,EAAW/0B,wBACTnL,IAAxB8kC,IACAD,GAAoBC,GAExB,IAAIC,EAAsB9E,EAAW90B,wBACTnL,IAAxB+kC,IACAF,GAAoBE,GAKxB,IAAIC,EAAe/E,EAAW11B,YAC9B,IAAKy6B,GAAgB,eAAmBA,EAAcJ,GAAe,CACjE,IAAIK,EAAqB,eAAmBhF,EAAY4E,EAAkBD,GACtEC,EACAjwB,SAASqwB,IAAuBA,EAAqB,IACrDJ,GAAoBI,GAG5B,OAAOJ,EAcJ,SAASK,EAAgCjF,EAAYC,EAAYC,EAAcwE,GAClF,IAAID,EAAe,eAAUvE,GACzB0E,EAAmBJ,EAA0BxE,EAAYC,EAAYwE,EAAcC,GAOvF,QANK/vB,SAASiwB,IAAqBA,GAAoB,IACnD,eAAc1E,GAAc,SAAUp2B,GAElC,OADA86B,EAAmBJ,EAA0BxE,EAAYC,EAAYn2B,EAAQ46B,GACtE/vB,SAASiwB,IAAqBA,EAAmB,KAGzDA,EAwBJ,SAASjgC,EAAOkG,EAAOD,EAAQqO,EAAY2rB,EAAkBG,EAAcL,EAAkBxE,EAAcgF,EAAeC,EAASC,EAAQC,EAAiBC,GAC/J,IAAIz5B,EAAU,eAAsB3F,KAAK+B,MAAMgR,EAAapO,GAAQ3E,KAAK+B,MAAMgR,EAAarO,GAASya,GAIrG,GAHKigB,GACD,eAAOz5B,EAAS,QAEG,IAAnBs5B,EAAQpnC,OACR,OAAO8N,EAAQL,OAGnB,SAAS+5B,EAAWp1B,GAChB,OAAOjK,KAAK+B,MAAMkI,EAAQ8I,GAAcA,EAF5CpN,EAAQ8L,MAAMsB,EAAYA,GAI1BpN,EAAQ04B,yBAA2B,UACnC,IAAIiB,EAAmB,iBACvBL,EAAQtP,SAAQ,SAAU6N,EAAK7lC,EAAGikC,GAC9B,eAAO0D,EAAkB9B,EAAIh6B,WAEjC,IAAI+7B,EAAqB,eAASD,GAC9BE,EAAsB,eAAUF,GAChCG,EAAgB,eAAsBz/B,KAAK+B,MAAOgR,EAAawsB,EAAsBb,GAAmB1+B,KAAK+B,MAAOgR,EAAaysB,EAAuBd,IACvJU,GACD,eAAOK,EAAe,QAE1B,IAAIC,EAAc3sB,EAAa2rB,EAC/BO,EAAQtP,SAAQ,SAAU6N,EAAK7lC,EAAGikC,GAC9B,IAAI+D,EAAOnC,EAAIh6B,OAAO,GAAK87B,EAAiB,GACxCM,IAASpC,EAAIh6B,OAAO,GAAK87B,EAAiB,IAC1CO,EAAW,eAASrC,EAAIh6B,QACxBs8B,EAAY,eAAUtC,EAAIh6B,QAE1Bg6B,EAAIpf,MAAMzZ,MAAQ,GAAK64B,EAAIpf,MAAM1Z,OAAS,GAC1C+6B,EAAczf,UAAUwd,EAAIpf,MAAO8gB,EAAQA,EAAQ1B,EAAIpf,MAAMzZ,MAAQ,EAAIu6B,EAAQ1B,EAAIpf,MAAM1Z,OAAS,EAAIw6B,EAAQS,EAAOD,EAAaE,EAAOF,EAAaG,EAAWH,EAAaI,EAAYJ,MAGpM,IAAIK,EAAgB,eAAW/F,GA6G/B,OA5GAgF,EAAcvB,eAAe9N,SAAQ,SAAUgM,EAAUhkC,EAAGikC,GAqBxD,IAAIje,EAASge,EAAShe,OAClBlkB,EAASkiC,EAASliC,OAClBgT,EAAKkR,EAAO,GAAG,GAAIjR,EAAKiR,EAAO,GAAG,GAClC7V,EAAK6V,EAAO,GAAG,GAAI3V,EAAK2V,EAAO,GAAG,GAClC5V,EAAK4V,EAAO,GAAG,GAAI1V,EAAK0V,EAAO,GAAG,GAElCqiB,EAAKX,GAAY5lC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,GACpDyB,EAAKZ,IAAa5lC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,GACrDZ,EAAKyB,GAAY5lC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,GACpDX,EAAKwB,IAAa5lC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,GACrDV,EAAKuB,GAAY5lC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,GACpDT,EAAKsB,IAAa5lC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,GAIrD0B,EAAwBzzB,EACxB0zB,EAAwBzzB,EAC5BD,EAAK,EACLC,EAAK,EACL5E,GAAMo4B,EACNl4B,GAAMm4B,EACNp4B,GAAMm4B,EACNj4B,GAAMk4B,EACN,IAAIC,EAAkB,CAClB,CAACt4B,EAAIE,EAAI,EAAG,EAAG41B,EAAKoC,GACpB,CAACj4B,EAAIE,EAAI,EAAG,EAAG61B,EAAKkC,GACpB,CAAC,EAAG,EAAGl4B,EAAIE,EAAI61B,EAAKoC,GACpB,CAAC,EAAG,EAAGl4B,EAAIE,EAAI81B,EAAKkC,IAEpBI,EAAc,eAAkBD,GACpC,GAAKC,EAAL,CAKA,GAFA16B,EAAQyb,OACRzb,EAAQ0b,YACJ+c,MAAgCgB,EAAiB,CAEjDz5B,EAAQ2b,OAAOsc,EAAIC,GAKnB,IAHA,IAAIyC,EAAQ,EACRC,EAAKP,EAAKpC,EACV4C,EAAKP,EAAKpC,EACL4C,EAAO,EAAGA,EAAOH,EAAOG,IAE7B96B,EAAQ4b,OAAOqc,EAAKyB,GAAaoB,EAAO,GAAKF,EAAMD,GAAQzC,EAAKwB,EAAYoB,EAAOD,GAAOF,EAAQ,KAE9FG,GAAQH,EAAQ,GAChB36B,EAAQ4b,OAAOqc,EAAKyB,GAAaoB,EAAO,GAAKF,EAAMD,GAAQzC,EAAKwB,GAAaoB,EAAO,GAAKD,GAAOF,EAAQ,KAIhH36B,EAAQ4b,OAAOuc,EAAIC,QAGnBp4B,EAAQ2b,OAAOsc,EAAIC,GACnBl4B,EAAQ4b,OAAOye,EAAIC,GACnBt6B,EAAQ4b,OAAOuc,EAAIC,GAEvBp4B,EAAQ6b,OACR7b,EAAQxD,UAAUk+B,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIA,EAAY,GAAIL,EAAIC,GACtFt6B,EAAQ+6B,UAAUpB,EAAiB,GAAKY,EAAuBZ,EAAiB,GAAKa,GACrFx6B,EAAQ8L,MAAMitB,EAAmB3rB,GAAa2rB,EAAmB3rB,GACjEpN,EAAQqa,UAAUyf,EAAcn6B,OAAQ,EAAG,GAC3CK,EAAQu4B,cAERiB,IACAx5B,EAAQyb,OACRzb,EAAQ04B,yBAA2B,cACnC14B,EAAQsR,YAAc,QACtBtR,EAAQyR,UAAY,EACpB4nB,EAAcvB,eAAe9N,SAAQ,SAAUgM,EAAUhkC,EAAGikC,GACxD,IAAIniC,EAASkiC,EAASliC,OAClBumC,GAAMvmC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,EACzCyB,IAAOxmC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,EAC1CZ,GAAMnkC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,EACzCX,IAAOpkC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,EAC1CV,GAAMrkC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,EACzCT,IAAOtkC,EAAO,GAAG,GAAKsmC,EAAc,IAAMvB,EAC9C74B,EAAQ0b,YACR1b,EAAQ2b,OAAOsc,EAAIC,GACnBl4B,EAAQ4b,OAAOye,EAAIC,GACnBt6B,EAAQ4b,OAAOuc,EAAIC,GACnBp4B,EAAQq4B,YACRr4B,EAAQg7B,YAEZh7B,EAAQu4B,WAELv4B,EAAQL,O,gBE1SfhL,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAqCxC,EAA4B,SAAUU,GAiBtC,SAASglC,EAAW9G,EAAY+G,EAAgB9G,EAAY+G,EAAgBh+B,EAAWi+B,EAAkBhuB,EAAYmsB,EAAQ8B,EAAiBC,EAAoB9B,EAAiBC,GAC/K,IAAItjC,EAAQF,EAAOb,KAAK3D,KAAM0L,EAAWo+B,EAAA,KAAUtiB,KAAM,CAAEuiB,cAAe/B,KAAsBhoC,KAKhG0E,EAAMslC,kBAAmCvnC,IAApBslC,GAAgCA,EAKrDrjC,EAAMulC,YAActuB,EAKpBjX,EAAMwlC,QAAUpC,EAKhBpjC,EAAMylC,QAAU,KAKhBzlC,EAAM0lC,gBAAkBX,EAKxB/kC,EAAM2lC,gBAAkBX,EAKxBhlC,EAAM4lC,kBAAoBX,GAAsCj+B,EAKhEhH,EAAM6lC,aAAe,GAKrB7lC,EAAM8lC,qBAAuB,KAK7B9lC,EAAM+lC,SAAW,EACjB,IAAI7H,EAAe8G,EAAegB,mBAAmBhmC,EAAM4lC,mBACvDK,EAAkBjmC,EAAM2lC,gBAAgBr9B,YACxC61B,EAAkBn+B,EAAM0lC,gBAAgBp9B,YACxC49B,EAAsBD,EACpB,eAAgB/H,EAAc+H,GAC9B/H,EACN,GAAqC,IAAjC,eAAQgI,GAIR,OADAlmC,EAAM2Z,MAAQyrB,EAAA,KAAUe,MACjBnmC,EAEX,IAAIomC,EAAmBpI,EAAW11B,YAC9B89B,IAKIjI,EAJCA,EAIiB,eAAgBA,EAAiBiI,GAHjCA,GAM1B,IAAI1D,EAAmBsC,EAAeqB,cAAcrmC,EAAM4lC,kBAAkB,IACxEhD,EAAmBK,EAAgCjF,EAAYC,EAAYiI,EAAqBxD,GACpG,IAAK/vB,SAASiwB,IAAqBA,GAAoB,EAInD,OADA5iC,EAAM2Z,MAAQyrB,EAAA,KAAUe,MACjBnmC,EAEX,IAAIsmC,OAAgDvoC,IAAvBonC,EAAmCA,EAAqB,OAMrF,GADAnlC,EAAMumC,eAAiB,IAAI,EAAcvI,EAAYC,EAAYiI,EAAqB/H,EAAiByE,EAAmB0D,EAAwB5D,GAC/F,IAA/C1iC,EAAMumC,eAAe5E,eAAe5lC,OAGpC,OADAiE,EAAM2Z,MAAQyrB,EAAA,KAAUe,MACjBnmC,EAEXA,EAAM+lC,SAAWhB,EAAeyB,kBAAkB5D,GAClD,IAAIG,EAAe/iC,EAAMumC,eAAe9E,wBAUxC,GATItD,IACIH,EAAWxrB,YACXuwB,EAAa,GAAK,eAAMA,EAAa,GAAI5E,EAAgB,GAAIA,EAAgB,IAC7E4E,EAAa,GAAK,eAAMA,EAAa,GAAI5E,EAAgB,GAAIA,EAAgB,KAG7E4E,EAAe,eAAgBA,EAAc5E,IAGhD,eAAQ4E,GAGR,CAED,IADA,IAAI0D,EAAc1B,EAAe2B,0BAA0B3D,EAAc/iC,EAAM+lC,UACtEY,EAAOF,EAAY94B,KAAMg5B,GAAQF,EAAY14B,KAAM44B,IACxD,IAAK,IAAIC,EAAOH,EAAY34B,KAAM84B,GAAQH,EAAYz4B,KAAM44B,IAAQ,CAChE,IAAIllB,EAAOwjB,EAAgBllC,EAAM+lC,SAAUY,EAAMC,EAAM3vB,GACnDyK,GACA1hB,EAAM6lC,aAAar5B,KAAKkV,GAIF,IAA9B1hB,EAAM6lC,aAAa9pC,SACnBiE,EAAM2Z,MAAQyrB,EAAA,KAAUe,YAb5BnmC,EAAM2Z,MAAQyrB,EAAA,KAAUe,MAgB5B,OAAOnmC,EAmGX,OA3OAxB,EAAUsmC,EAAYhlC,GA8ItBglC,EAAWzpC,UAAUwrC,SAAW,WAC5B,OAAOvrC,KAAKmqC,SAKhBX,EAAWzpC,UAAUyrC,WAAa,WAC9B,IAAI3D,EAAU,GAUd,GATA7nC,KAAKuqC,aAAahS,QAAQ,SAAUnS,EAAM7lB,EAAGikC,GACrCpe,GAAQA,EAAKa,YAAc6iB,EAAA,KAAU3iB,QACrC0gB,EAAQ32B,KAAK,CACT9E,OAAQpM,KAAKoqC,gBAAgBM,mBAAmBtkB,EAAK1a,WACrDsb,MAAOZ,EAAKmlB,cAGtB9lB,KAAKzlB,OACPA,KAAKuqC,aAAa9pC,OAAS,EACJ,IAAnBonC,EAAQpnC,OACRT,KAAKqe,MAAQyrB,EAAA,KAAU1rC,UAEtB,CACD,IAAIuN,EAAI3L,KAAKsqC,kBAAkB,GAC3B7gC,EAAOzJ,KAAKqqC,gBAAgBoB,YAAY9/B,GACxC4B,EAAwB,kBAAT9D,EAAoBA,EAAOA,EAAK,GAC/C6D,EAAyB,kBAAT7D,EAAoBA,EAAOA,EAAK,GAChD29B,EAAmBpnC,KAAKqqC,gBAAgBU,cAAcp/B,GACtD27B,EAAmBtnC,KAAKoqC,gBAAgBW,cAAc/qC,KAAKyqC,UAC3D7H,EAAe5iC,KAAKqqC,gBAAgBK,mBAAmB1qC,KAAKsqC,mBAChEtqC,KAAKmqC,QAAU9iC,EAAkBkG,EAAOD,EAAQtN,KAAKiqC,YAAa3C,EAAkBtnC,KAAKoqC,gBAAgBp9B,YAAao6B,EAAkBxE,EAAc5iC,KAAKirC,eAAgBpD,EAAS7nC,KAAKkqC,QAASlqC,KAAKgqC,aAAchqC,KAAK+pC,aAC1N/pC,KAAKqe,MAAQyrB,EAAA,KAAU3iB,OAE3BnnB,KAAK4nB,WAKT4hB,EAAWzpC,UAAU0nB,KAAO,WACxB,GAAIznB,KAAKqe,OAASyrB,EAAA,KAAUtiB,KAAM,CAC9BxnB,KAAKqe,MAAQyrB,EAAA,KAAU4B,QACvB1rC,KAAK4nB,UACL,IAAI+jB,EAAe,EACnB3rC,KAAKwqC,qBAAuB,GAC5BxqC,KAAKuqC,aAAahS,QAAQ,SAAUnS,EAAM7lB,EAAGikC,GACzC,IAAInmB,EAAQ+H,EAAKa,WACjB,GAAI5I,GAASyrB,EAAA,KAAUtiB,MAAQnJ,GAASyrB,EAAA,KAAU4B,QAAS,CACvDC,IACA,IAAIC,EAAoB,eAAOxlB,EAAMmB,EAAA,KAAUppB,QAAQ,SAAUg9B,GAC7D,IAAI9c,EAAQ+H,EAAKa,WACb5I,GAASyrB,EAAA,KAAU3iB,QACnB9I,GAASyrB,EAAA,KAAU1rC,OACnBigB,GAASyrB,EAAA,KAAUe,QACnB,eAAce,GACdD,IACqB,IAAjBA,IACA3rC,KAAK6rC,mBACL7rC,KAAKwrC,iBAGdxrC,MACHA,KAAKwqC,qBAAqBt5B,KAAK06B,KAErCnmB,KAAKzlB,OACc,IAAjB2rC,EACAG,WAAW9rC,KAAKwrC,WAAW/lB,KAAKzlB,MAAO,GAGvCA,KAAKuqC,aAAahS,SAAQ,SAAUnS,EAAM7lB,EAAGikC,GACzC,IAAInmB,EAAQ+H,EAAKa,WACb5I,GAASyrB,EAAA,KAAUtiB,MACnBpB,EAAKqB,YASzB+hB,EAAWzpC,UAAU8rC,iBAAmB,WACpC7rC,KAAKwqC,qBAAqBjS,QAAQ,QAClCv4B,KAAKwqC,qBAAuB,MAKhChB,EAAWzpC,UAAUgsC,QAAU,WACvB/rC,KAAKmqC,UACL,eAAcnqC,KAAKmqC,QAAQ97B,WAAW,OACtC0Z,EAAW7W,KAAKlR,KAAKmqC,SACrBnqC,KAAKmqC,QAAU,MAEnB3lC,EAAOzE,UAAUgsC,QAAQpoC,KAAK3D,OAE3BwpC,EA5OoB,CA6O7BwC,EAAA,MACa,U,oCCnRf,oKAkBIC,EAAqB,GAOrBC,EAAqB,CACrB,MAASC,EACT,WAAcC,EACd,QAAWC,EACX,WAAcC,EACd,gBAAmBC,EACnB,aAAgBC,EAChB,mBAAsBC,EACtB,OAAUC,GAOP,SAASC,EAAaC,EAAUC,GACnC,OAAOj+B,SAAS,eAAOg+B,GAAW,IAAMh+B,SAAS,eAAOi+B,GAAW,IAOhE,SAASC,EAAoB73B,EAAY0G,GAC5C,IAAIF,EAAYsxB,EAAa93B,EAAY0G,GACzC,OAAOF,EAAYA,EAOhB,SAASsxB,EAAa93B,EAAY0G,GACrC,OAAQswB,EAAqBh3B,EAAc0G,EAS/C,SAAS+wB,EAAqBM,EAAcjwB,EAAU1X,EAAO2X,EAASiwB,GAClE,IAAIxsB,EAAYpb,EAAM6b,UAClBrB,EAAcxa,EAAMgc,YACxB,GAAIZ,GAAaZ,EAAa,CAC1B,IAAIqtB,EAAeF,EAAaG,WAAW9nC,EAAM+nC,YAAa,UAC9DF,EAAa/uB,mBAAmBsC,EAAWZ,GAC3CqtB,EAAaG,WAAWtwB,EAAUC,GAEtC,IAAI+D,EAAY1b,EAAM0d,UACtB,GAAIhC,GAAaA,EAAUgC,UAAW,CAClC,IAAIuqB,GAAcL,GAA6BD,GAAcG,WAAW9nC,EAAM+nC,YAAa,QAC3FE,EAAWxsB,aAAaC,GACxBusB,EAAWxwB,SAASC,EAAUC,IAa/B,SAASuwB,EAAcC,EAAaxwB,EAAS3X,EAAOsU,EAAkB6J,EAAU3J,EAAeozB,GAClG,IAAIQ,GAAU,EACVC,EAAaroC,EAAMkmC,WACvB,GAAImC,EAAY,CACZ,IAAIpmB,EAAaomB,EAAWC,gBACxBrmB,GAAc,OAAWH,QAAUG,GAAc,OAAWlpB,MAC5DsvC,EAAWE,oBAAoBpqB,IAG3B8D,GAAc,OAAWE,MACzBkmB,EAAWjmB,OAEfimB,EAAWG,kBAAkBrqB,GAC7BiqB,GAAU,GAIlB,OADAK,EAAsBN,EAAaxwB,EAAS3X,EAAOsU,EAAkBE,EAAeozB,GAC7EQ,EAUX,SAASK,EAAsBN,EAAaxwB,EAAS3X,EAAOsU,EAAkBE,EAAeozB,GACzF,IAAIlwB,EAAW1X,EAAM0oC,qBAAN1oC,CAA4B2X,GAC3C,GAAKD,EAAL,CAGA,IAAIixB,EAAqBjxB,EAASnD,oBAAoBD,EAAkBE,GACpEo0B,EAAW5oC,EAAM0nB,cACrB,GAAIkhB,EACAC,EAAeV,EAAaQ,EAAoB3oC,EAAO2X,OAEtD,CACD,IAAImxB,EAAmBjC,EAAmB8B,EAAmB/zB,WAC7Dk0B,EAAiBX,EAAaQ,EAAoB3oC,EAAO2X,EAASiwB,KAS1E,SAASiB,EAAeV,EAAazwB,EAAU1X,EAAO2X,GAClD,GAA0B,sBAAtBD,EAAS9C,UAAb,CAQA,IAAIm0B,EAASZ,EAAYL,WAAW9nC,EAAM+nC,YAAa,WACvDgB,EAAOC,WACoD,EAAYrxB,EAAS3X,EAAM0nB,cAAe1nB,EAAMipC,gCAPvG,IAFA,IAAIC,EAC2D,EAAWC,gBACjEjuC,EAAI,EAAGC,EAAK+tC,EAAW9tC,OAAQF,EAAIC,IAAMD,EAC9C2tC,EAAeV,EAAae,EAAWhuC,GAAI8E,EAAO2X,GAe9D,SAASyvB,EAAiCe,EAAazwB,EAAU1X,EAAO2X,EAASiwB,GAC7E,IACI1sC,EAAGC,EADH+tC,EAAaxxB,EAAS0xB,qBAE1B,IAAKluC,EAAI,EAAGC,EAAK+tC,EAAW9tC,OAAQF,EAAIC,IAAMD,EAAG,CAC7C,IAAI4tC,EAAmBjC,EAAmBqC,EAAWhuC,GAAG0Z,WACxDk0B,EAAiBX,EAAae,EAAWhuC,GAAI8E,EAAO2X,EAASiwB,IAUrE,SAASb,EAAyBY,EAAcjwB,EAAU1X,EAAO2X,EAASiwB,GACtE,IAAIptB,EAAcxa,EAAMgc,YACxB,GAAIxB,EAAa,CACb,IAAI6uB,EAAmB1B,EAAaG,WAAW9nC,EAAM+nC,YAAa,cAClEsB,EAAiBvwB,mBAAmB,KAAM0B,GAC1C6uB,EAAiBC,eAAe5xB,EAAUC,GAE9C,IAAI+D,EAAY1b,EAAM0d,UACtB,GAAIhC,GAAaA,EAAUgC,UAAW,CAClC,IAAIuqB,GAAcL,GAA6BD,GAAcG,WAAW9nC,EAAM+nC,YAAa,QAC3FE,EAAWxsB,aAAaC,GACxBusB,EAAWxwB,SAASC,EAAUC,IAUtC,SAASuvB,EAA8BS,EAAcjwB,EAAU1X,EAAO2X,EAASiwB,GAC3E,IAAIptB,EAAcxa,EAAMgc,YACxB,GAAIxB,EAAa,CACb,IAAI6uB,EAAmB1B,EAAaG,WAAW9nC,EAAM+nC,YAAa,cAClEsB,EAAiBvwB,mBAAmB,KAAM0B,GAC1C6uB,EAAiBE,oBAAoB7xB,EAAUC,GAEnD,IAAI+D,EAAY1b,EAAM0d,UACtB,GAAIhC,GAAaA,EAAUgC,UAAW,CAClC,IAAIuqB,GAAcL,GAA6BD,GAAcG,WAAW9nC,EAAM+nC,YAAa,QAC3FE,EAAWxsB,aAAaC,GACxBusB,EAAWxwB,SAASC,EAAUC,IAUtC,SAASwvB,EAA2BQ,EAAcjwB,EAAU1X,EAAO2X,EAASiwB,GACxE,IAAIxsB,EAAYpb,EAAM6b,UAClBrB,EAAcxa,EAAMgc,YACxB,GAAIxB,GAAeY,EAAW,CAC1B,IAAIouB,EAAgB7B,EAAaG,WAAW9nC,EAAM+nC,YAAa,WAC/DyB,EAAc1wB,mBAAmBsC,EAAWZ,GAC5CgvB,EAAcC,iBAAiB/xB,EAAUC,GAE7C,IAAI+D,EAAY1b,EAAM0d,UACtB,GAAIhC,GAAaA,EAAUgC,UAAW,CAClC,IAAIuqB,GAAcL,GAA6BD,GAAcG,WAAW9nC,EAAM+nC,YAAa,QAC3FE,EAAWxsB,aAAaC,GACxBusB,EAAWxwB,SAASC,EAAUC,IAUtC,SAASmvB,EAAoBa,EAAcjwB,EAAU1X,EAAO2X,EAASiwB,GACjE,IAGI8B,EAHArB,EAAaroC,EAAMkmC,WACnBxqB,EAAY1b,EAAM0d,UAGtB,GAAI2qB,EAAY,CACZ,GAAIA,EAAWC,iBAAmB,OAAWxmB,OACzC,OAEJ,IAAI6nB,EAAoBhC,EACxB,GAAIC,EAA2B,CAC3B,IAAIgC,EAAgBvB,EAAWwB,mBAC/B,GAAsB,SAAlBD,EAEA,GADAD,EAAoB/B,EACE,aAAlBgC,EAA8B,CAE9B,IAAIE,EAAgBnC,EAAaG,WAAW9nC,EAAM+nC,YAAa,SAC/D+B,EAAcC,cAAc1B,EAAYqB,GACxCI,EAAcE,UAAUtyB,EAAUC,QAE7B+D,GAAaA,EAAUgC,YAC5BgsB,EAAyB,IAIrC,IAAIO,EAAcN,EAAkB7B,WAAW9nC,EAAM+nC,YAAa,SAClEkC,EAAYF,cAAc1B,EAAYqB,GACtCO,EAAYD,UAAUtyB,EAAUC,GAEpC,GAAI+D,GAAaA,EAAUgC,UAAW,CAClC,IAAIwsB,EAAmBvC,EACnBC,IACAsC,EAAmBtC,GAEvB,IAAIK,EAAaiC,EAAiBpC,WAAW9nC,EAAM+nC,YAAa,QAChEE,EAAWxsB,aAAaC,EAAWguB,GACnCzB,EAAWxwB,SAASC,EAAUC,IAUtC,SAASsvB,EAAyBU,EAAcjwB,EAAU1X,EAAO2X,EAASiwB,GACtE,IAGI8B,EAHArB,EAAaroC,EAAMkmC,WACnBxqB,EAAY1b,EAAM0d,UAGtB,GAAI2qB,EAAY,CACZ,GAAIA,EAAWC,iBAAmB,OAAWxmB,OACzC,OAEJ,IAAI6nB,EAAoBhC,EACxB,GAAIC,EAA2B,CAC3B,IAAIgC,EAAgBvB,EAAWwB,mBAC/B,GAAsB,SAAlBD,EAEA,GADAD,EAAoB/B,EACE,aAAlBgC,EAA8B,CAE9B,IAAIO,EAAgBxC,EAAaG,WAAW9nC,EAAM+nC,YAAa,SAC/DoC,EAAcJ,cAAc1B,EAAYqB,GACxCS,EAAcC,eAAe1yB,EAAUC,QAElC+D,GAAaA,EAAUgC,YAC5BgsB,EAAyB,IAIrC,IAAIO,EAAcN,EAAkB7B,WAAW9nC,EAAM+nC,YAAa,SAClEkC,EAAYF,cAAc1B,EAAYqB,GACtCO,EAAYG,eAAe1yB,EAAUC,GAEzC,GAAI+D,GAAaA,EAAUgC,UAAW,CAClC,IAAIwsB,EAAmBvC,EACnBC,IACAsC,EAAmBtC,GAEvB,IAAIK,EAAaiC,EAAiBpC,WAAW9nC,EAAM+nC,YAAa,QAChEE,EAAWxsB,aAAaC,EAAWguB,GACnCzB,EAAWxwB,SAASC,EAAUC,IAUtC,SAASqvB,EAAsBW,EAAcjwB,EAAU1X,EAAO2X,EAASiwB,GACnE,IAAIxsB,EAAYpb,EAAM6b,UAClBrB,EAAcxa,EAAMgc,YACxB,GAAIZ,GAAaZ,EAAa,CAC1B,IAAIgvB,EAAgB7B,EAAaG,WAAW9nC,EAAM+nC,YAAa,WAC/DyB,EAAc1wB,mBAAmBsC,EAAWZ,GAC5CgvB,EAAca,YAAY3yB,EAAUC,GAExC,IAAI+D,EAAY1b,EAAM0d,UACtB,GAAIhC,GAAaA,EAAUgC,UAAW,CAClC,IAAIuqB,GAAcL,GAA6BD,GAAcG,WAAW9nC,EAAM+nC,YAAa,QAC3FE,EAAWxsB,aAAaC,GACxBusB,EAAWxwB,SAASC,EAAUC,M,kCCvVtC,gBAGI9Z,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAgBxC6rC,EAA6B,SAAUnrC,GASvC,SAASmrC,EAAY5tC,EAAM6tC,EAA2BC,EAAgBC,GAClE,IAAIprC,EAAQF,EAAOb,KAAK3D,KAAM+B,IAAS/B,KAsBvC,OAfA0E,EAAM2jB,sBAAwBunB,EAM9BlrC,EAAMqhB,WAAa8pB,EAQnBnrC,EAAM6J,QAAUuhC,EACTprC,EAEX,OAjCAxB,EAAUysC,EAAanrC,GAiChBmrC,EAlCqB,CAmC9B,QACa,U,oCC3BR,SAASI,EAAQtmC,GACpB,OAAOA,EAAK,GAAK,GAAKA,EAAK,GAAK,EAS7B,SAAS4Q,EAAM5Q,EAAMumC,EAAOC,GAM/B,YALiBxtC,IAAbwtC,IACAA,EAAW,CAAC,EAAG,IAEnBA,EAAS,GAAMxmC,EAAK,GAAKumC,EAAQ,GAAO,EACxCC,EAAS,GAAMxmC,EAAK,GAAKumC,EAAQ,GAAO,EACjCC,EAWJ,SAASC,EAAOzmC,EAAMwmC,GACzB,OAAIzsC,MAAM6tB,QAAQ5nB,GACPA,QAGUhH,IAAbwtC,EACAA,EAAW,CAACxmC,EAAMA,IAGlBwmC,EAAS,GAAKxmC,EACdwmC,EAAS,GAAKxmC,GAEXwmC,GAnEf,uG,oCCAA,wCAAI/sC,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAkDxC+jB,EAA4B,SAAUrjB,GAEtC,SAASqjB,IACL,IAAInjB,EAAQF,EAAOb,KAAK3D,OAASA,KAWjC,OAVA0E,EAAMC,GACkED,EAAgB,WACxFA,EAAME,KACkEF,EAAkB,aAC1FA,EAAMG,GAAiDH,EAAgB,WAKvEA,EAAMyrC,UAAY,EACXzrC,EA+EX,OA5FAxB,EAAU2kB,EAAYrjB,GAmBtBqjB,EAAW9nB,UAAU6nB,QAAU,aACzB5nB,KAAKmwC,UACPnwC,KAAK4jB,cAAc,OAAUzlB,SAQjC0pB,EAAW9nB,UAAUqwC,YAAc,WAC/B,OAAOpwC,KAAKmwC,WAQhBtoB,EAAW9nB,UAAUswC,WAAa,SAAUtuC,EAAMyhB,GAC9C,GAAIhgB,MAAM6tB,QAAQtvB,GAAO,CAGrB,IAFA,IAAIuuC,EAAMvuC,EAAKtB,OACXikB,EAAO,IAAIlhB,MAAM8sC,GACZ/vC,EAAI,EAAGA,EAAI+vC,IAAO/vC,EACvBmkB,EAAKnkB,GAAK,eAAOP,KAAM+B,EAAKxB,GAAIijB,GAEpC,OAAOkB,EAGP,OAAO,eAAO1kB,KAA4B,EAAQwjB,IAS1DqE,EAAW9nB,UAAUwwC,aAAe,SAAUxuC,EAAMyhB,GAChD,IAAIvK,EACJ,GAAIzV,MAAM6tB,QAAQtvB,GAAO,CACrB,IAAIuuC,EAAMvuC,EAAKtB,OACfwY,EAAM,IAAIzV,MAAM8sC,GAChB,IAAK,IAAI/vC,EAAI,EAAGA,EAAI+vC,IAAO/vC,EACvB0Y,EAAI1Y,GAAK,eAAWP,KAAM+B,EAAKxB,GAAIijB,QAIvCvK,EAAM,eAAWjZ,KAA4B,EAAQwjB,GAGzD,OADsB,EAAWgtB,OAASv3B,EACnCA,GAQX4O,EAAW9nB,UAAU0wC,WAAa,SAAU1uC,EAAMyhB,GAC9C,IAAIvK,EAA4B,EAAWu3B,OAC3C,GAAIv3B,EACAy3B,EAAQz3B,QAEP,GAAIzV,MAAM6tB,QAAQtvB,GACnB,IAAK,IAAIxB,EAAI,EAAGC,EAAKuB,EAAKtB,OAAQF,EAAIC,IAAMD,EACxCP,KAAKqkB,oBAAoBtiB,EAAKxB,GAAIijB,QAItCxjB,KAAKqkB,oBAAoBtiB,EAAMyhB,IAGhCqE,EA7FoB,CA8F7B,QAqCK,SAAS6oB,EAAQz3B,GACpB,GAAIzV,MAAM6tB,QAAQpY,GACd,IAAK,IAAI1Y,EAAI,EAAGC,EAAKyY,EAAIxY,OAAQF,EAAIC,IAAMD,EACvC,eAAc0Y,EAAI1Y,SAItB,eAA6D,GAjCrEsnB,EAAW9nB,UAAU4E,GAWrBkjB,EAAW9nB,UAAU6E,KAQrBijB,EAAW9nB,UAAU8E,GAiBN,U,uBC/LfuT,EAAQmjB,EAAI,EAAQ,S,oCCApB,wIAYO,IAAIoV,EAAkC,oBAAlB7wC,OAAO6wC,OAC5B7wC,OAAO6wC,OACP,SAAUtuC,EAAQuuC,GAChB,QAAenuC,IAAXJ,GAAmC,OAAXA,EACxB,MAAM,IAAIuB,UAAU,8CAGxB,IADA,IAAIkzB,EAASh3B,OAAOuC,GACX9B,EAAI,EAAGC,EAAKJ,UAAUK,OAAQF,EAAIC,IAAMD,EAAG,CAChD,IAAIgmB,EAASnmB,UAAUG,GACvB,QAAekC,IAAX8jB,GAAmC,OAAXA,EACxB,IAAK,IAAItN,KAAOsN,EACRA,EAAO7iB,eAAeuV,KACtB6d,EAAO7d,GAAOsN,EAAOtN,IAKrC,OAAO6d,GAMR,SAAS8E,EAAMiV,GAClB,IAAK,IAAIC,KAAYD,SACVA,EAAOC,GAWf,IAAIC,EAAqC,oBAAlBjxC,OAAOkxC,OAC/BlxC,OAAOkxC,OACP,SAAUH,GACR,IAAIG,EAAS,GACb,IAAK,IAAIF,KAAYD,EACjBG,EAAO9/B,KAAK2/B,EAAOC,IAEvB,OAAOE,GAOR,SAASr8B,EAAQk8B,GACpB,IAAIC,EACJ,IAAKA,KAAYD,EACb,OAAO,EAEX,OAAQC,I,kCCnEZ,gEAAI5tC,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA0DxCquB,EAAyB,SAAU3tB,GAKnC,SAAS2tB,EAAQ1tB,GACb,IAAIC,EAAQF,EAAOb,KAAK3D,OAASA,KAC7BiF,EAAUR,EAAQQ,QA8BtB,OA7BIA,GAAYR,EAAQpC,QAAW4C,EAAQI,MAAME,gBAC7CN,EAAQI,MAAME,cAAgB,QAMlCb,EAAMO,QAAUA,GAAoB,KAKpCP,EAAMusC,QAAU,KAKhBvsC,EAAMwsC,KAAO,KAKbxsC,EAAMysC,aAAe,GACjB1sC,EAAQ4C,SACR3C,EAAM2C,OAAS5C,EAAQ4C,QAEvB5C,EAAQpC,QACRqC,EAAM0sC,UAAU3sC,EAAQpC,QAErBqC,EAgEX,OApGAxB,EAAUivB,EAAS3tB,GAyCnB2tB,EAAQpyB,UAAUukB,gBAAkB,WAChC,eAAWtkB,KAAKiF,SAChBT,EAAOzE,UAAUukB,gBAAgB3gB,KAAK3D,OAO1CmyB,EAAQpyB,UAAUiH,OAAS,WACvB,OAAOhH,KAAKkxC,MAUhB/e,EAAQpyB,UAAU+H,OAAS,SAAU3G,GAC7BnB,KAAKkxC,MACL,eAAWlxC,KAAKiF,SAEpB,IAAK,IAAI1E,EAAI,EAAGC,EAAKR,KAAKmxC,aAAa1wC,OAAQF,EAAIC,IAAMD,EACrD,eAAcP,KAAKmxC,aAAa5wC,IAIpC,GAFAP,KAAKmxC,aAAa1wC,OAAS,EAC3BT,KAAKkxC,KAAO/vC,EACRA,EAAK,CACL,IAAIkB,EAASrC,KAAKixC,QACZjxC,KAAKixC,QACL9vC,EAAIqG,+BACVnF,EAAO+E,YAAYpH,KAAKiF,SACpBjF,KAAKqH,SAAW,QAChBrH,KAAKmxC,aAAajgC,KAAK,eAAO/P,EAAK,OAAa2B,WAAY9C,KAAKqH,OAAQrH,OAE7EmB,EAAIkG,WAQZ8qB,EAAQpyB,UAAUsH,OAAS,SAAU6qB,KAUrCC,EAAQpyB,UAAUqxC,UAAY,SAAU/uC,GACpCrC,KAAKixC,QACiB,kBAAX5uC,EAAsB6C,SAASmsC,eAAehvC,GAAUA,GAEhE8vB,EArGiB,CAsG1B,QACa,U,8OC3JXjvB,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAgCxC,EAAyC,SAAUU,GAWnD,SAAS8sC,EAAwB/iC,EAASoN,EAAYvP,EAAQrB,EAAWwmC,EAAcC,EAAsBC,GACzG,IAAI/sC,EAAQF,EAAOb,KAAK3D,OAASA,KA2KjC,OAtKA0E,EAAMgtC,SAAWnjC,EAKjB7J,EAAMulC,YAActuB,EAKpBjX,EAAM+T,QAAUrM,EAKhB1H,EAAMoB,WAAaiF,EAKnBrG,EAAMitC,cAAgBJ,EAKtB7sC,EAAMktC,kBAAoBJ,EAK1B9sC,EAAMmtC,eAAiBJ,EAKvB/sC,EAAMotC,kBAAoB,KAK1BptC,EAAMqtC,oBAAsB,KAK5BrtC,EAAMstC,kBAAoB,KAK1BttC,EAAMutC,WAAa,KAKnBvtC,EAAMwtC,aAAe,KAKrBxtC,EAAMytC,OAAS,KAKfztC,EAAM0tC,cAAgB,EAKtB1tC,EAAM2tC,cAAgB,EAKtB3tC,EAAM4tC,aAAe,EAKrB5tC,EAAM6tC,cAAgB,EAKtB7tC,EAAM8tC,cAAgB,EAKtB9tC,EAAM+tC,cAAgB,EAKtB/tC,EAAMguC,sBAAuB,EAK7BhuC,EAAMiuC,eAAiB,EAKvBjuC,EAAMkuC,YAAc,CAAC,EAAG,GAKxBluC,EAAMmuC,YAAc,EAKpBnuC,EAAMmX,MAAQ,GAKdnX,EAAMoX,aAAe,EAKrBpX,EAAMqX,aAAe,EAKrBrX,EAAMsX,qBAAsB,EAK5BtX,EAAMuX,cAAgB,EAKtBvX,EAAMouC,WAAa,CAAC,EAAG,GAKvBpuC,EAAMwX,eAAiB,KAKvBxX,EAAM0X,iBAAmB,KAKzB1X,EAAM4X,WAAa,KAKnB5X,EAAMquC,kBAAoB,GAK1BruC,EAAMsuC,mBAAqB,iBACpBtuC,EAstBX,OA54BAxB,EAAUouC,EAAyB9sC,GA+LnC8sC,EAAwBvxC,UAAUkzC,YAAc,SAAU7iC,EAAiB3J,EAAQwK,EAAKX,GACpF,GAAKtQ,KAAKmyC,OAAV,CAGA,IAAIe,EAAmB,eAAY9iC,EAAiB3J,EAAQwK,EAAKX,EAAQtQ,KAAK8F,WAAY9F,KAAK+yC,mBAC3FxkC,EAAUvO,KAAK0xC,SACfyB,EAAiBnzC,KAAKgzC,mBACtBI,EAAQ7kC,EAAQ8kC,YACM,GAAtBrzC,KAAKuyC,gBACLhkC,EAAQ8kC,YAAcD,EAAQpzC,KAAKuyC,eAEvC,IAAIr9B,EAAWlV,KAAK2yC,eAChB3yC,KAAK0yC,uBACLx9B,GAAYlV,KAAK2xC,eAErB,IAAK,IAAIpxC,EAAI,EAAGC,EAAK0yC,EAAiBzyC,OAAQF,EAAIC,EAAID,GAAK,EAAG,CAC1D,IAAImK,EAAIwoC,EAAiB3yC,GAAKP,KAAKoyC,cAC/BxnC,EAAIsoC,EAAiB3yC,EAAI,GAAKP,KAAKqyC,cACvC,GAAiB,IAAbn9B,GACuB,GAAvBlV,KAAK4yC,YAAY,IACM,GAAvB5yC,KAAK4yC,YAAY,GAAS,CAC1B,IAAIU,EAAU5oC,EAAI1K,KAAKoyC,cACnBmB,EAAU3oC,EAAI5K,KAAKqyC,cACvB,eAAiBc,EAAgBG,EAASC,EAAS,EAAG,EAAGr+B,GAAWo+B,GAAUC,GAC9EhlC,EAAQilC,aAAajhC,MAAMhE,EAAS4kC,GACpC5kC,EAAQ+6B,UAAUgK,EAASC,GAC3BhlC,EAAQ8L,MAAMra,KAAK4yC,YAAY,GAAI5yC,KAAK4yC,YAAY,IACpDrkC,EAAQqa,UAAU5oB,KAAKmyC,OAAQnyC,KAAKwyC,cAAexyC,KAAKyyC,cAAezyC,KAAK6yC,YAAa7yC,KAAKsyC,cAAetyC,KAAKoyC,eAAgBpyC,KAAKqyC,cAAeryC,KAAK6yC,YAAa7yC,KAAKsyC,cAC7K/jC,EAAQilC,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,QAGpCjlC,EAAQqa,UAAU5oB,KAAKmyC,OAAQnyC,KAAKwyC,cAAexyC,KAAKyyC,cAAezyC,KAAK6yC,YAAa7yC,KAAKsyC,aAAc5nC,EAAGE,EAAG5K,KAAK6yC,YAAa7yC,KAAKsyC,cAGvH,GAAtBtyC,KAAKuyC,gBACLhkC,EAAQ8kC,YAAcD,KAU9B9B,EAAwBvxC,UAAU0zC,UAAY,SAAUrjC,EAAiB3J,EAAQwK,EAAKX,GAClF,GAAKtQ,KAAKsc,YAA6B,KAAftc,KAAK6b,MAA7B,CAGI7b,KAAKkc,gBACLlc,KAAK0zC,qBAAqB1zC,KAAKkc,gBAE/Blc,KAAKoc,kBACLpc,KAAK2zC,uBAAuB3zC,KAAKoc,kBAErCpc,KAAK4zC,qBAAqB5zC,KAAKsc,YAC/B,IAAI42B,EAAmB,eAAY9iC,EAAiB3J,EAAQwK,EAAKX,EAAQtQ,KAAK8F,WAAY9F,KAAK+yC,mBAC3FxkC,EAAUvO,KAAK0xC,SACfx8B,EAAWlV,KAAKic,cAIpB,IAHIjc,KAAKgc,sBACL9G,GAAYlV,KAAK2xC,eAEdlrC,EAASwK,EAAKxK,GAAU6J,EAAQ,CACnC,IAAI5F,EAAIwoC,EAAiBzsC,GAAUzG,KAAK8b,aACpClR,EAAIsoC,EAAiBzsC,EAAS,GAAKzG,KAAK+b,aAC5C,GAAiB,IAAb7G,GACsB,GAAtBlV,KAAK8yC,WAAW,IACM,GAAtB9yC,KAAK8yC,WAAW,GAAS,CACzB,IAAIK,EAAiB,eAAiBnzC,KAAKgzC,mBAAoBtoC,EAAGE,EAAG,EAAG,EAAGsK,GAAWxK,GAAIE,GAC1F2D,EAAQilC,aAAajhC,MAAMhE,EAAS4kC,GACpC5kC,EAAQ+6B,UAAU5+B,EAAGE,GACrB2D,EAAQ8L,MAAMra,KAAK8yC,WAAW,GAAI9yC,KAAK8yC,WAAW,IAC9C9yC,KAAKoc,kBACL7N,EAAQslC,WAAW7zC,KAAK6b,MAAO,EAAG,GAElC7b,KAAKkc,gBACL3N,EAAQulC,SAAS9zC,KAAK6b,MAAO,EAAG,GAEpCtN,EAAQilC,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,QAGhCxzC,KAAKoc,kBACL7N,EAAQslC,WAAW7zC,KAAK6b,MAAOnR,EAAGE,GAElC5K,KAAKkc,gBACL3N,EAAQulC,SAAS9zC,KAAK6b,MAAOnR,EAAGE,MAchD0mC,EAAwBvxC,UAAUg0C,cAAgB,SAAU3jC,EAAiB3J,EAAQwK,EAAKX,EAAQ0jC,GAC9F,IAAIzlC,EAAUvO,KAAK0xC,SACfwB,EAAmB,eAAY9iC,EAAiB3J,EAAQwK,EAAKX,EAAQtQ,KAAK8F,WAAY9F,KAAK+yC,mBAC/FxkC,EAAQ2b,OAAOgpB,EAAiB,GAAIA,EAAiB,IACrD,IAAIzyC,EAASyyC,EAAiBzyC,OAC1BuzC,IACAvzC,GAAU,GAEd,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,GAAK,EAC7BgO,EAAQ4b,OAAO+oB,EAAiB3yC,GAAI2yC,EAAiB3yC,EAAI,IAK7D,OAHIyzC,GACAzlC,EAAQq4B,YAEL31B,GAUXqgC,EAAwBvxC,UAAUk0C,WAAa,SAAU7jC,EAAiB3J,EAAQ4J,EAAMC,GACpF,IAAK,IAAI/P,EAAI,EAAGC,EAAK6P,EAAK5P,OAAQF,EAAIC,IAAMD,EACxCkG,EAASzG,KAAK+zC,cAAc3jC,EAAiB3J,EAAQ4J,EAAK9P,GAAI+P,GAAQ,GAE1E,OAAO7J,GASX6qC,EAAwBvxC,UAAUstC,WAAa,SAAUtwB,GACrD,GAAK,eAAW/c,KAAKyY,QAASsE,EAAS/P,aAAvC,CAGA,GAAIhN,KAAKiyC,YAAcjyC,KAAKkyC,aAAc,CAClClyC,KAAKiyC,YACLjyC,KAAK0zC,qBAAqB1zC,KAAKiyC,YAE/BjyC,KAAKkyC,cACLlyC,KAAK2zC,uBAAuB3zC,KAAKkyC,cAErC,IAAIgB,EAAmB,eAAgBn2B,EAAU/c,KAAK8F,WAAY9F,KAAK+yC,mBACnE9/B,EAAKigC,EAAiB,GAAKA,EAAiB,GAC5ChgC,EAAKggC,EAAiB,GAAKA,EAAiB,GAC5CgB,EAAStrC,KAAK0S,KAAKrI,EAAKA,EAAKC,EAAKA,GAClC3E,EAAUvO,KAAK0xC,SACnBnjC,EAAQ0b,YACR1b,EAAQ4lC,IAAIjB,EAAiB,GAAIA,EAAiB,GAAIgB,EAAQ,EAAG,EAAItrC,KAAKmqB,IACtE/yB,KAAKiyC,YACL1jC,EAAQ6lC,OAERp0C,KAAKkyC,cACL3jC,EAAQg7B,SAGG,KAAfvpC,KAAK6b,OACL7b,KAAKyzC,UAAU12B,EAASjI,YAAa,EAAG,EAAG,KAUnDw8B,EAAwBvxC,UAAUohC,SAAW,SAAU97B,GACnDrF,KAAKme,mBAAmB9Y,EAAM6b,UAAW7b,EAAMgc,aAC/CrhB,KAAKovC,cAAc/pC,EAAMkmC,YACzBvrC,KAAK8gB,aAAazb,EAAM0d,YAK5BuuB,EAAwBvxC,UAAUyzC,aAAe,SAAUzoC,GACvD/K,KAAK8F,WAAaiF,GAStBumC,EAAwBvxC,UAAUs0C,aAAe,SAAUt3B,GACvD,IAAIhb,EAAOgb,EAAS9C,UACpB,OAAQlY,GACJ,IAAK,QACD/B,KAAKqvC,UACgD,GACrD,MACJ,IAAK,aACDrvC,KAAK2uC,eACqD,GAC1D,MACJ,IAAK,UACD3uC,KAAK0vC,YACkD,GACvD,MACJ,IAAK,aACD1vC,KAAKyvC,eACqD,GAC1D,MACJ,IAAK,kBACDzvC,KAAK4uC,oBAC0D,GAC/D,MACJ,IAAK,eACD5uC,KAAK8uC,iBACuD,GAC5D,MACJ,IAAK,qBACD9uC,KAAKs0C,uBAC6D,GAClE,MACJ,IAAK,SACDt0C,KAAKqtC,WACiD,GACtD,MACJ,WAaRiE,EAAwBvxC,UAAUw0C,YAAc,SAAUv3B,EAAS3X,GAC/D,IAAI0X,EAAW1X,EAAM0oC,qBAAN1oC,CAA4B2X,GACtCD,GAAa,eAAW/c,KAAKyY,QAASsE,EAAS/P,eAGpDhN,KAAKmhC,SAAS97B,GACdrF,KAAKq0C,aAAat3B,KAQtBu0B,EAAwBvxC,UAAUu0C,uBAAyB,SAAUv3B,GAEjE,IADA,IAAIwxB,EAAaxxB,EAAS0xB,qBACjBluC,EAAI,EAAGC,EAAK+tC,EAAW9tC,OAAQF,EAAIC,IAAMD,EAC9CP,KAAKq0C,aAAa9F,EAAWhuC,KASrC+wC,EAAwBvxC,UAAUsvC,UAAY,SAAUtyB,GAChD/c,KAAK4xC,oBACL70B,EAAiEA,EAASnD,oBAAoB5Z,KAAK4xC,kBAAmB5xC,KAAK6xC,iBAE/H,IAAIzhC,EAAkB2M,EAASvC,qBAC3BlK,EAASyM,EAAShD,YAClB/Z,KAAKmyC,QACLnyC,KAAKizC,YAAY7iC,EAAiB,EAAGA,EAAgB3P,OAAQ6P,GAE9C,KAAftQ,KAAK6b,OACL7b,KAAKyzC,UAAUrjC,EAAiB,EAAGA,EAAgB3P,OAAQ6P,IASnEghC,EAAwBvxC,UAAU0vC,eAAiB,SAAU1yB,GACrD/c,KAAK4xC,oBACL70B,EAAsEA,EAASnD,oBAAoB5Z,KAAK4xC,kBAAmB5xC,KAAK6xC,iBAEpI,IAAIzhC,EAAkB2M,EAASvC,qBAC3BlK,EAASyM,EAAShD,YAClB/Z,KAAKmyC,QACLnyC,KAAKizC,YAAY7iC,EAAiB,EAAGA,EAAgB3P,OAAQ6P,GAE9C,KAAftQ,KAAK6b,OACL7b,KAAKyzC,UAAUrjC,EAAiB,EAAGA,EAAgB3P,OAAQ6P,IASnEghC,EAAwBvxC,UAAU4uC,eAAiB,SAAU5xB,GAIzD,GAHI/c,KAAK4xC,oBACL70B,EAAsEA,EAASnD,oBAAoB5Z,KAAK4xC,kBAAmB5xC,KAAK6xC,iBAE/H,eAAW7xC,KAAKyY,QAASsE,EAAS/P,aAAvC,CAGA,GAAIhN,KAAKkyC,aAAc,CACnBlyC,KAAK2zC,uBAAuB3zC,KAAKkyC,cACjC,IAAI3jC,EAAUvO,KAAK0xC,SACfthC,EAAkB2M,EAASvC,qBAC/BjM,EAAQ0b,YACRjqB,KAAK+zC,cAAc3jC,EAAiB,EAAGA,EAAgB3P,OAAQsc,EAAShD,aAAa,GACrFxL,EAAQg7B,SAEZ,GAAmB,KAAfvpC,KAAK6b,MAAc,CACnB,IAAI24B,EAAez3B,EAAS1D,kBAC5BrZ,KAAKyzC,UAAUe,EAAc,EAAG,EAAG,MAS3ClD,EAAwBvxC,UAAU6uC,oBAAsB,SAAU7xB,GAC1D/c,KAAK4xC,oBACL70B,EACoEA,EAASnD,oBAAoB5Z,KAAK4xC,kBAAmB5xC,KAAK6xC,iBAElI,IAAI4C,EAAiB13B,EAAS/P,YAC9B,GAAK,eAAWhN,KAAKyY,QAASg8B,GAA9B,CAGA,GAAIz0C,KAAKkyC,aAAc,CACnBlyC,KAAK2zC,uBAAuB3zC,KAAKkyC,cACjC,IAAI3jC,EAAUvO,KAAK0xC,SACfthC,EAAkB2M,EAASvC,qBAC3B/T,EAAS,EACT4J,EAAqC0M,EAASzC,UAC9ChK,EAASyM,EAAShD,YACtBxL,EAAQ0b,YACR,IAAK,IAAI1pB,EAAI,EAAGC,EAAK6P,EAAK5P,OAAQF,EAAIC,IAAMD,EACxCkG,EAASzG,KAAK+zC,cAAc3jC,EAAiB3J,EAAQ4J,EAAK9P,GAAI+P,GAAQ,GAE1E/B,EAAQg7B,SAEZ,GAAmB,KAAfvpC,KAAK6b,MAAc,CACnB,IAAI64B,EAAgB33B,EAASzD,mBAC7BtZ,KAAKyzC,UAAUiB,EAAe,EAAGA,EAAcj0C,OAAQ,MAS/D6wC,EAAwBvxC,UAAU2vC,YAAc,SAAU3yB,GAItD,GAHI/c,KAAK4xC,oBACL70B,EAAmEA,EAASnD,oBAAoB5Z,KAAK4xC,kBAAmB5xC,KAAK6xC,iBAE5H,eAAW7xC,KAAKyY,QAASsE,EAAS/P,aAAvC,CAGA,GAAIhN,KAAKkyC,cAAgBlyC,KAAKiyC,WAAY,CAClCjyC,KAAKiyC,YACLjyC,KAAK0zC,qBAAqB1zC,KAAKiyC,YAE/BjyC,KAAKkyC,cACLlyC,KAAK2zC,uBAAuB3zC,KAAKkyC,cAErC,IAAI3jC,EAAUvO,KAAK0xC,SACnBnjC,EAAQ0b,YACRjqB,KAAKi0C,WAAWl3B,EAASvD,6BAA8B,EACzBuD,EAASzC,UAAYyC,EAAShD,aACxD/Z,KAAKiyC,YACL1jC,EAAQ6lC,OAERp0C,KAAKkyC,cACL3jC,EAAQg7B,SAGhB,GAAmB,KAAfvpC,KAAK6b,MAAc,CACnB,IAAI84B,EAAoB53B,EAAS7D,uBACjClZ,KAAKyzC,UAAUkB,EAAmB,EAAG,EAAG,MAQhDrD,EAAwBvxC,UAAU+uC,iBAAmB,SAAU/xB,GAI3D,GAHI/c,KAAK4xC,oBACL70B,EAAwEA,EAASnD,oBAAoB5Z,KAAK4xC,kBAAmB5xC,KAAK6xC,iBAEjI,eAAW7xC,KAAKyY,QAASsE,EAAS/P,aAAvC,CAGA,GAAIhN,KAAKkyC,cAAgBlyC,KAAKiyC,WAAY,CAClCjyC,KAAKiyC,YACLjyC,KAAK0zC,qBAAqB1zC,KAAKiyC,YAE/BjyC,KAAKkyC,cACLlyC,KAAK2zC,uBAAuB3zC,KAAKkyC,cAErC,IAAI3jC,EAAUvO,KAAK0xC,SACfthC,EAAkB2M,EAASvD,6BAC3B/S,EAAS,EACTkL,EAAQoL,EAASxC,WACjBjK,EAASyM,EAAShD,YACtBxL,EAAQ0b,YACR,IAAK,IAAI1pB,EAAI,EAAGC,EAAKmR,EAAMlR,OAAQF,EAAIC,IAAMD,EAAG,CAC5C,IAAI8P,EAAOsB,EAAMpR,GACjBkG,EAASzG,KAAKi0C,WAAW7jC,EAAiB3J,EAAQ4J,EAAMC,GAExDtQ,KAAKiyC,YACL1jC,EAAQ6lC,OAERp0C,KAAKkyC,cACL3jC,EAAQg7B,SAGhB,GAAmB,KAAfvpC,KAAK6b,MAAc,CACnB,IAAI+4B,EAAqB73B,EAAS3D,wBAClCpZ,KAAKyzC,UAAUmB,EAAoB,EAAGA,EAAmBn0C,OAAQ,MAOzE6wC,EAAwBvxC,UAAU2zC,qBAAuB,SAAUz2B,GAC/D,IAAI1O,EAAUvO,KAAK0xC,SACfmD,EAAmB70C,KAAK8xC,kBACvB+C,EAOGA,EAAiBp0B,WAAaxD,EAAUwD,YACxCo0B,EAAiBp0B,UAAYxD,EAAUwD,UACvClS,EAAQkS,UAAYxD,EAAUwD,YARlClS,EAAQkS,UAAYxD,EAAUwD,UAC9BzgB,KAAK8xC,kBAAoB,CACrBrxB,UAAWxD,EAAUwD,aAcjC6wB,EAAwBvxC,UAAU4zC,uBAAyB,SAAUz2B,GACjE,IAAI3O,EAAUvO,KAAK0xC,SACfoD,EAAqB90C,KAAK+xC,oBACzB+C,GAqBGA,EAAmBh1B,SAAW5C,EAAY4C,UAC1Cg1B,EAAmBh1B,QAAU5C,EAAY4C,QACzCvR,EAAQuR,QAAU5C,EAAY4C,SAE9BvR,EAAQwmC,cACH,eAAOD,EAAmB30B,SAAUjD,EAAYiD,WACjD5R,EAAQwmC,YAAaD,EAAmB30B,SAAWjD,EAAYiD,UAE/D20B,EAAmB/0B,gBAAkB7C,EAAY6C,iBACjD+0B,EAAmB/0B,eAAiB7C,EAAY6C,eAChDxR,EAAQwR,eAAiB7C,EAAY6C,iBAGzC+0B,EAAmB70B,UAAY/C,EAAY+C,WAC3C60B,EAAmB70B,SAAW/C,EAAY+C,SAC1C1R,EAAQ0R,SAAW/C,EAAY+C,UAE/B60B,EAAmB90B,WAAa9C,EAAY8C,YAC5C80B,EAAmB90B,UAAY9C,EAAY8C,UAC3CzR,EAAQyR,UAAY9C,EAAY8C,WAEhC80B,EAAmB50B,YAAchD,EAAYgD,aAC7C40B,EAAmB50B,WAAahD,EAAYgD,WAC5C3R,EAAQ2R,WAAahD,EAAYgD,YAEjC40B,EAAmBj1B,aAAe3C,EAAY2C,cAC9Ci1B,EAAmBj1B,YAAc3C,EAAY2C,YAC7CtR,EAAQsR,YAAc3C,EAAY2C,eA/CtCtR,EAAQuR,QAAU5C,EAAY4C,QAC1BvR,EAAQwmC,cACRxmC,EAAQwmC,YAAY73B,EAAYiD,UAChC5R,EAAQwR,eAAiB7C,EAAY6C,gBAEzCxR,EAAQ0R,SAAW/C,EAAY+C,SAC/B1R,EAAQyR,UAAY9C,EAAY8C,UAChCzR,EAAQ2R,WAAahD,EAAYgD,WACjC3R,EAAQsR,YAAc3C,EAAY2C,YAClC7f,KAAK+xC,oBAAsB,CACvBjyB,QAAS5C,EAAY4C,QACrBK,SAAUjD,EAAYiD,SACtBJ,eAAgB7C,EAAY6C,eAC5BE,SAAU/C,EAAY+C,SACtBD,UAAW9C,EAAY8C,UACvBE,WAAYhD,EAAYgD,WACxBL,YAAa3C,EAAY2C,eAuCrCyxB,EAAwBvxC,UAAU6zC,qBAAuB,SAAUz2B,GAC/D,IAAI5O,EAAUvO,KAAK0xC,SACfsD,EAAmBh1C,KAAKgyC,kBACxB3yB,EAAYlC,EAAUkC,UACpBlC,EAAUkC,UACV,OACD21B,GAWGA,EAAiB30B,MAAQlD,EAAUkD,OACnC20B,EAAiB30B,KAAOlD,EAAUkD,KAClC9R,EAAQ8R,KAAOlD,EAAUkD,MAEzB20B,EAAiB31B,WAAaA,IAC9B21B,EAAiB31B,UAA2C,EAC5D9Q,EAAQ8Q,UAA2C,GAEnD21B,EAAiBz0B,cAAgBpD,EAAUoD,eAC3Cy0B,EAAiBz0B,aAAkDpD,EAAsB,aACzF5O,EAAQgS,aAAkDpD,EAAsB,gBApBpF5O,EAAQ8R,KAAOlD,EAAUkD,KACzB9R,EAAQ8Q,UAA2C,EACnD9Q,EAAQgS,aAAkDpD,EAAsB,aAChFnd,KAAKgyC,kBAAoB,CACrB3xB,KAAMlD,EAAUkD,KAChBhB,UAAWA,EACXkB,aAAcpD,EAAUoD,gBAyBpC+wB,EAAwBvxC,UAAUoe,mBAAqB,SAAUsC,EAAWZ,GACxE,IAAInb,EAAQ1E,KACZ,GAAKygB,EAGA,CACD,IAAIw0B,EAAiBx0B,EAAUU,WAC/BnhB,KAAKiyC,WAAa,CACdxxB,UAAW,eAAYw0B,GAAkC,cAL7Dj1C,KAAKiyC,WAAa,KAQtB,GAAKpyB,EAGA,CACD,IAAIq1B,EAAmBr1B,EAAYsB,WAC/Bg0B,EAAqBt1B,EAAY4B,aACjC2zB,EAAsBv1B,EAAYyB,cAClC+zB,EAA4Bx1B,EAAY0B,oBACxC+zB,EAAsBz1B,EAAY6B,cAClC6zB,EAAmB11B,EAAYjL,WAC/B4gC,EAAwB31B,EAAY2B,gBACpCrB,EAAWi1B,GAET,OACNp1C,KAAKkyC,aAAe,CAChBpyB,aAAgCrd,IAAvB0yC,EACHA,EACA,OACNh1B,SAA+B,IAArBngB,KAAKiqC,YACT9pB,EACAA,EAAShf,KAAI,SAAU6sB,GAAK,OAAOA,EAAItpB,EAAMulC,eACnDlqB,gBAAiBs1B,GAEX,QAAyBr1C,KAAKiqC,YACpChqB,cAAkCxd,IAAxB6yC,EACJA,EACA,OACNt1B,gBAAiCvd,IAArB8yC,EACNA,EACA,QAAoBv1C,KAAKiqC,YAC/B/pB,gBAAsCzd,IAA1B+yC,EACNA,EACA,OACN31B,YAAa,eAAYq1B,GAAsC,cAhCnEl1C,KAAKkyC,aAAe,MA0C5BZ,EAAwBvxC,UAAUqvC,cAAgB,SAAU1B,GACxD,IAAI+H,EACJ,GAAK/H,IAAgB+H,EAAY/H,EAAWvlC,WAA5C,CAIA,IAAIutC,EAAchI,EAAWiI,YACzBC,EAAclI,EAAWmI,YAC7B71C,KAAKmyC,OAASzE,EAAWnC,SAASvrC,KAAKiqC,aACvCjqC,KAAKoyC,cAAgBsD,EAAY,GAAK11C,KAAKiqC,YAC3CjqC,KAAKqyC,cAAgBqD,EAAY,GAAK11C,KAAKiqC,YAC3CjqC,KAAKsyC,aAAemD,EAAU,GAAKz1C,KAAKiqC,YACxCjqC,KAAKuyC,cAAgB7E,EAAWoI,aAChC91C,KAAKwyC,cAAgBoD,EAAY,GACjC51C,KAAKyyC,cAAgBmD,EAAY,GACjC51C,KAAK0yC,qBAAuBhF,EAAW9qB,oBACvC5iB,KAAK2yC,eAAiBjF,EAAW5qB,cACjC9iB,KAAK4yC,YAAclF,EAAW7rB,gBAC9B7hB,KAAK6yC,YAAc4C,EAAU,GAAKz1C,KAAKiqC,iBAfnCjqC,KAAKmyC,OAAS,MAuBtBb,EAAwBvxC,UAAU+gB,aAAe,SAAUC,GACvD,GAAKA,EAGA,CACD,IAAIE,EAAgBF,EAAUG,UAC9B,GAAKD,EAGA,CACD,IAAI80B,EAAqB90B,EAAcE,WACvCnhB,KAAKkc,eAAiB,CAClBuE,UAAW,eAAYs1B,GAA0C,cALrE/1C,KAAKkc,eAAiB,KAQ1B,IAAIkF,EAAkBL,EAAUM,YAChC,GAAKD,EAGA,CACD,IAAI40B,EAAuB50B,EAAgBD,WACvC80B,EAAyB70B,EAAgBK,aACzCy0B,EAA0B90B,EAAgBE,cAC1C60B,EAAgC/0B,EAAgBG,oBAChD60B,EAA0Bh1B,EAAgBM,cAC1C20B,EAAuBj1B,EAAgBxM,WACvC0hC,EAA4Bl1B,EAAgBI,gBAChDxhB,KAAKoc,iBAAmB,CACpB0D,aAAoCrd,IAA3BwzC,EACHA,EACA,OACN91B,SAAU+1B,GAEJ,OACNn2B,eAAgBo2B,GAEV,OACNl2B,cAAsCxd,IAA5B2zC,EACJA,EACA,OACNp2B,eAAoCvd,IAAzB4zC,EACLA,EACA,OACNn2B,gBAA0Czd,IAA9B6zC,EACNA,EACA,OACNz2B,YAAa,eAAYm2B,GAA8C,cA7B3Eh2C,KAAKoc,iBAAmB,KAgC5B,IAAIm6B,EAAWx1B,EAAUY,UACrBY,EAAcxB,EAAUyB,aACxBC,EAAc1B,EAAU2B,aACxBC,EAAqB5B,EAAU6B,oBAC/BC,EAAe9B,EAAU+B,cACzBlB,EAAYb,EAAUc,gBACtB20B,EAAWz1B,EAAUgC,UACrB0zB,EAAgB11B,EAAUkB,eAC1By0B,EAAmB31B,EAAUoB,kBACjCniB,KAAKsc,WAAa,CACd+D,UAAmB5d,IAAb8zC,EAAyBA,EAAW,OAC1Cl3B,eAA6B5c,IAAlBg0C,EAA8BA,EAAgB,OACzDl2B,kBAAmC9d,IAArBi0C,EACRA,EACA,QAEV12C,KAAK6b,WACYpZ,IAAb+zC,EACMhzC,MAAM6tB,QAAQmlB,GACVA,EAASG,QAAO,SAAUC,EAAK1b,EAAG36B,GAAK,OAAQq2C,GAAOr2C,EAAI,EAAI,IAAM26B,KAAO,IAC3Esb,EACJ,GACVx2C,KAAK8b,kBACerZ,IAAhB8f,EAA4BviB,KAAKiqC,YAAc1nB,EAAc,EACjEviB,KAAK+b,kBACetZ,IAAhBggB,EAA4BziB,KAAKiqC,YAAcxnB,EAAc,EACjEziB,KAAKgc,yBACsBvZ,IAAvBkgB,GAAmCA,EACvC3iB,KAAKic,mBAAiCxZ,IAAjBogB,EAA6BA,EAAe,EACjE7iB,KAAK8yC,WAAa,CACd9yC,KAAKiqC,YAAcroB,EAAU,GAC7B5hB,KAAKiqC,YAAcroB,EAAU,SA9EjC5hB,KAAK6b,MAAQ,IAkFdy1B,EA74BiC,CA84B1CuF,EAAA,MACa,I,gDC36BJC,EAAwB,GAe5B,SAASC,EAA4BttC,EAAMguB,EAAY2I,EAAU5nB,EAAepM,EAAQ6I,EAAYC,GACvG,IAAI3H,EAAQ9D,EAAK,GAAKqtC,EAClBxpC,EAAS7D,EAAK,GAAKqtC,EACnBvoC,EAAU,eAAsBhB,EAAOD,GAC3CiB,EAAQgJ,uBAAwB,EAOhC,IANA,IAAIrJ,EAASK,EAAQL,OACjB+/B,EAAW,IAAI,EAAwB1/B,EAASuoC,EAAuB1qC,EAAQ,KAAM8I,GACrF8hC,EAAe5W,EAAS3/B,OAExBw2C,EAAcruC,KAAKuO,MAAM,SAAwB6/B,GACjDE,EAAmB,GACd32C,EAAI,EAAGA,GAAKy2C,IAAgBz2C,EAAG,CACpC,IAAIyc,EAAUojB,EAAS7/B,EAAI,GACvB42C,EAAuBn6B,EAAQhD,oBAAsBxB,EACzD,GAAKA,EAAL,CAGA,IAAIopB,EAASuV,EAAqBn6B,EAAS/H,GAC3C,GAAK2sB,EAAL,CAGKp+B,MAAM6tB,QAAQuQ,KACfA,EAAS,CAACA,IAId,IAFA,IAAIjd,EAAQpkB,EAAI02C,EACZG,EAAQ,KAAO,SAAWzyB,EAAM0B,SAAS,KAAKtT,OAAO,GAChDue,EAAI,EAAGC,EAAKqQ,EAAOnhC,OAAQ6wB,EAAIC,IAAMD,EAAG,CAC7C,IAAI+lB,EAAgBzV,EAAOtQ,GACvBvU,EAAWs6B,EAActJ,qBAAdsJ,CAAoCr6B,GACnD,GAAKD,GAAa,eAAW3Q,EAAQ2Q,EAAS/P,aAA9C,CAGA,IAAI3H,EAAQgyC,EAAcvkC,QACtBshC,EAAO/uC,EAAM6b,UACbkzB,GACAA,EAAKkD,SAASF,GAElB,IAAI7N,EAASlkC,EAAMgc,YACfkoB,IACAA,EAAO+N,SAASF,GAChB7N,EAAOwL,YAAY,OAEvB1vC,EAAMkyC,aAAQ90C,GACd,IAAIukB,EAAQqwB,EAAc9L,WAC1B,GAAIvkB,GAAgC,IAAvBA,EAAM8uB,aAAoB,CACnC,IAAI0B,EAAUxwB,EAAMywB,eACpB,IAAKD,EACD,SAEJ,IAAIE,EAAa,eAAsBF,EAAQ,GAAIA,EAAQ,QAAI/0C,EAAW,CAAE2wC,OAAO,IAC/EuE,EAAMD,EAAWxpC,OACrBwpC,EAAWj3B,UAAY22B,EACvBM,EAAW7Q,SAAS,EAAG,EAAG8Q,EAAIpqC,MAAOoqC,EAAIrqC,QACzCjI,EAAMuyC,SAAS,IAAIC,EAAA,KAAK,CACpBF,IAAKA,EACLH,QAASA,EACTM,OAAQ9wB,EAAM2uB,YACdoC,aAAcC,EAAA,KAAgBC,OAC9BC,aAAcF,EAAA,KAAgBC,OAC9BxxC,OAAQugB,EAAM6uB,YACdsC,QAAS,EACT1uC,KAAMud,EAAM7e,UACZkS,MAAO2M,EAAMoxB,WACbljC,SAAU8R,EAAMlE,cAChBu1B,eAAgBrxB,EAAMpE,uBAG9B,IAAI01B,EAASjzC,EAAM+nC,aAAe,EAC9BmL,EAAiBrB,EAAiBoB,GACjCC,IACDA,EAAiB,GACjBrB,EAAiBoB,GAAUC,EAC3BA,EAAe,WAAa,GAC5BA,EAAe,UAAY,GAC3BA,EAAe,cAAgB,GAC/BA,EAAe,SAAW,IAE9BA,EAAex7B,EAAS9C,UAAUud,QAAQ,QAAS,KAAKtmB,KAAK6L,EAAU1X,OAM/E,IAHA,IAAImzC,EAAa14C,OAAO4kB,KAAKwyB,GACxB/1C,IAAI+8B,QACJ3sB,KAAK,QACM/Q,GAAPD,EAAI,EAAQi4C,EAAW/3C,QAAQF,EAAIC,IAAMD,EAAG,CAC7Cg4C,EAAiBrB,EAAiBsB,EAAWj4C,IACjD,IAAK,IAAIwB,KAAQw2C,EACb,KAAIE,EAAeF,EAAex2C,GAClC,IAASuvB,EAAI,EAAGC,EAAKknB,EAAah4C,OAAQ6wB,EAAIC,EAAID,GAAK,EAAG,CACtD2c,EAAS9M,SAASsX,EAAannB,EAAI,IACnC,IAAK,IAAIonB,EAAI,EAAGC,EAAKlhB,EAAWh3B,OAAQi4C,EAAIC,IAAMD,EAC9CzK,EAASuF,aAAa/b,EAAWihB,IACjCzK,EAASoG,aAAaoE,EAAannB,MAKnD,OAAO/iB,EAAQia,aAAa,EAAG,EAAGta,EAAOX,MAAOW,EAAOZ,QAWpD,SAASsrC,EAAUtuC,EAAO81B,EAAUyY,GACvC,IAAIC,EAAiB,GACrB,GAAID,EAAW,CACX,IAAInuC,EAAI9B,KAAKuO,MAAMvO,KAAK+B,MAAML,EAAM,IAAMwsC,GACtClsC,EAAIhC,KAAKuO,MAAMvO,KAAK+B,MAAML,EAAM,IAAMwsC,GAItCnyB,EAEA,GAFS,eAAMja,EAAG,EAAGmuC,EAAUtrC,MAAQ,GACvC,eAAM3C,EAAG,EAAGiuC,EAAUvrC,OAAS,GAAKurC,EAAUtrC,OAE9CwD,EAAI8nC,EAAUlwB,KAAKhE,GACnBo0B,EAAIF,EAAUlwB,KAAKhE,EAAQ,GAC3BthB,EAAIw1C,EAAUlwB,KAAKhE,EAAQ,GAC3BpkB,EAAI8C,EAAI,KAAO01C,EAAI,IAAMhoC,GACzBkmC,EAAcruC,KAAKuO,MAAM,SAAwBipB,EAAS3/B,QAC1DF,GAAKA,EAAI02C,IAAgB,GACzB6B,EAAe5nC,KAAKkvB,EAAS7/B,EAAI02C,EAAc,IAGvD,OAAO6B,I,gHCxJP51C,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA8BxC,EAAiC,SAAUU,GAK3C,SAASw0C,EAAgBlsC,GACrB,IAAIpI,EAAQF,EAAOb,KAAK3D,OAASA,KAC7ByE,EAAUqI,GAA4B,GAW1C,OANApI,EAAMu0C,OAASx0C,EAAQkE,MAAQlE,EAAQkE,MAAQ,EAK/CjE,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAC/D7E,EAsBX,OAvCAxB,EAAU81C,EAAiBx0C,GAyB3Bw0C,EAAgBj5C,UAAUmkB,YAAc,SAAUvjB,GAC9C,IAAIqE,GAAY,EAChB,GAAIrE,EAAgBoB,MAAQm3C,EAAA,KAAoBz6C,SAAU,CACtD,IAAI06C,EAA0Cx4C,EAA6B,cACvEQ,EAAMR,EAAgBQ,IACtB22C,EAASn3C,EAAgByS,WACzBzK,EAAQwwC,EAAan4C,UAAYhB,KAAKi5C,OAASj5C,KAAKi5C,OACpDnmB,EAAO3xB,EAAI4H,UACf,eAAY+pB,EAAMnqB,EAAOmvC,EAAQ93C,KAAKyyB,WACtC0mB,EAAaxnB,iBACb3sB,GAAY,EAEhB,OAAQA,GAELg0C,EAxCyB,CAyClCI,EAAA,MACa,I,4DCxEX,EAAwC,WACxC,IAAIj2C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAqCxC,EAAyB,SAAUU,GAKnC,SAAS60C,EAAQvsC,GACb,IAAIpI,EAAQF,EAAOb,KAAK3D,KAAM,CAC1Bs5C,SAAU,UACRt5C,KACFyE,EAAUqI,GAA4B,GAK1CpI,EAAM60C,SAAW90C,EAAQ+0C,QAIzB90C,EAAM+0C,aAAe,KAIrB/0C,EAAMg1C,mBAINh1C,EAAMi1C,UAAW,EACjB,IAAIra,EAAY76B,EAAQ66B,UAClB76B,EAAQ66B,UACR,eAAI,OAAgB,QAa1B,OARA56B,EAAM26B,WAAa56B,EAAQm1C,YACrB,eAAI,OAAmBta,GACvBA,EAKN56B,EAAMm1C,YAAa,EACZn1C,EAwGX,OAjJA,EAAU20C,EAAS70C,GA+CnB60C,EAAQt5C,UAAU+5C,gBAAkB,SAAUn5C,GACrCX,KAAK25C,WACN35C,KAAK25C,UAAW,EAChB35C,KAAKgH,SAAS+B,UAAUgxC,oBAE5B,IAAIC,EAAiBh6C,KAAKg6C,eACtBC,EAAW,eAAqBD,GACpC,GAAIA,EAAev5C,QAAUT,KAAK05C,oBAI9B,GAHI15C,KAAKu5C,UACLv5C,KAAKu5C,SAASW,OAAOD,EAAS,GAAIA,EAAS,IAE3Cj6C,KAAKy5C,aAAc,CACnB,IAAI9wC,EAAQ,CACR3I,KAAKy5C,aAAa,GAAKQ,EAAS,GAChCA,EAAS,GAAKj6C,KAAKy5C,aAAa,IAEhCt4C,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UACf,eAAgBJ,EAAOmqB,EAAKiY,iBAC5B,eAAiBpiC,EAAOmqB,EAAKhQ,eAC7BgQ,EAAKqnB,qBAAqBxxC,SAGzB3I,KAAKu5C,UAGVv5C,KAAKu5C,SAASn8B,QAElBpd,KAAKy5C,aAAeQ,EACpBj6C,KAAK05C,mBAAqBM,EAAev5C,OACzCE,EAAgBC,cAAc+wB,kBAOlC0nB,EAAQt5C,UAAUq6C,cAAgB,SAAUz5C,GACxC,IAAIQ,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UACf,GAAmC,IAA/B/I,KAAKg6C,eAAev5C,OAAc,CAClC,IAAKT,KAAK65C,YAAc75C,KAAKu5C,UAAYv5C,KAAKu5C,SAAStoC,MAAO,CAC1D,IAAIopC,EAAWr6C,KAAKu5C,SAASe,cACzBC,EAAQv6C,KAAKu5C,SAASiB,WACtB1xC,EAASgqB,EAAK9pB,oBACdyxC,EAAWt5C,EAAI+H,+BAA+BJ,GAC9C4xC,EAAOv5C,EAAImI,+BAA+B,CAC1CmxC,EAAS,GAAKJ,EAAWzxC,KAAK8M,IAAI6kC,GAClCE,EAAS,GAAKJ,EAAWzxC,KAAKgN,IAAI2kC,KAEtCznB,EAAKzpB,gBAAgB,CACjBP,OAAQgqB,EAAK6nB,qBAAqBD,GAClCnxC,SAAU,IACVC,OAAQ,SAOhB,OAJIxJ,KAAK25C,WACL35C,KAAK25C,UAAW,EAChB7mB,EAAK8nB,mBAEF,EASP,OANI56C,KAAKu5C,UAGLv5C,KAAKu5C,SAASn8B,QAElBpd,KAAKy5C,aAAe,MACb,GAQfJ,EAAQt5C,UAAU86C,gBAAkB,SAAUl6C,GAC1C,GAAIX,KAAKg6C,eAAev5C,OAAS,GAAKT,KAAKq/B,WAAW1+B,GAAkB,CACpE,IAAIQ,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UAYf,OAXA/I,KAAKy5C,aAAe,KAEhB3mB,EAAKoB,gBACLpB,EAAKqB,mBAELn0B,KAAKu5C,UACLv5C,KAAKu5C,SAASn8B,QAIlBpd,KAAK65C,WAAa75C,KAAKg6C,eAAev5C,OAAS,GACxC,EAGP,OAAO,GAGR44C,EAlJiB,CAmJ1ByB,EAAA,MACa,I,YCzLX,EAAwC,WACxC,IAAI33C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAuCxC,EAA4B,SAAUU,GAKtC,SAASu2C,EAAWjuC,GAChB,IAAIpI,EAAQ1E,KACRyE,EAAUqI,GAA4B,GAmB1C,OAlBApI,EAAQF,EAAOb,KAAK3D,KAAM,CACtBs5C,SAAU,UACRt5C,KAKN0E,EAAM26B,WAAa56B,EAAQ66B,UAAY76B,EAAQ66B,UAAY,OAK3D56B,EAAMs2C,gBAAav4C,EAKnBiC,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAC/D7E,EA0DX,OAnFA,EAAUq2C,EAAYv2C,GA+BtBu2C,EAAWh7C,UAAU+5C,gBAAkB,SAAUn5C,GAC7C,GAAK,eAAUA,GAAf,CAGA,IAAIQ,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UACf,GAAI+pB,EAAKmoB,iBAAiB/lC,WAAa,OAAvC,CAGA,IAAIzL,EAAOtI,EAAIgH,UACX1B,EAAS9F,EAAgB2J,MACzB4wC,EAAQtyC,KAAKuyC,MAAM1xC,EAAK,GAAK,EAAIhD,EAAO,GAAIA,EAAO,GAAKgD,EAAK,GAAK,GACtE,QAAwBhH,IAApBzC,KAAKg7C,WAA0B,CAC/B,IAAIryC,EAAQuyC,EAAQl7C,KAAKg7C,WACzBloB,EAAKsoB,wBAAwBzyC,GAEjC3I,KAAKg7C,WAAaE,KAOtBH,EAAWh7C,UAAUq6C,cAAgB,SAAUz5C,GAC3C,IAAK,eAAUA,GACX,OAAO,EAEX,IAAIQ,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UAEf,OADA+pB,EAAK8nB,eAAe56C,KAAKyyB,YAClB,GAOXsoB,EAAWh7C,UAAU86C,gBAAkB,SAAUl6C,GAC7C,IAAK,eAAUA,GACX,OAAO,EAEX,GAAI,eAAkBA,IAClBX,KAAKq/B,WAAW1+B,GAAkB,CAClC,IAAIQ,EAAMR,EAAgBQ,IAG1B,OAFAA,EAAI4H,UAAUgxC,mBACd/5C,KAAKg7C,gBAAav4C,GACX,EAGP,OAAO,GAGRs4C,EApFoB,CAqF7BD,EAAA,MACa,I,oCC1HX,EAAwC,WACxC,IAAI33C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAiBxC,EAA2B,SAAUU,GAKrC,SAAS62C,EAAUj2C,GACf,IAAIV,EAAQF,EAAOb,KAAK3D,OAASA,KA6BjC,OAxBA0E,EAAM42C,UAAY,KAKlB52C,EAAM62C,SAAWr2C,SAASC,cAAc,OACxCT,EAAM62C,SAASl2C,MAAMC,SAAW,WAChCZ,EAAM62C,SAASl2C,MAAME,cAAgB,OACrCb,EAAM62C,SAASn2C,UAAY,UAAYA,EAKvCV,EAAMwsC,KAAO,KAKbxsC,EAAM82C,YAAc,KAKpB92C,EAAM+2C,UAAY,KACX/2C,EA4EX,OA9GA,EAAU22C,EAAW72C,GAuCrB62C,EAAUt7C,UAAUukB,gBAAkB,WAClCtkB,KAAK8H,OAAO,OAKhBuzC,EAAUt7C,UAAU27C,QAAU,WAC1B,IAAIC,EAAa37C,KAAKw7C,YAClBI,EAAW57C,KAAKy7C,UAChBI,EAAK,KACLx2C,EAAQrF,KAAKu7C,SAASl2C,MAC1BA,EAAMwE,KAAOjB,KAAK0J,IAAIqpC,EAAW,GAAIC,EAAS,IAAMC,EACpDx2C,EAAM4E,IAAMrB,KAAK0J,IAAIqpC,EAAW,GAAIC,EAAS,IAAMC,EACnDx2C,EAAMkI,MAAQ3E,KAAKC,IAAI+yC,EAAS,GAAKD,EAAW,IAAME,EACtDx2C,EAAMiI,OAAS1E,KAAKC,IAAI+yC,EAAS,GAAKD,EAAW,IAAME,GAK3DR,EAAUt7C,UAAU+H,OAAS,SAAU3G,GACnC,GAAInB,KAAKkxC,KAAM,CACXlxC,KAAKkxC,KAAKzpC,sBAAsBkI,YAAY3P,KAAKu7C,UACjD,IAAIl2C,EAAQrF,KAAKu7C,SAASl2C,MAC1BA,EAAMwE,KAAO,UACbxE,EAAM4E,IAAM,UACZ5E,EAAMkI,MAAQ,UACdlI,EAAMiI,OAAS,UAEnBtN,KAAKkxC,KAAO/vC,EACRnB,KAAKkxC,MACLlxC,KAAKkxC,KAAKzpC,sBAAsBL,YAAYpH,KAAKu7C,WAOzDF,EAAUt7C,UAAU+7C,UAAY,SAAUH,EAAYC,GAClD57C,KAAKw7C,YAAcG,EACnB37C,KAAKy7C,UAAYG,EACjB57C,KAAK+7C,yBACL/7C,KAAK07C,WAKTL,EAAUt7C,UAAUg8C,uBAAyB,WACzC,IAAIJ,EAAa37C,KAAKw7C,YAClBI,EAAW57C,KAAKy7C,UAChBO,EAAS,CACTL,EACA,CAACA,EAAW,GAAIC,EAAS,IACzBA,EACA,CAACA,EAAS,GAAID,EAAW,KAEzB7pC,EAAckqC,EAAO76C,IAAInB,KAAKkxC,KAAK5nC,+BAAgCtJ,KAAKkxC,MAE5Ep/B,EAAY,GAAKA,EAAY,GAAGiB,QAC3B/S,KAAKs7C,UAINt7C,KAAKs7C,UAAUW,eAAe,CAACnqC,IAH/B9R,KAAKs7C,UAAY,IAAIY,EAAA,KAAQ,CAACpqC,KAStCupC,EAAUt7C,UAAU0Z,YAAc,WAC9B,OAAOzZ,KAAKs7C,WAETD,EA/GmB,CAgH5Bc,EAAA,MACa,ICrIX,EAAwC,WACxC,IAAIh5C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA8CxCs4C,EAAmB,CAMnBC,SAAU,WAMVC,QAAS,UAMTC,OAAQ,SAMRC,UAAW,aAOXC,EAA8B,SAAUj4C,GAOxC,SAASi4C,EAAa16C,EAAMqR,EAAYzS,GACpC,IAAI+D,EAAQF,EAAOb,KAAK3D,KAAM+B,IAAS/B,KAcvC,OAPA0E,EAAM0O,WAAaA,EAMnB1O,EAAM/D,gBAAkBA,EACjB+D,EAEX,OAvBA,EAAU+3C,EAAcj4C,GAuBjBi4C,EAxBsB,CAyB/BC,EAAA,MAuBE,EAAyB,SAAUl4C,GAKnC,SAASm4C,EAAQ7vC,GACb,IAAIpI,EAAQF,EAAOb,KAAK3D,OAASA,KAIjC0E,EAAMC,GAIND,EAAME,KAINF,EAAMG,GACN,IAAIJ,EAAUqI,GAA4B,GA+B1C,OA1BApI,EAAMk4C,KAAO,IAAI,EAAUn4C,EAAQW,WAAa,cAKhDV,EAAMm4C,cAA+Bp6C,IAApBgC,EAAQq4C,QAAwBr4C,EAAQq4C,QAAU,GAC/Dr4C,EAAQs4C,WACRr4C,EAAMq4C,SAAWt4C,EAAQs4C,UAM7Br4C,EAAM82C,YAAc,KAKpB92C,EAAM26B,WAAa56B,EAAQ66B,UAAY76B,EAAQ66B,UAAY,OAK3D56B,EAAMs4C,iBAAmBv4C,EAAQw4C,gBAC3Bx4C,EAAQw4C,gBACRv4C,EAAMw4C,uBACLx4C,EAoEX,OArHA,EAAUi4C,EAASn4C,GA4DnBm4C,EAAQ58C,UAAUm9C,uBAAyB,SAAUv8C,EAAiBg7C,EAAYC,GAC9E,IAAIruC,EAAQquC,EAAS,GAAKD,EAAW,GACjCruC,EAASsuC,EAAS,GAAKD,EAAW,GACtC,OAAOpuC,EAAQA,EAAQD,EAASA,GAAUtN,KAAK68C,UAOnDF,EAAQ58C,UAAU0Z,YAAc,WAC5B,OAAOzZ,KAAK48C,KAAKnjC,eAMrBkjC,EAAQ58C,UAAU+5C,gBAAkB,SAAUn5C,GAC1CX,KAAK48C,KAAKd,UAAU97C,KAAKw7C,YAAa76C,EAAgB2J,OACtDtK,KAAK4jB,cAAc,IAAI64B,EAAaL,EAAiBE,QAAS37C,EAAgByS,WAAYzS,KAO9Fg8C,EAAQ58C,UAAUq6C,cAAgB,SAAUz5C,GACxCX,KAAK48C,KAAK90C,OAAO,MACjB,IAAIq1C,EAAcn9C,KAAKg9C,iBAAiBr8C,EAAiBX,KAAKw7C,YAAa76C,EAAgB2J,OAK3F,OAJI6yC,GACAn9C,KAAK+8C,SAASp8C,GAElBX,KAAK4jB,cAAc,IAAI64B,EAAaU,EAAcf,EAAiBG,OAASH,EAAiBI,UAAW77C,EAAgByS,WAAYzS,KAC7H,GAOXg8C,EAAQ58C,UAAU86C,gBAAkB,SAAUl6C,GAC1C,QAAIX,KAAKq/B,WAAW1+B,KAChBX,KAAKw7C,YAAc76C,EAAgB2J,MACnCtK,KAAK48C,KAAK90C,OAAOnH,EAAgBQ,KACjCnB,KAAK48C,KAAKd,UAAU97C,KAAKw7C,YAAax7C,KAAKw7C,aAC3Cx7C,KAAK4jB,cAAc,IAAI64B,EAAaL,EAAiBC,SAAU17C,EAAgByS,WAAYzS,KACpF,IAUfg8C,EAAQ58C,UAAUg9C,SAAW,SAAU18C,KAChCs8C,EAtHiB,CAuH1B7B,EAAA,MACa,ICrPX,EAAwC,WACxC,IAAI33C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA4CxC,EAA0B,SAAUU,GAKpC,SAAS44C,EAAStwC,GACd,IAAIpI,EAAQ1E,KACRyE,EAAUqI,GAA4B,GACtCwyB,EAAY76B,EAAQ66B,UAAY76B,EAAQ66B,UAAY,OAgBxD,OAfA56B,EAAQF,EAAOb,KAAK3D,KAAM,CACtBs/B,UAAWA,EACXl6B,UAAWX,EAAQW,WAAa,cAChC03C,QAASr4C,EAAQq4C,WACf98C,KAKN0E,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAKtE7E,EAAM24C,UAAuB56C,IAAhBgC,EAAQ64C,KAAoB74C,EAAQ64C,IAC1C54C,EAsBX,OA7CA,EAAU04C,EAAU54C,GA6BpB44C,EAASr9C,UAAUg9C,SAAW,SAAU18C,GACpC,IAAIc,EAAMnB,KAAKgH,SACX8rB,EAAqD3xB,EAAI4H,UACzDgU,EAAW/c,KAAKyZ,cACpB,GAAIzZ,KAAKq9C,KAAM,CACX,IAAIE,EAAgBzqB,EAAK0qB,yBAAyBzgC,GAC9C9H,EAAa6d,EAAK2qB,+BAA+BF,GACjDG,EAAS5qB,EAAKiY,gBAAkB91B,EACpC8H,EAAWA,EAASjK,QACpBiK,EAAS1C,MAAMqjC,EAASA,GAE5B5qB,EAAK6qB,YAAY5gC,EAAU,CACvBxT,SAAUvJ,KAAKyyB,UACfjpB,OAAQ,UAGT4zC,EA9CkB,CA+C3B,GACa,I,YCrFA,GACXz9C,KAAM,GACNi+C,GAAI,GACJn+C,MAAO,GACPo+C,KAAM,ICXN,EAAwC,WACxC,IAAI16C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA+CxC,EAA6B,SAAUU,GAKvC,SAASs5C,EAAYhxC,GACjB,IAAIpI,EAAQF,EAAOb,KAAK3D,OAASA,KAC7ByE,EAAUqI,GAAe,GA4B7B,OAtBApI,EAAMq5C,kBAAoB,SAAUp9C,GAChC,OAAQ,eAAeA,IAAoB,eAAkBA,IAMjE+D,EAAM26B,gBACoB58B,IAAtBgC,EAAQ66B,UACF76B,EAAQ66B,UACR56B,EAAMq5C,kBAKhBr5C,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAKtE7E,EAAMs5C,iBACqBv7C,IAAvBgC,EAAQw5C,WAA2Bx5C,EAAQw5C,WAAa,IACrDv5C,EA6CX,OA/EA,EAAUo5C,EAAat5C,GA4CvBs5C,EAAY/9C,UAAUmkB,YAAc,SAAUvjB,GAC1C,IAAIqE,GAAY,EAChB,GAAIrE,EAAgBoB,MAAQwlB,EAAA,KAAUzoB,QAAS,CAC3C,IAAIo/C,EAAyCv9C,EAA6B,cACtEw9C,EAAUD,EAASC,QACvB,GAAIn+C,KAAKq/B,WAAW1+B,KACfw9C,GAAWC,EAAQP,MAChBM,GAAWC,EAAQz+C,MACnBw+C,GAAWC,EAAQ3+C,OACnB0+C,GAAWC,EAAQR,IAAK,CAC5B,IAAIz8C,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UACXs1C,EAAgBvrB,EAAKiY,gBAAkB/qC,KAAKg+C,YAC5CM,EAAS,EAAGC,EAAS,EACrBJ,GAAWC,EAAQP,KACnBU,GAAUF,EAELF,GAAWC,EAAQz+C,KACxB2+C,GAAUD,EAELF,GAAWC,EAAQ3+C,MACxB6+C,EAASD,EAGTE,EAASF,EAEb,IAAI11C,EAAQ,CAAC21C,EAAQC,GACrB,eAAiB51C,EAAOmqB,EAAKhQ,eAC7B,eAAIgQ,EAAMnqB,EAAO3I,KAAKyyB,WACtByrB,EAASvsB,iBACT3sB,GAAY,GAGpB,OAAQA,GAEL84C,EAhFqB,CAiF9B1E,EAAA,MACa,ICjIX,EAAwC,WACxC,IAAIj2C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA2CxC,EAA8B,SAAUU,GAKxC,SAASg6C,EAAa1xC,GAClB,IAAIpI,EAAQF,EAAOb,KAAK3D,OAASA,KAC7ByE,EAAUqI,GAA4B,GAgB1C,OAXApI,EAAM26B,WAAa56B,EAAQ66B,UAAY76B,EAAQ66B,UAAY,OAK3D56B,EAAMu0C,OAASx0C,EAAQkE,MAAQlE,EAAQkE,MAAQ,EAK/CjE,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAC/D7E,EA4BX,OAlDA,EAAU85C,EAAch6C,GAgCxBg6C,EAAaz+C,UAAUmkB,YAAc,SAAUvjB,GAC3C,IAAIqE,GAAY,EAChB,GAAIrE,EAAgBoB,MAAQwlB,EAAA,KAAUzoB,SAClC6B,EAAgBoB,MAAQwlB,EAAA,KAAUxoB,SAAU,CAC5C,IAAIm/C,EAAyCv9C,EAA6B,cACtE89C,EAAWP,EAASO,SACxB,GAAIz+C,KAAKq/B,WAAW1+B,KACf89C,GAAY,IAAIC,WAAW,IAAMD,GAAY,IAAIC,WAAW,IAAK,CAClE,IAAIv9C,EAAMR,EAAgBQ,IACtBwH,EAAQ81C,GAAY,IAAIC,WAAW,GAAK1+C,KAAKi5C,QAAUj5C,KAAKi5C,OAC5DnmB,EAAO3xB,EAAI4H,UACf,eAAY+pB,EAAMnqB,OAAOlG,EAAWzC,KAAKyyB,WACzCyrB,EAASvsB,iBACT3sB,GAAY,GAGpB,OAAQA,GAELw5C,EAnDsB,CAoD/BpF,EAAA,MACa,ICvFXuF,EAAyB,WAOzB,SAASA,EAAQC,EAAOC,EAAaC,GAKjC9+C,KAAK++C,OAASH,EAKd5+C,KAAKg/C,aAAeH,EAKpB7+C,KAAKi/C,OAASH,EAKd9+C,KAAKk/C,QAAU,GAKfl/C,KAAKm/C,OAAS,EAKdn/C,KAAKo/C,iBAAmB,EA+D5B,OA1DAT,EAAQ5+C,UAAUqd,MAAQ,WACtBpd,KAAKk/C,QAAQz+C,OAAS,EACtBT,KAAKm/C,OAAS,EACdn/C,KAAKo/C,iBAAmB,GAM5BT,EAAQ5+C,UAAUm6C,OAAS,SAAUxvC,EAAGE,GACpC5K,KAAKk/C,QAAQhuC,KAAKxG,EAAGE,EAAGy3B,KAAKgd,QAKjCV,EAAQ5+C,UAAUkR,IAAM,WACpB,GAAIjR,KAAKk/C,QAAQz+C,OAAS,EAGtB,OAAO,EAEX,IAAIq+C,EAAQzc,KAAKgd,MAAQr/C,KAAKi/C,OAC1BK,EAAYt/C,KAAKk/C,QAAQz+C,OAAS,EACtC,GAAIT,KAAKk/C,QAAQI,EAAY,GAAKR,EAG9B,OAAO,EAGX,IAAIS,EAAaD,EAAY,EAC7B,MAAOC,EAAa,GAAKv/C,KAAKk/C,QAAQK,EAAa,GAAKT,EACpDS,GAAc,EAElB,IAAIh2C,EAAWvJ,KAAKk/C,QAAQI,EAAY,GAAKt/C,KAAKk/C,QAAQK,EAAa,GAIvE,GAAIh2C,EAAW,IAAO,GAClB,OAAO,EAEX,IAAI0J,EAAKjT,KAAKk/C,QAAQI,GAAat/C,KAAKk/C,QAAQK,GAC5CrsC,EAAKlT,KAAKk/C,QAAQI,EAAY,GAAKt/C,KAAKk/C,QAAQK,EAAa,GAGjE,OAFAv/C,KAAKm/C,OAASv2C,KAAKuyC,MAAMjoC,EAAID,GAC7BjT,KAAKo/C,iBAAmBx2C,KAAK0S,KAAKrI,EAAKA,EAAKC,EAAKA,GAAM3J,EAChDvJ,KAAKo/C,iBAAmBp/C,KAAKg/C,cAKxCL,EAAQ5+C,UAAUu6C,YAAc,WAC5B,OAAQt6C,KAAKg/C,aAAeh/C,KAAKo/C,kBAAoBp/C,KAAK++C,QAK9DJ,EAAQ5+C,UAAUy6C,SAAW,WACzB,OAAOx6C,KAAKm/C,QAETR,EApGiB,GAsGb,I,yBC/GX,EAAwC,WACxC,IAAIx7C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA0BjC07C,EAAO,CACdC,SAAU,WACVtgD,MAAO,SAyBP,EAAgC,SAAUqF,GAK1C,SAASk7C,EAAe5yC,GACpB,IAAIpI,EAAQ1E,KACRyE,EAAUqI,GAA4B,GAC1CpI,EAAQF,EAAOb,KAAK3D,KACyC,IAAcA,KAK3E0E,EAAMi7C,YAAc,EAKpBj7C,EAAMk7C,WAAa,EAKnBl7C,EAAMm7C,eAAiCp9C,IAArBgC,EAAQq7C,SAAyBr7C,EAAQq7C,SAAW,EAKtEp7C,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAKtE7E,EAAMq7C,cAA+Bt9C,IAApBgC,EAAQu7C,QAAwBv7C,EAAQu7C,QAAU,GAKnEt7C,EAAMu7C,gBACoBx9C,IAAtBgC,EAAQy7C,WAA0Bz7C,EAAQy7C,UAK9Cx7C,EAAMy7C,0BAC8B19C,IAAhCgC,EAAQ27C,qBACF37C,EAAQ27C,oBAElB,IAAI9gB,EAAY76B,EAAQ66B,UAAY76B,EAAQ66B,UAAY,OA4CxD,OAvCA56B,EAAM26B,WAAa56B,EAAQm1C,YACrB,eAAI,OAAmBta,GACvBA,EAKN56B,EAAM27C,YAAc,KAKpB37C,EAAM47C,gBAAa79C,EAKnBiC,EAAM67C,WAKN77C,EAAM87C,WAAQ/9C,EAMdiC,EAAM+7C,kBAAoB,IAI1B/7C,EAAMg8C,mBAMNh8C,EAAMi8C,cAAgB,IACfj8C,EAmHX,OA/MA,EAAUg7C,EAAgBl7C,GAiG1Bk7C,EAAe3/C,UAAU6gD,gBAAkB,WACvC5gD,KAAK0gD,wBAAqBj+C,EAC1B,IAAItB,EAAMnB,KAAKgH,SACf,GAAK7F,EAAL,CAGA,IAAI2xB,EAAO3xB,EAAI4H,UACf+pB,EAAK8nB,oBAAen4C,EAAWzC,KAAK4/C,WAAc5/C,KAAK4/C,WAAa,EAAI,GAAK,EAAK,EAAG5/C,KAAKqgD,eAQ9FX,EAAe3/C,UAAUmkB,YAAc,SAAUvjB,GAC7C,IAAKX,KAAKq/B,WAAW1+B,GACjB,OAAO,EAEX,IAAIoB,EAAOpB,EAAgBoB,KAC3B,GAAIA,IAASwlB,EAAA,KAAUpoB,MACnB,OAAO,EAEX,IAQIwJ,EARAxH,EAAMR,EAAgBQ,IACtB0/C,EAAwClgD,EAA6B,cAiBzE,GAhBAkgD,EAAWlvB,iBACP3xB,KAAKigD,aACLjgD,KAAKqgD,YAAc1/C,EAAgByS,YAKnCzS,EAAgBoB,MAAQwlB,EAAA,KAAUpoB,QAClCwJ,EAAQk4C,EAAWtC,OACf,QAAWsC,EAAWC,YAAcC,WAAWC,kBAC/Cr4C,GAAS,QAETk4C,EAAWC,YAAcC,WAAWE,iBACpCt4C,GAAS,KAGH,IAAVA,EACA,OAAO,EAGP3I,KAAK4/C,WAAaj3C,EAEtB,IAAI02C,EAAMhd,KAAKgd,WACS58C,IAApBzC,KAAKsgD,aACLtgD,KAAKsgD,WAAajB,KAEjBr/C,KAAKwgD,OAASnB,EAAMr/C,KAAKsgD,WAAatgD,KAAKygD,qBAC5CzgD,KAAKwgD,MAAQ53C,KAAKC,IAAIF,GAAS,EAAI62C,EAAKC,SAAWD,EAAKrgD,OAE5D,IAAI2zB,EAAO3xB,EAAI4H,UACf,GAAI/I,KAAKwgD,QAAUhB,EAAKC,WAClB3sB,EAAKouB,2BAA4BlhD,KAAKmgD,qBAaxC,OAZIngD,KAAK0gD,mBACLS,aAAanhD,KAAK0gD,qBAGd5tB,EAAKoB,gBACLpB,EAAKqB,mBAETrB,EAAKinB,oBAET/5C,KAAK0gD,mBAAqB5U,WAAW9rC,KAAK4gD,gBAAgBn7B,KAAKzlB,MAAOA,KAAK+/C,UAC3EjtB,EAAKsuB,YAAYz4C,EAAQ3I,KAAK2gD,cAAe3gD,KAAKqgD,aAClDrgD,KAAKsgD,WAAajB,GACX,EAEXr/C,KAAK2/C,aAAeh3C,EACpB,IAAI04C,EAAWz4C,KAAK4E,IAAIxN,KAAK+/C,UAAYV,EAAMr/C,KAAKsgD,YAAa,GAGjE,OAFAa,aAAanhD,KAAKugD,YAClBvgD,KAAKugD,WAAazU,WAAW9rC,KAAKshD,iBAAiB77B,KAAKzlB,KAAMmB,GAAMkgD,IAC7D,GAMX3B,EAAe3/C,UAAUuhD,iBAAmB,SAAUngD,GAClD,IAAI2xB,EAAO3xB,EAAI4H,UACX+pB,EAAKoB,gBACLpB,EAAKqB,mBAET,IAAIxrB,GAAS,eAAM3I,KAAK2/C,aAAc3/C,KAAK6/C,UAAY7/C,KAAK2gD,cAAe3gD,KAAK6/C,UAAY7/C,KAAK2gD,eAAiB3gD,KAAK2gD,eACnH7tB,EAAKouB,0BAA4BlhD,KAAKmgD,wBAEtCx3C,EAAQA,EAASA,EAAQ,EAAI,GAAK,EAAK,GAE3C,eAAYmqB,EAAMnqB,EAAO3I,KAAKqgD,YAAargD,KAAKyyB,WAChDzyB,KAAKwgD,WAAQ/9C,EACbzC,KAAK2/C,YAAc,EACnB3/C,KAAKqgD,YAAc,KACnBrgD,KAAKsgD,gBAAa79C,EAClBzC,KAAKugD,gBAAa99C,GAQtBi9C,EAAe3/C,UAAUwhD,eAAiB,SAAUrB,GAChDlgD,KAAKigD,WAAaC,EACbA,IACDlgD,KAAKqgD,YAAc,OAGpBX,EAhNwB,CAiNjCtG,EAAA,MACa,ICvQX,EAAwC,WACxC,IAAIj2C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GAiCxC,EAA6B,SAAUU,GAKvC,SAASg9C,EAAY10C,GACjB,IAAIpI,EAAQ1E,KACRyE,EAAUqI,GAA4B,GACtC20C,EAA+D,EAmCnE,OAlCKA,EAAenI,WAChBmI,EAAenI,SAAW,QAE9B50C,EAAQF,EAAOb,KAAK3D,KAAMyhD,IAAmBzhD,KAK7C0E,EAAMg9C,QAAU,KAKhBh9C,EAAMs2C,gBAAav4C,EAKnBiC,EAAMi9C,WAAY,EAKlBj9C,EAAMk9C,eAAiB,EAKvBl9C,EAAMm9C,gBAAmCp/C,IAAtBgC,EAAQq9C,UAA0Br9C,EAAQq9C,UAAY,GAKzEp9C,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAC/D7E,EA6EX,OAvHA,EAAU88C,EAAah9C,GAgDvBg9C,EAAYzhD,UAAU+5C,gBAAkB,SAAUn5C,GAC9C,IAAIohD,EAAgB,EAChBC,EAAShiD,KAAKg6C,eAAe,GAC7BiI,EAASjiD,KAAKg6C,eAAe,GAE7BO,EAAQ3xC,KAAKuyC,MAAM8G,EAAOC,QAAUF,EAAOE,QAASD,EAAOE,QAAUH,EAAOG,SAChF,QAAwB1/C,IAApBzC,KAAKg7C,WAA0B,CAC/B,IAAIryC,EAAQ4xC,EAAQv6C,KAAKg7C,WACzBh7C,KAAK4hD,gBAAkBj5C,GAClB3I,KAAK2hD,WAAa/4C,KAAKC,IAAI7I,KAAK4hD,gBAAkB5hD,KAAK6hD,aACxD7hD,KAAK2hD,WAAY,GAErBI,EAAgBp5C,EAEpB3I,KAAKg7C,WAAaT,EAClB,IAAIp5C,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UACf,GAAI+pB,EAAKmoB,iBAAiB/lC,WAAa,OAAvC,CAMA,IAAIktC,EAAmBjhD,EAAIkhD,cAAc14C,wBACrCswC,EAAW,eAAqBj6C,KAAKg6C,gBACzCC,EAAS,IAAMmI,EAAiBv4C,KAChCowC,EAAS,IAAMmI,EAAiBn4C,IAChCjK,KAAK0hD,QAAUvgD,EAAImI,+BAA+B2wC,GAE9Cj6C,KAAK2hD,YACLxgD,EAAIkG,SACJyrB,EAAKsoB,uBAAuB2G,EAAe/hD,KAAK0hD,YAQxDF,EAAYzhD,UAAUq6C,cAAgB,SAAUz5C,GAC5C,GAAIX,KAAKg6C,eAAev5C,OAAS,EAAG,CAChC,IAAIU,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UAEf,OADA+pB,EAAK8nB,eAAe56C,KAAKyyB,YAClB,EAGP,OAAO,GAQf+uB,EAAYzhD,UAAU86C,gBAAkB,SAAUl6C,GAC9C,GAAIX,KAAKg6C,eAAev5C,QAAU,EAAG,CACjC,IAAIU,EAAMR,EAAgBQ,IAQ1B,OAPAnB,KAAK0hD,QAAU,KACf1hD,KAAKg7C,gBAAav4C,EAClBzC,KAAK2hD,WAAY,EACjB3hD,KAAK4hD,eAAiB,EACjB5hD,KAAKsiD,wBACNnhD,EAAI4H,UAAUgxC,oBAEX,EAGP,OAAO,GAGRyH,EAxHqB,CAyH9B1G,EAAA,MACa,IC3JX,GAAwC,WACxC,IAAI33C,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrD,OAAOwD,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOvD,OAAOC,UAAU2D,eAAeC,KAAKN,EAAGI,KAAIL,EAAEK,GAAKJ,EAAEI,KACzFN,EAAcC,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAChB,GAAiB,oBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIO,UAAU,uBAAyBC,OAAOR,GAAK,iCAE7D,SAASS,IAAO9D,KAAK+D,YAAcX,EADnCD,EAAcC,EAAGC,GAEjBD,EAAErD,UAAkB,OAANsD,EAAavD,OAAOkE,OAAOX,IAAMS,EAAG/D,UAAYsD,EAAEtD,UAAW,IAAI+D,IAZ3C,GA8BxC,GAA2B,SAAUU,GAKrC,SAAS+9C,EAAUz1C,GACf,IAAIpI,EAAQ1E,KACRyE,EAAUqI,GAA4B,GACtC20C,EAA+D,EAyBnE,OAxBKA,EAAenI,WAChBmI,EAAenI,SAAW,QAE9B50C,EAAQF,EAAOb,KAAK3D,KAAMyhD,IAAmBzhD,KAK7C0E,EAAMg9C,QAAU,KAKhBh9C,EAAM+tB,eAAiChwB,IAArBgC,EAAQ8E,SAAyB9E,EAAQ8E,SAAW,IAKtE7E,EAAM89C,mBAAgB//C,EAKtBiC,EAAM+9C,gBAAkB,EACjB/9C,EAsEX,OAtGA,GAAU69C,EAAW/9C,GAsCrB+9C,EAAUxiD,UAAU+5C,gBAAkB,SAAUn5C,GAC5C,IAAI+hD,EAAa,EACbV,EAAShiD,KAAKg6C,eAAe,GAC7BiI,EAASjiD,KAAKg6C,eAAe,GAC7B/mC,EAAK+uC,EAAOG,QAAUF,EAAOE,QAC7BjvC,EAAK8uC,EAAOE,QAAUD,EAAOC,QAE7B7H,EAAWzxC,KAAK0S,KAAKrI,EAAKA,EAAKC,EAAKA,QACbzQ,IAAvBzC,KAAKwiD,gBACLE,EAAa1iD,KAAKwiD,cAAgBnI,GAEtCr6C,KAAKwiD,cAAgBnI,EACrB,IAAIl5C,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UACG,GAAd25C,IACA1iD,KAAKyiD,gBAAkBC,GAG3B,IAAIN,EAAmBjhD,EAAIkhD,cAAc14C,wBACrCswC,EAAW,eAAqBj6C,KAAKg6C,gBACzCC,EAAS,IAAMmI,EAAiBv4C,KAChCowC,EAAS,IAAMmI,EAAiBn4C,IAChCjK,KAAK0hD,QAAUvgD,EAAImI,+BAA+B2wC,GAElD94C,EAAIkG,SACJyrB,EAAK6vB,yBAAyBD,EAAY1iD,KAAK0hD,UAOnDa,EAAUxiD,UAAUq6C,cAAgB,SAAUz5C,GAC1C,GAAIX,KAAKg6C,eAAev5C,OAAS,EAAG,CAChC,IAAIU,EAAMR,EAAgBQ,IACtB2xB,EAAO3xB,EAAI4H,UACX65C,EAAY5iD,KAAKyiD,gBAAkB,EAAI,GAAK,EAEhD,OADA3vB,EAAK8nB,eAAe56C,KAAKyyB,UAAWmwB,IAC7B,EAGP,OAAO,GAQfL,EAAUxiD,UAAU86C,gBAAkB,SAAUl6C,GAC5C,GAAIX,KAAKg6C,eAAev5C,QAAU,EAAG,CACjC,IAAIU,EAAMR,EAAgBQ,IAO1B,OANAnB,KAAK0hD,QAAU,KACf1hD,KAAKwiD,mBAAgB//C,EACrBzC,KAAKyiD,gBAAkB,EAClBziD,KAAKsiD,wBACNnhD,EAAI4H,UAAUgxC,oBAEX,EAGP,OAAO,GAGRwI,EAvGmB,CAwG5BzH,EAAA,MACa,MCvDR,SAASzmB,GAASvnB,GACrB,IAAIrI,EAAUqI,GAA4B,GACtCs0B,EAAe,IAAI7M,EAAA,KACnBilB,EAAU,IAAI,GAAS,KAAO,IAAM,KACpCqJ,OAAoDpgD,IAA/BgC,EAAQo+C,oBAC3Bp+C,EAAQo+C,mBAEVA,GACAzhB,EAAalwB,KAAK,IAAI,GAE1B,IAAI4xC,OAA8CrgD,IAA5BgC,EAAQq+C,iBAAgCr+C,EAAQq+C,gBAClEA,GACA1hB,EAAalwB,KAAK,IAAI,EAAgB,CAClCvI,MAAOlE,EAAQs+C,UACfx5C,SAAU9E,EAAQu+C,gBAG1B,IAAIC,OAA8BxgD,IAApBgC,EAAQw+C,SAAwBx+C,EAAQw+C,QAClDA,GACA7hB,EAAalwB,KAAK,IAAI,EAAQ,CAC1B0oC,YAAan1C,EAAQm1C,YACrBJ,QAASA,KAGjB,IAAI0J,OAAsCzgD,IAAxBgC,EAAQy+C,aAA4Bz+C,EAAQy+C,YAC1DA,GACA9hB,EAAalwB,KAAK,IAAI,GAE1B,IAAIiyC,OAAkC1gD,IAAtBgC,EAAQ0+C,WAA0B1+C,EAAQ0+C,UACtDA,GACA/hB,EAAalwB,KAAK,IAAI,GAAU,CAC5B3H,SAAU9E,EAAQu+C,gBAG1B,IAAII,OAAgC3gD,IAArBgC,EAAQ2+C,UAAyB3+C,EAAQ2+C,SACpDA,IACAhiB,EAAalwB,KAAK,IAAI,GACtBkwB,EAAalwB,KAAK,IAAI,EAAa,CAC/BvI,MAAOlE,EAAQs+C,UACfx5C,SAAU9E,EAAQu+C,iBAG1B,IAAIK,OAA4C5gD,IAA3BgC,EAAQ4+C,gBAA+B5+C,EAAQ4+C,eAChEA,GACAjiB,EAAalwB,KAAK,IAAI,EAAe,CACjC0oC,YAAan1C,EAAQm1C,YACrBrwC,SAAU9E,EAAQu+C,gBAG1B,IAAIM,OAA0C7gD,IAA1BgC,EAAQ6+C,eAA8B7+C,EAAQ6+C,cAMlE,OALIA,GACAliB,EAAalwB,KAAK,IAAI,EAAS,CAC3B3H,SAAU9E,EAAQu+C,gBAGnB5hB,I,uBCvIX,IAAIjL,EAAS,EAAQ,QACjBotB,EAAO,EAAQ,QACfC,EAAU,EAAQ,QAClBC,EAAS,EAAQ,QACjBC,EAAiB,EAAQ,QAAgBnoB,EAC7CpjB,EAAOC,QAAU,SAAUkT,GACzB,IAAIq4B,EAAUJ,EAAKK,SAAWL,EAAKK,OAASJ,EAAU,GAAKrtB,EAAOytB,QAAU,IACtD,KAAlBt4B,EAAKu4B,OAAO,IAAev4B,KAAQq4B,GAAUD,EAAeC,EAASr4B,EAAM,CAAEzY,MAAO4wC,EAAOloB,EAAEjQ,O,oCCPnG,IAAIjkB,EAAS,WAAa,IAAIy8C,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,gBAAgB,CAACF,EAAG,kBAAkB,CAACG,MAAM,CAAoB,SAAnBN,EAAIO,WAAwB,8BAAgC,wCAAwCF,MAAM,CAAC,KAAO,SAAS,IAAML,EAAIQ,SAAWR,EAAIQ,SAAW,WAAW,IAAMR,EAAIS,UAAYT,EAAIS,UAAY,aAAa,KAAOT,EAAI39B,KAAO29B,EAAI39B,KAAO,KAAK,MAAQ29B,EAAIv2C,MAAQu2C,EAAIv2C,MAAQu2C,EAAIU,SAAS,OAASV,EAAIx2C,OAASw2C,EAAIx2C,OAAS,QAAQ,MAAQw2C,EAAIW,SAAS,OAASX,EAAIO,cAAkC,SAAnBP,EAAIO,WAAuBJ,EAAG,mBAAmB,CAACS,IAAI,iBAAiBP,MAAM,CAAC,gBAAkBL,EAAIa,gBAAgB,yBAA2Bb,EAAIc,mBAAmBjgD,GAAG,CAAC,aAAem/C,EAAIe,qBAAqBf,EAAIgB,KAAyB,SAAnBhB,EAAIO,WAAuBJ,EAAG,YAAY,CAACc,YAAY,yBAAyBZ,MAAM,CAAC,KAAO,SAAS,KAAO,QAAQ,YAAY,UAAU,KAAO,aAAax/C,GAAG,CAAC,MAAQ,SAASqgD,GAAiC,OAAzBA,EAAOC,kBAAyBnB,EAAIe,mBAAkB,OAAUf,EAAIgB,KAAyB,SAAnBhB,EAAIO,WAAuBJ,EAAG,YAAY,CAACc,YAAY,2BAA2BZ,MAAM,CAAC,KAAO,QAAQ,YAAY,UAAU,KAAO,gBAAgBx/C,GAAG,CAAC,MAAQ,SAASqgD,GAAiC,OAAzBA,EAAOC,kBAAyBnB,EAAIoB,SAAS3yC,MAAM,KAAMnS,eAAe0jD,EAAIgB,KAAyB,SAAnBhB,EAAIO,WAAuBJ,EAAG,gBAAgBH,EAAIgB,KAAMhB,EAAe,YAAEG,EAAG,iBAAiB,CAACc,YAAY,4BAA4BjB,EAAIgB,KAAKb,EAAG,iBAAiB,CAACkB,WAAW,CAAC,CAAC75B,KAAK,OAAO85B,QAAQ,SAASvyC,MAAOixC,EAAIuB,uBAA4C,SAAnBvB,EAAIO,WAAuBiB,WAAW,mDAAmDlB,MAAMN,EAAIyB,OAAOlnC,MAAMmnC,aAAe,wCAA0C,yBAAyBrB,MAAM,CAAC,uBAAyBL,EAAI2B,uBAAuB,cAAgB3B,EAAI4B,kBAAkB,IACpyDC,EAAkB,G,kICDlB,EAAS,WAAa,IAAI7B,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACc,YAAY,wCAAwCZ,MAAM,CAAC,kBAAkB,GAAG,iBAAiB,GAAG,OAAS,OAAO,gBAAgB,IAAI,MAAQ,UAAU,OAAS,IAAIyB,MAAM,CAAC/yC,MAAOixC,EAAwB,qBAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAIgC,qBAAqBD,GAAKP,WAAW,yBAAyB,CAACrB,EAAG,MAAM,CAACc,YAAY,+CAA+C,CAACd,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,4BAA4BhC,EAAG,eAAe,CAACc,YAAY,iBAAiBZ,MAAM,CAAC,KAAO,SAASx/C,GAAG,CAAC,MAAQ,SAASqgD,GAAQA,EAAOC,kBAAkBnB,EAAIgC,sBAAuB,OAAW,GAAG7B,EAAG,aAAa,CAACc,YAAY,SAASd,EAAG,WAAW,CAACc,YAAY,YAAYZ,MAAM,CAAC,WAAaL,EAAIoC,WAAW,MAAQ,gBAAgB,OAASpC,EAAIqC,iBAAiBxhD,GAAG,CAAC,gBAAgB,SAASqgD,GAAQlB,EAAIqC,gBAAgBnB,KAAU,CAACf,EAAG,YAAY,CAACc,YAAY,eAAeZ,MAAM,CAAC,MAAQ,UAAU,KAAO,OAAO,YAAY,UAAU,KAAOL,EAAIoC,WAAa,kBAAoB,mBAAmBvhD,GAAG,CAAC,MAAQ,SAASqgD,GAAQlB,EAAIoC,YAAcpC,EAAIoC,eAAgBpC,EAAe,YAAEG,EAAG,kBAAkB,CAACt/C,GAAG,CAAC,eAAiBm/C,EAAIsC,WAAW,kBAAoBtC,EAAIuC,iBAAiBvC,EAAIgB,MAAM,GAAGb,EAAG,MAAM,CAACc,YAAY,WAAW1/C,MAAM,CAAEihD,UAAW,OAAQh5C,OAAQw2C,EAAIyC,aAAe,IAAM,OAAY,SAAa,CAACtC,EAAG,UAAU,CAAC2B,MAAM,CAAC/yC,MAAOixC,EAAa,UAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI0C,UAAUX,GAAKP,WAAW,cAAc,CAACrB,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQL,EAAImC,GAAG,gCAAgC,CAAChC,EAAG,YAAY,CAACc,YAAY,cAAcZ,MAAM,CAAC,KAAO,UAAUyB,MAAM,CAAC/yC,MAAOixC,EAAc,WAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI2C,WAAWZ,GAAKP,WAAW,eAAe,CAACrB,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,SAASuC,KAAK,SAAS,CAACzC,EAAG,kBAAkB,CAACA,EAAG,OAAO,CAACH,EAAIiC,GAAG,IAAIjC,EAAIkC,GAAGlC,EAAImC,GAAG,oBAAoB,UAAU,GAAGhC,EAAG,iBAAiB,CAACE,MAAM,CAAC,MAAQ,IAAI,CAACF,EAAG,IAAI,CAACt/C,GAAG,CAAC,MAAQ,SAASqgD,GAAQ,OAAOlB,EAAI6C,WAAW,WAAW,CAAC1C,EAAG,MAAM,CAACc,YAAY,6CAA6C,CAACd,EAAG,aAAa,CAACc,YAAY,iBAAiB6B,YAAY,CAAC,UAAU,SAASzC,MAAM,CAAC,MAAQL,EAAImC,GAAG,sBAAsB,MAAQ,UAAU,SAAW,SAAS,KAAOnC,EAAImC,GAAG,8BAA8B,CAAChC,EAAG,UAAU,CAACE,MAAM,CAAC,KAAO,YAAY,KAAO,SAAS,MAA2B,IAAnBL,EAAI2C,WAAmB,UAAY,gBAAgB,GAAGxC,EAAG,QAAQ,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,2BAA2B,OAAOhC,EAAG,iBAAiB,CAACE,MAAM,CAAC,MAAQ,IAAI,CAACF,EAAG,IAAI,CAACt/C,GAAG,CAAC,MAAQ,SAASqgD,GAAQ,OAAOlB,EAAI6C,WAAW,YAAY,CAAC1C,EAAG,MAAM,CAACc,YAAY,6CAA6C,CAACd,EAAG,aAAa,CAAC2C,YAAY,CAAC,UAAU,SAASzC,MAAM,CAAC,MAAQL,EAAImC,GAAG,sBAAsB,MAAQ,UAAU,SAAW,SAAS,KAAOnC,EAAImC,GAAG,8BAA8B,CAAChC,EAAG,UAAU,CAACc,YAAY,iBAAiBZ,MAAM,CAAC,KAAO,cAAc,KAAO,SAAS,MAA2B,IAAnBL,EAAI2C,WAAmB,UAAY,gBAAgB,GAAGxC,EAAG,QAAQ,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,4BAA4B,OAAQnC,EAAI+C,cAAcC,YAAYrmD,OAAS,EAAGwjD,EAAG,iBAAiB,CAACE,MAAM,CAAC,MAAQ,IAAI,CAACF,EAAG,wBAAwB,GAAGH,EAAIgB,MAAM,GAAGb,EAAG,sBAAsB,CAACc,YAAY,UAAUpgD,GAAG,CAAC,gBAAkBm/C,EAAIiD,kBAAkB,CAAC9C,EAAG,MAAM,CAACc,YAAY,kDAAkD,CAACd,EAAG,WAAW,CAACc,YAAY,SAASZ,MAAM,CAAC,iBAAiB,GAAG,YAAcL,EAAImC,GAAG,UAAU,KAAO,cAAc,YAAY,WAAWL,MAAM,CAAC/yC,MAAOixC,EAAe,YAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAIkD,YAAYnB,GAAKP,WAAW,kBAAkB,KAAKrB,EAAG,wBAAwB,CAACc,YAAY,cAAc1/C,MAAM,CAAEiI,OAAQw2C,EAAIyC,aAAe,IAAM,QAAU,QAAYpC,MAAM,CAAC,SAAWL,EAAImD,WAAW,CAAChD,EAAG,MAAM,CAACc,YAAY,4BAA4BZ,MAAM,CAAC,GAAK,4BAA4B,CAAmB,UAAjBL,EAAIoD,UAAwBpD,EAAIqD,oBAAoB1mD,OAAS,IAAMqjD,EAAIsD,kBAAmBnD,EAAG,MAAMH,EAAIuD,GAAIvD,EAAuB,qBAAE,SAASwD,GAAU,OAAOrD,EAAG,mBAAmB,CAAChrC,IAAIquC,EAASC,IAAIpD,MAAM,CAAC,SAAWmD,GAAU3iD,GAAG,CAAC,oBAAsBm/C,EAAI0D,sBAAqB,GAAG1D,EAAIgB,KAAuB,SAAjBhB,EAAIoD,UAAuBpD,EAAIqD,oBAAoB1mD,OAAS,IAAMqjD,EAAIsD,kBAAmBnD,EAAG,MAAM,CAACA,EAAG,KAAK,CAACc,YAAY,kBAAkBjB,EAAIuD,GAAIvD,EAAuB,qBAAE,SAASwD,GAAU,OAAOrD,EAAG,KAAK,CAAChrC,IAAIquC,EAASC,IAAIxC,YAAY,kBAAkB,CAACd,EAAG,wBAAwB,CAACE,MAAM,CAAC,SAAWmD,GAAU3iD,GAAG,CAAC,oBAAsBm/C,EAAI0D,oBAAoB,MAAK,KAAK1D,EAAIgB,KAAOhB,EAAIsD,mBAAwD,IAAnCtD,EAAIqD,oBAAoB1mD,OAE/3IqjD,EAAIgB,KAFy4Ib,EAAG,MAAM,CAACc,YAAY,2BAA2B,CAACd,EAAG,MAAM,CAACc,YAAY,wEAAwE,CAACd,EAAG,MAAM,CAACc,YAAY,eAAeZ,MAAM,CAAC,IAAM,EAAQ,QAAuC,IAAM,uBAAuBF,EAAG,KAAK,CAACc,YAAY,4DAA4D,CAACjB,EAAIiC,GAAG,uBAAuBjC,EAAIkC,GAAGlC,EAAImC,GAAG,iBAAiB,wBAAwBhC,EAAG,IAAI,CAACc,YAAY,2CAA2C,CAACjB,EAAIiC,GAAG,uBAAuBjC,EAAIkC,GAAsC,IAAnClC,EAAIqD,oBAAoB1mD,QAAwC,OAAxBqjD,EAAI2D,gBACvhK3D,EAAImC,GAAG,iCACPnC,EAAImC,GAAG,gCAAgC,4BAAsCnC,EAAqB,kBAAEG,EAAG,MAAM,CAACc,YAAY,2BAA2B,CAACd,EAAG,MAAM,CAACc,YAAY,6EAA6E,CAACd,EAAG,YAAY,KAAKH,EAAIgB,UAAU,GAAGb,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQL,EAAImC,GAAG,sBAAsB,CAAChC,EAAG,MAAM,CAACc,YAAY,YAAY,CAACd,EAAG,YAAY,CAACc,YAAY,cAAcZ,MAAM,CAAC,KAAO,UAAUyB,MAAM,CAAC/yC,MAAOixC,EAAoB,iBAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI4D,iBAAiB7B,GAAKP,WAAW,qBAAqB,CAACrB,EAAG,MAAM,CAACE,MAAM,CAAC,KAAO,SAASuC,KAAK,SAAS,CAACzC,EAAG,kBAAkB,CAACA,EAAG,OAAO,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAI/hD,YAAY,GAAGkiD,EAAG,iBAAiB,CAACE,MAAM,CAAC,MAAQ,IAAI,CAACF,EAAG,IAAI,CAACt/C,GAAG,CAAC,MAAQ,SAASqgD,GAAQ,OAAOlB,EAAI6D,cAAc,MAAM,CAAC1D,EAAG,MAAM,CAACc,YAAY,6CAA6C,CAACd,EAAG,aAAa,CAAC2C,YAAY,CAAC,UAAU,SAASzC,MAAM,CAAC,MAAQ,UAAU,SAAW,SAAS,MAAQL,EAAImC,GAAG,UAAU,KAAOnC,EAAImC,GAAG,0BAA0B,CAAChC,EAAG,UAAU,CAACc,YAAY,iBAAiBZ,MAAM,CAAC,KAAO,WAAW,KAAO,SAAS,MAA+B,aAAvBL,EAAI8D,eAAgC,UAAY,gBAAgB,GAAG3D,EAAG,QAAQ,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,eAAe,OAAOhC,EAAG,iBAAiB,CAACE,MAAM,CAAC,MAAQ,IAAI,CAACF,EAAG,IAAI,CAACt/C,GAAG,CAAC,MAAQ,SAASqgD,GAAQ,OAAOlB,EAAI6D,cAAc,MAAM,CAAC1D,EAAG,MAAM,CAACc,YAAY,6CAA6C,CAACd,EAAG,aAAa,CAAC2C,YAAY,CAAC,UAAU,SAASzC,MAAM,CAAC,MAAQL,EAAImC,GAAG,0BAA0B,MAAQ,UAAU,SAAW,OAAO,KAAO,iEAAiE,CAAChC,EAAG,UAAU,CAACc,YAAY,iBAAiBZ,MAAM,CAAC,KAAO,sBAAsB,KAAO,SAAS,MAA+B,WAAvBL,EAAI8D,eAA8B,UAAY,gBAAgB,GAAG3D,EAAG,QAAQ,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,+BAA+B,QAAQ,GAA6B,IAAzBnC,EAAI4D,iBAAwBzD,EAAG,UAAU,CAACc,YAAY,uCAAuCZ,MAAM,CAAC,YAAY,GAAG,MAAQL,EAAImC,GAAG,0BAA0B,GAAK,4BAA4B,CAAChC,EAAG,MAAM,CAACc,YAAY,UAAU,CAACd,EAAG,MAAM,CAACc,YAAY,iBAAiB,CAACd,EAAG,QAAQ,CAACc,YAAY,mBAAmB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,2BAA2BhC,EAAG,WAAW,CAACc,YAAY,eAAeZ,MAAM,CAAC,WAAY,EAAM,QAAUL,EAAI+D,iBAAiB,KAAO,WAAW,IAAM/D,EAAIgE,IAAIC,IAAM,MAAQ,OAAOC,YAAYlE,EAAImE,GAAG,CAAC,CAAChvC,IAAI,aAAaivC,GAAG,SAASxD,GACl3E,IAAI3oB,EAAS2oB,EAAI3oB,OACbosB,EAAYzD,EAAIyD,UAC/B,MAAO,CAAC,EAAY,CAACrE,EAAIiC,GAAG,2BAA2BjC,EAAIkC,GAAGlC,EAAImC,GAAG,6BAA+B,MAAMhC,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGjqB,OAAY+nB,EAAIgB,SAAS,MAAK,EAAM,YAAYc,MAAM,CAAC/yC,MAAOixC,EAAa,UAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAIsE,UAAUvC,GAAKP,WAAW,gBAAgB,GAAGrB,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,eAAe,CAACt/C,GAAG,CAAC,gBAAkBm/C,EAAIiD,oBAAoB,GAAG9C,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,QAAQ,CAACc,YAAY,mBAAmB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,gCAAgChC,EAAG,WAAW,CAACkB,WAAW,CAAC,CAAC75B,KAAK,WAAW85B,QAAQ,aAAavyC,MAAM,WAAayyC,WAAW,eAAenB,MAAM,CAAC,KAAO,mBAAmB,WAAY,EAAM,QAAUL,EAAIuE,cAAc,IAAMvE,EAAIgE,IAAIC,IAAM,MAAQ,MAAM,SAA6C,IAAlCjE,EAAIwE,mBAAmB7nD,QAAcunD,YAAYlE,EAAImE,GAAG,CAAC,CAAChvC,IAAI,aAAaivC,GAAG,SAASxD,GAC70B,IAAI3oB,EAAS2oB,EAAI3oB,OACbosB,EAAYzD,EAAIyD,UAC/B,MAAO,CAAC,EAAY,CAACrE,EAAIiC,GAAG,2BAA2BjC,EAAIkC,GAAGlC,EAAImC,GAAG,6BAA+B,MAAMhC,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGjqB,OAAY+nB,EAAIgB,SAAS,MAAK,EAAM,YAAYc,MAAM,CAAC/yC,MAAOixC,EAAuB,oBAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAIyE,oBAAoB1C,GAAKP,WAAW,0BAA0B,GAAGrB,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,QAAQ,CAACc,YAAY,mBAAmB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,0BAA0BhC,EAAG,WAAW,CAACc,YAAY,eAAeZ,MAAM,CAAC,SAAmC,aAAxBL,EAAIsE,UAAUv1C,OAAgD,cAAxBixC,EAAIsE,UAAUv1C,MAAsB,WAAY,EAAM,QAAUixC,EAAIwE,mBAAmB,KAAO,WAAW,IAAMxE,EAAIgE,IAAIC,IAAM,MAAQ,MAAM,SAA6C,IAAlCjE,EAAIwE,mBAAmB7nD,QAAcunD,YAAYlE,EAAImE,GAAG,CAAC,CAAChvC,IAAI,aAAaivC,GAAG,SAASxD,GAClwB,IAAI3oB,EAAS2oB,EAAI3oB,OACbosB,EAAYzD,EAAIyD,UAC/B,MAAO,CAAC,EAAY,CAACrE,EAAIiC,GAAG,2BAA2BjC,EAAIkC,GAAGlC,EAAImC,GAAG,6BAA+B,MAAMhC,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGjqB,OAAY+nB,EAAIgB,QAAQ,CAAC7rC,IAAI,SAASivC,GAAG,SAASxD,GACxK,IAAI8D,EAAW9D,EAAI8D,SACfp4B,EAAQs0B,EAAIt0B,MAC3B,MAAO,CAAC6zB,EAAG,OAAO,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGwC,MAAavE,EAAG,MAA2B,aAApBH,EAAI2E,YAA4BxE,EAAG,OAAO,CAAC2C,YAAY,CAAC,YAAY,SAAS,CAAC9C,EAAIiC,GAAGjC,EAAIkC,GAAG51B,MAAU0zB,EAAIgB,SAAS,MAAK,EAAM,YAAYc,MAAM,CAAC/yC,MAAOixC,EAAW,QAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI4E,QAAQ7C,GAAKP,WAAW,YAAY,CAACrB,EAAG,KAAK,CAACc,YAAY,aAAaZ,MAAM,CAAC,KAAO,eAAeuC,KAAK,eAAe,CAACzC,EAAG,gBAAgB,CAACc,YAAY,OAAOZ,MAAM,CAAC,MAAQL,EAAI6E,WAAW,IAAM,GAAG/C,MAAM,CAAC/yC,MAAOixC,EAAe,YAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI8E,YAAY/C,GAAKP,WAAW,kBAAkB,MAAM,GAAGrB,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACc,YAAY,cAAc,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,gBAAgBhC,EAAG,aAAa,CAACE,MAAM,CAAC,SAAWL,EAAIgE,IAAIC,IAAMjE,EAAI+E,OAAS/E,EAAIgF,OAAO,KAAO,aAAa,cAAgBhF,EAAIiF,mBAAmBnD,MAAM,CAAC/yC,MAAOixC,EAAa,UAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAIkF,UAAUnD,GAAKP,WAAW,gBAAgB,OAAOrB,EAAG,YAAY,CAACc,YAAY,sCAAsCZ,MAAM,CAAC,GAAK,mBAAmB,UAAYL,EAAI4E,SAAS/jD,GAAG,CAAC,MAAQm/C,EAAImF,eAAe,CAACnF,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAIoF,eAAe,qBAAqB,GAAGjF,EAAG,gBAAgB,CAACE,MAAM,CAAC,YAAcL,EAAI4E,QAAU5E,EAAI4E,QAAQjoD,OAAS,GAAGkE,GAAG,CAAC,gCAAkCm/C,EAAIqF,4BAA4B,uCAAyCrF,EAAIsF,mCAAmC,mBAAqBtF,EAAIuF,mBAAmB,mCAAqCvF,EAAIwF,uCAAuC,KAAKrF,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQL,EAAImC,GAAG,yBAAyB,CAAChC,EAAG,MAAM,CAACc,YAAY,YAAY,CAACd,EAAG,MAAM,CAACc,YAAY,iBAAiB,CAACd,EAAG,mBAAmB,CAAC5+C,MAAM,CAAEiI,OAAQw2C,EAAIyC,aAAe,IAAM,QAAU,QAAYpC,MAAM,CAAC,aAAeL,EAAIyF,uBAAuB,CAACtF,EAAG,MAAM,CAACA,EAAG,KAAK,CAACuF,SAAS,CAAC,YAAc1F,EAAIkC,GAAGlC,EAAImC,GAAG,2BAA2BhC,EAAG,IAAI,CAACc,YAAY,OAAOyE,SAAS,CAAC,YAAc1F,EAAIkC,GAAGlC,EAAImC,GAAG,yCAAyChC,EAAG,YAAY,CAACc,YAAY,YAAYZ,MAAM,CAAC,GAAK,0BAA0Bx/C,GAAG,CAAC,MAAQm/C,EAAI2F,kBAAkB,CAAC3F,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,WAAW,yBAAyB,MAAM,OAAOhC,EAAG,SAAS,CAACE,MAAM,CAAC,MAAQL,EAAImC,GAAG,wBAAwB,CAAChC,EAAG,MAAM,CAACc,YAAY,YAAY,CAACd,EAAG,MAAM,CAACc,YAAY,cAAc,CAACd,EAAG,UAAU,CAACc,YAAY,4BAA4BZ,MAAM,CAAC,MAAQL,EAAImC,GAAG,2BAA2B,GAAK,4BAA4B,CAAChC,EAAG,MAAM,CAACc,YAAY,UAAU,CAACd,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,eAAe,CAACt/C,GAAG,CAAC,gBAAkBm/C,EAAIiD,oBAAoB,GAAG9C,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,QAAQ,CAACc,YAAY,mBAAmB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,gCAAgChC,EAAG,WAAW,CAACkB,WAAW,CAAC,CAAC75B,KAAK,WAAW85B,QAAQ,aAAavyC,MAAM,WAAayyC,WAAW,eAAenB,MAAM,CAAC,KAAO,mBAAmB,WAAY,EAAM,QAAUL,EAAIuE,cAAc,IAAMvE,EAAIgE,IAAIC,IAAM,MAAQ,MAAM,SAA6C,IAAlCjE,EAAIwE,mBAAmB7nD,QAAcunD,YAAYlE,EAAImE,GAAG,CAAC,CAAChvC,IAAI,aAAaivC,GAAG,SAASxD,GACv8F,IAAI3oB,EAAS2oB,EAAI3oB,OACbosB,EAAYzD,EAAIyD,UAC/B,MAAO,CAAC,EAAY,CAACrE,EAAIiC,GAAG,6BAA6BjC,EAAIkC,GAAGlC,EAAImC,GAAG,6BAA+B,MAAMhC,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGjqB,OAAY+nB,EAAIgB,UAAUc,MAAM,CAAC/yC,MAAOixC,EAAuB,oBAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAIyE,oBAAoB1C,GAAKP,WAAW,0BAA0B,GAAGrB,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,QAAQ,CAACc,YAAY,mBAAmB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,0BAA0BhC,EAAG,WAAW,CAACc,YAAY,eAAeZ,MAAM,CAAC,WAAY,EAAM,QAAUL,EAAIwE,mBAAmB,KAAO,WAAW,IAAMxE,EAAIgE,IAAIC,IAAM,MAAQ,MAAM,SAA6C,IAAlCjE,EAAIwE,mBAAmB7nD,QAAcunD,YAAYlE,EAAImE,GAAG,CAAC,CAAChvC,IAAI,aAAaivC,GAAG,SAASxD,GACzpB,IAAI3oB,EAAS2oB,EAAI3oB,OACbosB,EAAYzD,EAAIyD,UAC/B,MAAO,CAAC,EAAY,CAACrE,EAAIiC,GAAG,6BAA6BjC,EAAIkC,GAAGlC,EAAImC,GAAG,6BAA+B,MAAMhC,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGjqB,OAAY+nB,EAAIgB,QAAQ,CAAC7rC,IAAI,SAASivC,GAAG,SAASxD,GAC1K,IAAI8D,EAAW9D,EAAI8D,SACfp4B,EAAQs0B,EAAIt0B,MAC3B,MAAO,CAAC6zB,EAAG,OAAO,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGwC,MAAavE,EAAG,MAA2B,aAApBH,EAAI2E,YAA4BxE,EAAG,OAAO,CAAC2C,YAAY,CAAC,YAAY,SAAS,CAAC9C,EAAIiC,GAAGjC,EAAIkC,GAAG51B,MAAU0zB,EAAIgB,UAAUc,MAAM,CAAC/yC,MAAOixC,EAAW,QAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI4E,QAAQ7C,GAAKP,WAAW,YAAY,CAACrB,EAAG,KAAK,CAACc,YAAY,aAAaZ,MAAM,CAAC,KAAO,eAAeuC,KAAK,eAAe,CAACzC,EAAG,gBAAgB,CAACc,YAAY,OAAOZ,MAAM,CAAC,MAAQL,EAAI6E,WAAW,IAAM,GAAG/C,MAAM,CAAC/yC,MAAOixC,EAAe,YAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI8E,YAAY/C,GAAKP,WAAW,kBAAkB,MAAM,GAAGrB,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACc,YAAY,cAAc,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,gBAAgBhC,EAAG,aAAa,CAACE,MAAM,CAAC,SAAWL,EAAIgE,IAAIC,IAAMjE,EAAI+E,OAAS/E,EAAIgF,OAAO,KAAO,aAAa,cAAgBhF,EAAIiF,mBAAmBnD,MAAM,CAAC/yC,MAAOixC,EAAa,UAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAIkF,UAAUnD,GAAKP,WAAW,gBAAgB,KAAKrB,EAAG,MAAM,CAACc,YAAY,sBAAsB,CAACd,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACc,YAAY,cAAc,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,eAAehC,EAAG,aAAa,CAACE,MAAM,CAAC,SAAWL,EAAIgE,IAAIC,IAAMjE,EAAI+E,OAAS/E,EAAIgF,OAAO,cAAgBhF,EAAI4F,mBAAmB,KAAO,YAAY9D,MAAM,CAAC/yC,MAAOixC,EAAW,QAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI6F,QAAQ9D,GAAKP,WAAW,aAAarB,EAAG,OAAO,CAACkB,WAAW,CAAC,CAAC75B,KAAK,OAAO85B,QAAQ,SAASvyC,OAAQixC,EAAI8F,gBAAiBtE,WAAW,qBAAqBP,YAAY,uBAAuB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,8CAA8C,OAAOhC,EAAG,YAAY,CAACc,YAAY,sCAAsCZ,MAAM,CAAC,GAAK,mBAAmB,UAAYL,EAAI4E,UAAY5E,EAAI8F,iBAAiBjlD,GAAG,CAAC,MAAQm/C,EAAI+F,oBAAoB,CAAC/F,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAIoF,eAAe,uBAAuB,IAAI,QAAQ,IAAI,GAAGjF,EAAG,MAAM,CAACS,IAAI,yBAAyBT,EAAG,YAAY,CAACE,MAAM,CAAC,OAASL,EAAIgG,6BAA6B,WAAa9pD,KAAKimD,GAAG,UAAU,WAAajmD,KAAKimD,GAAG,UAAU,MAAQnC,EAAImC,GAAG,wBAAwBthD,GAAG,CAAC,OAASm/C,EAAIiG,iBAAiB,OAASjG,EAAIkG,YAAY,MAAQlG,EAAI9P,MAAM,gBAAgB,SAASgR,GAAQlB,EAAIgG,6BAA6B9E,KAAU,CAACf,EAAG,MAAM,CAACA,EAAG,IAAI,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAI+C,cAAcv7B,SAASw4B,EAAIiC,GAAG,KAAKjC,EAAIkC,GAAGlC,EAAImC,GAAG,+BAA+B,YAAYhC,EAAG,KAAK,CAACc,YAAY,kBAAkB,CAACd,EAAG,KAAK,CAACA,EAAG,cAAc,CAAC2B,MAAM,CAAC/yC,MAAOixC,EAAwB,qBAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAImG,qBAAqBpE,GAAKP,WAAW,yBAAyB,CAACxB,EAAIiC,GAAG,IAAIjC,EAAIkC,GAAGlC,EAAImC,GAAG,2BAA2B,UAAU,IAC17E,EAAkB,G,0ICxBlB,EAAS,WAAa,IAAInC,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACE,MAAM,CAAC,YAAY,GAAG,cAAc,KAAK,CAACF,EAAG,MAAM,CAACc,YAAY,UAAU,CAACd,EAAG,MAAM,CAACc,YAAY,0BAA0B,CAACd,EAAG,QAAQ,CAACc,YAAY,mBAAmB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,iBAAiBhC,EAAG,WAAW,CAACkB,WAAW,CAAC,CAAC75B,KAAK,WAAW85B,QAAQ,aAAavyC,MAAM,WAAayyC,WAAW,eAAenB,MAAM,CAAC,KAAO,QAAQ,IAAML,EAAIgE,IAAIC,IAAM,MAAQ,MAAM,WAAY,EAAM,QAAUjE,EAAIoG,eAAelC,YAAYlE,EAAImE,GAAG,CAAC,CAAChvC,IAAI,aAAaivC,GAAG,SAASxD,GACnkB,IAAI3oB,EAAS2oB,EAAI3oB,OACbosB,EAAYzD,EAAIyD,UACpB,MAAO,CAAC,EAAY,CAACrE,EAAIiC,GAAG,iBAAiBjC,EAAIkC,GAAGlC,EAAImC,GAAG,6BAA+B,MAAMhC,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGjqB,OAAY+nB,EAAIgB,UAAUc,MAAM,CAAC/yC,MAAOixC,EAAiB,cAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI+C,cAAchB,GAAKP,WAAW,mBAAmBrB,EAAG,OAAO,CAACkB,WAAW,CAAC,CAAC75B,KAAK,OAAO85B,QAAQ,SAASvyC,MAAOixC,EAAIqG,OAAOC,IAAI,SAAU9E,WAAW,wBAAwBP,YAAY,uBAAuB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAIqG,OAAO97B,MAAM,cAAc,KAAKy1B,EAAIuG,GAAG,YAAY,IAC7d,EAAkB,G,oCC6BtB,GACA,YACA,aAEA,KAJA,WAKA,OACA,qBACA,qBAGA,UACA,OADA,WAEA,6CAEA,cAJA,WAKA,uFAGA,SACA,YADA,WAEA,oBAEA,aAJA,WAKA,0BAEA,UAPA,WAOA,WACA,mBACA,YACA,2CACA,kBAEA,OADA,iBACA,KAEA,mBAWA,MAVA,iBACA,gBACA,cACA,eACA,8CACA,iFACA,SACA,cAGA,iBAGA,iBA7BA,WA8BA,kEAGA,OACA,cADA,SACA,GACA,IACA,yEACA,8BAEA,4CAIA,QA7DA,WA+DA,sBACA,iDACA,wBAEA,mBCpG0W,I,YCOtWC,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,QClBX,EAAS,WAAa,IAAIxG,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,QAAQ,CAACc,YAAY,mBAAmB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,iBAAiBhC,EAAG,WAAW,CAACkB,WAAW,CAAC,CAAC75B,KAAK,WAAW85B,QAAQ,aAAavyC,MAAM,WAAayyC,WAAW,eAAenB,MAAM,CAAC,KAAO,QAAQ,IAAML,EAAIgE,IAAIC,IAAM,MAAQ,MAAM,WAAY,EAAM,QAAUjE,EAAIoG,eAAelC,YAAYlE,EAAImE,GAAG,CAAC,CAAChvC,IAAI,aAAaivC,GAAG,SAASxD,GACnc,IAAI3oB,EAAS2oB,EAAI3oB,OACbosB,EAAYzD,EAAIyD,UACpB,MAAO,CAAC,EAAY,CAACrE,EAAIiC,GAAG,aAAajC,EAAIkC,GAAGlC,EAAImC,GAAG,6BAA+B,MAAMhC,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGjqB,OAAY+nB,EAAIgB,UAAUc,MAAM,CAAC/yC,MAAOixC,EAAiB,cAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI+C,cAAchB,GAAKP,WAAW,mBAAmBrB,EAAG,OAAO,CAACkB,WAAW,CAAC,CAAC75B,KAAK,OAAO85B,QAAQ,SAASvyC,MAAOixC,EAAIqG,OAAOC,IAAI,SAAU9E,WAAW,wBAAwBP,YAAY,sBAAsByE,SAAS,CAAC,YAAc1F,EAAIkC,GAAGlC,EAAIqG,OAAO97B,MAAM,cAAc,IAChd,EAAkB,GCwBtB,GACA,YACA,aAEA,SACA,KALA,WAMA,OACA,qBACA,qBAGA,UACA,OADA,WAEA,6CAEA,cAJA,WAKA,uFAGA,SACA,YADA,WAEA,oBAEA,aAJA,WAKA,0BAEA,UAPA,WAOA,WACA,mBACA,YACA,2CACA,kBACA,oBAEA,mBAWA,MAVA,iBACA,gBACA,cACA,eACA,8CACA,iFACA,SACA,cAGA,iBAGA,iBA5BA,WA6BA,kEAGA,OACA,cADA,SACA,GACA,IACA,oEACA,4CAIA,QA3DA,WA6DA,sBACA,iDACA,wBAEA,mBC7FoW,ICOhW,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,6BClBX,EAAS,WAAa,IAAIy1B,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAsBF,EAAII,MAAMD,GAAO,OAAOH,EAAIyG,GAAG,IACnG,EAAkB,CAAC,WAAa,IAAIzG,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACc,YAAY,YAAY,CAACd,EAAG,OAAOA,EAAG,OAAOA,EAAG,OAAOA,EAAG,WCS9K,KCVgW,ICQ5V,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,wDCnBX,EAAS,WAAa,IAAIH,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACc,YAAY,yBAAyB,CAACd,EAAG,UAAU,CAACc,YAAY,YAAYZ,MAAM,CAAC,YAAY,GAAG,cAAc,GAAG,MAAQL,EAAI0G,cAAchC,WAAW,CAACvE,EAAG,WAAW,CAACyC,KAAK,WAAW,CAACzC,EAAG,MAAM,CAACc,YAAY,iCAAiC,CAACd,EAAG,eAAe,CAACE,MAAM,CAAC,MAAQL,EAAI2G,aAAe3G,EAAImC,GAAG,sBAAwBnC,EAAImC,GAAG,sBAAsB,KAAOnC,EAAI2G,aAAe,gBAAkB,gBAAgB,WAAa,0BAA0B9lD,GAAG,CAAC,MAAQm/C,EAAI4G,mBAAmB,KAAKzG,EAAG,MAAM,CAACc,YAAY,4CAA4C,CAACd,EAAG,YAAY,CAACE,MAAM,CAAC,KAAO,OAAO,KAAOL,EAAI0G,cAAchC,SAAS,IAAM1E,EAAI6G,UAAU1G,EAAG,MAAM,CAACc,YAAY,QAAQ,CAACd,EAAG,IAAI,CAACc,YAAY,wBAAwB,CAACjB,EAAIiC,GAAG,eAAejC,EAAIkC,GAAGlC,EAAI8G,GAAG,aAAP9G,CAAqBA,EAAI+G,WAAW,gBAAgB5G,EAAG,IAAI,CAACc,YAAY,cAAc,CAACd,EAAG,QAAQ,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAI0G,cAAcM,YAAchH,EAAI2G,aAAqqB3G,EAAIgB,KAA3pBb,EAAG,MAAM,CAACA,EAAG,eAAe,CAACc,YAAY,OAAOZ,MAAM,CAAC,KAAOL,EAAIiH,eAAeC,iBAAiB,WAAalH,EAAImH,yBAAyBhH,EAAG,eAAe,CAACc,YAAY,OAAOZ,MAAM,CAAC,KAAOL,EAAIoH,iBAAiBC,KAAK,WAAa,0BAA4BrH,EAAIoH,iBAAiB9T,SAAS6M,EAAG,eAAe,CAACc,YAAY,sBAAsBZ,MAAM,CAAC,KAAO,mBAAmBx/C,GAAG,CAAC,MAAQm/C,EAAIsH,gBAAgBnH,EAAG,UAAU,CAACc,YAAY,OAAOZ,MAAM,CAAC,KAAOL,EAAIuH,QAAQ,KAAO,QAAQ,MAAwB,cAAhBvH,EAAIuH,QAA0B,UAAY,eAAepH,EAAG,gBAAgB,CAACE,MAAM,CAAC,SAAWrkD,OAAO6wC,OAAO,GAAImT,EAAIwH,SAAU,CAAC9C,SAAU1E,EAAI0G,cAAchC,eAAe,MAAe,GAAGvE,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,eAAe,CAAEL,EAAmB,gBAAEG,EAAG,gBAAgB,CAACE,MAAM,CAAC,SAAWL,EAAIyH,gBAAgB5mD,GAAG,CAAC,eAAiBm/C,EAAI0H,sBAAsBvH,EAAG,MAAM,CAACA,EAAG,MAAM,CAACkB,WAAW,CAAC,CAAC75B,KAAK,aAAa85B,QAAQ,eAAevyC,MAAOixC,EAAgB,aAAEwB,WAAW,kBAAkB,CAACrB,EAAG,MAAM,CAACc,YAAY,wBAAwB,CAACd,EAAG,QAAQ,CAACc,YAAY,yCAAyC,CAACjB,EAAIiC,GAAG,mBAAmBjC,EAAIkC,GAAG,UAAU,oBAAoB/B,EAAG,QAAQ,CAACc,YAAY,yCAAyC,CAACjB,EAAIiC,GAAG,mBAAmBjC,EAAIkC,GAAGlC,EAAImC,GAAG,+BAA+B,sBAAsBhC,EAAG,MAAM,CAACc,YAAY,wBAAwB,CAACd,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,eAAe,CAACE,MAAM,CAAC,KAAOL,EAAIiH,eAAeC,iBAAiB,WAAalH,EAAImH,yBAAyBhH,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAI,aAAenC,EAAI2H,uBAAwB,GAAGxH,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAI4H,yBAAyBzH,EAAG,cAAcA,EAAG,MAAM,CAACc,YAAY,wBAAwB,CAACd,EAAG,QAAQ,CAACc,YAAY,yCAAyC,CAACjB,EAAIiC,GAAG,mBAAmBjC,EAAIkC,GAAGlC,EAAImC,GAAG,uBAAuB,oBAAoBhC,EAAG,QAAQ,CAACc,YAAY,yCAAyC,CAACjB,EAAIiC,GAAG,mBAAmBjC,EAAIkC,GAAG,cAAc,sBAAsB/B,EAAG,MAAM,CAACc,YAAY,wBAAwB,CAACd,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,eAAe,CAACE,MAAM,CAAC,KAAOL,EAAIoH,iBAAiBC,KAAK,WAAa,0BAA4BrH,EAAIoH,iBAAiB9T,SAAS6M,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAIwH,SAASK,SAAS,SAAS,GAAG1H,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,UAAU,CAACE,MAAM,CAAC,KAAOL,EAAIuH,QAAQ,KAAO,QAAQ,MAAwB,cAAhBvH,EAAIuH,QAA0B,UAAY,eAAepH,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAmB,cAAhBlC,EAAIuH,QAA0B,KAAO,WAAW,KAAKpH,EAAG,cAAcA,EAAG,IAAI,CAACc,YAAY,aAAa,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAG,sBAAsB/B,EAAG,MAAM,CAACc,YAAY,iCAAiCZ,MAAM,CAAC,GAAK,mBAAmB,CAACF,EAAG,MAAM,CAACc,YAAY,wBAAwB,CAACd,EAAG,QAAQ,CAACc,YAAY,iBAAiB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAIiH,eAAea,sBAAsB3H,EAAG,QAAQ,CAACc,YAAY,gBAAgB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAIiH,eAAec,oBAAoB5H,EAAG,cAAc,CAACc,YAAY,uBAAuBZ,MAAM,CAAC,cAAgBL,EAAIgI,sBAAsB,QAAUhI,EAAIiH,eAAegB,iBAAiB,MAAQjI,EAAIkI,yBAAyB,GAAG/H,EAAG,cAAcA,EAAG,MAAM,CAACc,YAAY,iCAAiC,CAACd,EAAG,aAAa,CAACc,YAAY,iBAAiB6B,YAAY,CAAC,UAAU,SAASzC,MAAM,CAAC,MAAQL,EAAImC,GAAG,4BAA4B,MAAQ,UAAU,SAAW,SAAS,KAAOnC,EAAImC,GAAG,oCAAoC,CAAChC,EAAG,YAAY,CAACc,YAAY,iCAAiCZ,MAAM,CAAC,GAAKL,EAAImI,WAAW,MAAQ,UAAU,KAAO,SAAS,YAAY,UAAU,KAAO,yBAAyBtnD,GAAG,CAAC,MAAQm/C,EAAIoI,oBAAoB,GAAGjI,EAAG,aAAa,CAACc,YAAY,iBAAiB6B,YAAY,CAAC,UAAU,SAASzC,MAAM,CAAC,MAAQL,EAAImC,GAAG,2BAA2B,MAAQ,UAAU,SAAW,SAAS,KAAOnC,EAAImC,GAAG,mCAAmC,CAAChC,EAAG,YAAY,CAACc,YAAY,iCAAiCZ,MAAM,CAAC,GAAKL,EAAIqI,mBAAmB,MAAQ,UAAU,KAAO,SAAS,YAAY,UAAU,KAAO,mBAAmBxnD,GAAG,CAAC,MAAQm/C,EAAIsI,kBAAkB,GAAGnI,EAAG,aAAa,CAACc,YAAY,iBAAiB6B,YAAY,CAAC,UAAU,SAASzC,MAAM,CAAC,MAAQL,EAAImC,GAAG,uBAAuB,MAAQ,UAAU,SAAW,SAAS,KAAOnC,EAAImC,GAAG,gCAAgC,CAAChC,EAAG,YAAY,CAACc,YAAY,iCAAiCZ,MAAM,CAAC,GAAKL,EAAIuI,cAAc,KAAO,SAAS,MAAQ,UAAU,YAAY,UAAU,KAAO,iBAAiB1nD,GAAG,CAAC,MAAQ,SAASqgD,GAAQ,OAAOlB,EAAIwI,UAAUxI,EAAI0G,cAAc1lD,SAAS,GAAGm/C,EAAG,aAAa,CAACc,YAAY,iBAAiB6B,YAAY,CAAC,UAAU,SAASzC,MAAM,CAAC,MAAQL,EAAImC,GAAG,oBAAoB,MAAQ,UAAU,SAAW,MAAM,KAAOnC,EAAImC,GAAG,QAAU,IAAMnC,EAAImC,GAAG,yBAAyB,CAAChC,EAAG,YAAY,CAACc,YAAY,4BAA4BZ,MAAM,CAAC,GAAKL,EAAIyI,cAAc,KAAO,SAAS,MAAQ,UAAU,YAAY,UAAU,KAAO,eAAe5nD,GAAG,CAAC,MAAQ,SAASqgD,GAAQ,OAAOlB,EAAI0I,2BAA2B1I,EAAI0G,cAAc1lD,SAAS,IAAI,IAAI,MAAM,IAAI,IAAI,IACthM,EAAkB,G,iGCDDwmD,G,WACpB,cAuBG,IAtBFmB,EAsBE,EAtBFA,QACAd,EAqBE,EArBFA,QACAe,EAoBE,EApBFA,KACAC,EAmBE,EAnBFA,WACAC,EAkBE,EAlBFA,WACAC,EAiBE,EAjBFA,GACAC,EAgBE,EAhBFA,GACA5qB,EAeE,EAfFA,KACA6qB,EAcE,EAdFA,aACAC,EAaE,EAbFA,IACAC,EAYE,EAZFA,KACAC,EAWE,EAXFA,cACApG,EAUE,EAVFA,YACAqG,EASE,EATFA,kBACAC,EAQE,EARFA,mBACAC,EAOE,EAPFA,oBACAC,EAME,EANFA,eACAC,EAKE,EALFA,QACAC,EAIE,EAJFA,OACAC,EAGE,EAHFA,kBACAC,EAEE,EAFFA,WACAlF,EACE,EADFA,SACE,uBACFxoD,KAAKwoD,SAAWA,GAAsB,GACtCxoD,KAAKysD,QAAUA,GAAW,GAC1BzsD,KAAK2rD,QAAUA,GAAW,EAC1B3rD,KAAK0sD,KAAOA,GAAQ,GACpB1sD,KAAK2sD,WAAaA,GAAc,GAChC3sD,KAAK4sD,WAAaA,GAAc,GAChC5sD,KAAK6sD,GAAKA,GAAM,GAChB7sD,KAAK8sD,GAAKA,GAAM,GAChB9sD,KAAKkiC,KAAOA,GAAQ,GACpBliC,KAAK+sD,aAAeA,GAAgB,GACpC/sD,KAAKgtD,IAAMA,GAAO,GAClBhtD,KAAKitD,KAAOA,GAAQ,GACpBjtD,KAAKktD,cAAgBA,GAAiB,GACtCltD,KAAK8mD,YAAcA,GAAe,GAClC9mD,KAAKmtD,kBAAoBA,GAAqB,GAC9CntD,KAAKotD,mBAAqBA,GAAsB,GAChDptD,KAAKqtD,oBAAsBA,GAAuB,GAClDrtD,KAAKstD,eAAiBA,GAAkB,GACxCttD,KAAKutD,QAAUA,GAAW,GAC1BvtD,KAAK0tD,WAAaA,GAA0B,GAC5C1tD,KAAKwtD,cAAoB/qD,IAAX+qD,IAAwBA,GACtCxtD,KAAK2tD,QAAU,EACf3tD,KAAKytD,kBAAoBA,GAAqB,KAC9CztD,KAAK4tD,kC,qDAGN,WACC,OAAI5tD,KAAK2rD,SAAW,GACZ,CAACR,KAAM,cAAe/T,MAAO,gBAC1Bp3C,KAAK2rD,QAAU,IAAM3rD,KAAK2rD,SAAW,GACxC,CAACR,KAAM,cAAe/T,MAAO,gBAE7B,CAAC+T,KAAM,sBAAuB/T,MAAO,iB,6CAI9C,WACC,IAAMyW,EAAa,IAAIxrB,KACjByrB,EAAsB,IAAIzrB,KAAKriC,KAAKkiC,MAC1CliC,KAAK2tD,QAAU/kD,KAAKuO,OAAO02C,EAAWE,UAAYD,EAAoBC,WAA5C,O,kCAG3B,WACC,OAAI/tD,KAAKwtD,OAAe,eACZ,gB,iCAGb,WACC,OAAIxtD,KAAKwtD,OAAe,SACZ,c,yDC1EV,GAAS,WAAa,IAAI1J,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACc,YAAY,eAAeZ,MAAM,CAAC,GAAK,iBAAiB,CAACF,EAAG,MAAM,CAACc,YAAY,eAAe,CAACd,EAAG,MAAM,CAACc,YAAY,mDAAmD,CAACd,EAAG,MAAM,CAACc,YAAY,qBAAqB,CAACd,EAAG,eAAe,CAACc,YAAY,sBAAsBZ,MAAM,CAAC,KAAO,kBAAkB,WAAa,WAAWx/C,GAAG,CAAC,MAAQ,SAASqgD,GAAgC,OAAxBA,EAAOrzB,iBAAwBmyB,EAAIkK,MAAM,kBAAkB,OAAU/J,EAAG,gBAAgB,CAACc,YAAY,sBAAsBZ,MAAM,CAAC,UAAY,GAAG,MAAQ,CAAC,CAAC1zB,MAAOqzB,EAAImC,GAAG,qBAAqBthD,GAAG,CAAC,MAAQ,SAASqgD,GAAgC,OAAxBA,EAAOrzB,iBAAwBmyB,EAAIkK,MAAM,kBAAkB,QAAW,GAAG/J,EAAG,MAAM,CAACA,EAAG,OAAO,CAACc,YAAY,iBAAiB6B,YAAY,CAAC,MAAQ,WAAW4C,SAAS,CAAC,YAAc1F,EAAIkC,GAAGlC,EAAImC,GAAG,iCAAiChC,EAAG,MAAM,CAACc,YAAY,eAAe,CAACd,EAAG,MAAM,CAACc,YAAY,sCAAsC,CAACd,EAAG,IAAI,CAACc,YAAY,gCAAgC,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,qCAAqChC,EAAG,IAAI,CAACc,YAAY,+BAA+BX,MAAMN,EAAImK,aAAe,sBAAwB,IAAI,CAACnK,EAAIiC,GAAG,eAAejC,EAAIkC,GAAG,IAAMlC,EAAIoK,SAASztD,OAAS,OAAO,oBAAoBwjD,EAAG,WAAW,CAACE,MAAM,CAAC,KAAOL,EAAIqK,SAAS,SAAW,GAAG,OAAS,GAAG,WAAa,GAAG,SAAW,KAAKxpD,GAAG,CAAC,SAAWm/C,EAAIsK,gBAAgBpG,YAAYlE,EAAImE,GAAG,CAAC,CAAChvC,IAAI,UAAUivC,GAAG,SAASxD,GACr9C,IAAI/7B,EAAO+7B,EAAI/7B,KACf,OAAOm7B,EAAIuD,GAAG,GAAO,SAASgH,EAAGC,GAAS,OAAOrK,EAAG,QAAQ,CAAChrC,IAAIq1C,EAAQlK,MAAMiK,EAAGE,SAAW,WAAa,GAAGpK,MAAM,CAAC,KAAOkK,IAAK,CAACpK,EAAG,QAAQ,CAACc,YAAY,wBAAwB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGqI,EAAGG,YAAYvK,EAAG,QAAQ,CAACc,YAAY,wBAAwB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGqI,EAAG/iC,UAAU,UAASs6B,MAAM,CAAC/yC,MAAOixC,EAAiB,cAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI2K,cAAc5I,GAAKP,WAAW,kBAAkB,CAACrB,EAAG,MAAM,CAACc,YAAY,gEAAgEZ,MAAM,CAAC,KAAO,UAAUuC,KAAK,UAAU,CAAE5C,EAAI2K,cAAchuD,OAAS,EAAGwjD,EAAG,YAAY,CAACE,MAAM,CAAC,KAAO,SAAS,YAAY,WAAWx/C,GAAG,CAAC,MAAQ,SAASqgD,GAAgC,OAAxBA,EAAOrzB,iBAAwBmyB,EAAI4K,kBAAkBn8C,MAAM,KAAMnS,cAAc,CAAC6jD,EAAG,OAAO,CAACc,YAAY,kBAAkB,CAACjB,EAAIiC,GAAG,iBAAiBjC,EAAIkC,GAAGlC,EAAImC,GAAG,sBAAsB,oBAAoBnC,EAAIgB,MAAM,GAAGb,EAAG,WAAW,CAACyC,KAAK,SAAS,CAACzC,EAAG,QAAQ,CAACc,YAAY,iBAAiByE,SAAS,CAAC,YAAc1F,EAAIkC,GAAG,SAAS/B,EAAG,QAAQ,CAACc,YAAY,iBAAiByE,SAAS,CAAC,YAAc1F,EAAIkC,GAAGlC,EAAImC,GAAG,aAAa,IAAI,IAAI,MACjjC,GAAkB,G,mDCCf0I,GAAcC,QAAdD,WAEP,SAASE,GAAgBC,GACxBC,QACEC,uBADF,sEAEiEL,GAFjE,iCAEoGG,EAFpG,uUASEG,MAAK,SAACC,GACN,IAAIC,EAAU,KACd,GAAID,EAAIvmC,KAAKyX,SAAS3/B,OAAS,EAAG,CACjC,IAAI2uD,EAAM,GACVF,EAAIvmC,KAAK,YAAY4P,SAAQ,SAAC82B,EAAM1qC,GACnCyqC,EAAIzqC,GAAS0qC,EAAK92C,cAEnB,IAAI+2C,EAAOF,EAAI,GAAGE,KACdC,EAAOH,EAAI,GAAGG,KACdC,EAAOJ,EAAI,GAAGI,KACdC,EAAOL,EAAI,GAAGK,KAClBL,EAAI72B,SAAQ,SAACoJ,EAAMhd,GACd2qC,EAAOF,EAAIzqC,GAAO2qC,OACrBA,EAAOF,EAAIzqC,GAAO2qC,MAEfC,EAAOH,EAAIzqC,GAAO4qC,OACrBA,EAAOH,EAAIzqC,GAAO4qC,MAEfC,EAAOJ,EAAIzqC,GAAO6qC,OACrBA,EAAOJ,EAAIzqC,GAAO6qC,MAEfC,EAAOL,EAAIzqC,GAAO8qC,OACrBA,EAAOL,EAAIzqC,GAAO8qC,SAGpBN,EAAU,CAAC52C,WAAY,CAAC+2C,KAAMA,EAAMC,KAAMA,EAAMC,KAAMA,EAAMC,KAAMA,SAElEN,EAAUD,EAAIvmC,KAAK,YAAYumC,EAAIvmC,KAAK,YAAYloB,OAAS,GAE9DivD,gBAAiBP,MAIb,SAAST,GAAkBI,GACjCa,kBACAZ,QACEC,uBADF,wBAC0CL,GAD1C,iCAC6EG,EAD7E,MAEEG,MAAK,SAACC,GACNU,gBAAgBV,EAAI,SACpBL,GAAgBC,MAEhBe,OAAM,SAAChnC,GACP,MAAM,IAAI/D,MAAM+D,M,mhCCmBnB,QACA,YACA,aAEA,OACA,UACA,WACA,6BACA,aAGA,KAXA,WAYA,OACA,iBACA,kBAGA,QAjBA,WAkBA,0FACA,yCAEA,UACA,SADA,WAEA,+DAGA,SACA,eADA,SACA,GACA,qCACA,+BACA,WACA,+BACA,2EAEA,+BAEA,oDAEA,iCACA,aADA,WAEA,eAFA,IAEA,0CACA,eAHA,mCAKA,YACA,eADA,IACA,iDACA,oBADA,IACA,0CACA,mDAGA,cAFA,eAHA,gCADA,iCAYA,kBA7BA,WA8BA,oDACA,iEACA,gBACA,iEAEA,iBACA,gBACA,6BACA,6CACA,cC9IqW,MCQjW,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,qBCnBX,GAAS,WAAa,IAAIi7B,EAAI9jD,KAAS+jD,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACc,YAAY,oBAAoB,CAACd,EAAG,eAAe,CAACc,YAAY,sBAAsBZ,MAAM,CAAC,KAAO,iBAAiB,MAAQL,EAAImC,GAAG,+BAA+BthD,GAAG,CAAC,MAAQ,SAASqgD,GAAQlB,EAAIgM,aAAc,MAAS7L,EAAG,WAAW,CAACE,MAAM,CAAC,MAAQL,EAAImC,GAAG,8BAA8B,OAASnC,EAAIgM,aAAanrD,GAAG,CAAC,gBAAgB,SAASqgD,GAAQlB,EAAIgM,YAAY9K,KAAU,CAACf,EAAG,UAAU,CAACc,YAAY,6BAA6BZ,MAAM,CAAC,YAAY,KAAK,CAACF,EAAG,MAAM,CAACc,YAAY,eAAeZ,MAAM,CAAC,IAAML,EAAIiM,KAAK,IAAM,UAAU,MAAQ,QAAQ9L,EAAG,KAAK,CAACH,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAI8G,GAAG,QAAP9G,CAAgBA,EAAIwH,SAASiC,QAAUzJ,EAAIwH,SAASiC,QAAUzJ,EAAImC,GAAG,kCAAkChC,EAAG,QAAQ,CAACc,YAAY,iBAAiB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,oCAAoChC,EAAG,WAAW,CAACyC,KAAK,UAAU,CAACzC,EAAG,cAAcA,EAAG,MAAM,CAACc,YAAY,6BAA6B,CAACd,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,eAAe,CAACE,MAAM,CAAC,KAAO,WAAW,WAAa,4BAA4BF,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,iBAAiB,GAAGhC,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,OAAO,CAACc,YAAY,sBAAsB,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAIwH,SAAS9C,iBAAiBvE,EAAG,MAAM,CAACc,YAAY,6BAA6B,CAACd,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,eAAe,CAACE,MAAM,CAAC,KAAO,iBAAiB,WAAa,4BAA4BF,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,iCAAiC,SAAS,GAAGhC,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAI8G,GAAG,QAAP9G,CAAgBA,EAAIwH,SAASoC,WAAa5J,EAAIwH,SAASoC,WAAa5J,EAAImC,GAAG,sCAAsChC,EAAG,MAAM,CAACc,YAAY,6BAA6B,CAACd,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,eAAe,CAACE,MAAM,CAAC,KAAO,eAAe,WAAa,4BAA4BF,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,aAAa,GAAGhC,EAAG,OAAO,CAACc,YAAY,qBAAqB,CAACd,EAAG,OAAO,CAACc,YAAY,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAI8G,GAAG,QAAP9G,CAAgBA,EAAIwH,SAASppB,KAAO4hB,EAAIwH,SAASppB,KAAO4hB,EAAImC,GAAG,uCAAuC,IAAI,IAAI,IAAI,IACttE,GAAkB,GCqDtB,IACA,OACA,UACA,cAGA,KANA,WAOA,OACA,eACA,kBC/DqW,MCQjW,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,2mDCkMf,qCACA,sBAEA,IACA,aACA,OACA,UACA,cAGA,gEACA,uBACA,kBACA,wBACA,oBACA,oBACA,gBACA,aACA,oBACA,yBACA,uBACA,6BACA,wCACA,0BACA,4CACA,4BACA,aACA,oBACA,mBACA,iBAEA,cACA,YACA,gBACA,4BACA,oBAEA,oBACA,eACA,kBAEA,+BACA,uBAEA,mBACA,cACA,SACA,IACA,cACA,cACA,UACA,yBACA,kBACA,qBAEA,OACA,SADA,SACA,GACA,sBACA,+CACA,yBACA,gDACA,iDACA,yCACA,2BACA,4CAIA,wBAbA,WAcA,qBAGA,wFAGA,SACA,6BACA,UACA,eACA,sCAFA,KAKA,QA/EA,WAgFA,yBAEA,QAlFA,WAkFA,WACA,sBACA,oDACA,wBAEA,uBACA,yDACA,yBAEA,wBACA,oFAEA,sBACA,oDACA,wBAEA,kCACA,cACA,aACA,0DACA,iBADA,IAEA,iBAKA,0BACA,cACA,IACA,0BAIA,cAnHA,WAoHA,qBACA,mCAGA,UACA,SADA,WAEA,oBAEA,WAJA,WAKA,yDAEA,cAPA,WAQA,kDAEA,mBAVA,WAWA,wDAEA,cAbA,WAcA,kDAEA,cAhBA,WAiBA,sBAEA,WAnBA,WAoBA,6DAEA,iBAtBA,WAuBA,uCAEA,iBAzBA,WA2BA,6BAEA,OADA,6DACA,8DAEA,wBA/BA,WAgCA,8BAEA,QAlCA,WAmCA,sDAEA,iBArCA,WAsCA,4CAEA,sBAxCA,WAyCA,6CAEA,SA3CA,WA4CA,gEAEA,kBACA,IADA,WAEA,gEAGA,qBAnDA,WAoDA,2CACA,aACA,UACA,WAEA,YADA,UAIA,YAIA,SACA,mBADA,SACA,GACA,IACA,wBACA,sBAGA,wBAPA,SAOA,GACA,kBACA,YACA,qCACA,wBACA,aAGA,yBAfA,SAeA,GACA,2DAEA,qBAlBA,WAkBA,WACA,kBACA,qCACA,wBACA,8BACA,YAEA,uBACA,6DACA,MAEA,eA7BA,WA8BA,+BACA,qCACA,oBACA,wCACA,uCACA,sCAGA,WAtCA,WAuCA,8BAEA,YAzCA,SAyCA,GACA,mBAEA,uBA5CA,SA4CA,KACA,+BAEA,gBA/CA,WAgDA,mCAEA,cAlDA,sKAmDA,GACA,gCACA,+BACA,qCACA,aAEA,4DAzDA,kBA2DA,qDA3DA,OA2DA,EA3DA,OA4DA,6DACA,2FA7DA,qDA+DA,6DACA,iBACA,gBACA,+CACA,+CAEA,oBArEA,kHAwEA,gBAxEA,WAwEA,WACA,oDACA,OACA,gCACA,+BACA,mCAEA,YACA,qDACA,kBACA,+CACA,+BACA,EACA,eACA,gDACA,MAGA,mBACA,+CACA,cACA,eACA,uDACA,uDAEA,qBAKA,aAtGA,SAsGA,KACA,0CAEA,UAzGA,SAyGA,KACA,mCACA,iDACA,yCAEA,OACA,QACA,sDACA,2CACA,OACA,SACA,aACA,mBAEA,YACA,0CAGA,8CACA,2DAEA,gBA9HA,WA+HA,2BACA,6BACA,yBAGA,yBApIA,WAiJA,OAZA,uBACA,oBACA,6BACA,wBAEA,0BACA,WACA,gCACA,0BAGA,2BACA,uBAEA,eAnJA,SAmJA,OACA,OACA,QACA,uDACA,2CACA,OACA,SACA,aACA,mBAEA,YACA,2BAEA,0BAEA,4BACA,wCACA,0BAEA,qBAtKA,SAsKA,GACA,oBAEA,kBAzKA,WA0KA,uDACA,wCAEA,WA7KA,SA6KA,GACA,UACA,eACA,sCAFA,IAIA,iBAlLA,WAkLA,8DACA,4DAEA,UArLA,SAqLA,cACA,uDACA,OACA,gCACA,+BACA,eAEA,YACA,qDACA,kBACA,uBACA,sBACA,KACA,qDAEA,mBACA,kDACA,qBAGA,2BAzMA,SAyMA,cACA,uDACA,SACA,uBACA,YACA,0DACA,kBACA,MA8BA,4BA7BA,iDACA,QACA,uBADA,wBAEA,GAFA,iCAEA,YAFA,MAIA,kBACA,MAaA,OAFA,yBACA,sBAXA,qCADA,WAEA,iBAFA,IAEA,0CACA,uBACA,cACA,gCACA,uBACA,eAPA,kCAgBA,mBACA,kDACA,qBACA,oBACA,oBAKA,qDAEA,mBACA,0BACA,cACA,gBACA,0BACA,qCACA,WAGA,qBACA,kDACA,qBAGA,WAhQA,SAgQA,GACA,SACA,8DACA,8DACA,mBAEA,WAtQA,WAuQA,wCACA,wCACA,kCACA,iCACA,6BACA,+BAGA,yBACA,SACA,0CAGA,wBApRA,WAoRA,WACA,GACA,gCACA,+BACA,mCAEA,8BACA,YACA,qDACA,kBAEA,G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Y,QAAQ,CAACjB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,kBAAkB,OAAOhC,EAAG,YAAY,CAAC2B,MAAM,CAAC/yC,MAAOixC,EAAiB,cAAE3vC,SAAS,SAAU0xC,GAAM/B,EAAI4M,cAAc7K,GAAKP,WAAW,kBAAkB,CAACxB,EAAIiC,GAAGjC,EAAIkC,GAAGlC,EAAImC,GAAG,sBAAsB,IAAI,IAAI,IAC5hB,GAAkB,G,8rBC2CtB,QACA,YACA,aAEA,KAJA,WAKA,OACA,sCACA,gBACA,YACA,6BACA,iBACA,sBACA,WACA,KACA,SACA,OACA,WACA,iBACA,WACA,QACA,OACA,UACA,OACA,KACA,KACA,UACA,QACA,UACA,gBAIA,UACA,UADA,WAEA,mDAEA,YAJA,WAKA,OACA,KACA,4BACA,gBACA,oBACA,0BACA,oBACA,iBACA,gBACA,mBACA,gBACA,qBACA,oBACA,8BACA,gBACA,wCACA,0CAGA,UAxBA,WAyBA,oDAGA,SACA,cADA,WACA,WACA,kCACA,kBACA,yCACA,iBACA,kGACA,yFAEA,iBACA,yCACA,oHACA,wGAGA,cACA,yCACA,iBACA,qFACA,OACA,QACA,QACA,KACA,iBACA,WACA,OACA,WACA,UACA,WACA,WACA,QACA,MACA,MACA,QACA,WACA,kBAIA,2CACA,2CACA,sEAEA,gBACA,UAGA,cA/CA,6KAgDA,qCAhDA,SAkDA,mBAlDA,SAmDA,qBAnDA,OAmDA,EAnDA,OAoDA,mEACA,kCACA,wBACA,qBACA,OACA,wCACA,0BACA,4BAEA,gBACA,yBA9DA,mDAiEA,oBACA,yBAlEA,iHAqEA,WArEA,SAqEA,KACA,iCACA,mBACA,mBAIA,YA5EA,WA6EA,iBACA,sBACA,8BC1L2W,MCOvW,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,qmBCyff,QACA,OACA,iBACA,aACA,aAEA,0BACA,gBAGA,YACA,UACA,wBACA,YACA,mBACA,mBACA,6CACA,6BACA,kBACA,kBACA,uBACA,uBACA,gBACA,oBACA,UACA,cACA,uBAEA,KA5BA,WA6BA,OACA,qBACA,kBACA,sBACA,4BACA,iBACA,iBACA,YACA,eACA,mBACA,wBACA,aACA,eACA,qBACA,oBACA,aACA,UAEA,sBACA,eAEA,wBACA,eACA,OACA,qBACA,gBAEA,MACA,oBACA,iBAGA,cACA,mBACA,WACA,cACA,cACA,eACA,kBACA,yDACA,iEACA,uBACA,oBAEA,sBACA,wBACA,kBACA,iCACA,cACA,2EACA,gBACA,oBACA,cACA,gBAEA,YACA,YACA,cACA,iBAEA,mBACA,wBACA,mBACA,qBACA,qBACA,2BACA,yBACA,uBACA,2BACA,gCACA,OACA,YACA,UACA,WAEA,wBACA,+BAGA,QA5GA,WA6GA,sBACA,oDACA,wBAGA,sBACA,sDACA,wBAGA,sBACA,oDACA,wBAEA,sBACA,iDACA,yBAGA,QAhIA,WAgIA,WACA,6CACA,kCACA,oCAGA,OACA,oBADA,SACA,GACA,0BAEA,UAJA,SAIA,GACA,kBACA,wDAEA,aARA,SAQA,GACA,2BACA,oBAEA,YAZA,WAaA,mBACA,sBACA,qCAGA,UAlBA,WAmBA,kBACA,kBACA,iBACA,YACA,cACA,iBAEA,wBACA,mBAEA,QA7BA,SA6BA,GACA,KACA,2FACA,uCACA,OACA,aACA,mCAEA,mDAKA,qBA1CA,SA0CA,GACA,mDAGA,UACA,cADA,WAEA,OACA,qCACA,6CACA,yDACA,6CACA,yCAGA,OAVA,WAWA,UAIA,OAHA,wBACA,qBAEA,GAEA,gBAjBA,WAkBA,gDACA,2DAKA,aACA,IADA,WAEA,8BAEA,IAJA,SAIA,GACA,0BAGA,mBAhCA,WAiCA,mCACA,sCAGA,WArCA,WAsCA,iEACA,GAEA,cAzCA,WA0CA,0BAEA,iBA5CA,WA6CA,OACA,+CACA,6CACA,uCAGA,oBAnDA,WAmDA,WACA,0BACA,2DACA,EAEA,sBACA,OACA,4DACA,mEAIA,mBA/DA,WA+DA,WACA,sDACA,OACA,uBACA,uBACA,gBAIA,cAxEA,WAyEA,gCAEA,sBACA,IADA,WAEA,6BAEA,IAJA,SAIA,GACA,GACA,6BAIA,aArFA,WAsFA,yCAEA,MAxFA,WAyFA,gDACA,iDAEA,mBA5FA,WA6FA,qCAEA,gBA/FA,WAgGA,sCACA,qBAGA,kBApGA,WAqGA,sCACA,uBAGA,SAzGA,WA0GA,8CAGA,SACA,yBADA,SACA,GACA,oBACA,6BACA,gDAEA,sCACA,WACA,2BACA,uBAGA,2BACA,oEAEA,4BAfA,WAgBA,2BACA,OACA,sBACA,eACA,oFACA,uEAEA,uEAEA,mCAzBA,SAyBA,GACA,4BACA,oBAGA,mBA9BA,SA8BA,GACA,oDASA,4BACA,8CATA,sCACA,KACA,uBACA,mDASA,mCA5CA,SA4CA,GACA,4BACA,+CAGA,WAjDA,SAiDA,GACA,iBAEA,aApDA,WAqDA,4BACA,aACA,gBACA,MACA,eACA,yBACA,MACA,mBACA,MACA,QACA,gBACA,QAGA,cAnEA,SAmEA,GACA,UACA,OACA,mCACA,MACA,OACA,+BACA,MACA,OACA,6BACA,MACA,QACA,QAGA,kBAlFA,WAmFA,4BAEA,WArFA,WAsFA,yBAEA,cAxFA,WAyFA,qBAEA,gBA3FA,WA4FA,oBACA,yBAGA,SAhGA,WAiGA,6BACA,gBACA,0BACA,MACA,eACA,wBACA,MACA,WACA,6BACA,MACA,QACA,iBACA,gBACA,0CACA,0CAEA,QAGA,sBApHA,WAoHA,WACA,kBACA,kBACA,uDACA,4DACA,GACA,YACA,WACA,kCACA,aAEA,GACA,YACA,WACA,gCAEA,mEACA,uDAEA,yBACA,YACA,+BACA,EACA,kBACA,gDACA,GAEA,6BACA,EACA,UACA,+CAEA,wDAEA,YACA,wDAGA,yDAEA,mBA5JA,WA4JA,wEACA,IACA,kBACA,mBAEA,4DACA,EACA,oGACA,mBACA,GACA,YACA,WACA,eAGA,oCACA,sBACA,uDACA,YACA,yDACA,kBACA,qDACA,SACA,MAEA,qBACA,KAEA,uBACA,0DANA,eAQA,GACA,kCACA,oCACA,kEACA,OACA,QACA,KACA,WACA,QACA,+BAEA,4CACA,gDADA,IAEA,mBAbA,wBAiBA,CACA,+BACA,EACA,eACA,gDACA,GAEA,mBACA,QACA,WACA,WACA,iEACA,8CAGA,wDACA,yDAEA,mBAOA,MANA,qDACA,cACA,eACA,yBACA,uDAEA,iBAGA,iBAxOA,uMAwOA,IAxOA,iCAyOA,IACA,kBACA,mBAEA,wDACA,GACA,YACA,WACA,aACA,+GACA,aAGA,0DACA,uDACA,sBAxPA,mBA0PA,qDA1PA,QA6PA,GAHA,EA1PA,OA2PA,wDACA,KACA,wBACA,SADA,WACA,GACA,yCACA,gBACA,8DACA,8BACA,GACA,cACA,iBACA,YACA,qBACA,MAEA,QACA,KACA,WACA,QACA,sBAEA,sCAlBA,iBAsBA,kBACA,QACA,WACA,WACA,mEACA,gCAEA,6BACA,KACA,OACA,kDAEA,8BAEA,2DACA,wDACA,uBACA,yDArSA,2DAuSA,wDACA,gBAxSA,kHA2SA,eA3SA,SA2SA,OACA,OACA,QACA,KACA,kEACA,kDACA,KACA,yBACA,OACA,+BACA,gBACA,gBACA,kBACA,+DAEA,YACA,QACA,kEACA,kBADA,qBAIA,yBACA,eAEA,4BACA,wCACA,wCACA,yBAGA,oDAIA,gBA7UA,WA6UA,WACA,oBACA,6DACA,sBACA,oBACA,kBACA,uBACA,sCAEA,uBACA,uBACA,iCACA,MAEA,iBACA,gBACA,8DACA,+DAIA,oBAlWA,SAkWA,OAEA,OACA,QACA,SACA,yBACA,OACA,SACA,aACA,mBAEA,YACA,4BAGA,4BACA,wCACA,0BAIA,UAvXA,SAuXA,0EACA,uDACA,OACA,YACA,WACA,YACA,+GACA,aAEA,YACA,qDACA,kBACA,qDACA,EACA,wCAEA,sCAGA,mBACA,qDACA,qBAGA,kBA/YA,WAgZA,4DACA,sDACA,qBAEA,iBApZA,WAoZA,uEACA,sBACA,oBACA,uBACA,kCAEA,kCACA,uBACA,yBACA,MAEA,iBACA,gBACA,4BACA,uCAIA,sBAtaA,WAsaA,uEACA,sBACA,oBACA,uBACA,wCAGA,uBACA,yBACA,MAEA,iBACA,gBACA,4BACA,uCAIA,sBAxbA,SAwbA,OACA,OACA,QACA,uDACA,yBACA,OACA,SACA,aACA,mBAEA,YACA,4BAGA,4BACA,wCACA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,qBA/BA,yGCTgW,MCO5V,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,knBCuCf,0BA2CA,iCACA,iCAEA,IACA,eACA,YACA,oBACA,iBACA,kBACA,6BACA,uBACA,kBAEA,OACA,MACA,YACA,YACA,kBAEA,UACA,YACA,YACA,oBAEA,WACA,YACA,YACA,oBAEA,MACA,YACA,YACA,cAEA,OACA,YACA,YACA,cAEA,OACA,YACA,YACA,cAEA,QACA,YACA,YACA,cAEA,YACA,YACA,YACA,gBAEA,WACA,YACA,WAEA,YACA,YACA,sBAEA,2BACA,4BACA,6BACA,8BACA,oBACA,aACA,YAEA,kBACA,cACA,sBAEA,2BACA,WACA,8BAEA,uBACA,YACA,YAGA,KAhFA,WAiFA,OACA,cACA,SACA,mBACA,IACA,cACA,cACA,oBACA,uBACA,iBACA,wBACA,UACA,2BACA,wBACA,kBACA,2BACA,6BACA,iBACA,mBACA,iBACA,0BAEA,8BACA,gBACA,6BACA,qBACA,cAGA,QA9GA,WA+GA,uBACA,mDACA,yBAEA,uBACA,yDACA,yBAEA,sBACA,sDACA,wBAEA,sBACA,iDACA,yBAGA,QAhIA,WAgIA,WACA,uCACA,wCAuBA,GAtBA,SACA,qCAEA,kBACA,iDACA,uCAEA,0BACA,yCACA,gCAGA,wDACA,iCAEA,4DACA,qCAEA,oDACA,0DAEA,0FACA,iCACA,mDACA,uBACA,wBACA,OAGA,cAhKA,WAiKA,qDACA,4DACA,oDACA,oCACA,8CACA,mBAEA,6BAEA,4CACA,iBAEA,OACA,yBADA,SACA,GACA,mGACA,GACA,kDAGA,yBAPA,WAOA,WACA,qCACA,2BAGA,2BAZA,WAaA,0CACA,mBAEA,yBAEA,iBAlBA,SAkBA,GACA,gBACA,mCAEA,kCAtBA,SAsBA,GACA,6DACA,2BAGA,UACA,YADA,WAEA,sCAGA,SALA,WAMA,6CAEA,gBARA,WASA,qDAEA,YAXA,WAYA,yDAEA,sBAdA,WAeA,wDAEA,SAjBA,WAkBA,SAQA,OANA,EADA,sDACA,OACA,sBACA,OAEA,QAEA,GAEA,oBA5BA,WA6BA,+DAEA,wBA/BA,WAgCA,qDAEA,UAlCA,WAmCA,6CAEA,iBArCA,WAsCA,4DAEA,qBAxCA,WAyCA,oEAGA,SACA,YADA,WAEA,oBAEA,aAJA,WAKA,0BAEA,kBAPA,WAOA,8DACA,4DAEA,SAVA,WAWA,kBACA,kBACA,kBACA,yDACA,gDACA,qDAEA,cAlBA,WAmBA,kBACA,oBAEA,kBAtBA,SAsBA,yFACA,QACA,uBADA,wBACA,GADA,iCACA,EADA,MAEA,kBACA,gBACA,kBACA,2BACA,sBAEA,8BAGA,mBACA,uBAGA,gBAtCA,SAsCA,GACA,QACA,uBADA,sEAEA,GAFA,iCAEA,EAFA,uUASA,kBACA,WACA,6BACA,SACA,0CACA,qBAEA,gBACA,YACA,YACA,YACA,yBACA,cACA,aAEA,cACA,aAEA,cACA,aAEA,cACA,gBAGA,kDAEA,kDAEA,uBAGA,gBAhFA,SAgFA,GACA,QACA,uBADA,sEAEA,GAFA,iCAEA,EAFA,mOASA,kBAEA,iDACA,sBACA,0BAEA,6CACA,sBACA,0BAEA,gCAEA,mBACA,uBAGA,aA1GA,WA2GA,mBAEA,oBA7GA,SA6GA,yKACA,kBACA,WACA,OAEA,GACA,OACA,SACA,QACA,OACA,SACA,aACA,mBAEA,YACA,yCAEA,wBACA,6CACA,6CACA,0BACA,6BACA,SACA,aAIA,4BACA,wCACA,+BACA,4BAEA,yBA7IA,WAsJA,OARA,uBACA,mBACA,6BAEA,0BACA,0CAEA,2BACA,uBAEA,gBAxJA,WAyJA,2BACA,6BACA,yBAGA,uBA9JA,SA8JA,cACA,mBACA,gCACA,yEAEA,iCACA,iBACA,uBACA,eACA,uBACA,iDACA,2DACA,iCACA,yBACA,oBACA,kBAEA,8CAGA,0EAEA,qBAEA,kBAtLA,SAsLA,qGAEA,GACA,QACA,oDACA,QACA,OACA,SACA,aACA,mBAEA,OACA,YACA,4BAGA,kCACA,wCACA,8BAEA,mBA1MA,WA2MA,6BAEA,wBA7MA,SA6MA,oBACA,mCAEA,OACA,QACA,sDACA,2CACA,OACA,SACA,aACA,mBAEA,OACA,YACA,kDAEA,mBACA,uBAGA,yBACA,wCACA,iCACA,4BAEA,iCAtOA,SAsOA,GAaA,OAZA,uBACA,oBACA,6BACA,wBAEA,0BACA,WACA,eACA,0BAGA,2BACA,uBAKA,iBAxPA,SAwPA,cAEA,GADA,gBACA,4BACA,8DACA,MACA,2BACA,kBACA,QADA,IAEA,yCAEA,YAEA,mDACA,yCACA,uBACA,OACA,QACA,oDACA,wCACA,OACA,YACA,6BAGA,oDACA,wCACA,uDACA,4CACA,QAIA,WAxRA,SAwRA,KACA,OACA,qBACA,WAEA,uCACA,gCAEA,0BAhSA,SAgSA,GACA,iCAEA,6BACA,yDACA,sBAEA,8BAEA,sBAzSA,WAySA,WACA,+CACA,wDACA,kCACA,uBACA,YACA,oBACA,oDACA,kDAGA,UACA,MACA,kBACA,kBACA,GADA,IAEA,yCAGA,4CACA,yCACA,iEAGA,kEAGA,kCACA,cACA,uDACA,MACA,8BACA,kEAEA,8BACA,+BACA,mDAIA,2BAEA,kBAnVA,SAmVA,GACA,gBACA,mCAEA,wBAvVA,SAuVA,KACA,+EACA,8EAEA,6BACA,2DACA,uBACA,qBAGA,MAEA,iCACA,2EACA,4EACA,yCACA,4BAGA,uBACA,uEACA,wEACA,gCACA,cACA,aACA,gDACA,kDAGA,6BACA,gFACA,iFACA,4CACA,uBACA,4BACA,gCAGA,0BA7XA,SA6XA,SACA,mCAEA,OACA,QACA,0CACA,2CACA,OACA,YACA,gCAGA,4BACA,wCACA,+BACA,8BASA,6BArZA,SAqZA,OACA,QACA,MAEA,mBACA,mBAEA,UACA,UAEA,eAIA,GAHA,KACA,MAEA,UAEA,kCACA,iBAEA,WACA,IACA,mBAGA,KAEA,YA/aA,SA+aA,GACA,aACA,iXACA,YACA,iXAEA,kiBAGA,iBAxbA,SAwbA,GACA,iQACA,qBADA,sMAIA,QA7bA,SA6bA,GACA,2FACA,4BADA,wCASA,0BAvcA,WAucA,WACA,+DAEA,GADA,6BACA,4BACA,0DACA,IACA,4BACA,cACA,cACA,gBACA,4BAEA,+BACA,iBADA,IACA,yCACA,GAGA,kDACA,uBACA,qC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,YACA,oBAEA,MACA,YACA,YACA,cAEA,SACA,YACA,YACA,gBAEA,OACA,YACA,YACA,cAEA,QACA,YACA,YACA,cAEA,YACA,WACA,8BAEA,YACA,YACA,YACA,gBAGA,eACA,YACA,iCAEA,sBACA,WACA,8BAEA,2BACA,4BACA,8BAEA,KAjEA,WAkEA,OACA,WACA,cACA,SACA,mBACA,cACA,cACA,wBACA,UACA,kBACA,0BACA,4BACA,iBACA,mBACA,8BACA,iBACA,yBAGA,QArFA,WAsFA,sBACA,kDACA,wBAEA,sBACA,wDACA,yBAGA,QA/FA,WA+FA,WACA,wCACA,SACA,qCAGA,wDACA,+DAEA,GADA,6BACA,4BACA,0DACA,IACA,4BACA,cACA,cACA,gBACA,4BAEA,6BACA,iBADA,IACA,yCACA,GAEA,kDACA,uBACA,oCACA,WAMA,cA9HA,WA+HA,qDACA,4DACA,qDAEA,OACA,yBADA,WACA,WACA,qCACA,0BAEA,2DAEA,2BAPA,WAQA,0CACA,oBAEA,yBAEA,2BAbA,WAcA,uBAGA,UACA,YADA,WAEA,sCAEA,YAJA,WAKA,yDAEA,SAPA,WAQA,SAQA,OANA,EADA,sDACA,OACA,sBACA,OAEA,QAEA,IAGA,SACA,YADA,WAEA,oBAEA,aAJA,WAKA,0BAEA,kBAPA,SAOA,4GAEA,GACA,QACA,oDACA,oBACA,iBACA,OACA,SACA,aACA,mBAEA,OACA,YACA,mDAEA,oBACA,8BACA,2CACA,6CAGA,mBACA,2BACA,oBAIA,wCACA,0BACA,8BAEA,mBAvCA,WAwCA,6BAEA,iBA1CA,SA0CA,GACA,kDAEA,oBA7CA,SA6CA,yKACA,kBACA,WACA,OACA,GACA,OACA,SACA,QACA,iBACA,OACA,SACA,aACA,mBAEA,YACA,yCAEA,wBACA,6CACA,6CACA,0BACA,6BACA,SACA,aAIA,kCACA,0BACA,uCACA,mBACA,6BAEA,0BAGA,0BAjFA,SAiFA,SACA,mCAEA,OACA,QACA,0CACA,2CACA,iBACA,OACA,SACA,aACA,mBAEA,OACA,YACA,4BAGA,kCACA,uCACA,6BACA,2BAE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","file":"js/chunk-19e64fdb.7072e0fd.js","sourcesContent":["/**\n * @module ol/events/EventType\n */\n/**\n * @enum {string}\n * @const\n */\nexport default {\n /**\n * Generic change event. Triggered when the revision counter is increased.\n * @event module:ol/events/Event~BaseEvent#change\n * @api\n */\n CHANGE: 'change',\n /**\n * Generic error event. Triggered when an error occurs.\n * @event module:ol/events/Event~BaseEvent#error\n * @api\n */\n ERROR: 'error',\n BLUR: 'blur',\n CLEAR: 'clear',\n CONTEXTMENU: 'contextmenu',\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DRAGENTER: 'dragenter',\n DRAGOVER: 'dragover',\n DROP: 'drop',\n FOCUS: 'focus',\n KEYDOWN: 'keydown',\n KEYPRESS: 'keypress',\n LOAD: 'load',\n RESIZE: 'resize',\n TOUCHMOVE: 'touchmove',\n WHEEL: 'wheel',\n};\n//# sourceMappingURL=EventType.js.map","/**\n * @module ol/tilegrid/common\n */\n/**\n * Default maximum zoom for default tile grids.\n * @type {number}\n */\nexport var DEFAULT_MAX_ZOOM = 42;\n/**\n * Default tile size.\n * @type {number}\n */\nexport var DEFAULT_TILE_SIZE = 256;\n//# sourceMappingURL=common.js.map","/**\n * @module ol/extent/Relationship\n */\n/**\n * Relationship to an extent.\n * @enum {number}\n */\nexport default {\n UNKNOWN: 0,\n INTERSECTING: 1,\n ABOVE: 2,\n RIGHT: 4,\n BELOW: 8,\n LEFT: 16,\n};\n//# sourceMappingURL=Relationship.js.map","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","/**\n * @module ol/events/condition\n */\nimport MapBrowserEventType from '../MapBrowserEventType.js';\nimport { FALSE, TRUE } from '../functions.js';\nimport { MAC, WEBKIT } from '../has.js';\nimport { assert } from '../asserts.js';\n/**\n * A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * `{boolean}`. If the condition is met, true should be returned.\n *\n * @typedef {function(this: ?, import(\"../MapBrowserEvent.js\").default): boolean} Condition\n */\n/**\n * Creates a condition function that passes when all provided conditions pass.\n * @param {...Condition} var_args Conditions to check.\n * @return {Condition} Condition function.\n */\nexport function all(var_args) {\n var conditions = arguments;\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n * @return {boolean} All conditions passed.\n */\n return function (event) {\n var pass = true;\n for (var i = 0, ii = conditions.length; i < ii; ++i) {\n pass = pass && conditions[i](event);\n if (!pass) {\n break;\n }\n }\n return pass;\n };\n}\n/**\n * Return `true` if only the alt-key is pressed, `false` otherwise (e.g. when\n * additionally the shift-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the alt key is pressed.\n * @api\n */\nexport var altKeyOnly = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n !originalEvent.shiftKey);\n};\n/**\n * Return `true` if only the alt-key and shift-key is pressed, `false` otherwise\n * (e.g. when additionally the platform-modifier-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the alt and shift keys are pressed.\n * @api\n */\nexport var altShiftKeysOnly = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n originalEvent.shiftKey);\n};\n/**\n * Return `true` if the map has the focus. This condition requires a map target\n * element with a `tabindex` attribute, e.g. `
`.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} event Map browser event.\n * @return {boolean} The map has the focus.\n * @api\n */\nexport var focus = function (event) {\n var targetElement = event.map.getTargetElement();\n var activeElement = event.map.getOwnerDocument().activeElement;\n return targetElement.contains(activeElement);\n};\n/**\n * Return `true` if the map has the focus or no 'tabindex' attribute set.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} event Map browser event.\n * @return {boolean} The map container has the focus or no 'tabindex' attribute.\n */\nexport var focusWithTabindex = function (event) {\n return event.map.getTargetElement().hasAttribute('tabindex')\n ? focus(event)\n : true;\n};\n/**\n * Return always true.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True.\n * @api\n */\nexport var always = TRUE;\n/**\n * Return `true` if the event is a `click` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `click` event.\n * @api\n */\nexport var click = function (mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.CLICK;\n};\n/**\n * Return `true` if the event has an \"action\"-producing mouse button.\n *\n * By definition, this includes left-click on windows/linux, and left-click\n * without the ctrl key on Macs.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} The result.\n */\nexport var mouseActionButton = function (mapBrowserEvent) {\n var originalEvent = /** @type {MouseEvent} */ (mapBrowserEvent.originalEvent);\n return originalEvent.button == 0 && !(WEBKIT && MAC && originalEvent.ctrlKey);\n};\n/**\n * Return always false.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} False.\n * @api\n */\nexport var never = FALSE;\n/**\n * Return `true` if the browser event is a `pointermove` event, `false`\n * otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the browser event is a `pointermove` event.\n * @api\n */\nexport var pointerMove = function (mapBrowserEvent) {\n return mapBrowserEvent.type == 'pointermove';\n};\n/**\n * Return `true` if the event is a map `singleclick` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `singleclick` event.\n * @api\n */\nexport var singleClick = function (mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.SINGLECLICK;\n};\n/**\n * Return `true` if the event is a map `dblclick` event, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event is a map `dblclick` event.\n * @api\n */\nexport var doubleClick = function (mapBrowserEvent) {\n return mapBrowserEvent.type == MapBrowserEventType.DBLCLICK;\n};\n/**\n * Return `true` if no modifier key (alt-, shift- or platform-modifier-key) is\n * pressed.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True only if there no modifier keys are pressed.\n * @api\n */\nexport var noModifierKeys = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (!originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n !originalEvent.shiftKey);\n};\n/**\n * Return `true` if only the platform-modifier-key (the meta-key on Mac,\n * ctrl-key otherwise) is pressed, `false` otherwise (e.g. when additionally\n * the shift-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the platform modifier key is pressed.\n * @api\n */\nexport var platformModifierKeyOnly = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (!originalEvent.altKey &&\n (MAC ? originalEvent.metaKey : originalEvent.ctrlKey) &&\n !originalEvent.shiftKey);\n};\n/**\n * Return `true` if only the shift-key is pressed, `false` otherwise (e.g. when\n * additionally the alt-key is pressed).\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if only the shift key is pressed.\n * @api\n */\nexport var shiftKeyOnly = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n return (!originalEvent.altKey &&\n !(originalEvent.metaKey || originalEvent.ctrlKey) &&\n originalEvent.shiftKey);\n};\n/**\n * Return `true` if the target element is not editable, i.e. not an `input`,\n * `select`, or `textarea` element and no `contenteditable` attribute is\n * set or inherited, `false` otherwise.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True only if the target element is not editable.\n * @api\n */\nexport var targetNotEditable = function (mapBrowserEvent) {\n var originalEvent = /** @type {KeyboardEvent|MouseEvent|TouchEvent} */ (mapBrowserEvent.originalEvent);\n var tagName = /** @type {Element} */ (originalEvent.target).tagName;\n return (tagName !== 'INPUT' &&\n tagName !== 'SELECT' &&\n tagName !== 'TEXTAREA' &&\n // `isContentEditable` is only available on `HTMLElement`, but it may also be a\n // different type like `SVGElement`.\n // @ts-ignore\n !originalEvent.target.isContentEditable);\n};\n/**\n * Return `true` if the event originates from a mouse device.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event originates from a mouse device.\n * @api\n */\nexport var mouseOnly = function (mapBrowserEvent) {\n var pointerEvent = /** @type {import(\"../MapBrowserEvent\").default} */ (mapBrowserEvent).originalEvent;\n assert(pointerEvent !== undefined, 56); // mapBrowserEvent must originate from a pointer event\n // see https://www.w3.org/TR/pointerevents/#widl-PointerEvent-pointerType\n return pointerEvent.pointerType == 'mouse';\n};\n/**\n * Return `true` if the event originates from a touchable device.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event originates from a touchable device.\n * @api\n */\nexport var touchOnly = function (mapBrowserEvent) {\n var pointerEvt = /** @type {import(\"../MapBrowserEvent\").default} */ (mapBrowserEvent).originalEvent;\n assert(pointerEvt !== undefined, 56); // mapBrowserEvent must originate from a pointer event\n // see https://www.w3.org/TR/pointerevents/#widl-PointerEvent-pointerType\n return pointerEvt.pointerType === 'touch';\n};\n/**\n * Return `true` if the event originates from a digital pen.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event originates from a digital pen.\n * @api\n */\nexport var penOnly = function (mapBrowserEvent) {\n var pointerEvt = /** @type {import(\"../MapBrowserEvent\").default} */ (mapBrowserEvent).originalEvent;\n assert(pointerEvt !== undefined, 56); // mapBrowserEvent must originate from a pointer event\n // see https://www.w3.org/TR/pointerevents/#widl-PointerEvent-pointerType\n return pointerEvt.pointerType === 'pen';\n};\n/**\n * Return `true` if the event originates from a primary pointer in\n * contact with the surface or if the left mouse button is pressed.\n * See https://www.w3.org/TR/pointerevents/#button-states.\n *\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} True if the event originates from a primary pointer.\n * @api\n */\nexport var primaryAction = function (mapBrowserEvent) {\n var pointerEvent = /** @type {import(\"../MapBrowserEvent\").default} */ (mapBrowserEvent).originalEvent;\n assert(pointerEvent !== undefined, 56); // mapBrowserEvent must originate from a pointer event\n return pointerEvent.isPrimary && pointerEvent.button === 0;\n};\n//# sourceMappingURL=condition.js.map","/**\n * @module ol/render/EventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered before a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#prerender\n * @api\n */\n PRERENDER: 'prerender',\n /**\n * Triggered after a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n /**\n * Triggered before layers are composed. When dispatched by the map, the event object will not have\n * a `context` set. When dispatched by a layer, the event object will have a `context` set. Only\n * WebGL layers currently dispatch this event.\n * @event module:ol/render/Event~RenderEvent#precompose\n * @api\n */\n PRECOMPOSE: 'precompose',\n /**\n * Triggered after layers are composed. When dispatched by the map, the event object will not have\n * a `context` set. When dispatched by a layer, the event object will have a `context` set. Only\n * WebGL layers currently dispatch this event.\n * @event module:ol/render/Event~RenderEvent#postcompose\n * @api\n */\n POSTCOMPOSE: 'postcompose',\n /**\n * Triggered when rendering is complete, i.e. all sources and tiles have\n * finished loading for the current viewport, and all tiles are faded in.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#rendercomplete\n * @api\n */\n RENDERCOMPLETE: 'rendercomplete',\n};\n/**\n * @typedef {'postrender'|'precompose'|'postcompose'|'rendercomplete'} MapRenderEventTypes\n */\n/**\n * @typedef {'postrender'|'prerender'} LayerRenderEventTypes\n */\n//# sourceMappingURL=EventType.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/Overlay\n */\nimport BaseObject from './Object.js';\nimport MapEventType from './MapEventType.js';\nimport { CLASS_SELECTABLE } from './css.js';\nimport { containsExtent } from './extent.js';\nimport { listen, unlistenByKey } from './events.js';\nimport { outerHeight, outerWidth, removeChildren, removeNode } from './dom.js';\n/**\n * @typedef {'bottom-left' | 'bottom-center' | 'bottom-right' | 'center-left' | 'center-center' | 'center-right' | 'top-left' | 'top-center' | 'top-right'} Positioning\n * The overlay position: `'bottom-left'`, `'bottom-center'`, `'bottom-right'`,\n * `'center-left'`, `'center-center'`, `'center-right'`, `'top-left'`,\n * `'top-center'`, or `'top-right'`.\n */\n/**\n * @typedef {Object} Options\n * @property {number|string} [id] Set the overlay id. The overlay id can be used\n * with the {@link module:ol/Map~Map#getOverlayById} method.\n * @property {HTMLElement} [element] The overlay element.\n * @property {Array} [offset=[0, 0]] Offsets in pixels used when positioning\n * the overlay. The first element in the\n * array is the horizontal offset. A positive value shifts the overlay right.\n * The second element in the array is the vertical offset. A positive value\n * shifts the overlay down.\n * @property {import(\"./coordinate.js\").Coordinate} [position] The overlay position\n * in map projection.\n * @property {Positioning} [positioning='top-left'] Defines how\n * the overlay is actually positioned with respect to its `position` property.\n * Possible values are `'bottom-left'`, `'bottom-center'`, `'bottom-right'`,\n * `'center-left'`, `'center-center'`, `'center-right'`, `'top-left'`,\n * `'top-center'`, and `'top-right'`.\n * @property {boolean} [stopEvent=true] Whether event propagation to the map\n * viewport should be stopped. If `true` the overlay is placed in the same\n * container as that of the controls (CSS class name\n * `ol-overlaycontainer-stopevent`); if `false` it is placed in the container\n * with CSS class name specified by the `className` property.\n * @property {boolean} [insertFirst=true] Whether the overlay is inserted first\n * in the overlay container, or appended. If the overlay is placed in the same\n * container as that of the controls (see the `stopEvent` option) you will\n * probably set `insertFirst` to `true` so the overlay is displayed below the\n * controls.\n * @property {PanIntoViewOptions|boolean} [autoPan=false] Pan the map when calling\n * `setPosition`, so that the overlay is entirely visible in the current viewport?\n * If `true` (deprecated), then `autoPanAnimation` and `autoPanMargin` will be\n * used to determine the panning parameters; if an object is supplied then other\n * parameters are ignored.\n * @property {PanOptions} [autoPanAnimation] The animation options used to pan\n * the overlay into view. This animation is only used when `autoPan` is enabled.\n * A `duration` and `easing` may be provided to customize the animation.\n * Deprecated and ignored if `autoPan` is supplied as an object.\n * @property {number} [autoPanMargin=20] The margin (in pixels) between the\n * overlay and the borders of the map when autopanning. Deprecated and ignored\n * if `autoPan` is supplied as an object.\n * @property {PanIntoViewOptions} [autoPanOptions] The options to use for the\n * autoPan. This is only used when `autoPan` is enabled and has preference over\n * the individual `autoPanMargin` and `autoPanOptions`.\n * @property {string} [className='ol-overlay-container ol-selectable'] CSS class\n * name.\n */\n/**\n * @typedef {Object} PanOptions\n * @property {number} [duration=1000] The duration of the animation in\n * milliseconds.\n * @property {function(number):number} [easing] The easing function to use. Can\n * be one from {@link module:ol/easing} or a custom function.\n * Default is {@link module:ol/easing.inAndOut}.\n */\n/**\n * @typedef {Object} PanIntoViewOptions\n * @property {PanOptions} [animation={}] The animation parameters for the pan\n * @property {number} [margin=20] The margin (in pixels) between the\n * overlay and the borders of the map when panning into view.\n */\n/**\n * @enum {string}\n * @protected\n */\nvar Property = {\n ELEMENT: 'element',\n MAP: 'map',\n OFFSET: 'offset',\n POSITION: 'position',\n POSITIONING: 'positioning',\n};\n/**\n * @typedef {import(\"./ObjectEventType\").Types|'change:element'|'change:map'|'change:offset'|'change:position'|\n * 'change:positioning'} OverlayObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} OverlayOnSignature\n */\n/**\n * @classdesc\n * An element to be displayed over the map and attached to a single map\n * location. Like {@link module:ol/control/Control~Control}, Overlays are\n * visible widgets. Unlike Controls, they are not in a fixed position on the\n * screen, but are tied to a geographical coordinate, so panning the map will\n * move an Overlay but not a Control.\n *\n * Example:\n *\n * import Overlay from 'ol/Overlay';\n *\n * var popup = new Overlay({\n * element: document.getElementById('popup')\n * });\n * popup.setPosition(coordinate);\n * map.addOverlay(popup);\n *\n * @api\n */\nvar Overlay = /** @class */ (function (_super) {\n __extends(Overlay, _super);\n /**\n * @param {Options} options Overlay options.\n */\n function Overlay(options) {\n var _this = _super.call(this) || this;\n /***\n * @type {OverlayOnSignature}\n */\n _this.on;\n /***\n * @type {OverlayOnSignature}\n */\n _this.once;\n /***\n * @type {OverlayOnSignature}\n */\n _this.un;\n /**\n * @protected\n * @type {Options}\n */\n _this.options = options;\n /**\n * @protected\n * @type {number|string|undefined}\n */\n _this.id = options.id;\n /**\n * @protected\n * @type {boolean}\n */\n _this.insertFirst =\n options.insertFirst !== undefined ? options.insertFirst : true;\n /**\n * @protected\n * @type {boolean}\n */\n _this.stopEvent = options.stopEvent !== undefined ? options.stopEvent : true;\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.element = document.createElement('div');\n _this.element.className =\n options.className !== undefined\n ? options.className\n : 'ol-overlay-container ' + CLASS_SELECTABLE;\n _this.element.style.position = 'absolute';\n _this.element.style.pointerEvents = 'auto';\n var autoPan = options.autoPan;\n if (autoPan && 'object' !== typeof autoPan) {\n autoPan = {\n animation: options.autoPanAnimation,\n margin: options.autoPanMargin,\n };\n }\n /**\n * @protected\n * @type {PanIntoViewOptions|false}\n */\n _this.autoPan = /** @type {PanIntoViewOptions} */ (autoPan) || false;\n /**\n * @protected\n * @type {{transform_: string,\n * visible: boolean}}\n */\n _this.rendered = {\n transform_: '',\n visible: true,\n };\n /**\n * @protected\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.mapPostrenderListenerKey = null;\n _this.addChangeListener(Property.ELEMENT, _this.handleElementChanged);\n _this.addChangeListener(Property.MAP, _this.handleMapChanged);\n _this.addChangeListener(Property.OFFSET, _this.handleOffsetChanged);\n _this.addChangeListener(Property.POSITION, _this.handlePositionChanged);\n _this.addChangeListener(Property.POSITIONING, _this.handlePositioningChanged);\n if (options.element !== undefined) {\n _this.setElement(options.element);\n }\n _this.setOffset(options.offset !== undefined ? options.offset : [0, 0]);\n _this.setPositioning(options.positioning || 'top-left');\n if (options.position !== undefined) {\n _this.setPosition(options.position);\n }\n return _this;\n }\n /**\n * Get the DOM element of this overlay.\n * @return {HTMLElement|undefined} The Element containing the overlay.\n * @observable\n * @api\n */\n Overlay.prototype.getElement = function () {\n return /** @type {HTMLElement|undefined} */ (this.get(Property.ELEMENT));\n };\n /**\n * Get the overlay identifier which is set on constructor.\n * @return {number|string|undefined} Id.\n * @api\n */\n Overlay.prototype.getId = function () {\n return this.id;\n };\n /**\n * Get the map associated with this overlay.\n * @return {import(\"./PluggableMap.js\").default|null} The map that the\n * overlay is part of.\n * @observable\n * @api\n */\n Overlay.prototype.getMap = function () {\n return /** @type {import(\"./PluggableMap.js\").default|null} */ (this.get(Property.MAP) || null);\n };\n /**\n * Get the offset of this overlay.\n * @return {Array} The offset.\n * @observable\n * @api\n */\n Overlay.prototype.getOffset = function () {\n return /** @type {Array} */ (this.get(Property.OFFSET));\n };\n /**\n * Get the current position of this overlay.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} The spatial point that the overlay is\n * anchored at.\n * @observable\n * @api\n */\n Overlay.prototype.getPosition = function () {\n return /** @type {import(\"./coordinate.js\").Coordinate|undefined} */ (this.get(Property.POSITION));\n };\n /**\n * Get the current positioning of this overlay.\n * @return {Positioning} How the overlay is positioned\n * relative to its point on the map.\n * @observable\n * @api\n */\n Overlay.prototype.getPositioning = function () {\n return /** @type {Positioning} */ (this.get(Property.POSITIONING));\n };\n /**\n * @protected\n */\n Overlay.prototype.handleElementChanged = function () {\n removeChildren(this.element);\n var element = this.getElement();\n if (element) {\n this.element.appendChild(element);\n }\n };\n /**\n * @protected\n */\n Overlay.prototype.handleMapChanged = function () {\n if (this.mapPostrenderListenerKey) {\n removeNode(this.element);\n unlistenByKey(this.mapPostrenderListenerKey);\n this.mapPostrenderListenerKey = null;\n }\n var map = this.getMap();\n if (map) {\n this.mapPostrenderListenerKey = listen(map, MapEventType.POSTRENDER, this.render, this);\n this.updatePixelPosition();\n var container = this.stopEvent\n ? map.getOverlayContainerStopEvent()\n : map.getOverlayContainer();\n if (this.insertFirst) {\n container.insertBefore(this.element, container.childNodes[0] || null);\n }\n else {\n container.appendChild(this.element);\n }\n this.performAutoPan();\n }\n };\n /**\n * @protected\n */\n Overlay.prototype.render = function () {\n this.updatePixelPosition();\n };\n /**\n * @protected\n */\n Overlay.prototype.handleOffsetChanged = function () {\n this.updatePixelPosition();\n };\n /**\n * @protected\n */\n Overlay.prototype.handlePositionChanged = function () {\n this.updatePixelPosition();\n this.performAutoPan();\n };\n /**\n * @protected\n */\n Overlay.prototype.handlePositioningChanged = function () {\n this.updatePixelPosition();\n };\n /**\n * Set the DOM element to be associated with this overlay.\n * @param {HTMLElement|undefined} element The Element containing the overlay.\n * @observable\n * @api\n */\n Overlay.prototype.setElement = function (element) {\n this.set(Property.ELEMENT, element);\n };\n /**\n * Set the map to be associated with this overlay.\n * @param {import(\"./PluggableMap.js\").default|null} map The map that the\n * overlay is part of. Pass `null` to just remove the overlay from the current map.\n * @observable\n * @api\n */\n Overlay.prototype.setMap = function (map) {\n this.set(Property.MAP, map);\n };\n /**\n * Set the offset for this overlay.\n * @param {Array} offset Offset.\n * @observable\n * @api\n */\n Overlay.prototype.setOffset = function (offset) {\n this.set(Property.OFFSET, offset);\n };\n /**\n * Set the position for this overlay. If the position is `undefined` the\n * overlay is hidden.\n * @param {import(\"./coordinate.js\").Coordinate|undefined} position The spatial point that the overlay\n * is anchored at.\n * @observable\n * @api\n */\n Overlay.prototype.setPosition = function (position) {\n this.set(Property.POSITION, position);\n };\n /**\n * Pan the map so that the overlay is entirely visible in the current viewport\n * (if necessary) using the configured autoPan parameters\n * @protected\n */\n Overlay.prototype.performAutoPan = function () {\n if (this.autoPan) {\n this.panIntoView(this.autoPan);\n }\n };\n /**\n * Pan the map so that the overlay is entirely visible in the current viewport\n * (if necessary).\n * @param {PanIntoViewOptions} [opt_panIntoViewOptions] Options for the pan action\n * @api\n */\n Overlay.prototype.panIntoView = function (opt_panIntoViewOptions) {\n var map = this.getMap();\n if (!map || !map.getTargetElement() || !this.get(Property.POSITION)) {\n return;\n }\n var mapRect = this.getRect(map.getTargetElement(), map.getSize());\n var element = this.getElement();\n var overlayRect = this.getRect(element, [\n outerWidth(element),\n outerHeight(element),\n ]);\n var panIntoViewOptions = opt_panIntoViewOptions || {};\n var myMargin = panIntoViewOptions.margin === undefined ? 20 : panIntoViewOptions.margin;\n if (!containsExtent(mapRect, overlayRect)) {\n // the overlay is not completely inside the viewport, so pan the map\n var offsetLeft = overlayRect[0] - mapRect[0];\n var offsetRight = mapRect[2] - overlayRect[2];\n var offsetTop = overlayRect[1] - mapRect[1];\n var offsetBottom = mapRect[3] - overlayRect[3];\n var delta = [0, 0];\n if (offsetLeft < 0) {\n // move map to the left\n delta[0] = offsetLeft - myMargin;\n }\n else if (offsetRight < 0) {\n // move map to the right\n delta[0] = Math.abs(offsetRight) + myMargin;\n }\n if (offsetTop < 0) {\n // move map up\n delta[1] = offsetTop - myMargin;\n }\n else if (offsetBottom < 0) {\n // move map down\n delta[1] = Math.abs(offsetBottom) + myMargin;\n }\n if (delta[0] !== 0 || delta[1] !== 0) {\n var center = /** @type {import(\"./coordinate.js\").Coordinate} */ (map.getView().getCenterInternal());\n var centerPx = map.getPixelFromCoordinateInternal(center);\n if (!centerPx) {\n return;\n }\n var newCenterPx = [centerPx[0] + delta[0], centerPx[1] + delta[1]];\n var panOptions = panIntoViewOptions.animation || {};\n map.getView().animateInternal({\n center: map.getCoordinateFromPixelInternal(newCenterPx),\n duration: panOptions.duration,\n easing: panOptions.easing,\n });\n }\n }\n };\n /**\n * Get the extent of an element relative to the document\n * @param {HTMLElement} element The element.\n * @param {import(\"./size.js\").Size} size The size of the element.\n * @return {import(\"./extent.js\").Extent} The extent.\n * @protected\n */\n Overlay.prototype.getRect = function (element, size) {\n var box = element.getBoundingClientRect();\n var offsetX = box.left + window.pageXOffset;\n var offsetY = box.top + window.pageYOffset;\n return [offsetX, offsetY, offsetX + size[0], offsetY + size[1]];\n };\n /**\n * Set the positioning for this overlay.\n * @param {Positioning} positioning how the overlay is\n * positioned relative to its point on the map.\n * @observable\n * @api\n */\n Overlay.prototype.setPositioning = function (positioning) {\n this.set(Property.POSITIONING, positioning);\n };\n /**\n * Modify the visibility of the element.\n * @param {boolean} visible Element visibility.\n * @protected\n */\n Overlay.prototype.setVisible = function (visible) {\n if (this.rendered.visible !== visible) {\n this.element.style.display = visible ? '' : 'none';\n this.rendered.visible = visible;\n }\n };\n /**\n * Update pixel position.\n * @protected\n */\n Overlay.prototype.updatePixelPosition = function () {\n var map = this.getMap();\n var position = this.getPosition();\n if (!map || !map.isRendered() || !position) {\n this.setVisible(false);\n return;\n }\n var pixel = map.getPixelFromCoordinate(position);\n var mapSize = map.getSize();\n this.updateRenderedPosition(pixel, mapSize);\n };\n /**\n * @param {import(\"./pixel.js\").Pixel} pixel The pixel location.\n * @param {import(\"./size.js\").Size|undefined} mapSize The map size.\n * @protected\n */\n Overlay.prototype.updateRenderedPosition = function (pixel, mapSize) {\n var style = this.element.style;\n var offset = this.getOffset();\n var positioning = this.getPositioning();\n this.setVisible(true);\n var x = Math.round(pixel[0] + offset[0]) + 'px';\n var y = Math.round(pixel[1] + offset[1]) + 'px';\n var posX = '0%';\n var posY = '0%';\n if (positioning == 'bottom-right' ||\n positioning == 'center-right' ||\n positioning == 'top-right') {\n posX = '-100%';\n }\n else if (positioning == 'bottom-center' ||\n positioning == 'center-center' ||\n positioning == 'top-center') {\n posX = '-50%';\n }\n if (positioning == 'bottom-left' ||\n positioning == 'bottom-center' ||\n positioning == 'bottom-right') {\n posY = '-100%';\n }\n else if (positioning == 'center-left' ||\n positioning == 'center-center' ||\n positioning == 'center-right') {\n posY = '-50%';\n }\n var transform = \"translate(\".concat(posX, \", \").concat(posY, \") translate(\").concat(x, \", \").concat(y, \")\");\n if (this.rendered.transform_ != transform) {\n this.rendered.transform_ = transform;\n style.transform = transform;\n // @ts-ignore IE9\n style.msTransform = transform;\n }\n };\n /**\n * returns the options this Overlay has been created with\n * @return {Options} overlay options\n */\n Overlay.prototype.getOptions = function () {\n return this.options;\n };\n return Overlay;\n}(BaseObject));\nexport default Overlay;\n//# sourceMappingURL=Overlay.js.map","/**\n * @module ol/tilegrid\n */\nimport TileGrid from './tilegrid/TileGrid.js';\nimport Units from './proj/Units.js';\nimport { DEFAULT_MAX_ZOOM, DEFAULT_TILE_SIZE } from './tilegrid/common.js';\nimport { METERS_PER_UNIT, get as getProjection } from './proj.js';\nimport { containsCoordinate, createOrUpdate, getCorner, getHeight, getWidth, } from './extent.js';\nimport { toSize } from './size.js';\n/**\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {!TileGrid} Default tile grid for the\n * passed projection.\n */\nexport function getForProjection(projection) {\n var tileGrid = projection.getDefaultTileGrid();\n if (!tileGrid) {\n tileGrid = createForProjection(projection);\n projection.setDefaultTileGrid(tileGrid);\n }\n return tileGrid;\n}\n/**\n * @param {TileGrid} tileGrid Tile grid.\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {import(\"./tilecoord.js\").TileCoord} Tile coordinate.\n */\nexport function wrapX(tileGrid, tileCoord, projection) {\n var z = tileCoord[0];\n var center = tileGrid.getTileCoordCenter(tileCoord);\n var projectionExtent = extentFromProjection(projection);\n if (!containsCoordinate(projectionExtent, center)) {\n var worldWidth = getWidth(projectionExtent);\n var worldsAway = Math.ceil((projectionExtent[0] - center[0]) / worldWidth);\n center[0] += worldWidth * worldsAway;\n return tileGrid.getTileCoordForCoordAndZ(center, z);\n }\n else {\n return tileCoord;\n }\n}\n/**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} [opt_maxZoom] Maximum zoom level (default is\n * DEFAULT_MAX_ZOOM).\n * @param {number|import(\"./size.js\").Size} [opt_tileSize] Tile size (default uses\n * DEFAULT_TILE_SIZE).\n * @param {import(\"./extent.js\").Corner} [opt_corner] Extent corner (default is `'top-left'`).\n * @return {!TileGrid} TileGrid instance.\n */\nexport function createForExtent(extent, opt_maxZoom, opt_tileSize, opt_corner) {\n var corner = opt_corner !== undefined ? opt_corner : 'top-left';\n var resolutions = resolutionsFromExtent(extent, opt_maxZoom, opt_tileSize);\n return new TileGrid({\n extent: extent,\n origin: getCorner(extent, corner),\n resolutions: resolutions,\n tileSize: opt_tileSize,\n });\n}\n/**\n * @typedef {Object} XYZOptions\n * @property {import(\"./extent.js\").Extent} [extent] Extent for the tile grid. The origin for an XYZ tile grid is the\n * top-left corner of the extent. If `maxResolution` is not provided the zero level of the grid is defined by the resolution\n * at which one tile fits in the provided extent. If not provided, the extent of the EPSG:3857 projection is used.\n * @property {number} [maxResolution] Resolution at level zero.\n * @property {number} [maxZoom] Maximum zoom. The default is `42`. This determines the number of levels\n * in the grid set. For example, a `maxZoom` of 21 means there are 22 levels in the grid set.\n * @property {number} [minZoom=0] Minimum zoom.\n * @property {number|import(\"./size.js\").Size} [tileSize=[256, 256]] Tile size in pixels.\n */\n/**\n * Creates a tile grid with a standard XYZ tiling scheme.\n * @param {XYZOptions} [opt_options] Tile grid options.\n * @return {!TileGrid} Tile grid instance.\n * @api\n */\nexport function createXYZ(opt_options) {\n var xyzOptions = opt_options || {};\n var extent = xyzOptions.extent || getProjection('EPSG:3857').getExtent();\n var gridOptions = {\n extent: extent,\n minZoom: xyzOptions.minZoom,\n tileSize: xyzOptions.tileSize,\n resolutions: resolutionsFromExtent(extent, xyzOptions.maxZoom, xyzOptions.tileSize, xyzOptions.maxResolution),\n };\n return new TileGrid(gridOptions);\n}\n/**\n * Create a resolutions array from an extent. A zoom factor of 2 is assumed.\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} [opt_maxZoom] Maximum zoom level (default is\n * DEFAULT_MAX_ZOOM).\n * @param {number|import(\"./size.js\").Size} [opt_tileSize] Tile size (default uses\n * DEFAULT_TILE_SIZE).\n * @param {number} [opt_maxResolution] Resolution at level zero.\n * @return {!Array} Resolutions array.\n */\nfunction resolutionsFromExtent(extent, opt_maxZoom, opt_tileSize, opt_maxResolution) {\n var maxZoom = opt_maxZoom !== undefined ? opt_maxZoom : DEFAULT_MAX_ZOOM;\n var height = getHeight(extent);\n var width = getWidth(extent);\n var tileSize = toSize(opt_tileSize !== undefined ? opt_tileSize : DEFAULT_TILE_SIZE);\n var maxResolution = opt_maxResolution > 0\n ? opt_maxResolution\n : Math.max(width / tileSize[0], height / tileSize[1]);\n var length = maxZoom + 1;\n var resolutions = new Array(length);\n for (var z = 0; z < length; ++z) {\n resolutions[z] = maxResolution / Math.pow(2, z);\n }\n return resolutions;\n}\n/**\n * @param {import(\"./proj.js\").ProjectionLike} projection Projection.\n * @param {number} [opt_maxZoom] Maximum zoom level (default is\n * DEFAULT_MAX_ZOOM).\n * @param {number|import(\"./size.js\").Size} [opt_tileSize] Tile size (default uses\n * DEFAULT_TILE_SIZE).\n * @param {import(\"./extent.js\").Corner} [opt_corner] Extent corner (default is `'top-left'`).\n * @return {!TileGrid} TileGrid instance.\n */\nexport function createForProjection(projection, opt_maxZoom, opt_tileSize, opt_corner) {\n var extent = extentFromProjection(projection);\n return createForExtent(extent, opt_maxZoom, opt_tileSize, opt_corner);\n}\n/**\n * Generate a tile grid extent from a projection. If the projection has an\n * extent, it is used. If not, a global extent is assumed.\n * @param {import(\"./proj.js\").ProjectionLike} projection Projection.\n * @return {import(\"./extent.js\").Extent} Extent.\n */\nexport function extentFromProjection(projection) {\n projection = getProjection(projection);\n var extent = projection.getExtent();\n if (!extent) {\n var half = (180 * METERS_PER_UNIT[Units.DEGREES]) / projection.getMetersPerUnit();\n extent = createOrUpdate(-half, -half, half, half);\n }\n return extent;\n}\n//# sourceMappingURL=tilegrid.js.map","import { WORKER_OFFSCREEN_CANVAS } from './has.js';\n/**\n * @module ol/dom\n */\n//FIXME Move this function to the canvas module\n/**\n * Create an html canvas element and returns its 2d context.\n * @param {number} [opt_width] Canvas width.\n * @param {number} [opt_height] Canvas height.\n * @param {Array} [opt_canvasPool] Canvas pool to take existing canvas from.\n * @param {CanvasRenderingContext2DSettings} [opt_Context2DSettings] CanvasRenderingContext2DSettings\n * @return {CanvasRenderingContext2D} The context.\n */\nexport function createCanvasContext2D(opt_width, opt_height, opt_canvasPool, opt_Context2DSettings) {\n /** @type {HTMLCanvasElement|OffscreenCanvas} */\n var canvas;\n if (opt_canvasPool && opt_canvasPool.length) {\n canvas = opt_canvasPool.shift();\n }\n else if (WORKER_OFFSCREEN_CANVAS) {\n canvas = new OffscreenCanvas(opt_width || 300, opt_height || 300);\n }\n else {\n canvas = document.createElement('canvas');\n }\n if (opt_width) {\n canvas.width = opt_width;\n }\n if (opt_height) {\n canvas.height = opt_height;\n }\n //FIXME Allow OffscreenCanvasRenderingContext2D as return type\n return /** @type {CanvasRenderingContext2D} */ (canvas.getContext('2d', opt_Context2DSettings));\n}\n/**\n * Releases canvas memory to avoid exceeding memory limits in Safari.\n * See https://pqina.nl/blog/total-canvas-memory-use-exceeds-the-maximum-limit/\n * @param {CanvasRenderingContext2D} context Context.\n */\nexport function releaseCanvas(context) {\n var canvas = context.canvas;\n canvas.width = 1;\n canvas.height = 1;\n context.clearRect(0, 0, 1, 1);\n}\n/**\n * Get the current computed width for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerWidth(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The width.\n */\nexport function outerWidth(element) {\n var width = element.offsetWidth;\n var style = getComputedStyle(element);\n width += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);\n return width;\n}\n/**\n * Get the current computed height for the given element including margin,\n * padding and border.\n * Equivalent to jQuery's `$(el).outerHeight(true)`.\n * @param {!HTMLElement} element Element.\n * @return {number} The height.\n */\nexport function outerHeight(element) {\n var height = element.offsetHeight;\n var style = getComputedStyle(element);\n height += parseInt(style.marginTop, 10) + parseInt(style.marginBottom, 10);\n return height;\n}\n/**\n * @param {Node} newNode Node to replace old node\n * @param {Node} oldNode The node to be replaced\n */\nexport function replaceNode(newNode, oldNode) {\n var parent = oldNode.parentNode;\n if (parent) {\n parent.replaceChild(newNode, oldNode);\n }\n}\n/**\n * @param {Node} node The node to remove.\n * @return {Node|null} The node that was removed or null.\n */\nexport function removeNode(node) {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n/**\n * @param {Node} node The node to remove the children from.\n */\nexport function removeChildren(node) {\n while (node.lastChild) {\n node.removeChild(node.lastChild);\n }\n}\n/**\n * Transform the children of a parent node so they match the\n * provided list of children. This function aims to efficiently\n * remove, add, and reorder child nodes while maintaining a simple\n * implementation (it is not guaranteed to minimize DOM operations).\n * @param {Node} node The parent node whose children need reworking.\n * @param {Array} children The desired children.\n */\nexport function replaceChildren(node, children) {\n var oldChildren = node.childNodes;\n for (var i = 0; true; ++i) {\n var oldChild = oldChildren[i];\n var newChild = children[i];\n // check if our work is done\n if (!oldChild && !newChild) {\n break;\n }\n // check if children match\n if (oldChild === newChild) {\n continue;\n }\n // check if a new child needs to be added\n if (!oldChild) {\n node.appendChild(newChild);\n continue;\n }\n // check if an old child needs to be removed\n if (!newChild) {\n node.removeChild(oldChild);\n --i;\n continue;\n }\n // reorder\n node.insertBefore(newChild, oldChild);\n }\n}\n//# sourceMappingURL=dom.js.map","/**\n * @module ol/geom/flat/interiorpoint\n */\nimport { linearRingsContainsXY } from './contains.js';\nimport { numberSafeCompareFunction } from '../../array.js';\n/**\n * Calculates a point that is likely to lie in the interior of the linear rings.\n * Inspired by JTS's com.vividsolutions.jts.geom.Geometry#getInteriorPoint.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @param {number} flatCentersOffset Flat center offset.\n * @param {Array} [opt_dest] Destination.\n * @return {Array} Destination point as XYM coordinate, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointOfArray(flatCoordinates, offset, ends, stride, flatCenters, flatCentersOffset, opt_dest) {\n var i, ii, x, x1, x2, y1, y2;\n var y = flatCenters[flatCentersOffset + 1];\n /** @type {Array} */\n var intersections = [];\n // Calculate intersections with the horizontal line\n for (var r = 0, rr = ends.length; r < rr; ++r) {\n var end = ends[r];\n x1 = flatCoordinates[end - stride];\n y1 = flatCoordinates[end - stride + 1];\n for (i = offset; i < end; i += stride) {\n x2 = flatCoordinates[i];\n y2 = flatCoordinates[i + 1];\n if ((y <= y1 && y2 <= y) || (y1 <= y && y <= y2)) {\n x = ((y - y1) / (y2 - y1)) * (x2 - x1) + x1;\n intersections.push(x);\n }\n x1 = x2;\n y1 = y2;\n }\n }\n // Find the longest segment of the horizontal line that has its center point\n // inside the linear ring.\n var pointX = NaN;\n var maxSegmentLength = -Infinity;\n intersections.sort(numberSafeCompareFunction);\n x1 = intersections[0];\n for (i = 1, ii = intersections.length; i < ii; ++i) {\n x2 = intersections[i];\n var segmentLength = Math.abs(x2 - x1);\n if (segmentLength > maxSegmentLength) {\n x = (x1 + x2) / 2;\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n pointX = x;\n maxSegmentLength = segmentLength;\n }\n }\n x1 = x2;\n }\n if (isNaN(pointX)) {\n // There is no horizontal line that has its center point inside the linear\n // ring. Use the center of the the linear ring's extent.\n pointX = flatCenters[flatCentersOffset];\n }\n if (opt_dest) {\n opt_dest.push(pointX, y, maxSegmentLength);\n return opt_dest;\n }\n else {\n return [pointX, y, maxSegmentLength];\n }\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {Array} flatCenters Flat centers.\n * @return {Array} Interior points as XYM coordinates, where M is the\n * length of the horizontal intersection that the point belongs to.\n */\nexport function getInteriorPointsOfMultiArray(flatCoordinates, offset, endss, stride, flatCenters) {\n var interiorPoints = [];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n interiorPoints = getInteriorPointOfArray(flatCoordinates, offset, ends, stride, flatCenters, 2 * i, interiorPoints);\n offset = ends[ends.length - 1];\n }\n return interiorPoints;\n}\n//# sourceMappingURL=interiorpoint.js.map","/**\n * @module ol/extent\n */\nimport Relationship from './extent/Relationship.js';\nimport { assert } from './asserts.js';\n/**\n * An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.\n * @typedef {Array} Extent\n * @api\n */\n/**\n * Extent corner.\n * @typedef {'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'} Corner\n */\n/**\n * Build an extent that includes all given coordinates.\n *\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Bounding extent.\n * @api\n */\nexport function boundingExtent(coordinates) {\n var extent = createEmpty();\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n/**\n * @param {Array} xs Xs.\n * @param {Array} ys Ys.\n * @param {Extent} [opt_extent] Destination extent.\n * @private\n * @return {Extent} Extent.\n */\nfunction _boundingExtentXYs(xs, ys, opt_extent) {\n var minX = Math.min.apply(null, xs);\n var minY = Math.min.apply(null, ys);\n var maxX = Math.max.apply(null, xs);\n var maxY = Math.max.apply(null, ys);\n return createOrUpdate(minX, minY, maxX, maxY, opt_extent);\n}\n/**\n * Return extent increased by the provided value.\n * @param {Extent} extent Extent.\n * @param {number} value The amount by which the extent should be buffered.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function buffer(extent, value, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0] - value;\n opt_extent[1] = extent[1] - value;\n opt_extent[2] = extent[2] + value;\n opt_extent[3] = extent[3] + value;\n return opt_extent;\n }\n else {\n return [\n extent[0] - value,\n extent[1] - value,\n extent[2] + value,\n extent[3] + value,\n ];\n }\n}\n/**\n * Creates a clone of an extent.\n *\n * @param {Extent} extent Extent to clone.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} The clone.\n */\nexport function clone(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n }\n else {\n return extent.slice();\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {number} Closest squared distance.\n */\nexport function closestSquaredDistanceXY(extent, x, y) {\n var dx, dy;\n if (x < extent[0]) {\n dx = extent[0] - x;\n }\n else if (extent[2] < x) {\n dx = x - extent[2];\n }\n else {\n dx = 0;\n }\n if (y < extent[1]) {\n dy = extent[1] - y;\n }\n else if (extent[3] < y) {\n dy = y - extent[3];\n }\n else {\n dy = 0;\n }\n return dx * dx + dy * dy;\n}\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} The coordinate is contained in the extent.\n * @api\n */\nexport function containsCoordinate(extent, coordinate) {\n return containsXY(extent, coordinate[0], coordinate[1]);\n}\n/**\n * Check if one extent contains another.\n *\n * An extent is deemed contained if it lies completely within the other extent,\n * including if they share one or more edges.\n *\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The second extent is contained by or on the edge of the\n * first.\n * @api\n */\nexport function containsExtent(extent1, extent2) {\n return (extent1[0] <= extent2[0] &&\n extent2[2] <= extent1[2] &&\n extent1[1] <= extent2[1] &&\n extent2[3] <= extent1[3]);\n}\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {number} x X coordinate.\n * @param {number} y Y coordinate.\n * @return {boolean} The x, y values are contained in the extent.\n * @api\n */\nexport function containsXY(extent, x, y) {\n return extent[0] <= x && x <= extent[2] && extent[1] <= y && y <= extent[3];\n}\n/**\n * Get the relationship between a coordinate and extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate The coordinate.\n * @return {import(\"./extent/Relationship.js\").default} The relationship (bitwise compare with\n * import(\"./extent/Relationship.js\").Relationship).\n */\nexport function coordinateRelationship(extent, coordinate) {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var x = coordinate[0];\n var y = coordinate[1];\n var relationship = Relationship.UNKNOWN;\n if (x < minX) {\n relationship = relationship | Relationship.LEFT;\n }\n else if (x > maxX) {\n relationship = relationship | Relationship.RIGHT;\n }\n if (y < minY) {\n relationship = relationship | Relationship.BELOW;\n }\n else if (y > maxY) {\n relationship = relationship | Relationship.ABOVE;\n }\n if (relationship === Relationship.UNKNOWN) {\n relationship = Relationship.INTERSECTING;\n }\n return relationship;\n}\n/**\n * Create an empty extent.\n * @return {Extent} Empty extent.\n * @api\n */\nexport function createEmpty() {\n return [Infinity, Infinity, -Infinity, -Infinity];\n}\n/**\n * Create a new extent or update the provided extent.\n * @param {number} minX Minimum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxX Maximum X.\n * @param {number} maxY Maximum Y.\n * @param {Extent} [opt_extent] Destination extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdate(minX, minY, maxX, maxY, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = minX;\n opt_extent[1] = minY;\n opt_extent[2] = maxX;\n opt_extent[3] = maxY;\n return opt_extent;\n }\n else {\n return [minX, minY, maxX, maxY];\n }\n}\n/**\n * Create a new empty extent or make the provided one empty.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateEmpty(opt_extent) {\n return createOrUpdate(Infinity, Infinity, -Infinity, -Infinity, opt_extent);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinate(coordinate, opt_extent) {\n var x = coordinate[0];\n var y = coordinate[1];\n return createOrUpdate(x, y, x, y, opt_extent);\n}\n/**\n * @param {Array} coordinates Coordinates.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinates(coordinates, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendCoordinates(extent, coordinates);\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromFlatCoordinates(flatCoordinates, offset, end, stride, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendFlatCoordinates(extent, flatCoordinates, offset, end, stride);\n}\n/**\n * @param {Array>} rings Rings.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromRings(rings, opt_extent) {\n var extent = createOrUpdateEmpty(opt_extent);\n return extendRings(extent, rings);\n}\n/**\n * Determine if two extents are equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The two extents are equivalent.\n * @api\n */\nexport function equals(extent1, extent2) {\n return (extent1[0] == extent2[0] &&\n extent1[2] == extent2[2] &&\n extent1[1] == extent2[1] &&\n extent1[3] == extent2[3]);\n}\n/**\n * Determine if two extents are approximately equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {number} tolerance Tolerance in extent coordinate units.\n * @return {boolean} The two extents differ by less than the tolerance.\n */\nexport function approximatelyEquals(extent1, extent2, tolerance) {\n return (Math.abs(extent1[0] - extent2[0]) < tolerance &&\n Math.abs(extent1[2] - extent2[2]) < tolerance &&\n Math.abs(extent1[1] - extent2[1]) < tolerance &&\n Math.abs(extent1[3] - extent2[3]) < tolerance);\n}\n/**\n * Modify an extent to include another extent.\n * @param {Extent} extent1 The extent to be modified.\n * @param {Extent} extent2 The extent that will be included in the first.\n * @return {Extent} A reference to the first (extended) extent.\n * @api\n */\nexport function extend(extent1, extent2) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n */\nexport function extendCoordinate(extent, coordinate) {\n if (coordinate[0] < extent[0]) {\n extent[0] = coordinate[0];\n }\n if (coordinate[0] > extent[2]) {\n extent[2] = coordinate[0];\n }\n if (coordinate[1] < extent[1]) {\n extent[1] = coordinate[1];\n }\n if (coordinate[1] > extent[3]) {\n extent[3] = coordinate[1];\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Extent.\n */\nexport function extendCoordinates(extent, coordinates) {\n for (var i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Extent} Extent.\n */\nexport function extendFlatCoordinates(extent, flatCoordinates, offset, end, stride) {\n for (; offset < end; offset += stride) {\n extendXY(extent, flatCoordinates[offset], flatCoordinates[offset + 1]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Array>} rings Rings.\n * @return {Extent} Extent.\n */\nexport function extendRings(extent, rings) {\n for (var i = 0, ii = rings.length; i < ii; ++i) {\n extendCoordinates(extent, rings[i]);\n }\n return extent;\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n */\nexport function extendXY(extent, x, y) {\n extent[0] = Math.min(extent[0], x);\n extent[1] = Math.min(extent[1], y);\n extent[2] = Math.max(extent[2], x);\n extent[3] = Math.max(extent[3], y);\n}\n/**\n * This function calls `callback` for each corner of the extent. If the\n * callback returns a truthy value the function returns that value\n * immediately. Otherwise the function returns `false`.\n * @param {Extent} extent Extent.\n * @param {function(import(\"./coordinate.js\").Coordinate): S} callback Callback.\n * @return {S|boolean} Value.\n * @template S\n */\nexport function forEachCorner(extent, callback) {\n var val;\n val = callback(getBottomLeft(extent));\n if (val) {\n return val;\n }\n val = callback(getBottomRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopLeft(extent));\n if (val) {\n return val;\n }\n return false;\n}\n/**\n * Get the size of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Area.\n * @api\n */\nexport function getArea(extent) {\n var area = 0;\n if (!isEmpty(extent)) {\n area = getWidth(extent) * getHeight(extent);\n }\n return area;\n}\n/**\n * Get the bottom left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom left coordinate.\n * @api\n */\nexport function getBottomLeft(extent) {\n return [extent[0], extent[1]];\n}\n/**\n * Get the bottom right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom right coordinate.\n * @api\n */\nexport function getBottomRight(extent) {\n return [extent[2], extent[1]];\n}\n/**\n * Get the center coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Center.\n * @api\n */\nexport function getCenter(extent) {\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n}\n/**\n * Get a corner coordinate of an extent.\n * @param {Extent} extent Extent.\n * @param {Corner} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n var coordinate;\n if (corner === 'bottom-left') {\n coordinate = getBottomLeft(extent);\n }\n else if (corner === 'bottom-right') {\n coordinate = getBottomRight(extent);\n }\n else if (corner === 'top-left') {\n coordinate = getTopLeft(extent);\n }\n else if (corner === 'top-right') {\n coordinate = getTopRight(extent);\n }\n else {\n assert(false, 13); // Invalid corner\n }\n return coordinate;\n}\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Enlarged area.\n */\nexport function getEnlargedArea(extent1, extent2) {\n var minX = Math.min(extent1[0], extent2[0]);\n var minY = Math.min(extent1[1], extent2[1]);\n var maxX = Math.max(extent1[2], extent2[2]);\n var maxY = Math.max(extent1[3], extent2[3]);\n return (maxX - minX) * (maxY - minY);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @param {Extent} [opt_extent] Destination extent.\n * @return {Extent} Extent.\n */\nexport function getForViewAndSize(center, resolution, rotation, size, opt_extent) {\n var _a = getRotatedViewport(center, resolution, rotation, size), x0 = _a[0], y0 = _a[1], x1 = _a[2], y1 = _a[3], x2 = _a[4], y2 = _a[5], x3 = _a[6], y3 = _a[7];\n return createOrUpdate(Math.min(x0, x1, x2, x3), Math.min(y0, y1, y2, y3), Math.max(x0, x1, x2, x3), Math.max(y0, y1, y2, y3), opt_extent);\n}\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @return {Array} Linear ring representing the viewport.\n */\nexport function getRotatedViewport(center, resolution, rotation, size) {\n var dx = (resolution * size[0]) / 2;\n var dy = (resolution * size[1]) / 2;\n var cosRotation = Math.cos(rotation);\n var sinRotation = Math.sin(rotation);\n var xCos = dx * cosRotation;\n var xSin = dx * sinRotation;\n var yCos = dy * cosRotation;\n var ySin = dy * sinRotation;\n var x = center[0];\n var y = center[1];\n return [\n x - xCos + ySin,\n y - xSin - yCos,\n x - xCos - ySin,\n y - xSin + yCos,\n x + xCos - ySin,\n y + xSin + yCos,\n x + xCos + ySin,\n y + xSin - yCos,\n x - xCos + ySin,\n y - xSin - yCos,\n ];\n}\n/**\n * Get the height of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Height.\n * @api\n */\nexport function getHeight(extent) {\n return extent[3] - extent[1];\n}\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Intersection area.\n */\nexport function getIntersectionArea(extent1, extent2) {\n var intersection = getIntersection(extent1, extent2);\n return getArea(intersection);\n}\n/**\n * Get the intersection of two extents.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {Extent} [opt_extent] Optional extent to populate with intersection.\n * @return {Extent} Intersecting extent.\n * @api\n */\nexport function getIntersection(extent1, extent2, opt_extent) {\n var intersection = opt_extent ? opt_extent : createEmpty();\n if (intersects(extent1, extent2)) {\n if (extent1[0] > extent2[0]) {\n intersection[0] = extent1[0];\n }\n else {\n intersection[0] = extent2[0];\n }\n if (extent1[1] > extent2[1]) {\n intersection[1] = extent1[1];\n }\n else {\n intersection[1] = extent2[1];\n }\n if (extent1[2] < extent2[2]) {\n intersection[2] = extent1[2];\n }\n else {\n intersection[2] = extent2[2];\n }\n if (extent1[3] < extent2[3]) {\n intersection[3] = extent1[3];\n }\n else {\n intersection[3] = extent2[3];\n }\n }\n else {\n createOrUpdateEmpty(intersection);\n }\n return intersection;\n}\n/**\n * @param {Extent} extent Extent.\n * @return {number} Margin.\n */\nexport function getMargin(extent) {\n return getWidth(extent) + getHeight(extent);\n}\n/**\n * Get the size (width, height) of an extent.\n * @param {Extent} extent The extent.\n * @return {import(\"./size.js\").Size} The extent size.\n * @api\n */\nexport function getSize(extent) {\n return [extent[2] - extent[0], extent[3] - extent[1]];\n}\n/**\n * Get the top left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top left coordinate.\n * @api\n */\nexport function getTopLeft(extent) {\n return [extent[0], extent[3]];\n}\n/**\n * Get the top right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top right coordinate.\n * @api\n */\nexport function getTopRight(extent) {\n return [extent[2], extent[3]];\n}\n/**\n * Get the width of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Width.\n * @api\n */\nexport function getWidth(extent) {\n return extent[2] - extent[0];\n}\n/**\n * Determine if one extent intersects another.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent.\n * @return {boolean} The two extents intersect.\n * @api\n */\nexport function intersects(extent1, extent2) {\n return (extent1[0] <= extent2[2] &&\n extent1[2] >= extent2[0] &&\n extent1[1] <= extent2[3] &&\n extent1[3] >= extent2[1]);\n}\n/**\n * Determine if an extent is empty.\n * @param {Extent} extent Extent.\n * @return {boolean} Is empty.\n * @api\n */\nexport function isEmpty(extent) {\n return extent[2] < extent[0] || extent[3] < extent[1];\n}\n/**\n * @param {Extent} extent Extent.\n * @param {Extent} [opt_extent] Extent.\n * @return {Extent} Extent.\n */\nexport function returnOrUpdate(extent, opt_extent) {\n if (opt_extent) {\n opt_extent[0] = extent[0];\n opt_extent[1] = extent[1];\n opt_extent[2] = extent[2];\n opt_extent[3] = extent[3];\n return opt_extent;\n }\n else {\n return extent;\n }\n}\n/**\n * @param {Extent} extent Extent.\n * @param {number} value Value.\n */\nexport function scaleFromCenter(extent, value) {\n var deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);\n var deltaY = ((extent[3] - extent[1]) / 2) * (value - 1);\n extent[0] -= deltaX;\n extent[2] += deltaX;\n extent[1] -= deltaY;\n extent[3] += deltaY;\n}\n/**\n * Determine if the segment between two coordinates intersects (crosses,\n * touches, or is contained by) the provided extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} start Segment start coordinate.\n * @param {import(\"./coordinate.js\").Coordinate} end Segment end coordinate.\n * @return {boolean} The segment intersects the extent.\n */\nexport function intersectsSegment(extent, start, end) {\n var intersects = false;\n var startRel = coordinateRelationship(extent, start);\n var endRel = coordinateRelationship(extent, end);\n if (startRel === Relationship.INTERSECTING ||\n endRel === Relationship.INTERSECTING) {\n intersects = true;\n }\n else {\n var minX = extent[0];\n var minY = extent[1];\n var maxX = extent[2];\n var maxY = extent[3];\n var startX = start[0];\n var startY = start[1];\n var endX = end[0];\n var endY = end[1];\n var slope = (endY - startY) / (endX - startX);\n var x = void 0, y = void 0;\n if (!!(endRel & Relationship.ABOVE) && !(startRel & Relationship.ABOVE)) {\n // potentially intersects top\n x = endX - (endY - maxY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects &&\n !!(endRel & Relationship.RIGHT) &&\n !(startRel & Relationship.RIGHT)) {\n // potentially intersects right\n y = endY - (endX - maxX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n if (!intersects &&\n !!(endRel & Relationship.BELOW) &&\n !(startRel & Relationship.BELOW)) {\n // potentially intersects bottom\n x = endX - (endY - minY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (!intersects &&\n !!(endRel & Relationship.LEFT) &&\n !(startRel & Relationship.LEFT)) {\n // potentially intersects left\n y = endY - (endX - minX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n }\n return intersects;\n}\n/**\n * Apply a transform function to the extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./proj.js\").TransformFunction} transformFn Transform function.\n * Called with `[minX, minY, maxX, maxY]` extent coordinates.\n * @param {Extent} [opt_extent] Destination extent.\n * @param {number} [opt_stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {Extent} Extent.\n * @api\n */\nexport function applyTransform(extent, transformFn, opt_extent, opt_stops) {\n var coordinates = [];\n if (opt_stops > 1) {\n var width = extent[2] - extent[0];\n var height = extent[3] - extent[1];\n for (var i = 0; i < opt_stops; ++i) {\n coordinates.push(extent[0] + (width * i) / opt_stops, extent[1], extent[2], extent[1] + (height * i) / opt_stops, extent[2] - (width * i) / opt_stops, extent[3], extent[0], extent[3] - (height * i) / opt_stops);\n }\n }\n else {\n coordinates = [\n extent[0],\n extent[1],\n extent[2],\n extent[1],\n extent[2],\n extent[3],\n extent[0],\n extent[3],\n ];\n }\n transformFn(coordinates, coordinates, 2);\n var xs = [];\n var ys = [];\n for (var i = 0, l = coordinates.length; i < l; i += 2) {\n xs.push(coordinates[i]);\n ys.push(coordinates[i + 1]);\n }\n return _boundingExtentXYs(xs, ys, opt_extent);\n}\n/**\n * Modifies the provided extent in-place to be within the real world\n * extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Extent} The extent within the real world extent.\n */\nexport function wrapX(extent, projection) {\n var projectionExtent = projection.getExtent();\n var center = getCenter(extent);\n if (projection.canWrapX() &&\n (center[0] < projectionExtent[0] || center[0] >= projectionExtent[2])) {\n var worldWidth = getWidth(projectionExtent);\n var worldsAway = Math.floor((center[0] - projectionExtent[0]) / worldWidth);\n var offset = worldsAway * worldWidth;\n extent[0] -= offset;\n extent[2] -= offset;\n }\n return extent;\n}\n/**\n * Fits the extent to the real world\n *\n * If the extent does not cross the anti meridian, this will return the extent in an array\n * If the extent crosses the anti meridian, the extent will be sliced, so each part fits within the\n * real world\n *\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Array} The extent within the real world extent.\n */\nexport function wrapAndSliceX(extent, projection) {\n if (projection.canWrapX()) {\n var projectionExtent = projection.getExtent();\n if (!isFinite(extent[0]) || !isFinite(extent[2])) {\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n wrapX(extent, projection);\n var worldWidth = getWidth(projectionExtent);\n if (getWidth(extent) > worldWidth) {\n // the extent wraps around on itself\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n else if (extent[0] < projectionExtent[0]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0] + worldWidth, extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2], extent[3]],\n ];\n }\n else if (extent[2] > projectionExtent[2]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0], extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2] - worldWidth, extent[3]],\n ];\n }\n }\n return [extent];\n}\n//# sourceMappingURL=extent.js.map","/**\n * @module ol/renderer/canvas/common\n */\n/**\n * Context options to disable image smoothing.\n * @type {Object}\n */\nexport var IMAGE_SMOOTHING_DISABLED = {\n imageSmoothingEnabled: false,\n msImageSmoothingEnabled: false,\n};\n/**\n * Context options to enable image smoothing.\n * @type {Object}\n */\nexport var IMAGE_SMOOTHING_ENABLED = {\n imageSmoothingEnabled: true,\n msImageSmoothingEnabled: true,\n};\n//# sourceMappingURL=common.js.map","/**\n * @module ol/MapBrowserEventType\n */\nimport EventType from './events/EventType.js';\n/**\n * Constants for event names.\n * @enum {string}\n */\nexport default {\n /**\n * A true single click with no dragging and no double click. Note that this\n * event is delayed by 250 ms to ensure that it is not a double click.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#singleclick\n * @api\n */\n SINGLECLICK: 'singleclick',\n /**\n * A click with no dragging. A double click will fire two of this.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#click\n * @api\n */\n CLICK: EventType.CLICK,\n /**\n * A true double click, with no dragging.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#dblclick\n * @api\n */\n DBLCLICK: EventType.DBLCLICK,\n /**\n * Triggered when a pointer is dragged.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#pointerdrag\n * @api\n */\n POINTERDRAG: 'pointerdrag',\n /**\n * Triggered when a pointer is moved. Note that on touch devices this is\n * triggered when the map is panned, so is not the same as mousemove.\n * @event module:ol/MapBrowserEvent~MapBrowserEvent#pointermove\n * @api\n */\n POINTERMOVE: 'pointermove',\n POINTERDOWN: 'pointerdown',\n POINTERUP: 'pointerup',\n POINTEROVER: 'pointerover',\n POINTEROUT: 'pointerout',\n POINTERENTER: 'pointerenter',\n POINTERLEAVE: 'pointerleave',\n POINTERCANCEL: 'pointercancel',\n};\n/***\n * @typedef {'singleclick'|'click'|'dblclick'|'pointerdrag'|'pointermove'} Types\n */\n//# sourceMappingURL=MapBrowserEventType.js.map","module.exports = __webpack_public_path__ + \"img/night_mode.766b44de.jpg\";","/**\n * @module ol/render/Feature\n */\nimport Feature from '../Feature.js';\nimport GeometryLayout from '../geom/GeometryLayout.js';\nimport { LineString, MultiLineString, MultiPoint, MultiPolygon, Point, Polygon, } from '../geom.js';\nimport { compose as composeTransform, create as createTransform, } from '../transform.js';\nimport { createOrUpdateFromCoordinate, createOrUpdateFromFlatCoordinates, getCenter, getHeight, } from '../extent.js';\nimport { extend } from '../array.js';\nimport { getInteriorPointOfArray, getInteriorPointsOfMultiArray, } from '../geom/flat/interiorpoint.js';\nimport { get as getProjection } from '../proj.js';\nimport { inflateEnds } from '../geom/flat/orient.js';\nimport { interpolatePoint } from '../geom/flat/interpolate.js';\nimport { linearRingss as linearRingssCenter } from '../geom/flat/center.js';\nimport { transform2D } from '../geom/flat/transform.js';\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nvar tmpTransform = createTransform();\n/**\n * Lightweight, read-only, {@link module:ol/Feature~Feature} and {@link module:ol/geom/Geometry~Geometry} like\n * structure, optimized for vector tile rendering and styling. Geometry access\n * through the API is limited to getting the type and extent of the geometry.\n */\nvar RenderFeature = /** @class */ (function () {\n /**\n * @param {import(\"../geom/Geometry.js\").Type} type Geometry type.\n * @param {Array} flatCoordinates Flat coordinates. These always need\n * to be right-handed for polygons.\n * @param {Array|Array>} ends Ends or Endss.\n * @param {Object} properties Properties.\n * @param {number|string|undefined} id Feature id.\n */\n function RenderFeature(type, flatCoordinates, ends, properties, id) {\n /**\n * @type {import(\"../style/Style.js\").StyleFunction|undefined}\n */\n this.styleFunction;\n /**\n * @private\n * @type {import(\"../extent.js\").Extent|undefined}\n */\n this.extent_;\n /**\n * @private\n * @type {number|string|undefined}\n */\n this.id_ = id;\n /**\n * @private\n * @type {import(\"../geom/Geometry.js\").Type}\n */\n this.type_ = type;\n /**\n * @private\n * @type {Array}\n */\n this.flatCoordinates_ = flatCoordinates;\n /**\n * @private\n * @type {Array}\n */\n this.flatInteriorPoints_ = null;\n /**\n * @private\n * @type {Array}\n */\n this.flatMidpoints_ = null;\n /**\n * @private\n * @type {Array|Array>}\n */\n this.ends_ = ends;\n /**\n * @private\n * @type {Object}\n */\n this.properties_ = properties;\n }\n /**\n * Get a feature property by its key.\n * @param {string} key Key\n * @return {*} Value for the requested key.\n * @api\n */\n RenderFeature.prototype.get = function (key) {\n return this.properties_[key];\n };\n /**\n * Get the extent of this feature's geometry.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n RenderFeature.prototype.getExtent = function () {\n if (!this.extent_) {\n this.extent_ =\n this.type_ === 'Point'\n ? createOrUpdateFromCoordinate(this.flatCoordinates_)\n : createOrUpdateFromFlatCoordinates(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2);\n }\n return this.extent_;\n };\n /**\n * @return {Array} Flat interior points.\n */\n RenderFeature.prototype.getFlatInteriorPoint = function () {\n if (!this.flatInteriorPoints_) {\n var flatCenter = getCenter(this.getExtent());\n this.flatInteriorPoints_ = getInteriorPointOfArray(this.flatCoordinates_, 0, \n /** @type {Array} */ (this.ends_), 2, flatCenter, 0);\n }\n return this.flatInteriorPoints_;\n };\n /**\n * @return {Array} Flat interior points.\n */\n RenderFeature.prototype.getFlatInteriorPoints = function () {\n if (!this.flatInteriorPoints_) {\n var flatCenters = linearRingssCenter(this.flatCoordinates_, 0, \n /** @type {Array>} */ (this.ends_), 2);\n this.flatInteriorPoints_ = getInteriorPointsOfMultiArray(this.flatCoordinates_, 0, \n /** @type {Array>} */ (this.ends_), 2, flatCenters);\n }\n return this.flatInteriorPoints_;\n };\n /**\n * @return {Array} Flat midpoint.\n */\n RenderFeature.prototype.getFlatMidpoint = function () {\n if (!this.flatMidpoints_) {\n this.flatMidpoints_ = interpolatePoint(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2, 0.5);\n }\n return this.flatMidpoints_;\n };\n /**\n * @return {Array} Flat midpoints.\n */\n RenderFeature.prototype.getFlatMidpoints = function () {\n if (!this.flatMidpoints_) {\n this.flatMidpoints_ = [];\n var flatCoordinates = this.flatCoordinates_;\n var offset = 0;\n var ends = /** @type {Array} */ (this.ends_);\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var midpoint = interpolatePoint(flatCoordinates, offset, end, 2, 0.5);\n extend(this.flatMidpoints_, midpoint);\n offset = end;\n }\n }\n return this.flatMidpoints_;\n };\n /**\n * Get the feature identifier. This is a stable identifier for the feature and\n * is set when reading data from a remote source.\n * @return {number|string|undefined} Id.\n * @api\n */\n RenderFeature.prototype.getId = function () {\n return this.id_;\n };\n /**\n * @return {Array} Flat coordinates.\n */\n RenderFeature.prototype.getOrientedFlatCoordinates = function () {\n return this.flatCoordinates_;\n };\n /**\n * For API compatibility with {@link module:ol/Feature~Feature}, this method is useful when\n * determining the geometry type in style function (see {@link #getType}).\n * @return {RenderFeature} Feature.\n * @api\n */\n RenderFeature.prototype.getGeometry = function () {\n return this;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {RenderFeature} Simplified geometry.\n */\n RenderFeature.prototype.getSimplifiedGeometry = function (squaredTolerance) {\n return this;\n };\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @return {RenderFeature} Simplified geometry.\n */\n RenderFeature.prototype.simplifyTransformed = function (squaredTolerance, opt_transform) {\n return this;\n };\n /**\n * Get the feature properties.\n * @return {Object} Feature properties.\n * @api\n */\n RenderFeature.prototype.getProperties = function () {\n return this.properties_;\n };\n /**\n * @return {number} Stride.\n */\n RenderFeature.prototype.getStride = function () {\n return 2;\n };\n /**\n * @return {import('../style/Style.js').StyleFunction|undefined} Style\n */\n RenderFeature.prototype.getStyleFunction = function () {\n return this.styleFunction;\n };\n /**\n * Get the type of this feature's geometry.\n * @return {import(\"../geom/Geometry.js\").Type} Geometry type.\n * @api\n */\n RenderFeature.prototype.getType = function () {\n return this.type_;\n };\n /**\n * Transform geometry coordinates from tile pixel space to projected.\n *\n * @param {import(\"../proj.js\").ProjectionLike} projection The data projection\n */\n RenderFeature.prototype.transform = function (projection) {\n projection = getProjection(projection);\n var pixelExtent = projection.getExtent();\n var projectedExtent = projection.getWorldExtent();\n if (pixelExtent && projectedExtent) {\n var scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(tmpTransform, projectedExtent[0], projectedExtent[3], scale, -scale, 0, 0, 0);\n transform2D(this.flatCoordinates_, 0, this.flatCoordinates_.length, 2, tmpTransform, this.flatCoordinates_);\n }\n };\n /**\n * @return {Array|Array>} Ends or endss.\n */\n RenderFeature.prototype.getEnds = function () {\n return this.ends_;\n };\n return RenderFeature;\n}());\nRenderFeature.prototype.getEndss = RenderFeature.prototype.getEnds;\n/**\n * @return {Array} Flat coordinates.\n */\nRenderFeature.prototype.getFlatCoordinates =\n RenderFeature.prototype.getOrientedFlatCoordinates;\n/**\n * Create a geometry from an `ol/render/Feature`\n * @param {RenderFeature} renderFeature\n * Render Feature\n * @return {Point|MultiPoint|LineString|MultiLineString|Polygon|MultiPolygon}\n * New geometry instance.\n * @api\n */\nexport function toGeometry(renderFeature) {\n var geometryType = renderFeature.getType();\n switch (geometryType) {\n case 'Point':\n return new Point(renderFeature.getFlatCoordinates());\n case 'MultiPoint':\n return new MultiPoint(renderFeature.getFlatCoordinates(), GeometryLayout.XY);\n case 'LineString':\n return new LineString(renderFeature.getFlatCoordinates(), GeometryLayout.XY);\n case 'MultiLineString':\n return new MultiLineString(renderFeature.getFlatCoordinates(), GeometryLayout.XY, \n /** @type {Array} */ (renderFeature.getEnds()));\n case 'Polygon':\n var flatCoordinates = renderFeature.getFlatCoordinates();\n var ends = /** @type {Array} */ (renderFeature.getEnds());\n var endss = inflateEnds(flatCoordinates, ends);\n return endss.length > 1\n ? new MultiPolygon(flatCoordinates, GeometryLayout.XY, endss)\n : new Polygon(flatCoordinates, GeometryLayout.XY, ends);\n default:\n throw new Error('Invalid geometry type:' + geometryType);\n }\n}\n/**\n * Create an `ol/Feature` from an `ol/render/Feature`\n * @param {RenderFeature} renderFeature RenderFeature\n * @param {string} [opt_geometryName='geometry'] Geometry name to use\n * when creating the Feature.\n * @return {Feature} Newly constructed `ol/Feature` with properties,\n * geometry, and id copied over.\n * @api\n */\nexport function toFeature(renderFeature, opt_geometryName) {\n var id = renderFeature.getId();\n var geometry = toGeometry(renderFeature);\n var properties = renderFeature.getProperties();\n var feature = new Feature();\n if (opt_geometryName !== undefined) {\n feature.setGeometryName(opt_geometryName);\n }\n feature.setGeometry(geometry);\n if (id !== undefined) {\n feature.setId(id);\n }\n feature.setProperties(properties, true);\n return feature;\n}\nexport default RenderFeature;\n//# sourceMappingURL=Feature.js.map","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapSettings.vue?vue&type=style&index=0&id=0d4fd011&lang=scss&scoped=true&\"","/**\n * @module ol/geom/flat/straightchunk\n */\n/**\n * @param {number} maxAngle Maximum acceptable angle delta between segments.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Array} Start and end of the first suitable chunk of the\n * given `flatCoordinates`.\n */\nexport function matchingChunk(maxAngle, flatCoordinates, offset, end, stride) {\n var chunkStart = offset;\n var chunkEnd = offset;\n var chunkM = 0;\n var m = 0;\n var start = offset;\n var acos, i, m12, m23, x1, y1, x12, y12, x23, y23;\n for (i = offset; i < end; i += stride) {\n var x2 = flatCoordinates[i];\n var y2 = flatCoordinates[i + 1];\n if (x1 !== undefined) {\n x23 = x2 - x1;\n y23 = y2 - y1;\n m23 = Math.sqrt(x23 * x23 + y23 * y23);\n if (x12 !== undefined) {\n m += m12;\n acos = Math.acos((x12 * x23 + y12 * y23) / (m12 * m23));\n if (acos > maxAngle) {\n if (m > chunkM) {\n chunkM = m;\n chunkStart = start;\n chunkEnd = i;\n }\n m = 0;\n start = i - stride;\n }\n }\n m12 = m23;\n x12 = x23;\n y12 = y23;\n }\n x1 = x2;\n y1 = y2;\n }\n m += m23;\n return m > chunkM ? [start, i] : [chunkStart, chunkEnd];\n}\n//# sourceMappingURL=straightchunk.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/render/canvas/TextBuilder\n */\nimport CanvasBuilder from './Builder.js';\nimport CanvasInstruction from './Instruction.js';\nimport TextPlacement from '../../style/TextPlacement.js';\nimport { asColorLike } from '../../colorlike.js';\nimport { defaultFillStyle, defaultFont, defaultLineCap, defaultLineDash, defaultLineDashOffset, defaultLineJoin, defaultLineWidth, defaultMiterLimit, defaultPadding, defaultStrokeStyle, defaultTextAlign, defaultTextBaseline, registerFont, } from '../canvas.js';\nimport { getUid } from '../../util.js';\nimport { intersects } from '../../extent.js';\nimport { matchingChunk } from '../../geom/flat/straightchunk.js';\n/**\n * @const\n * @enum {number}\n */\nexport var TEXT_ALIGN = {\n 'left': 0,\n 'end': 0,\n 'center': 0.5,\n 'right': 1,\n 'start': 1,\n 'top': 0,\n 'middle': 0.5,\n 'hanging': 0.2,\n 'alphabetic': 0.8,\n 'ideographic': 0.8,\n 'bottom': 1,\n};\nvar CanvasTextBuilder = /** @class */ (function (_super) {\n __extends(CanvasTextBuilder, _super);\n /**\n * @param {number} tolerance Tolerance.\n * @param {import(\"../../extent.js\").Extent} maxExtent Maximum extent.\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n */\n function CanvasTextBuilder(tolerance, maxExtent, resolution, pixelRatio) {\n var _this = _super.call(this, tolerance, maxExtent, resolution, pixelRatio) || this;\n /**\n * @private\n * @type {Array}\n */\n _this.labels_ = null;\n /**\n * @private\n * @type {string|Array}\n */\n _this.text_ = '';\n /**\n * @private\n * @type {number}\n */\n _this.textOffsetX_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.textOffsetY_ = 0;\n /**\n * @private\n * @type {boolean|undefined}\n */\n _this.textRotateWithView_ = undefined;\n /**\n * @private\n * @type {number}\n */\n _this.textRotation_ = 0;\n /**\n * @private\n * @type {?import(\"../canvas.js\").FillState}\n */\n _this.textFillState_ = null;\n /**\n * @type {!Object}\n */\n _this.fillStates = {};\n /**\n * @private\n * @type {?import(\"../canvas.js\").StrokeState}\n */\n _this.textStrokeState_ = null;\n /**\n * @type {!Object}\n */\n _this.strokeStates = {};\n /**\n * @private\n * @type {import(\"../canvas.js\").TextState}\n */\n _this.textState_ = /** @type {import(\"../canvas.js\").TextState} */ ({});\n /**\n * @type {!Object}\n */\n _this.textStates = {};\n /**\n * @private\n * @type {string}\n */\n _this.textKey_ = '';\n /**\n * @private\n * @type {string}\n */\n _this.fillKey_ = '';\n /**\n * @private\n * @type {string}\n */\n _this.strokeKey_ = '';\n /**\n * Data shared with an image builder for combined decluttering.\n * @private\n * @type {import(\"../canvas.js\").DeclutterImageWithText}\n */\n _this.declutterImageWithText_ = undefined;\n return _this;\n }\n /**\n * @return {import(\"../canvas.js\").SerializableInstructions} the serializable instructions.\n */\n CanvasTextBuilder.prototype.finish = function () {\n var instructions = _super.prototype.finish.call(this);\n instructions.textStates = this.textStates;\n instructions.fillStates = this.fillStates;\n instructions.strokeStates = this.strokeStates;\n return instructions;\n };\n /**\n * @param {import(\"../../geom/SimpleGeometry.js\").default|import(\"../Feature.js\").default} geometry Geometry.\n * @param {import(\"../../Feature.js\").FeatureLike} feature Feature.\n */\n CanvasTextBuilder.prototype.drawText = function (geometry, feature) {\n var fillState = this.textFillState_;\n var strokeState = this.textStrokeState_;\n var textState = this.textState_;\n if (this.text_ === '' || !textState || (!fillState && !strokeState)) {\n return;\n }\n var coordinates = this.coordinates;\n var begin = coordinates.length;\n var geometryType = geometry.getType();\n var flatCoordinates = null;\n var stride = geometry.getStride();\n if (textState.placement === TextPlacement.LINE &&\n (geometryType == 'LineString' ||\n geometryType == 'MultiLineString' ||\n geometryType == 'Polygon' ||\n geometryType == 'MultiPolygon')) {\n if (!intersects(this.getBufferedMaxExtent(), geometry.getExtent())) {\n return;\n }\n var ends = void 0;\n flatCoordinates = geometry.getFlatCoordinates();\n if (geometryType == 'LineString') {\n ends = [flatCoordinates.length];\n }\n else if (geometryType == 'MultiLineString') {\n ends = /** @type {import(\"../../geom/MultiLineString.js\").default} */ (geometry).getEnds();\n }\n else if (geometryType == 'Polygon') {\n ends = /** @type {import(\"../../geom/Polygon.js\").default} */ (geometry)\n .getEnds()\n .slice(0, 1);\n }\n else if (geometryType == 'MultiPolygon') {\n var endss = \n /** @type {import(\"../../geom/MultiPolygon.js\").default} */ (geometry).getEndss();\n ends = [];\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n ends.push(endss[i][0]);\n }\n }\n this.beginGeometry(geometry, feature);\n var textAlign = textState.textAlign;\n // No `justify` support for line placement.\n var flatOffset = 0;\n var flatEnd = void 0;\n for (var o = 0, oo = ends.length; o < oo; ++o) {\n if (textAlign == undefined) {\n var range = matchingChunk(textState.maxAngle, flatCoordinates, flatOffset, ends[o], stride);\n flatOffset = range[0];\n flatEnd = range[1];\n }\n else {\n flatEnd = ends[o];\n }\n for (var i = flatOffset; i < flatEnd; i += stride) {\n coordinates.push(flatCoordinates[i], flatCoordinates[i + 1]);\n }\n var end = coordinates.length;\n flatOffset = ends[o];\n this.drawChars_(begin, end);\n begin = end;\n }\n this.endGeometry(feature);\n }\n else {\n var geometryWidths = textState.overflow ? null : [];\n switch (geometryType) {\n case 'Point':\n case 'MultiPoint':\n flatCoordinates =\n /** @type {import(\"../../geom/MultiPoint.js\").default} */ (geometry).getFlatCoordinates();\n break;\n case 'LineString':\n flatCoordinates =\n /** @type {import(\"../../geom/LineString.js\").default} */ (geometry).getFlatMidpoint();\n break;\n case 'Circle':\n flatCoordinates =\n /** @type {import(\"../../geom/Circle.js\").default} */ (geometry).getCenter();\n break;\n case 'MultiLineString':\n flatCoordinates =\n /** @type {import(\"../../geom/MultiLineString.js\").default} */ (geometry).getFlatMidpoints();\n stride = 2;\n break;\n case 'Polygon':\n flatCoordinates =\n /** @type {import(\"../../geom/Polygon.js\").default} */ (geometry).getFlatInteriorPoint();\n if (!textState.overflow) {\n geometryWidths.push(flatCoordinates[2] / this.resolution);\n }\n stride = 3;\n break;\n case 'MultiPolygon':\n var interiorPoints = \n /** @type {import(\"../../geom/MultiPolygon.js\").default} */ (geometry).getFlatInteriorPoints();\n flatCoordinates = [];\n for (var i = 0, ii = interiorPoints.length; i < ii; i += 3) {\n if (!textState.overflow) {\n geometryWidths.push(interiorPoints[i + 2] / this.resolution);\n }\n flatCoordinates.push(interiorPoints[i], interiorPoints[i + 1]);\n }\n if (flatCoordinates.length === 0) {\n return;\n }\n stride = 2;\n break;\n default:\n }\n var end = this.appendFlatPointCoordinates(flatCoordinates, stride);\n if (end === begin) {\n return;\n }\n if (geometryWidths &&\n (end - begin) / 2 !== flatCoordinates.length / stride) {\n var beg_1 = begin / 2;\n geometryWidths = geometryWidths.filter(function (w, i) {\n var keep = coordinates[(beg_1 + i) * 2] === flatCoordinates[i * stride] &&\n coordinates[(beg_1 + i) * 2 + 1] === flatCoordinates[i * stride + 1];\n if (!keep) {\n --beg_1;\n }\n return keep;\n });\n }\n this.saveTextStates_();\n if (textState.backgroundFill || textState.backgroundStroke) {\n this.setFillStrokeStyle(textState.backgroundFill, textState.backgroundStroke);\n if (textState.backgroundFill) {\n this.updateFillStyle(this.state, this.createFill);\n this.hitDetectionInstructions.push(this.createFill(this.state));\n }\n if (textState.backgroundStroke) {\n this.updateStrokeStyle(this.state, this.applyStroke);\n this.hitDetectionInstructions.push(this.createStroke(this.state));\n }\n }\n this.beginGeometry(geometry, feature);\n // adjust padding for negative scale\n var padding = textState.padding;\n if (padding != defaultPadding &&\n (textState.scale[0] < 0 || textState.scale[1] < 0)) {\n var p0 = textState.padding[0];\n var p1 = textState.padding[1];\n var p2 = textState.padding[2];\n var p3 = textState.padding[3];\n if (textState.scale[0] < 0) {\n p1 = -p1;\n p3 = -p3;\n }\n if (textState.scale[1] < 0) {\n p0 = -p0;\n p2 = -p2;\n }\n padding = [p0, p1, p2, p3];\n }\n // The image is unknown at this stage so we pass null; it will be computed at render time.\n // For clarity, we pass NaN for offsetX, offsetY, width and height, which will be computed at\n // render time.\n var pixelRatio_1 = this.pixelRatio;\n this.instructions.push([\n CanvasInstruction.DRAW_IMAGE,\n begin,\n end,\n null,\n NaN,\n NaN,\n NaN,\n 1,\n 0,\n 0,\n this.textRotateWithView_,\n this.textRotation_,\n [1, 1],\n NaN,\n undefined,\n this.declutterImageWithText_,\n padding == defaultPadding\n ? defaultPadding\n : padding.map(function (p) {\n return p * pixelRatio_1;\n }),\n !!textState.backgroundFill,\n !!textState.backgroundStroke,\n this.text_,\n this.textKey_,\n this.strokeKey_,\n this.fillKey_,\n this.textOffsetX_,\n this.textOffsetY_,\n geometryWidths,\n ]);\n var scale = 1 / pixelRatio_1;\n this.hitDetectionInstructions.push([\n CanvasInstruction.DRAW_IMAGE,\n begin,\n end,\n null,\n NaN,\n NaN,\n NaN,\n 1,\n 0,\n 0,\n this.textRotateWithView_,\n this.textRotation_,\n [scale, scale],\n NaN,\n undefined,\n this.declutterImageWithText_,\n padding,\n !!textState.backgroundFill,\n !!textState.backgroundStroke,\n this.text_,\n this.textKey_,\n this.strokeKey_,\n this.fillKey_,\n this.textOffsetX_,\n this.textOffsetY_,\n geometryWidths,\n ]);\n this.endGeometry(feature);\n }\n };\n /**\n * @private\n */\n CanvasTextBuilder.prototype.saveTextStates_ = function () {\n var strokeState = this.textStrokeState_;\n var textState = this.textState_;\n var fillState = this.textFillState_;\n var strokeKey = this.strokeKey_;\n if (strokeState) {\n if (!(strokeKey in this.strokeStates)) {\n this.strokeStates[strokeKey] = {\n strokeStyle: strokeState.strokeStyle,\n lineCap: strokeState.lineCap,\n lineDashOffset: strokeState.lineDashOffset,\n lineWidth: strokeState.lineWidth,\n lineJoin: strokeState.lineJoin,\n miterLimit: strokeState.miterLimit,\n lineDash: strokeState.lineDash,\n };\n }\n }\n var textKey = this.textKey_;\n if (!(textKey in this.textStates)) {\n this.textStates[textKey] = {\n font: textState.font,\n textAlign: textState.textAlign || defaultTextAlign,\n justify: textState.justify,\n textBaseline: textState.textBaseline || defaultTextBaseline,\n scale: textState.scale,\n };\n }\n var fillKey = this.fillKey_;\n if (fillState) {\n if (!(fillKey in this.fillStates)) {\n this.fillStates[fillKey] = {\n fillStyle: fillState.fillStyle,\n };\n }\n }\n };\n /**\n * @private\n * @param {number} begin Begin.\n * @param {number} end End.\n */\n CanvasTextBuilder.prototype.drawChars_ = function (begin, end) {\n var strokeState = this.textStrokeState_;\n var textState = this.textState_;\n var strokeKey = this.strokeKey_;\n var textKey = this.textKey_;\n var fillKey = this.fillKey_;\n this.saveTextStates_();\n var pixelRatio = this.pixelRatio;\n var baseline = TEXT_ALIGN[textState.textBaseline];\n var offsetY = this.textOffsetY_ * pixelRatio;\n var text = this.text_;\n var strokeWidth = strokeState\n ? (strokeState.lineWidth * Math.abs(textState.scale[0])) / 2\n : 0;\n this.instructions.push([\n CanvasInstruction.DRAW_CHARS,\n begin,\n end,\n baseline,\n textState.overflow,\n fillKey,\n textState.maxAngle,\n pixelRatio,\n offsetY,\n strokeKey,\n strokeWidth * pixelRatio,\n text,\n textKey,\n 1,\n ]);\n this.hitDetectionInstructions.push([\n CanvasInstruction.DRAW_CHARS,\n begin,\n end,\n baseline,\n textState.overflow,\n fillKey,\n textState.maxAngle,\n 1,\n offsetY,\n strokeKey,\n strokeWidth,\n text,\n textKey,\n 1 / pixelRatio,\n ]);\n };\n /**\n * @param {import(\"../../style/Text.js\").default} textStyle Text style.\n * @param {Object} [opt_sharedData] Shared data.\n */\n CanvasTextBuilder.prototype.setTextStyle = function (textStyle, opt_sharedData) {\n var textState, fillState, strokeState;\n if (!textStyle) {\n this.text_ = '';\n }\n else {\n var textFillStyle = textStyle.getFill();\n if (!textFillStyle) {\n fillState = null;\n this.textFillState_ = fillState;\n }\n else {\n fillState = this.textFillState_;\n if (!fillState) {\n fillState = /** @type {import(\"../canvas.js\").FillState} */ ({});\n this.textFillState_ = fillState;\n }\n fillState.fillStyle = asColorLike(textFillStyle.getColor() || defaultFillStyle);\n }\n var textStrokeStyle = textStyle.getStroke();\n if (!textStrokeStyle) {\n strokeState = null;\n this.textStrokeState_ = strokeState;\n }\n else {\n strokeState = this.textStrokeState_;\n if (!strokeState) {\n strokeState = /** @type {import(\"../canvas.js\").StrokeState} */ ({});\n this.textStrokeState_ = strokeState;\n }\n var lineDash = textStrokeStyle.getLineDash();\n var lineDashOffset = textStrokeStyle.getLineDashOffset();\n var lineWidth = textStrokeStyle.getWidth();\n var miterLimit = textStrokeStyle.getMiterLimit();\n strokeState.lineCap = textStrokeStyle.getLineCap() || defaultLineCap;\n strokeState.lineDash = lineDash ? lineDash.slice() : defaultLineDash;\n strokeState.lineDashOffset =\n lineDashOffset === undefined ? defaultLineDashOffset : lineDashOffset;\n strokeState.lineJoin = textStrokeStyle.getLineJoin() || defaultLineJoin;\n strokeState.lineWidth =\n lineWidth === undefined ? defaultLineWidth : lineWidth;\n strokeState.miterLimit =\n miterLimit === undefined ? defaultMiterLimit : miterLimit;\n strokeState.strokeStyle = asColorLike(textStrokeStyle.getColor() || defaultStrokeStyle);\n }\n textState = this.textState_;\n var font = textStyle.getFont() || defaultFont;\n registerFont(font);\n var textScale = textStyle.getScaleArray();\n textState.overflow = textStyle.getOverflow();\n textState.font = font;\n textState.maxAngle = textStyle.getMaxAngle();\n textState.placement = textStyle.getPlacement();\n textState.textAlign = textStyle.getTextAlign();\n textState.justify = textStyle.getJustify();\n textState.textBaseline =\n textStyle.getTextBaseline() || defaultTextBaseline;\n textState.backgroundFill = textStyle.getBackgroundFill();\n textState.backgroundStroke = textStyle.getBackgroundStroke();\n textState.padding = textStyle.getPadding() || defaultPadding;\n textState.scale = textScale === undefined ? [1, 1] : textScale;\n var textOffsetX = textStyle.getOffsetX();\n var textOffsetY = textStyle.getOffsetY();\n var textRotateWithView = textStyle.getRotateWithView();\n var textRotation = textStyle.getRotation();\n this.text_ = textStyle.getText() || '';\n this.textOffsetX_ = textOffsetX === undefined ? 0 : textOffsetX;\n this.textOffsetY_ = textOffsetY === undefined ? 0 : textOffsetY;\n this.textRotateWithView_ =\n textRotateWithView === undefined ? false : textRotateWithView;\n this.textRotation_ = textRotation === undefined ? 0 : textRotation;\n this.strokeKey_ = strokeState\n ? (typeof strokeState.strokeStyle == 'string'\n ? strokeState.strokeStyle\n : getUid(strokeState.strokeStyle)) +\n strokeState.lineCap +\n strokeState.lineDashOffset +\n '|' +\n strokeState.lineWidth +\n strokeState.lineJoin +\n strokeState.miterLimit +\n '[' +\n strokeState.lineDash.join() +\n ']'\n : '';\n this.textKey_ =\n textState.font +\n textState.scale +\n (textState.textAlign || '?') +\n (textState.justify || '?') +\n (textState.textBaseline || '?');\n this.fillKey_ = fillState\n ? typeof fillState.fillStyle == 'string'\n ? fillState.fillStyle\n : '|' + getUid(fillState.fillStyle)\n : '';\n }\n this.declutterImageWithText_ = opt_sharedData;\n };\n return CanvasTextBuilder;\n}(CanvasBuilder));\nexport default CanvasTextBuilder;\n//# sourceMappingURL=TextBuilder.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/events/Target\n */\nimport Disposable from '../Disposable.js';\nimport Event from './Event.js';\nimport { VOID } from '../functions.js';\nimport { clear } from '../obj.js';\n/**\n * @typedef {EventTarget|Target} EventTargetLike\n */\n/**\n * @classdesc\n * A simplified implementation of the W3C DOM Level 2 EventTarget interface.\n * See https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget.\n *\n * There are two important simplifications compared to the specification:\n *\n * 1. The handling of `useCapture` in `addEventListener` and\n * `removeEventListener`. There is no real capture model.\n * 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.\n * There is no event target hierarchy. When a listener calls\n * `stopPropagation` or `preventDefault` on an event object, it means that no\n * more listeners after this one will be called. Same as when the listener\n * returns false.\n */\nvar Target = /** @class */ (function (_super) {\n __extends(Target, _super);\n /**\n * @param {*} [opt_target] Default event target for dispatched events.\n */\n function Target(opt_target) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {*}\n */\n _this.eventTarget_ = opt_target;\n /**\n * @private\n * @type {Object}\n */\n _this.pendingRemovals_ = null;\n /**\n * @private\n * @type {Object}\n */\n _this.dispatching_ = null;\n /**\n * @private\n * @type {Object>}\n */\n _this.listeners_ = null;\n return _this;\n }\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n Target.prototype.addEventListener = function (type, listener) {\n if (!type || !listener) {\n return;\n }\n var listeners = this.listeners_ || (this.listeners_ = {});\n var listenersForType = listeners[type] || (listeners[type] = []);\n if (listenersForType.indexOf(listener) === -1) {\n listenersForType.push(listener);\n }\n };\n /**\n * Dispatches an event and calls all listeners listening for events\n * of this type. The event parameter can either be a string or an\n * Object with a `type` property.\n *\n * @param {import(\"./Event.js\").default|string} event Event object.\n * @return {boolean|undefined} `false` if anyone called preventDefault on the\n * event object or if any of the listeners returned false.\n * @api\n */\n Target.prototype.dispatchEvent = function (event) {\n var isString = typeof event === 'string';\n var type = isString ? event : event.type;\n var listeners = this.listeners_ && this.listeners_[type];\n if (!listeners) {\n return;\n }\n var evt = isString ? new Event(event) : /** @type {Event} */ (event);\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\n var dispatching = this.dispatching_ || (this.dispatching_ = {});\n var pendingRemovals = this.pendingRemovals_ || (this.pendingRemovals_ = {});\n if (!(type in dispatching)) {\n dispatching[type] = 0;\n pendingRemovals[type] = 0;\n }\n ++dispatching[type];\n var propagate;\n for (var i = 0, ii = listeners.length; i < ii; ++i) {\n if ('handleEvent' in listeners[i]) {\n propagate = /** @type {import(\"../events.js\").ListenerObject} */ (listeners[i]).handleEvent(evt);\n }\n else {\n propagate = /** @type {import(\"../events.js\").ListenerFunction} */ (listeners[i]).call(this, evt);\n }\n if (propagate === false || evt.propagationStopped) {\n propagate = false;\n break;\n }\n }\n if (--dispatching[type] === 0) {\n var pr = pendingRemovals[type];\n delete pendingRemovals[type];\n while (pr--) {\n this.removeEventListener(type, VOID);\n }\n delete dispatching[type];\n }\n return propagate;\n };\n /**\n * Clean up.\n */\n Target.prototype.disposeInternal = function () {\n this.listeners_ && clear(this.listeners_);\n };\n /**\n * Get the listeners for a specified event type. Listeners are returned in the\n * order that they will be called in.\n *\n * @param {string} type Type.\n * @return {Array|undefined} Listeners.\n */\n Target.prototype.getListeners = function (type) {\n return (this.listeners_ && this.listeners_[type]) || undefined;\n };\n /**\n * @param {string} [opt_type] Type. If not provided,\n * `true` will be returned if this event target has any listeners.\n * @return {boolean} Has listeners.\n */\n Target.prototype.hasListener = function (opt_type) {\n if (!this.listeners_) {\n return false;\n }\n return opt_type\n ? opt_type in this.listeners_\n : Object.keys(this.listeners_).length > 0;\n };\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n Target.prototype.removeEventListener = function (type, listener) {\n var listeners = this.listeners_ && this.listeners_[type];\n if (listeners) {\n var index = listeners.indexOf(listener);\n if (index !== -1) {\n if (this.pendingRemovals_ && type in this.pendingRemovals_) {\n // make listener a no-op, and remove later in #dispatchEvent()\n listeners[index] = VOID;\n ++this.pendingRemovals_[type];\n }\n else {\n listeners.splice(index, 1);\n if (listeners.length === 0) {\n delete this.listeners_[type];\n }\n }\n }\n }\n };\n return Target;\n}(Disposable));\nexport default Target;\n//# sourceMappingURL=Target.js.map","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoutesLegends.vue?vue&type=style&index=0&id=57416db8&lang=scss&scoped=true&\"","/**\n * @module ol/util\n */\n/**\n * @return {?} Any return.\n */\nexport function abstract() {\n return /** @type {?} */ ((function () {\n throw new Error('Unimplemented abstract method.');\n })());\n}\n/**\n * Counter for getUid.\n * @type {number}\n * @private\n */\nvar uidCounter_ = 0;\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. Unique IDs are generated\n * as a strictly increasing sequence. Adapted from goog.getUid.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {string} The unique ID for the object.\n * @api\n */\nexport function getUid(obj) {\n return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));\n}\n/**\n * OpenLayers version.\n * @type {string}\n */\nexport var VERSION = '6.15.1';\n//# sourceMappingURL=util.js.map","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnDemandHistory.vue?vue&type=style&index=0&id=2e4bb150&lang=scss&scoped=true&\"","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/renderer/Layer\n */\nimport EventType from '../events/EventType.js';\nimport ImageState from '../ImageState.js';\nimport Observable from '../Observable.js';\nimport { abstract } from '../util.js';\n/**\n * @template {import(\"../layer/Layer.js\").default} LayerType\n */\nvar LayerRenderer = /** @class */ (function (_super) {\n __extends(LayerRenderer, _super);\n /**\n * @param {LayerType} layer Layer.\n */\n function LayerRenderer(layer) {\n var _this = _super.call(this) || this;\n /**\n * The renderer is initialized and ready to render.\n * @type {boolean}\n */\n _this.ready = true;\n /** @private */\n _this.boundHandleImageChange_ = _this.handleImageChange_.bind(_this);\n /**\n * @protected\n * @type {LayerType}\n */\n _this.layer_ = layer;\n /**\n * @type {import(\"../render/canvas/ExecutorGroup\").default}\n */\n _this.declutterExecutorGroup = null;\n return _this;\n }\n /**\n * Asynchronous layer level hit detection.\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with\n * an array of features.\n */\n LayerRenderer.prototype.getFeatures = function (pixel) {\n return abstract();\n };\n /**\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n */\n LayerRenderer.prototype.getData = function (pixel) {\n return null;\n };\n /**\n * Determine whether render should be called.\n * @abstract\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {boolean} Layer is ready to be rendered.\n */\n LayerRenderer.prototype.prepareFrame = function (frameState) {\n return abstract();\n };\n /**\n * Render the layer.\n * @abstract\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target that may be used to render content to.\n * @return {HTMLElement} The rendered element.\n */\n LayerRenderer.prototype.renderFrame = function (frameState, target) {\n return abstract();\n };\n /**\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @param {number} zoom Zoom level.\n * @param {import(\"../Tile.js\").default} tile Tile.\n * @return {boolean|void} If `false`, the tile will not be considered loaded.\n */\n LayerRenderer.prototype.loadedTileCallback = function (tiles, zoom, tile) {\n if (!tiles[zoom]) {\n tiles[zoom] = {};\n }\n tiles[zoom][tile.tileCoord.toString()] = tile;\n return undefined;\n };\n /**\n * Create a function that adds loaded tiles to the tile lookup.\n * @param {import(\"../source/Tile.js\").default} source Tile source.\n * @param {import(\"../proj/Projection.js\").default} projection Projection of the tiles.\n * @param {Object>} tiles Lookup of loaded tiles by zoom level.\n * @return {function(number, import(\"../TileRange.js\").default):boolean} A function that can be\n * called with a zoom level and a tile range to add loaded tiles to the lookup.\n * @protected\n */\n LayerRenderer.prototype.createLoadedTileFinder = function (source, projection, tiles) {\n return (\n /**\n * @param {number} zoom Zoom level.\n * @param {import(\"../TileRange.js\").default} tileRange Tile range.\n * @return {boolean} The tile range is fully loaded.\n * @this {LayerRenderer}\n */\n function (zoom, tileRange) {\n var callback = this.loadedTileCallback.bind(this, tiles, zoom);\n return source.forEachLoadedTile(projection, zoom, tileRange, callback);\n }.bind(this));\n };\n /**\n * @abstract\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {import(\"./vector.js\").FeatureCallback} callback Feature callback.\n * @param {Array>} matches The hit detected matches with tolerance.\n * @return {T|undefined} Callback result.\n * @template T\n */\n LayerRenderer.prototype.forEachFeatureAtCoordinate = function (coordinate, frameState, hitTolerance, callback, matches) {\n return undefined;\n };\n /**\n * @abstract\n * @param {import(\"../pixel.js\").Pixel} pixel Pixel.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState FrameState.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @return {Uint8ClampedArray|Uint8Array} The result. If there is no data at the pixel\n * location, null will be returned. If there is data, but pixel values cannot be\n * returned, and empty array will be returned.\n */\n LayerRenderer.prototype.getDataAtPixel = function (pixel, frameState, hitTolerance) {\n return null;\n };\n /**\n * @return {LayerType} Layer.\n */\n LayerRenderer.prototype.getLayer = function () {\n return this.layer_;\n };\n /**\n * Perform action necessary to get the layer rendered after new fonts have loaded\n * @abstract\n */\n LayerRenderer.prototype.handleFontsChanged = function () { };\n /**\n * Handle changes in image state.\n * @param {import(\"../events/Event.js\").default} event Image change event.\n * @private\n */\n LayerRenderer.prototype.handleImageChange_ = function (event) {\n var image = /** @type {import(\"../Image.js\").default} */ (event.target);\n if (image.getState() === ImageState.LOADED) {\n this.renderIfReadyAndVisible();\n }\n };\n /**\n * Load the image if not already loaded, and register the image change\n * listener if needed.\n * @param {import(\"../ImageBase.js\").default} image Image.\n * @return {boolean} `true` if the image is already loaded, `false` otherwise.\n * @protected\n */\n LayerRenderer.prototype.loadImage = function (image) {\n var imageState = image.getState();\n if (imageState != ImageState.LOADED && imageState != ImageState.ERROR) {\n image.addEventListener(EventType.CHANGE, this.boundHandleImageChange_);\n }\n if (imageState == ImageState.IDLE) {\n image.load();\n imageState = image.getState();\n }\n return imageState == ImageState.LOADED;\n };\n /**\n * @protected\n */\n LayerRenderer.prototype.renderIfReadyAndVisible = function () {\n var layer = this.getLayer();\n if (layer && layer.getVisible() && layer.getSourceState() === 'ready') {\n layer.changed();\n }\n };\n /**\n * Clean up.\n */\n LayerRenderer.prototype.disposeInternal = function () {\n delete this.layer_;\n _super.prototype.disposeInternal.call(this);\n };\n return LayerRenderer;\n}(Observable));\nexport default LayerRenderer;\n//# sourceMappingURL=Layer.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/renderer/canvas/Layer\n */\nimport LayerRenderer from '../Layer.js';\nimport RenderEvent from '../../render/Event.js';\nimport RenderEventType from '../../render/EventType.js';\nimport { apply as applyTransform, compose as composeTransform, create as createTransform, } from '../../transform.js';\nimport { asArray } from '../../color.js';\nimport { containsCoordinate, getBottomLeft, getBottomRight, getTopLeft, getTopRight, } from '../../extent.js';\nimport { createCanvasContext2D } from '../../dom.js';\nimport { equals } from '../../array.js';\n/**\n * @type {Array}\n */\nexport var canvasPool = [];\n/**\n * @type {CanvasRenderingContext2D}\n */\nvar pixelContext = null;\nfunction createPixelContext() {\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n pixelContext = canvas.getContext('2d');\n}\n/**\n * @abstract\n * @template {import(\"../../layer/Layer.js\").default} LayerType\n * @extends {LayerRenderer}\n */\nvar CanvasLayerRenderer = /** @class */ (function (_super) {\n __extends(CanvasLayerRenderer, _super);\n /**\n * @param {LayerType} layer Layer.\n */\n function CanvasLayerRenderer(layer) {\n var _this = _super.call(this, layer) || this;\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.container = null;\n /**\n * @protected\n * @type {number}\n */\n _this.renderedResolution;\n /**\n * A temporary transform. The values in this transform should only be used in a\n * function that sets the values.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.tempTransform = createTransform();\n /**\n * The transform for rendered pixels to viewport CSS pixels. This transform must\n * be set when rendering a frame and may be used by other functions after rendering.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.pixelTransform = createTransform();\n /**\n * The transform for viewport CSS pixels to rendered pixels. This transform must\n * be set when rendering a frame and may be used by other functions after rendering.\n * @protected\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.inversePixelTransform = createTransform();\n /**\n * @type {CanvasRenderingContext2D}\n */\n _this.context = null;\n /**\n * @type {boolean}\n */\n _this.containerReused = false;\n /**\n * @private\n * @type {CanvasRenderingContext2D}\n */\n _this.pixelContext_ = null;\n /**\n * @protected\n * @type {import(\"../../PluggableMap.js\").FrameState|null}\n */\n _this.frameState = null;\n return _this;\n }\n /**\n * @param {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} image Image.\n * @param {number} col The column index.\n * @param {number} row The row index.\n * @return {Uint8ClampedArray|null} The image data.\n */\n CanvasLayerRenderer.prototype.getImageData = function (image, col, row) {\n if (!pixelContext) {\n createPixelContext();\n }\n pixelContext.clearRect(0, 0, 1, 1);\n var data;\n try {\n pixelContext.drawImage(image, col, row, 1, 1, 0, 0, 1, 1);\n data = pixelContext.getImageData(0, 0, 1, 1).data;\n }\n catch (err) {\n pixelContext = null;\n return null;\n }\n return data;\n };\n /**\n * @param {import('../../PluggableMap.js').FrameState} frameState Frame state.\n * @return {string} Background color.\n */\n CanvasLayerRenderer.prototype.getBackground = function (frameState) {\n var layer = this.getLayer();\n var background = layer.getBackground();\n if (typeof background === 'function') {\n background = background(frameState.viewState.resolution);\n }\n return background || undefined;\n };\n /**\n * Get a rendering container from an existing target, if compatible.\n * @param {HTMLElement} target Potential render target.\n * @param {string} transform CSS Transform.\n * @param {string} [opt_backgroundColor] Background color.\n */\n CanvasLayerRenderer.prototype.useContainer = function (target, transform, opt_backgroundColor) {\n var layerClassName = this.getLayer().getClassName();\n var container, context;\n if (target &&\n target.className === layerClassName &&\n (!opt_backgroundColor ||\n (target &&\n target.style.backgroundColor &&\n equals(asArray(target.style.backgroundColor), asArray(opt_backgroundColor))))) {\n var canvas = target.firstElementChild;\n if (canvas instanceof HTMLCanvasElement) {\n context = canvas.getContext('2d');\n }\n }\n if (context && context.canvas.style.transform === transform) {\n // Container of the previous layer renderer can be used.\n this.container = target;\n this.context = context;\n this.containerReused = true;\n }\n else if (this.containerReused) {\n // Previously reused container cannot be used any more.\n this.container = null;\n this.context = null;\n this.containerReused = false;\n }\n if (!this.container) {\n container = document.createElement('div');\n container.className = layerClassName;\n var style = container.style;\n style.position = 'absolute';\n style.width = '100%';\n style.height = '100%';\n context = createCanvasContext2D();\n var canvas = context.canvas;\n container.appendChild(canvas);\n style = canvas.style;\n style.position = 'absolute';\n style.left = '0';\n style.transformOrigin = 'top left';\n this.container = container;\n this.context = context;\n }\n if (!this.containerReused &&\n opt_backgroundColor &&\n !this.container.style.backgroundColor) {\n this.container.style.backgroundColor = opt_backgroundColor;\n }\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {import(\"../../extent.js\").Extent} extent Clip extent.\n * @protected\n */\n CanvasLayerRenderer.prototype.clipUnrotated = function (context, frameState, extent) {\n var topLeft = getTopLeft(extent);\n var topRight = getTopRight(extent);\n var bottomRight = getBottomRight(extent);\n var bottomLeft = getBottomLeft(extent);\n applyTransform(frameState.coordinateToPixelTransform, topLeft);\n applyTransform(frameState.coordinateToPixelTransform, topRight);\n applyTransform(frameState.coordinateToPixelTransform, bottomRight);\n applyTransform(frameState.coordinateToPixelTransform, bottomLeft);\n var inverted = this.inversePixelTransform;\n applyTransform(inverted, topLeft);\n applyTransform(inverted, topRight);\n applyTransform(inverted, bottomRight);\n applyTransform(inverted, bottomLeft);\n context.save();\n context.beginPath();\n context.moveTo(Math.round(topLeft[0]), Math.round(topLeft[1]));\n context.lineTo(Math.round(topRight[0]), Math.round(topRight[1]));\n context.lineTo(Math.round(bottomRight[0]), Math.round(bottomRight[1]));\n context.lineTo(Math.round(bottomLeft[0]), Math.round(bottomLeft[1]));\n context.clip();\n };\n /**\n * @param {import(\"../../render/EventType.js\").default} type Event type.\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @private\n */\n CanvasLayerRenderer.prototype.dispatchRenderEvent_ = function (type, context, frameState) {\n var layer = this.getLayer();\n if (layer.hasListener(type)) {\n var event_1 = new RenderEvent(type, this.inversePixelTransform, frameState, context);\n layer.dispatchEvent(event_1);\n }\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @protected\n */\n CanvasLayerRenderer.prototype.preRender = function (context, frameState) {\n this.frameState = frameState;\n this.dispatchRenderEvent_(RenderEventType.PRERENDER, context, frameState);\n };\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @protected\n */\n CanvasLayerRenderer.prototype.postRender = function (context, frameState) {\n this.dispatchRenderEvent_(RenderEventType.POSTRENDER, context, frameState);\n };\n /**\n * Creates a transform for rendering to an element that will be rotated after rendering.\n * @param {import(\"../../coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} width Width of the rendered element (in pixels).\n * @param {number} height Height of the rendered element (in pixels).\n * @param {number} offsetX Offset on the x-axis in view coordinates.\n * @protected\n * @return {!import(\"../../transform.js\").Transform} Transform.\n */\n CanvasLayerRenderer.prototype.getRenderTransform = function (center, resolution, rotation, pixelRatio, width, height, offsetX) {\n var dx1 = width / 2;\n var dy1 = height / 2;\n var sx = pixelRatio / resolution;\n var sy = -sx;\n var dx2 = -center[0] + offsetX;\n var dy2 = -center[1];\n return composeTransform(this.tempTransform, dx1, dy1, sx, sy, -rotation, dx2, dy2);\n };\n /**\n * @param {import(\"../../pixel.js\").Pixel} pixel Pixel.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState FrameState.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @return {Uint8ClampedArray|Uint8Array} The result. If there is no data at the pixel\n * location, null will be returned. If there is data, but pixel values cannot be\n * returned, and empty array will be returned.\n */\n CanvasLayerRenderer.prototype.getDataAtPixel = function (pixel, frameState, hitTolerance) {\n var renderPixel = applyTransform(this.inversePixelTransform, pixel.slice());\n var context = this.context;\n var layer = this.getLayer();\n var layerExtent = layer.getExtent();\n if (layerExtent) {\n var renderCoordinate = applyTransform(frameState.pixelToCoordinateTransform, pixel.slice());\n /** get only data inside of the layer extent */\n if (!containsCoordinate(layerExtent, renderCoordinate)) {\n return null;\n }\n }\n var x = Math.round(renderPixel[0]);\n var y = Math.round(renderPixel[1]);\n var pixelContext = this.pixelContext_;\n if (!pixelContext) {\n var pixelCanvas = document.createElement('canvas');\n pixelCanvas.width = 1;\n pixelCanvas.height = 1;\n pixelContext = pixelCanvas.getContext('2d');\n this.pixelContext_ = pixelContext;\n }\n pixelContext.clearRect(0, 0, 1, 1);\n var data;\n try {\n pixelContext.drawImage(context.canvas, x, y, 1, 1, 0, 0, 1, 1);\n data = pixelContext.getImageData(0, 0, 1, 1).data;\n }\n catch (err) {\n if (err.name === 'SecurityError') {\n // tainted canvas, we assume there is data at the given pixel (although there might not be)\n this.pixelContext_ = null;\n return new Uint8Array();\n }\n return data;\n }\n if (data[3] === 0) {\n return null;\n }\n return data;\n };\n /**\n * Clean up.\n */\n CanvasLayerRenderer.prototype.disposeInternal = function () {\n delete this.frameState;\n _super.prototype.disposeInternal.call(this);\n };\n return CanvasLayerRenderer;\n}(LayerRenderer));\nexport default CanvasLayerRenderer;\n//# sourceMappingURL=Layer.js.map","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAlCAYAAAAjt+tHAAAACXBIWXMAAAsTAAALEwEAmpwYAAACpklEQVRYhbWXsWobQRCGvzuMEEKY4CLl4cKVIYSQKgRUrd7Aj2CwHsDgxqUbgR9ABj+C30BXCUIqE0LAlYugMoUcnMOIQ9ym2J3TSd477VmngWF02mH/f2f/vdsJtNYA9Pv9PSAEWjbu0awtgAxIgWw8Hi8AAq21gLeAtvWWJRA2BJ5ZAikwt56Ox+NFoJQS8A6wb2Ob3VRgDrwAzzamssq2BX8/jOPvDQOv2IVSX+zPDFgESqmuBT8YxvGvQ5YlaNJk6b8NiQ/ADHguCq/NjsB5PafoLBS1i+8E3EEixxSVN6X23KZr0WHhToBXzL5jqqz0qM2AxAOj65E3BaKSsdIKJEA0GhFpXe6jUQ7uGpf/q6z6ZXN2xjQISocjrWEwyJ9duZsIeGkgmkyIgOjuzsTJpDy34D7mJ8Jez6j55MTEXs9z+qYIXF+bFT08mBjHpanTgvuY3wfn/Nwo+fjYRKWcaZv222V+Fbi9NSuXSjw+1gbajsDpqSmprQRHR840OQXrcXsC9hRweWlimjrT1s++z5Z4aWAqqr+6MrHVcucFAZHWr+JWBOoI6y0VqPUx2rSnjWvg383NyvP6isrGG9FAF3gaDHgqvOvL8hL8VluLwIF1H/PNc5lsQbbFHG+1TAgsCs58h4iFuXPMkGW7NAdzdd4FCbmWFx5TIAuUUi2Mlt5R0Zgc4r/XM8z932W2MfkD/AUSn9YsBBjG8TcfEgJ+odRX+5foy9ma+TSn+R1+GMf3VSQK4J9Z1VZ5c7qhPZco5DrDOP7hIlEA/8RSSukaAXd7XmWWWBujk64l8bNIogD+0YIn1ucCVGYbCZSQ6EolWF15Qg1wbwIOEvuWxD3ke55gxOUNXovAGomOdbkYpJjSv9QBr02gQEJEKUdVjlhaBxzgP4kLUAzDsCOMAAAAAElFTkSuQmCC\"","/**\n * @module ol/CollectionEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when an item is added to the collection.\n * @event module:ol/Collection.CollectionEvent#add\n * @api\n */\n ADD: 'add',\n /**\n * Triggered when an item is removed from the collection.\n * @event module:ol/Collection.CollectionEvent#remove\n * @api\n */\n REMOVE: 'remove',\n};\n//# sourceMappingURL=CollectionEventType.js.map","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapViewSidebar.vue?vue&type=style&index=0&id=4310efab&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExportSelected.vue?vue&type=style&index=0&id=e6ff51da&lang=scss&scoped=true&\"","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/Layer\n */\nimport BaseLayer from './Base.js';\nimport EventType from '../events/EventType.js';\nimport LayerProperty from './Property.js';\nimport RenderEventType from '../render/EventType.js';\nimport { assert } from '../asserts.js';\nimport { assign } from '../obj.js';\nimport { listen, unlistenByKey } from '../events.js';\n/**\n * @typedef {function(import(\"../PluggableMap.js\").FrameState):HTMLElement} RenderFunction\n */\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} LayerOnSignature\n */\n/**\n * @template {import(\"../source/Source.js\").default} [SourceType=import(\"../source/Source.js\").default]\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {SourceType} [source] Source for this layer. If not provided to the constructor,\n * the source can be set by calling {@link module:ol/layer/Layer~Layer#setSource layer.setSource(source)} after\n * construction.\n * @property {import(\"../PluggableMap.js\").default|null} [map] Map.\n * @property {RenderFunction} [render] Render function. Takes the frame state as input and is expected to return an\n * HTML element. Will overwrite the default rendering for the layer.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @typedef {Object} State\n * @property {import(\"./Layer.js\").default} layer Layer.\n * @property {number} opacity Opacity, the value is rounded to two digits to appear after the decimal point.\n * @property {boolean} visible Visible.\n * @property {boolean} managed Managed.\n * @property {import(\"../extent.js\").Extent} [extent] Extent.\n * @property {number} zIndex ZIndex.\n * @property {number} maxResolution Maximum resolution.\n * @property {number} minResolution Minimum resolution.\n * @property {number} minZoom Minimum zoom.\n * @property {number} maxZoom Maximum zoom.\n */\n/**\n * @classdesc\n * Base class from which all layer types are derived. This should only be instantiated\n * in the case where a custom layer is added to the map with a custom `render` function.\n * Such a function can be specified in the `options` object, and is expected to return an HTML element.\n *\n * A visual representation of raster or vector map data.\n * Layers group together those properties that pertain to how the data is to be\n * displayed, irrespective of the source of that data.\n *\n * Layers are usually added to a map with {@link import(\"../PluggableMap.js\").default#addLayer map.addLayer()}. Components\n * like {@link module:ol/interaction/Draw~Draw} use unmanaged layers\n * internally. These unmanaged layers are associated with the map using\n * {@link module:ol/layer/Layer~Layer#setMap} instead.\n *\n * A generic `change` event is fired when the state of the source changes.\n *\n * Please note that for performance reasons several layers might get rendered to\n * the same HTML element, which will cause {@link import(\"../PluggableMap.js\").default#forEachLayerAtPixel map.forEachLayerAtPixel()} to\n * give false positives. To avoid this, apply different `className` properties to the\n * layers at creation time.\n *\n * @fires import(\"../render/Event.js\").RenderEvent#prerender\n * @fires import(\"../render/Event.js\").RenderEvent#postrender\n *\n * @template {import(\"../source/Source.js\").default} [SourceType=import(\"../source/Source.js\").default]\n * @template {import(\"../renderer/Layer.js\").default} [RendererType=import(\"../renderer/Layer.js\").default]\n * @api\n */\nvar Layer = /** @class */ (function (_super) {\n __extends(Layer, _super);\n /**\n * @param {Options} options Layer options.\n */\n function Layer(options) {\n var _this = this;\n var baseOptions = assign({}, options);\n delete baseOptions.source;\n _this = _super.call(this, baseOptions) || this;\n /***\n * @type {LayerOnSignature}\n */\n _this.on;\n /***\n * @type {LayerOnSignature}\n */\n _this.once;\n /***\n * @type {LayerOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.mapPrecomposeKey_ = null;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.mapRenderKey_ = null;\n /**\n * @private\n * @type {?import(\"../events.js\").EventsKey}\n */\n _this.sourceChangeKey_ = null;\n /**\n * @private\n * @type {RendererType}\n */\n _this.renderer_ = null;\n /**\n * @protected\n * @type {boolean}\n */\n _this.rendered = false;\n // Overwrite default render method with a custom one\n if (options.render) {\n _this.render = options.render;\n }\n if (options.map) {\n _this.setMap(options.map);\n }\n _this.addChangeListener(LayerProperty.SOURCE, _this.handleSourcePropertyChange_);\n var source = options.source\n ? /** @type {SourceType} */ (options.source)\n : null;\n _this.setSource(source);\n return _this;\n }\n /**\n * @param {Array} [opt_array] Array of layers (to be modified in place).\n * @return {Array} Array of layers.\n */\n Layer.prototype.getLayersArray = function (opt_array) {\n var array = opt_array ? opt_array : [];\n array.push(this);\n return array;\n };\n /**\n * @param {Array} [opt_states] Optional list of layer states (to be modified in place).\n * @return {Array} List of layer states.\n */\n Layer.prototype.getLayerStatesArray = function (opt_states) {\n var states = opt_states ? opt_states : [];\n states.push(this.getLayerState());\n return states;\n };\n /**\n * Get the layer source.\n * @return {SourceType|null} The layer source (or `null` if not yet set).\n * @observable\n * @api\n */\n Layer.prototype.getSource = function () {\n return /** @type {SourceType} */ (this.get(LayerProperty.SOURCE)) || null;\n };\n /**\n * @return {SourceType|null} The source being rendered.\n */\n Layer.prototype.getRenderSource = function () {\n return this.getSource();\n };\n /**\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n Layer.prototype.getSourceState = function () {\n var source = this.getSource();\n return !source ? 'undefined' : source.getState();\n };\n /**\n * @private\n */\n Layer.prototype.handleSourceChange_ = function () {\n this.changed();\n };\n /**\n * @private\n */\n Layer.prototype.handleSourcePropertyChange_ = function () {\n if (this.sourceChangeKey_) {\n unlistenByKey(this.sourceChangeKey_);\n this.sourceChangeKey_ = null;\n }\n var source = this.getSource();\n if (source) {\n this.sourceChangeKey_ = listen(source, EventType.CHANGE, this.handleSourceChange_, this);\n }\n this.changed();\n };\n /**\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with\n * an array of features.\n */\n Layer.prototype.getFeatures = function (pixel) {\n if (!this.renderer_) {\n return new Promise(function (resolve) { return resolve([]); });\n }\n return this.renderer_.getFeatures(pixel);\n };\n /**\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n */\n Layer.prototype.getData = function (pixel) {\n if (!this.renderer_ || !this.rendered) {\n return null;\n }\n return this.renderer_.getData(pixel);\n };\n /**\n * In charge to manage the rendering of the layer. One layer type is\n * bounded with one layer renderer.\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target which the renderer may (but need not) use\n * for rendering its content.\n * @return {HTMLElement} The rendered element.\n */\n Layer.prototype.render = function (frameState, target) {\n var layerRenderer = this.getRenderer();\n if (layerRenderer.prepareFrame(frameState)) {\n this.rendered = true;\n return layerRenderer.renderFrame(frameState, target);\n }\n };\n /**\n * Called when a layer is not visible during a map render.\n */\n Layer.prototype.unrender = function () {\n this.rendered = false;\n };\n /**\n * For use inside the library only.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n */\n Layer.prototype.setMapInternal = function (map) {\n if (!map) {\n this.unrender();\n }\n this.set(LayerProperty.MAP, map);\n };\n /**\n * For use inside the library only.\n * @return {import(\"../PluggableMap.js\").default|null} Map.\n */\n Layer.prototype.getMapInternal = function () {\n return this.get(LayerProperty.MAP);\n };\n /**\n * Sets the layer to be rendered on top of other layers on a map. The map will\n * not manage this layer in its layers collection, and the callback in\n * {@link module:ol/Map~Map#forEachLayerAtPixel} will receive `null` as layer. This\n * is useful for temporary layers. To remove an unmanaged layer from the map,\n * use `#setMap(null)`.\n *\n * To add the layer to a map and have it managed by the map, use\n * {@link module:ol/Map~Map#addLayer} instead.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n Layer.prototype.setMap = function (map) {\n if (this.mapPrecomposeKey_) {\n unlistenByKey(this.mapPrecomposeKey_);\n this.mapPrecomposeKey_ = null;\n }\n if (!map) {\n this.changed();\n }\n if (this.mapRenderKey_) {\n unlistenByKey(this.mapRenderKey_);\n this.mapRenderKey_ = null;\n }\n if (map) {\n this.mapPrecomposeKey_ = listen(map, RenderEventType.PRECOMPOSE, function (evt) {\n var renderEvent = \n /** @type {import(\"../render/Event.js\").default} */ (evt);\n var layerStatesArray = renderEvent.frameState.layerStatesArray;\n var layerState = this.getLayerState(false);\n // A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both.\n assert(!layerStatesArray.some(function (arrayLayerState) {\n return arrayLayerState.layer === layerState.layer;\n }), 67);\n layerStatesArray.push(layerState);\n }, this);\n this.mapRenderKey_ = listen(this, EventType.CHANGE, map.render, map);\n this.changed();\n }\n };\n /**\n * Set the layer source.\n * @param {SourceType|null} source The layer source.\n * @observable\n * @api\n */\n Layer.prototype.setSource = function (source) {\n this.set(LayerProperty.SOURCE, source);\n };\n /**\n * Get the renderer for this layer.\n * @return {RendererType|null} The layer renderer.\n */\n Layer.prototype.getRenderer = function () {\n if (!this.renderer_) {\n this.renderer_ = this.createRenderer();\n }\n return this.renderer_;\n };\n /**\n * @return {boolean} The layer has a renderer.\n */\n Layer.prototype.hasRenderer = function () {\n return !!this.renderer_;\n };\n /**\n * Create a renderer for this layer.\n * @return {RendererType} A layer renderer.\n * @protected\n */\n Layer.prototype.createRenderer = function () {\n return null;\n };\n /**\n * Clean up.\n */\n Layer.prototype.disposeInternal = function () {\n if (this.renderer_) {\n this.renderer_.dispose();\n delete this.renderer_;\n }\n this.setSource(null);\n _super.prototype.disposeInternal.call(this);\n };\n return Layer;\n}(BaseLayer));\n/**\n * Return `true` if the layer is visible and if the provided view state\n * has resolution and zoom levels that are in range of the layer's min/max.\n * @param {State} layerState Layer state.\n * @param {import(\"../View.js\").State} viewState View state.\n * @return {boolean} The layer is visible at the given view state.\n */\nexport function inView(layerState, viewState) {\n if (!layerState.visible) {\n return false;\n }\n var resolution = viewState.resolution;\n if (resolution < layerState.minResolution ||\n resolution >= layerState.maxResolution) {\n return false;\n }\n var zoom = viewState.zoom;\n return zoom > layerState.minZoom && zoom <= layerState.maxZoom;\n}\nexport default Layer;\n//# sourceMappingURL=Layer.js.map","/**\n * @module ol/geom/flat/simplify\n */\n// Based on simplify-js https://github.com/mourner/simplify-js\n// Copyright (c) 2012, Vladimir Agafonkin\n// All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are met:\n//\n// 1. Redistributions of source code must retain the above copyright notice,\n// this list of conditions and the following disclaimer.\n//\n// 2. Redistributions in binary form must reproduce the above copyright\n// notice, this list of conditions and the following disclaimer in the\n// documentation and/or other materials provided with the distribution.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\n// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n// POSSIBILITY OF SUCH DAMAGE.\nimport { squaredDistance, squaredSegmentDistance } from '../../math.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {boolean} highQuality Highest quality.\n * @param {Array} [opt_simplifiedFlatCoordinates] Simplified flat\n * coordinates.\n * @return {Array} Simplified line string.\n */\nexport function simplifyLineString(flatCoordinates, offset, end, stride, squaredTolerance, highQuality, opt_simplifiedFlatCoordinates) {\n var simplifiedFlatCoordinates = opt_simplifiedFlatCoordinates !== undefined\n ? opt_simplifiedFlatCoordinates\n : [];\n if (!highQuality) {\n end = radialDistance(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n flatCoordinates = simplifiedFlatCoordinates;\n offset = 0;\n stride = 2;\n }\n simplifiedFlatCoordinates.length = douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, 0);\n return simplifiedFlatCoordinates;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n var n = (end - offset) / stride;\n if (n < 3) {\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n /** @type {Array} */\n var markers = new Array(n);\n markers[0] = 1;\n markers[n - 1] = 1;\n /** @type {Array} */\n var stack = [offset, end - stride];\n var index = 0;\n while (stack.length > 0) {\n var last = stack.pop();\n var first = stack.pop();\n var maxSquaredDistance = 0;\n var x1 = flatCoordinates[first];\n var y1 = flatCoordinates[first + 1];\n var x2 = flatCoordinates[last];\n var y2 = flatCoordinates[last + 1];\n for (var i = first + stride; i < last; i += stride) {\n var x = flatCoordinates[i];\n var y = flatCoordinates[i + 1];\n var squaredDistance_1 = squaredSegmentDistance(x, y, x1, y1, x2, y2);\n if (squaredDistance_1 > maxSquaredDistance) {\n index = i;\n maxSquaredDistance = squaredDistance_1;\n }\n }\n if (maxSquaredDistance > squaredTolerance) {\n markers[(index - offset) / stride] = 1;\n if (first + stride < index) {\n stack.push(first, index);\n }\n if (index + stride < last) {\n stack.push(index, last);\n }\n }\n }\n for (var i = 0; i < n; ++i) {\n if (markers[i]) {\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + i * stride + 1];\n }\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerArray(flatCoordinates, offset, ends, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n simplifiedOffset = douglasPeucker(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function douglasPeuckerMultiArray(flatCoordinates, offset, endss, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n var simplifiedEnds = [];\n simplifiedOffset = douglasPeuckerArray(flatCoordinates, offset, ends, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function radialDistance(flatCoordinates, offset, end, stride, squaredTolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n if (end <= offset + stride) {\n // zero or one point, no simplification possible, so copy and return\n for (; offset < end; offset += stride) {\n simplifiedFlatCoordinates[simplifiedOffset++] = flatCoordinates[offset];\n simplifiedFlatCoordinates[simplifiedOffset++] =\n flatCoordinates[offset + 1];\n }\n return simplifiedOffset;\n }\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n // copy first point\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n var x2 = x1;\n var y2 = y1;\n for (offset += stride; offset < end; offset += stride) {\n x2 = flatCoordinates[offset];\n y2 = flatCoordinates[offset + 1];\n if (squaredDistance(x1, y1, x2, y2) > squaredTolerance) {\n // copy point at offset\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n }\n }\n if (x2 != x1 || y2 != y1) {\n // copy last point\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n }\n return simplifiedOffset;\n}\n/**\n * @param {number} value Value.\n * @param {number} tolerance Tolerance.\n * @return {number} Rounded value.\n */\nexport function snap(value, tolerance) {\n return tolerance * Math.round(value / tolerance);\n}\n/**\n * Simplifies a line string using an algorithm designed by Tim Schaub.\n * Coordinates are snapped to the nearest value in a virtual grid and\n * consecutive duplicate coordinates are discarded. This effectively preserves\n * topology as the simplification of any subsection of a line string is\n * independent of the rest of the line string. This means that, for examples,\n * the common edge between two polygons will be simplified to the same line\n * string independently in both polygons. This implementation uses a single\n * pass over the coordinates and eliminates intermediate collinear points.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @return {number} Simplified offset.\n */\nexport function quantize(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset) {\n // do nothing if the line is empty\n if (offset == end) {\n return simplifiedOffset;\n }\n // snap the first coordinate (P1)\n var x1 = snap(flatCoordinates[offset], tolerance);\n var y1 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // add the first coordinate to the output\n simplifiedFlatCoordinates[simplifiedOffset++] = x1;\n simplifiedFlatCoordinates[simplifiedOffset++] = y1;\n // find the next coordinate that does not snap to the same value as the first\n // coordinate (P2)\n var x2, y2;\n do {\n x2 = snap(flatCoordinates[offset], tolerance);\n y2 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n if (offset == end) {\n // all coordinates snap to the same value, the line collapses to a point\n // push the last snapped value anyway to ensure that the output contains\n // at least two points\n // FIXME should we really return at least two points anyway?\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n }\n } while (x2 == x1 && y2 == y1);\n while (offset < end) {\n // snap the next coordinate (P3)\n var x3 = snap(flatCoordinates[offset], tolerance);\n var y3 = snap(flatCoordinates[offset + 1], tolerance);\n offset += stride;\n // skip P3 if it is equal to P2\n if (x3 == x2 && y3 == y2) {\n continue;\n }\n // calculate the delta between P1 and P2\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n // calculate the delta between P3 and P1\n var dx2 = x3 - x1;\n var dy2 = y3 - y1;\n // if P1, P2, and P3 are colinear and P3 is further from P1 than P2 is from\n // P1 in the same direction then P2 is on the straight line between P1 and\n // P3\n if (dx1 * dy2 == dy1 * dx2 &&\n ((dx1 < 0 && dx2 < dx1) || dx1 == dx2 || (dx1 > 0 && dx2 > dx1)) &&\n ((dy1 < 0 && dy2 < dy1) || dy1 == dy2 || (dy1 > 0 && dy2 > dy1))) {\n // discard P2 and set P2 = P3\n x2 = x3;\n y2 = y3;\n continue;\n }\n // either P1, P2, and P3 are not colinear, or they are colinear but P3 is\n // between P3 and P1 or on the opposite half of the line to P2. add P2,\n // and continue with P1 = P2 and P2 = P3\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n x1 = x2;\n y1 = y2;\n x2 = x3;\n y2 = y3;\n }\n // add the last point (P2)\n simplifiedFlatCoordinates[simplifiedOffset++] = x2;\n simplifiedFlatCoordinates[simplifiedOffset++] = y2;\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array} simplifiedEnds Simplified ends.\n * @return {number} Simplified offset.\n */\nexport function quantizeArray(flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n simplifiedOffset = quantize(flatCoordinates, offset, end, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset);\n simplifiedEnds.push(simplifiedOffset);\n offset = end;\n }\n return simplifiedOffset;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} tolerance Tolerance.\n * @param {Array} simplifiedFlatCoordinates Simplified flat\n * coordinates.\n * @param {number} simplifiedOffset Simplified offset.\n * @param {Array>} simplifiedEndss Simplified endss.\n * @return {number} Simplified offset.\n */\nexport function quantizeMultiArray(flatCoordinates, offset, endss, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEndss) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n var simplifiedEnds = [];\n simplifiedOffset = quantizeArray(flatCoordinates, offset, ends, stride, tolerance, simplifiedFlatCoordinates, simplifiedOffset, simplifiedEnds);\n simplifiedEndss.push(simplifiedEnds);\n offset = ends[ends.length - 1];\n }\n return simplifiedOffset;\n}\n//# sourceMappingURL=simplify.js.map","/**\n * @module ol/events\n */\nimport { clear } from './obj.js';\n/**\n * Key to use with {@link module:ol/Observable.unByKey}.\n * @typedef {Object} EventsKey\n * @property {ListenerFunction} listener Listener.\n * @property {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @property {string} type Type.\n * @api\n */\n/**\n * Listener function. This function is called with an event object as argument.\n * When the function returns `false`, event propagation will stop.\n *\n * @typedef {function((Event|import(\"./events/Event.js\").default)): (void|boolean)} ListenerFunction\n * @api\n */\n/**\n * @typedef {Object} ListenerObject\n * @property {ListenerFunction} handleEvent HandleEvent listener function.\n */\n/**\n * @typedef {ListenerFunction|ListenerObject} Listener\n */\n/**\n * Registers an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` to a `this` object, and returns\n * a key for use with {@link module:ol/events.unlistenByKey}.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [opt_this] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @param {boolean} [opt_once] If true, add the listener as one-off listener.\n * @return {EventsKey} Unique key for the listener.\n */\nexport function listen(target, type, listener, opt_this, opt_once) {\n if (opt_this && opt_this !== target) {\n listener = listener.bind(opt_this);\n }\n if (opt_once) {\n var originalListener_1 = listener;\n listener = function () {\n target.removeEventListener(type, listener);\n originalListener_1.apply(this, arguments);\n };\n }\n var eventsKey = {\n target: target,\n type: type,\n listener: listener,\n };\n target.addEventListener(type, listener);\n return eventsKey;\n}\n/**\n * Registers a one-off event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` as self-unregistering listener\n * to a `this` object, and returns a key for use with\n * {@link module:ol/events.unlistenByKey} in case the listener needs to be\n * unregistered before it is called.\n *\n * When {@link module:ol/events.listen} is called with the same arguments after this\n * function, the self-unregistering listener will be turned into a permanent\n * listener.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [opt_this] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @return {EventsKey} Key for unlistenByKey.\n */\nexport function listenOnce(target, type, listener, opt_this) {\n return listen(target, type, listener, opt_this, true);\n}\n/**\n * Unregisters event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * The argument passed to this function is the key returned from\n * {@link module:ol/events.listen} or {@link module:ol/events.listenOnce}.\n *\n * @param {EventsKey} key The key.\n */\nexport function unlistenByKey(key) {\n if (key && key.target) {\n key.target.removeEventListener(key.type, key.listener);\n clear(key);\n }\n}\n//# sourceMappingURL=events.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/control/Attribution\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_COLLAPSED, CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { equals } from '../array.js';\nimport { inView } from '../layer/Layer.js';\nimport { removeChildren, replaceNode } from '../dom.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-attribution'] CSS class name.\n * @property {HTMLElement|string} [target] Specify a target if you\n * want the control to be rendered outside of the map's\n * viewport.\n * @property {boolean} [collapsible] Specify if attributions can\n * be collapsed. If not specified, sources control this behavior with their\n * `attributionsCollapsible` setting.\n * @property {boolean} [collapsed=true] Specify if attributions should\n * be collapsed at startup.\n * @property {string} [tipLabel='Attributions'] Text label to use for the button tip.\n * @property {string|HTMLElement} [label='i'] Text label to use for the\n * collapsed attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [expandClassName=className + '-expand'] CSS class name for the\n * collapsed attributions button.\n * @property {string|HTMLElement} [collapseLabel='›'] Text label to use\n * for the expanded attributions button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [collapseClassName=className + '-collapse'] CSS class name for the\n * expanded attributions button.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n */\n/**\n * @classdesc\n * Control to show all the attributions associated with the layer sources\n * in the map. This control is one of the default controls included in maps.\n * By default it will show in the bottom right portion of the map, but this can\n * be changed by using a css selector for `.ol-attribution`.\n *\n * @api\n */\nvar Attribution = /** @class */ (function (_super) {\n __extends(Attribution, _super);\n /**\n * @param {Options} [opt_options] Attribution options.\n */\n function Attribution(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.ulElement_ = document.createElement('ul');\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsed_ =\n options.collapsed !== undefined ? options.collapsed : true;\n /**\n * @private\n * @type {boolean}\n */\n _this.userCollapsed_ = _this.collapsed_;\n /**\n * @private\n * @type {boolean}\n */\n _this.overrideCollapsible_ = options.collapsible !== undefined;\n /**\n * @private\n * @type {boolean}\n */\n _this.collapsible_ =\n options.collapsible !== undefined ? options.collapsible : true;\n if (!_this.collapsible_) {\n _this.collapsed_ = false;\n }\n var className = options.className !== undefined ? options.className : 'ol-attribution';\n var tipLabel = options.tipLabel !== undefined ? options.tipLabel : 'Attributions';\n var expandClassName = options.expandClassName !== undefined\n ? options.expandClassName\n : className + '-expand';\n var collapseLabel = options.collapseLabel !== undefined ? options.collapseLabel : '\\u203A';\n var collapseClassName = options.collapseClassName !== undefined\n ? options.collapseClassName\n : className + '-collapse';\n if (typeof collapseLabel === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.collapseLabel_ = document.createElement('span');\n _this.collapseLabel_.textContent = collapseLabel;\n _this.collapseLabel_.className = collapseClassName;\n }\n else {\n _this.collapseLabel_ = collapseLabel;\n }\n var label = options.label !== undefined ? options.label : 'i';\n if (typeof label === 'string') {\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.label_ = document.createElement('span');\n _this.label_.textContent = label;\n _this.label_.className = expandClassName;\n }\n else {\n _this.label_ = label;\n }\n var activeLabel = _this.collapsible_ && !_this.collapsed_ ? _this.collapseLabel_ : _this.label_;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.toggleButton_ = document.createElement('button');\n _this.toggleButton_.setAttribute('type', 'button');\n _this.toggleButton_.setAttribute('aria-expanded', String(!_this.collapsed_));\n _this.toggleButton_.title = tipLabel;\n _this.toggleButton_.appendChild(activeLabel);\n _this.toggleButton_.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n var cssClasses = className +\n ' ' +\n CLASS_UNSELECTABLE +\n ' ' +\n CLASS_CONTROL +\n (_this.collapsed_ && _this.collapsible_ ? ' ' + CLASS_COLLAPSED : '') +\n (_this.collapsible_ ? '' : ' ol-uncollapsible');\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(_this.toggleButton_);\n element.appendChild(_this.ulElement_);\n /**\n * A list of currently rendered resolutions.\n * @type {Array}\n * @private\n */\n _this.renderedAttributions_ = [];\n /**\n * @private\n * @type {boolean}\n */\n _this.renderedVisible_ = true;\n return _this;\n }\n /**\n * Collect a list of visible attributions and set the collapsible state.\n * @param {import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {Array} Attributions.\n * @private\n */\n Attribution.prototype.collectSourceAttributions_ = function (frameState) {\n /**\n * Used to determine if an attribution already exists.\n * @type {!Object}\n */\n var lookup = {};\n /**\n * A list of visible attributions.\n * @type {Array}\n */\n var visibleAttributions = [];\n var collapsible = true;\n var layerStatesArray = frameState.layerStatesArray;\n for (var i = 0, ii = layerStatesArray.length; i < ii; ++i) {\n var layerState = layerStatesArray[i];\n if (!inView(layerState, frameState.viewState)) {\n continue;\n }\n var source = /** @type {import(\"../layer/Layer.js\").default} */ (layerState.layer).getSource();\n if (!source) {\n continue;\n }\n var attributionGetter = source.getAttributions();\n if (!attributionGetter) {\n continue;\n }\n var attributions = attributionGetter(frameState);\n if (!attributions) {\n continue;\n }\n collapsible =\n collapsible && source.getAttributionsCollapsible() !== false;\n if (Array.isArray(attributions)) {\n for (var j = 0, jj = attributions.length; j < jj; ++j) {\n if (!(attributions[j] in lookup)) {\n visibleAttributions.push(attributions[j]);\n lookup[attributions[j]] = true;\n }\n }\n }\n else {\n if (!(attributions in lookup)) {\n visibleAttributions.push(attributions);\n lookup[attributions] = true;\n }\n }\n }\n if (!this.overrideCollapsible_) {\n this.setCollapsible(collapsible);\n }\n return visibleAttributions;\n };\n /**\n * @private\n * @param {?import(\"../PluggableMap.js\").FrameState} frameState Frame state.\n */\n Attribution.prototype.updateElement_ = function (frameState) {\n if (!frameState) {\n if (this.renderedVisible_) {\n this.element.style.display = 'none';\n this.renderedVisible_ = false;\n }\n return;\n }\n var attributions = this.collectSourceAttributions_(frameState);\n var visible = attributions.length > 0;\n if (this.renderedVisible_ != visible) {\n this.element.style.display = visible ? '' : 'none';\n this.renderedVisible_ = visible;\n }\n if (equals(attributions, this.renderedAttributions_)) {\n return;\n }\n removeChildren(this.ulElement_);\n // append the attributions\n for (var i = 0, ii = attributions.length; i < ii; ++i) {\n var element = document.createElement('li');\n element.innerHTML = attributions[i];\n this.ulElement_.appendChild(element);\n }\n this.renderedAttributions_ = attributions;\n };\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Attribution.prototype.handleClick_ = function (event) {\n event.preventDefault();\n this.handleToggle_();\n this.userCollapsed_ = this.collapsed_;\n };\n /**\n * @private\n */\n Attribution.prototype.handleToggle_ = function () {\n this.element.classList.toggle(CLASS_COLLAPSED);\n if (this.collapsed_) {\n replaceNode(this.collapseLabel_, this.label_);\n }\n else {\n replaceNode(this.label_, this.collapseLabel_);\n }\n this.collapsed_ = !this.collapsed_;\n this.toggleButton_.setAttribute('aria-expanded', String(!this.collapsed_));\n };\n /**\n * Return `true` if the attribution is collapsible, `false` otherwise.\n * @return {boolean} True if the widget is collapsible.\n * @api\n */\n Attribution.prototype.getCollapsible = function () {\n return this.collapsible_;\n };\n /**\n * Set whether the attribution should be collapsible.\n * @param {boolean} collapsible True if the widget is collapsible.\n * @api\n */\n Attribution.prototype.setCollapsible = function (collapsible) {\n if (this.collapsible_ === collapsible) {\n return;\n }\n this.collapsible_ = collapsible;\n this.element.classList.toggle('ol-uncollapsible');\n if (this.userCollapsed_) {\n this.handleToggle_();\n }\n };\n /**\n * Collapse or expand the attribution according to the passed parameter. Will\n * not do anything if the attribution isn't collapsible or if the current\n * collapsed state is already the one requested.\n * @param {boolean} collapsed True if the widget is collapsed.\n * @api\n */\n Attribution.prototype.setCollapsed = function (collapsed) {\n this.userCollapsed_ = collapsed;\n if (!this.collapsible_ || this.collapsed_ === collapsed) {\n return;\n }\n this.handleToggle_();\n };\n /**\n * Return `true` when the attribution is currently collapsed or `false`\n * otherwise.\n * @return {boolean} True if the widget is collapsed.\n * @api\n */\n Attribution.prototype.getCollapsed = function () {\n return this.collapsed_;\n };\n /**\n * Update the attribution element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n Attribution.prototype.render = function (mapEvent) {\n this.updateElement_(mapEvent.frameState);\n };\n return Attribution;\n}(Control));\nexport default Attribution;\n//# sourceMappingURL=Attribution.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/control/Rotate\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_CONTROL, CLASS_HIDDEN, CLASS_UNSELECTABLE } from '../css.js';\nimport { easeOut } from '../easing.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-rotate'] CSS class name.\n * @property {string|HTMLElement} [label='⇧'] Text label to use for the rotate button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [tipLabel='Reset rotation'] Text label to use for the rotate tip.\n * @property {string} [compassClassName='ol-compass'] CSS class name for the compass.\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {boolean} [autoHide=true] Hide the control when rotation is 0.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when the control should\n * be re-rendered. This is called in a `requestAnimationFrame` callback.\n * @property {function():void} [resetNorth] Function called when the control is clicked.\n * This will override the default `resetNorth`.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A button control to reset rotation to 0.\n * To style this control use css selector `.ol-rotate`. A `.ol-hidden` css\n * selector is added to the button when the rotation is 0.\n *\n * @api\n */\nvar Rotate = /** @class */ (function (_super) {\n __extends(Rotate, _super);\n /**\n * @param {Options} [opt_options] Rotate options.\n */\n function Rotate(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n render: options.render,\n target: options.target,\n }) || this;\n var className = options.className !== undefined ? options.className : 'ol-rotate';\n var label = options.label !== undefined ? options.label : '\\u21E7';\n var compassClassName = options.compassClassName !== undefined\n ? options.compassClassName\n : 'ol-compass';\n /**\n * @type {HTMLElement}\n * @private\n */\n _this.label_ = null;\n if (typeof label === 'string') {\n _this.label_ = document.createElement('span');\n _this.label_.className = compassClassName;\n _this.label_.textContent = label;\n }\n else {\n _this.label_ = label;\n _this.label_.classList.add(compassClassName);\n }\n var tipLabel = options.tipLabel ? options.tipLabel : 'Reset rotation';\n var button = document.createElement('button');\n button.className = className + '-reset';\n button.setAttribute('type', 'button');\n button.title = tipLabel;\n button.appendChild(_this.label_);\n button.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this), false);\n var cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(button);\n _this.callResetNorth_ = options.resetNorth ? options.resetNorth : undefined;\n /**\n * @type {number}\n * @private\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n /**\n * @type {boolean}\n * @private\n */\n _this.autoHide_ = options.autoHide !== undefined ? options.autoHide : true;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.rotation_ = undefined;\n if (_this.autoHide_) {\n _this.element.classList.add(CLASS_HIDDEN);\n }\n return _this;\n }\n /**\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Rotate.prototype.handleClick_ = function (event) {\n event.preventDefault();\n if (this.callResetNorth_ !== undefined) {\n this.callResetNorth_();\n }\n else {\n this.resetNorth_();\n }\n };\n /**\n * @private\n */\n Rotate.prototype.resetNorth_ = function () {\n var map = this.getMap();\n var view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n var rotation = view.getRotation();\n if (rotation !== undefined) {\n if (this.duration_ > 0 && rotation % (2 * Math.PI) !== 0) {\n view.animate({\n rotation: 0,\n duration: this.duration_,\n easing: easeOut,\n });\n }\n else {\n view.setRotation(0);\n }\n }\n };\n /**\n * Update the rotate control element.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @override\n */\n Rotate.prototype.render = function (mapEvent) {\n var frameState = mapEvent.frameState;\n if (!frameState) {\n return;\n }\n var rotation = frameState.viewState.rotation;\n if (rotation != this.rotation_) {\n var transform = 'rotate(' + rotation + 'rad)';\n if (this.autoHide_) {\n var contains = this.element.classList.contains(CLASS_HIDDEN);\n if (!contains && rotation === 0) {\n this.element.classList.add(CLASS_HIDDEN);\n }\n else if (contains && rotation !== 0) {\n this.element.classList.remove(CLASS_HIDDEN);\n }\n }\n this.label_.style.transform = transform;\n }\n this.rotation_ = rotation;\n };\n return Rotate;\n}(Control));\nexport default Rotate;\n//# sourceMappingURL=Rotate.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/control/Zoom\n */\nimport Control from './Control.js';\nimport EventType from '../events/EventType.js';\nimport { CLASS_CONTROL, CLASS_UNSELECTABLE } from '../css.js';\nimport { easeOut } from '../easing.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {string} [className='ol-zoom'] CSS class name.\n * @property {string} [zoomInClassName=className + '-in'] CSS class name for the zoom-in button.\n * @property {string} [zoomOutClassName=className + '-out'] CSS class name for the zoom-out button.\n * @property {string|HTMLElement} [zoomInLabel='+'] Text label to use for the zoom-in\n * button. Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string|HTMLElement} [zoomOutLabel='–'] Text label to use for the zoom-out button.\n * Instead of text, also an element (e.g. a `span` element) can be used.\n * @property {string} [zoomInTipLabel='Zoom in'] Text label to use for the button tip.\n * @property {string} [zoomOutTipLabel='Zoom out'] Text label to use for the button tip.\n * @property {number} [delta=1] The zoom delta applied on each click.\n * @property {HTMLElement|string} [target] Specify a target if you want the control to be\n * rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A control with 2 buttons, one for zoom in and one for zoom out.\n * This control is one of the default controls of a map. To style this control\n * use css selectors `.ol-zoom-in` and `.ol-zoom-out`.\n *\n * @api\n */\nvar Zoom = /** @class */ (function (_super) {\n __extends(Zoom, _super);\n /**\n * @param {Options} [opt_options] Zoom options.\n */\n function Zoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n element: document.createElement('div'),\n target: options.target,\n }) || this;\n var className = options.className !== undefined ? options.className : 'ol-zoom';\n var delta = options.delta !== undefined ? options.delta : 1;\n var zoomInClassName = options.zoomInClassName !== undefined\n ? options.zoomInClassName\n : className + '-in';\n var zoomOutClassName = options.zoomOutClassName !== undefined\n ? options.zoomOutClassName\n : className + '-out';\n var zoomInLabel = options.zoomInLabel !== undefined ? options.zoomInLabel : '+';\n var zoomOutLabel = options.zoomOutLabel !== undefined ? options.zoomOutLabel : '\\u2013';\n var zoomInTipLabel = options.zoomInTipLabel !== undefined ? options.zoomInTipLabel : 'Zoom in';\n var zoomOutTipLabel = options.zoomOutTipLabel !== undefined\n ? options.zoomOutTipLabel\n : 'Zoom out';\n var inElement = document.createElement('button');\n inElement.className = zoomInClassName;\n inElement.setAttribute('type', 'button');\n inElement.title = zoomInTipLabel;\n inElement.appendChild(typeof zoomInLabel === 'string'\n ? document.createTextNode(zoomInLabel)\n : zoomInLabel);\n inElement.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this, delta), false);\n var outElement = document.createElement('button');\n outElement.className = zoomOutClassName;\n outElement.setAttribute('type', 'button');\n outElement.title = zoomOutTipLabel;\n outElement.appendChild(typeof zoomOutLabel === 'string'\n ? document.createTextNode(zoomOutLabel)\n : zoomOutLabel);\n outElement.addEventListener(EventType.CLICK, _this.handleClick_.bind(_this, -delta), false);\n var cssClasses = className + ' ' + CLASS_UNSELECTABLE + ' ' + CLASS_CONTROL;\n var element = _this.element;\n element.className = cssClasses;\n element.appendChild(inElement);\n element.appendChild(outElement);\n /**\n * @type {number}\n * @private\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * @param {number} delta Zoom delta.\n * @param {MouseEvent} event The event to handle\n * @private\n */\n Zoom.prototype.handleClick_ = function (delta, event) {\n event.preventDefault();\n this.zoomByDelta_(delta);\n };\n /**\n * @param {number} delta Zoom delta.\n * @private\n */\n Zoom.prototype.zoomByDelta_ = function (delta) {\n var map = this.getMap();\n var view = map.getView();\n if (!view) {\n // the map does not have a view, so we can't act\n // upon it\n return;\n }\n var currentZoom = view.getZoom();\n if (currentZoom !== undefined) {\n var newZoom = view.getConstrainedZoom(currentZoom + delta);\n if (this.duration_ > 0) {\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.animate({\n zoom: newZoom,\n duration: this.duration_,\n easing: easeOut,\n });\n }\n else {\n view.setZoom(newZoom);\n }\n }\n };\n return Zoom;\n}(Control));\nexport default Zoom;\n//# sourceMappingURL=Zoom.js.map","/**\n * @module ol/control\n */\nimport Attribution from './control/Attribution.js';\nimport Collection from './Collection.js';\nimport Rotate from './control/Rotate.js';\nimport Zoom from './control/Zoom.js';\nexport { default as Attribution } from './control/Attribution.js';\nexport { default as Control } from './control/Control.js';\nexport { default as FullScreen } from './control/FullScreen.js';\nexport { default as MousePosition } from './control/MousePosition.js';\nexport { default as OverviewMap } from './control/OverviewMap.js';\nexport { default as Rotate } from './control/Rotate.js';\nexport { default as ScaleLine } from './control/ScaleLine.js';\nexport { default as Zoom } from './control/Zoom.js';\nexport { default as ZoomSlider } from './control/ZoomSlider.js';\nexport { default as ZoomToExtent } from './control/ZoomToExtent.js';\n/**\n * @typedef {Object} DefaultsOptions\n * @property {boolean} [attribution=true] Include\n * {@link module:ol/control/Attribution~Attribution}.\n * @property {import(\"./control/Attribution.js\").Options} [attributionOptions]\n * Options for {@link module:ol/control/Attribution~Attribution}.\n * @property {boolean} [rotate=true] Include\n * {@link module:ol/control/Rotate~Rotate}.\n * @property {import(\"./control/Rotate.js\").Options} [rotateOptions] Options\n * for {@link module:ol/control/Rotate~Rotate}.\n * @property {boolean} [zoom] Include {@link module:ol/control/Zoom~Zoom}.\n * @property {import(\"./control/Zoom.js\").Options} [zoomOptions] Options for\n * {@link module:ol/control/Zoom~Zoom}.\n * @api\n */\n/**\n * Set of controls included in maps by default. Unless configured otherwise,\n * this returns a collection containing an instance of each of the following\n * controls:\n * * {@link module:ol/control/Zoom~Zoom}\n * * {@link module:ol/control/Rotate~Rotate}\n * * {@link module:ol/control/Attribution~Attribution}\n *\n * @param {DefaultsOptions} [opt_options]\n * Defaults options.\n * @return {Collection}\n * Controls.\n * @api\n */\nexport function defaults(opt_options) {\n var options = opt_options ? opt_options : {};\n var controls = new Collection();\n var zoomControl = options.zoom !== undefined ? options.zoom : true;\n if (zoomControl) {\n controls.push(new Zoom(options.zoomOptions));\n }\n var rotateControl = options.rotate !== undefined ? options.rotate : true;\n if (rotateControl) {\n controls.push(new Rotate(options.rotateOptions));\n }\n var attributionControl = options.attribution !== undefined ? options.attribution : true;\n if (attributionControl) {\n controls.push(new Attribution(options.attributionOptions));\n }\n return controls;\n}\n//# sourceMappingURL=control.js.map","export default class Zone {\n\tconstructor({cartodb_id, description, layer, name, the_geom, the_geom_webmercator, coordinates}) {\n\t\tthis.cartodb_id = cartodb_id || 0;\n\t\tthis.description = description || \"\";\n\t\tthis.layer = layer || \"\";\n\t\tthis.name = name || \"type your zone here!\";\n\t\tthis.the_geom = the_geom ? the_geom : this.generateTheGeom({description, layer, name, coordinates});\n\t\tthis.the_geom_webmercator = the_geom_webmercator\n\t\t\t? the_geom_webmercator\n\t\t\t: this.generateTheGeom({description, layer, name, coordinates});\n\t}\n\n\t/**\n\t * Method to generete body for a geometry field cartodb\n\t * @param {String} description some descrition text\n\t * @param {String} layer code layer received from the service\n\t * @param {String} name name of the layer received from the service\n\t * @param {Array} coordinates array of geographic coordinate array with format like\n\t * [ [-91.23046875,45.460130637921],[-69.08203125,43.452918893555],[-88.2421875,32.694865977875],[-91.23046875,45.460130637921] ]\n\t * @returns Object\n\t */\n\tgenerateTheGeom({description, layer, name, coordinates}) {\n\t\treturn {\n\t\t\ttype: \"Polygon\",\n\t\t\tcoordinates: [coordinates || []],\n\t\t\tcrs: {type: name, properties: {name: \"EPSG:4326\"}},\n\t\t\tproperties: {\n\t\t\t\tdescription,\n\t\t\t\tlayer,\n\t\t\t\tname,\n\t\t\t},\n\t\t};\n\t}\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/proj/epsg3857\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\nimport { cosh } from '../math.js';\n/**\n * Radius of WGS84 sphere\n *\n * @const\n * @type {number}\n */\nexport var RADIUS = 6378137;\n/**\n * @const\n * @type {number}\n */\nexport var HALF_SIZE = Math.PI * RADIUS;\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var EXTENT = [-HALF_SIZE, -HALF_SIZE, HALF_SIZE, HALF_SIZE];\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var WORLD_EXTENT = [-180, -85, 180, 85];\n/**\n * Maximum safe value in y direction\n * @const\n * @type {number}\n */\nexport var MAX_SAFE_Y = RADIUS * Math.log(Math.tan(Math.PI / 2));\n/**\n * @classdesc\n * Projection object for web/spherical Mercator (EPSG:3857).\n */\nvar EPSG3857Projection = /** @class */ (function (_super) {\n __extends(EPSG3857Projection, _super);\n /**\n * @param {string} code Code.\n */\n function EPSG3857Projection(code) {\n return _super.call(this, {\n code: code,\n units: Units.METERS,\n extent: EXTENT,\n global: true,\n worldExtent: WORLD_EXTENT,\n getPointResolution: function (resolution, point) {\n return resolution / cosh(point[1] / RADIUS);\n },\n }) || this;\n }\n return EPSG3857Projection;\n}(Projection));\n/**\n * Projections equal to EPSG:3857.\n *\n * @const\n * @type {Array}\n */\nexport var PROJECTIONS = [\n new EPSG3857Projection('EPSG:3857'),\n new EPSG3857Projection('EPSG:102100'),\n new EPSG3857Projection('EPSG:102113'),\n new EPSG3857Projection('EPSG:900913'),\n new EPSG3857Projection('http://www.opengis.net/def/crs/EPSG/0/3857'),\n new EPSG3857Projection('http://www.opengis.net/gml/srs/epsg.xml#3857'),\n];\n/**\n * Transformation from EPSG:4326 to EPSG:3857.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function fromEPSG4326(input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n }\n else {\n output = new Array(length);\n }\n }\n for (var i = 0; i < length; i += dimension) {\n output[i] = (HALF_SIZE * input[i]) / 180;\n var y = RADIUS * Math.log(Math.tan((Math.PI * (+input[i + 1] + 90)) / 360));\n if (y > MAX_SAFE_Y) {\n y = MAX_SAFE_Y;\n }\n else if (y < -MAX_SAFE_Y) {\n y = -MAX_SAFE_Y;\n }\n output[i + 1] = y;\n }\n return output;\n}\n/**\n * Transformation from EPSG:3857 to EPSG:4326.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function toEPSG4326(input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension > 1 ? opt_dimension : 2;\n var output = opt_output;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n }\n else {\n output = new Array(length);\n }\n }\n for (var i = 0; i < length; i += dimension) {\n output[i] = (180 * input[i]) / HALF_SIZE;\n output[i + 1] =\n (360 * Math.atan(Math.exp(input[i + 1] / RADIUS))) / Math.PI - 90;\n }\n return output;\n}\n//# sourceMappingURL=epsg3857.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/proj/epsg4326\n */\nimport Projection from './Projection.js';\nimport Units from './Units.js';\n/**\n * Semi-major radius of the WGS84 ellipsoid.\n *\n * @const\n * @type {number}\n */\nexport var RADIUS = 6378137;\n/**\n * Extent of the EPSG:4326 projection which is the whole world.\n *\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport var EXTENT = [-180, -90, 180, 90];\n/**\n * @const\n * @type {number}\n */\nexport var METERS_PER_UNIT = (Math.PI * RADIUS) / 180;\n/**\n * @classdesc\n * Projection object for WGS84 geographic coordinates (EPSG:4326).\n *\n * Note that OpenLayers does not strictly comply with the EPSG definition.\n * The EPSG registry defines 4326 as a CRS for Latitude,Longitude (y,x).\n * OpenLayers treats EPSG:4326 as a pseudo-projection, with x,y coordinates.\n */\nvar EPSG4326Projection = /** @class */ (function (_super) {\n __extends(EPSG4326Projection, _super);\n /**\n * @param {string} code Code.\n * @param {string} [opt_axisOrientation] Axis orientation.\n */\n function EPSG4326Projection(code, opt_axisOrientation) {\n return _super.call(this, {\n code: code,\n units: Units.DEGREES,\n extent: EXTENT,\n axisOrientation: opt_axisOrientation,\n global: true,\n metersPerUnit: METERS_PER_UNIT,\n worldExtent: EXTENT,\n }) || this;\n }\n return EPSG4326Projection;\n}(Projection));\n/**\n * Projections equal to EPSG:4326.\n *\n * @const\n * @type {Array}\n */\nexport var PROJECTIONS = [\n new EPSG4326Projection('CRS:84'),\n new EPSG4326Projection('EPSG:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:1.3:CRS84'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:2:84'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/OGC/1.3/CRS84'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/EPSG/0/4326', 'neu'),\n];\n//# sourceMappingURL=epsg4326.js.map","/**\n * @module ol/proj/projections\n */\n/**\n * @type {Object}\n */\nvar cache = {};\n/**\n * Clear the projections cache.\n */\nexport function clear() {\n cache = {};\n}\n/**\n * Get a cached projection by code.\n * @param {string} code The code for the projection.\n * @return {import(\"./Projection.js\").default} The projection (if cached).\n */\nexport function get(code) {\n return (cache[code] ||\n cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\\w+)$/, 'EPSG:$3')] ||\n null);\n}\n/**\n * Add a projection to the cache.\n * @param {string} code The projection code.\n * @param {import(\"./Projection.js\").default} projection The projection to cache.\n */\nexport function add(code, projection) {\n cache[code] = projection;\n}\n//# sourceMappingURL=projections.js.map","/**\n * @module ol/proj/transforms\n */\nimport { isEmpty } from '../obj.js';\n/**\n * @private\n * @type {!Object>}\n */\nvar transforms = {};\n/**\n * Clear the transform cache.\n */\nexport function clear() {\n transforms = {};\n}\n/**\n * Registers a conversion function to convert coordinates from the source\n * projection to the destination projection.\n *\n * @param {import(\"./Projection.js\").default} source Source.\n * @param {import(\"./Projection.js\").default} destination Destination.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\nexport function add(source, destination, transformFn) {\n var sourceCode = source.getCode();\n var destinationCode = destination.getCode();\n if (!(sourceCode in transforms)) {\n transforms[sourceCode] = {};\n }\n transforms[sourceCode][destinationCode] = transformFn;\n}\n/**\n * Unregisters the conversion function to convert coordinates from the source\n * projection to the destination projection. This method is used to clean up\n * cached transforms during testing.\n *\n * @param {import(\"./Projection.js\").default} source Source projection.\n * @param {import(\"./Projection.js\").default} destination Destination projection.\n * @return {import(\"../proj.js\").TransformFunction} transformFn The unregistered transform.\n */\nexport function remove(source, destination) {\n var sourceCode = source.getCode();\n var destinationCode = destination.getCode();\n var transform = transforms[sourceCode][destinationCode];\n delete transforms[sourceCode][destinationCode];\n if (isEmpty(transforms[sourceCode])) {\n delete transforms[sourceCode];\n }\n return transform;\n}\n/**\n * Get a transform given a source code and a destination code.\n * @param {string} sourceCode The code for the source projection.\n * @param {string} destinationCode The code for the destination projection.\n * @return {import(\"../proj.js\").TransformFunction|undefined} The transform function (if found).\n */\nexport function get(sourceCode, destinationCode) {\n var transform;\n if (sourceCode in transforms && destinationCode in transforms[sourceCode]) {\n transform = transforms[sourceCode][destinationCode];\n }\n return transform;\n}\n//# sourceMappingURL=transforms.js.map","/**\n * @module ol/proj\n */\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection~Projection}\n * objects, one for each projection supported by the application\n * * a list of transform functions needed to convert coordinates in one projection\n * into another.\n *\n * The static functions are the methods used to maintain these.\n * Each transform function can handle not only simple coordinate pairs, but also\n * large arrays of coordinates such as vector geometries.\n *\n * When loaded, the library adds projection objects for EPSG:4326 (WGS84\n * geographic coordinates) and EPSG:3857 (Web or Spherical Mercator, as used\n * for example by Bing Maps or OpenStreetMap), together with the relevant\n * transform functions.\n *\n * Additional transforms may be added by using the http://proj4js.org/\n * library (version 2.2 or later). You can use the full build supplied by\n * Proj4js, or create a custom build to support those projections you need; see\n * the Proj4js website for how to do this. You also need the Proj4js definitions\n * for the required projections. These definitions can be obtained from\n * https://epsg.io/, and are a JS function, so can be loaded in a script\n * tag (as in the examples) or pasted into your application.\n *\n * After all required projection definitions are added to proj4's registry (by\n * using `proj4.defs()`), simply call `register(proj4)` from the `ol/proj/proj4`\n * package. Existing transforms are not changed by this function. See\n * examples/wms-image-custom-proj for an example of this.\n *\n * Additional projection definitions can be registered with `proj4.defs()` any\n * time. Just make sure to call `register(proj4)` again; for example, with user-supplied data where you don't\n * know in advance what projections are needed, you can initially load minimal\n * support and then load whichever are requested.\n *\n * Note that Proj4js does not support projection extents. If you want to add\n * one for creating default tile grids, you can add it after the Projection\n * object has been created with `setExtent`, for example,\n * `get('EPSG:1234').setExtent(extent)`.\n *\n * In addition to Proj4js support, any transform functions can be added with\n * {@link module:ol/proj.addCoordinateTransforms}. To use this, you must first create\n * a {@link module:ol/proj/Projection~Projection} object for the new projection and add it with\n * {@link module:ol/proj.addProjection}. You can then add the forward and inverse\n * functions with {@link module:ol/proj.addCoordinateTransforms}. See\n * examples/wms-custom-proj for an example of this.\n *\n * Note that if no transforms are needed and you only need to define the\n * projection, just add a {@link module:ol/proj/Projection~Projection} with\n * {@link module:ol/proj.addProjection}. See examples/wms-no-proj for an example of\n * this.\n */\nimport Projection from './proj/Projection.js';\nimport Units, { METERS_PER_UNIT } from './proj/Units.js';\nimport { PROJECTIONS as EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326, } from './proj/epsg3857.js';\nimport { PROJECTIONS as EPSG4326_PROJECTIONS } from './proj/epsg4326.js';\nimport { add as addProj, clear as clearProj, get as getProj, } from './proj/projections.js';\nimport { add as addTransformFunc, clear as clearTransformFuncs, get as getTransformFunc, } from './proj/transforms.js';\nimport { applyTransform, getWidth } from './extent.js';\nimport { clamp, modulo } from './math.js';\nimport { equals, getWorldsAway } from './coordinate.js';\nimport { getDistance } from './sphere.js';\n/**\n * A projection as {@link module:ol/proj/Projection~Projection}, SRS identifier\n * string or undefined.\n * @typedef {Projection|string|undefined} ProjectionLike\n * @api\n */\n/**\n * A transform function accepts an array of input coordinate values, an optional\n * output array, and an optional dimension (default should be 2). The function\n * transforms the input coordinate values, populates the output array, and\n * returns the output array.\n *\n * @typedef {function(Array, Array=, number=): Array} TransformFunction\n * @api\n */\nexport { METERS_PER_UNIT };\nexport { Projection };\nvar showCoordinateWarning = true;\n/**\n * @param {boolean} [opt_disable = true] Disable console info about `useGeographic()`\n */\nexport function disableCoordinateWarning(opt_disable) {\n var hide = opt_disable === undefined ? true : opt_disable;\n showCoordinateWarning = !hide;\n}\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Output coordinate array (new array, same coordinate\n * values).\n */\nexport function cloneTransform(input, opt_output, opt_dimension) {\n var output;\n if (opt_output !== undefined) {\n for (var i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n output = opt_output;\n }\n else {\n output = input.slice();\n }\n return output;\n}\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [opt_output] Output array of coordinate values.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Input coordinate array (same array as input).\n */\nexport function identityTransform(input, opt_output, opt_dimension) {\n if (opt_output !== undefined && input !== opt_output) {\n for (var i = 0, ii = input.length; i < ii; ++i) {\n opt_output[i] = input[i];\n }\n input = opt_output;\n }\n return input;\n}\n/**\n * Add a Projection object to the list of supported projections that can be\n * looked up by their code.\n *\n * @param {Projection} projection Projection instance.\n * @api\n */\nexport function addProjection(projection) {\n addProj(projection.getCode(), projection);\n addTransformFunc(projection, projection, cloneTransform);\n}\n/**\n * @param {Array} projections Projections.\n */\nexport function addProjections(projections) {\n projections.forEach(addProjection);\n}\n/**\n * Fetches a Projection object for the code specified.\n *\n * @param {ProjectionLike} projectionLike Either a code string which is\n * a combination of authority and identifier such as \"EPSG:4326\", or an\n * existing projection object, or undefined.\n * @return {Projection|null} Projection object, or null if not in list.\n * @api\n */\nexport function get(projectionLike) {\n return typeof projectionLike === 'string'\n ? getProj(/** @type {string} */ (projectionLike))\n : /** @type {Projection} */ (projectionLike) || null;\n}\n/**\n * Get the resolution of the point in degrees or distance units.\n * For projections with degrees as the unit this will simply return the\n * provided resolution. For other projections the point resolution is\n * by default estimated by transforming the `point` pixel to EPSG:4326,\n * measuring its width and height on the normal sphere,\n * and taking the average of the width and height.\n * A custom function can be provided for a specific projection, either\n * by setting the `getPointResolution` option in the\n * {@link module:ol/proj/Projection~Projection} constructor or by using\n * {@link module:ol/proj/Projection~Projection#setGetPointResolution} to change an existing\n * projection object.\n * @param {ProjectionLike} projection The projection.\n * @param {number} resolution Nominal resolution in projection units.\n * @param {import(\"./coordinate.js\").Coordinate} point Point to find adjusted resolution at.\n * @param {import(\"./proj/Units.js\").default} [opt_units] Units to get the point resolution in.\n * Default is the projection's units.\n * @return {number} Point resolution.\n * @api\n */\nexport function getPointResolution(projection, resolution, point, opt_units) {\n projection = get(projection);\n var pointResolution;\n var getter = projection.getPointResolutionFunc();\n if (getter) {\n pointResolution = getter(resolution, point);\n if (opt_units && opt_units !== projection.getUnits()) {\n var metersPerUnit = projection.getMetersPerUnit();\n if (metersPerUnit) {\n pointResolution =\n (pointResolution * metersPerUnit) / METERS_PER_UNIT[opt_units];\n }\n }\n }\n else {\n var units = projection.getUnits();\n if ((units == Units.DEGREES && !opt_units) || opt_units == Units.DEGREES) {\n pointResolution = resolution;\n }\n else {\n // Estimate point resolution by transforming the center pixel to EPSG:4326,\n // measuring its width and height on the normal sphere, and taking the\n // average of the width and height.\n var toEPSG4326_1 = getTransformFromProjections(projection, get('EPSG:4326'));\n if (toEPSG4326_1 === identityTransform && units !== Units.DEGREES) {\n // no transform is available\n pointResolution = resolution * projection.getMetersPerUnit();\n }\n else {\n var vertices = [\n point[0] - resolution / 2,\n point[1],\n point[0] + resolution / 2,\n point[1],\n point[0],\n point[1] - resolution / 2,\n point[0],\n point[1] + resolution / 2,\n ];\n vertices = toEPSG4326_1(vertices, vertices, 2);\n var width = getDistance(vertices.slice(0, 2), vertices.slice(2, 4));\n var height = getDistance(vertices.slice(4, 6), vertices.slice(6, 8));\n pointResolution = (width + height) / 2;\n }\n var metersPerUnit = opt_units\n ? METERS_PER_UNIT[opt_units]\n : projection.getMetersPerUnit();\n if (metersPerUnit !== undefined) {\n pointResolution /= metersPerUnit;\n }\n }\n }\n return pointResolution;\n}\n/**\n * Registers transformation functions that don't alter coordinates. Those allow\n * to transform between projections with equal meaning.\n *\n * @param {Array} projections Projections.\n * @api\n */\nexport function addEquivalentProjections(projections) {\n addProjections(projections);\n projections.forEach(function (source) {\n projections.forEach(function (destination) {\n if (source !== destination) {\n addTransformFunc(source, destination, cloneTransform);\n }\n });\n });\n}\n/**\n * Registers transformation functions to convert coordinates in any projection\n * in projection1 to any projection in projection2.\n *\n * @param {Array} projections1 Projections with equal\n * meaning.\n * @param {Array} projections2 Projections with equal\n * meaning.\n * @param {TransformFunction} forwardTransform Transformation from any\n * projection in projection1 to any projection in projection2.\n * @param {TransformFunction} inverseTransform Transform from any projection\n * in projection2 to any projection in projection1..\n */\nexport function addEquivalentTransforms(projections1, projections2, forwardTransform, inverseTransform) {\n projections1.forEach(function (projection1) {\n projections2.forEach(function (projection2) {\n addTransformFunc(projection1, projection2, forwardTransform);\n addTransformFunc(projection2, projection1, inverseTransform);\n });\n });\n}\n/**\n * Clear all cached projections and transforms.\n */\nexport function clearAllProjections() {\n clearProj();\n clearTransformFuncs();\n}\n/**\n * @param {Projection|string|undefined} projection Projection.\n * @param {string} defaultCode Default code.\n * @return {Projection} Projection.\n */\nexport function createProjection(projection, defaultCode) {\n if (!projection) {\n return get(defaultCode);\n }\n else if (typeof projection === 'string') {\n return get(projection);\n }\n else {\n return /** @type {Projection} */ (projection);\n }\n}\n/**\n * Creates a {@link module:ol/proj~TransformFunction} from a simple 2D coordinate transform\n * function.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} coordTransform Coordinate\n * transform.\n * @return {TransformFunction} Transform function.\n */\nexport function createTransformFromCoordinateTransform(coordTransform) {\n return (\n /**\n * @param {Array} input Input.\n * @param {Array} [opt_output] Output.\n * @param {number} [opt_dimension] Dimension.\n * @return {Array} Output.\n */\n function (input, opt_output, opt_dimension) {\n var length = input.length;\n var dimension = opt_dimension !== undefined ? opt_dimension : 2;\n var output = opt_output !== undefined ? opt_output : new Array(length);\n for (var i = 0; i < length; i += dimension) {\n var point = coordTransform(input.slice(i, i + dimension));\n var pointLength = point.length;\n for (var j = 0, jj = dimension; j < jj; ++j) {\n output[i + j] = j >= pointLength ? input[i + j] : point[j];\n }\n }\n return output;\n });\n}\n/**\n * Registers coordinate transform functions to convert coordinates between the\n * source projection and the destination projection.\n * The forward and inverse functions convert coordinate pairs; this function\n * converts these into the functions used internally which also handle\n * extents and coordinate arrays.\n *\n * @param {ProjectionLike} source Source projection.\n * @param {ProjectionLike} destination Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} forward The forward transform\n * function (that is, from the source projection to the destination\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} inverse The inverse transform\n * function (that is, from the destination projection to the source\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}. If the transform function can only\n * transform less dimensions than the input coordinate, it is supposeed to return a coordinate\n * with only the length it can transform. The other dimensions will be taken unchanged from the\n * source.\n * @api\n */\nexport function addCoordinateTransforms(source, destination, forward, inverse) {\n var sourceProj = get(source);\n var destProj = get(destination);\n addTransformFunc(sourceProj, destProj, createTransformFromCoordinateTransform(forward));\n addTransformFunc(destProj, sourceProj, createTransformFromCoordinateTransform(inverse));\n}\n/**\n * Transforms a coordinate from longitude/latitude to a different projection.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate as longitude and latitude, i.e.\n * an array with longitude as 1st and latitude as 2nd element.\n * @param {ProjectionLike} [opt_projection] Target projection. The\n * default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate projected to the target projection.\n * @api\n */\nexport function fromLonLat(coordinate, opt_projection) {\n disableCoordinateWarning();\n return transform(coordinate, 'EPSG:4326', opt_projection !== undefined ? opt_projection : 'EPSG:3857');\n}\n/**\n * Transforms a coordinate to longitude/latitude.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Projected coordinate.\n * @param {ProjectionLike} [opt_projection] Projection of the coordinate.\n * The default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate as longitude and latitude, i.e. an array\n * with longitude as 1st and latitude as 2nd element.\n * @api\n */\nexport function toLonLat(coordinate, opt_projection) {\n var lonLat = transform(coordinate, opt_projection !== undefined ? opt_projection : 'EPSG:3857', 'EPSG:4326');\n var lon = lonLat[0];\n if (lon < -180 || lon > 180) {\n lonLat[0] = modulo(lon + 180, 360) - 180;\n }\n return lonLat;\n}\n/**\n * Checks if two projections are the same, that is every coordinate in one\n * projection does represent the same geographic point as the same coordinate in\n * the other projection.\n *\n * @param {Projection} projection1 Projection 1.\n * @param {Projection} projection2 Projection 2.\n * @return {boolean} Equivalent.\n * @api\n */\nexport function equivalent(projection1, projection2) {\n if (projection1 === projection2) {\n return true;\n }\n var equalUnits = projection1.getUnits() === projection2.getUnits();\n if (projection1.getCode() === projection2.getCode()) {\n return equalUnits;\n }\n else {\n var transformFunc = getTransformFromProjections(projection1, projection2);\n return transformFunc === cloneTransform && equalUnits;\n }\n}\n/**\n * Searches in the list of transform functions for the function for converting\n * coordinates from the source projection to the destination projection.\n *\n * @param {Projection} sourceProjection Source Projection object.\n * @param {Projection} destinationProjection Destination Projection\n * object.\n * @return {TransformFunction} Transform function.\n */\nexport function getTransformFromProjections(sourceProjection, destinationProjection) {\n var sourceCode = sourceProjection.getCode();\n var destinationCode = destinationProjection.getCode();\n var transformFunc = getTransformFunc(sourceCode, destinationCode);\n if (!transformFunc) {\n transformFunc = identityTransform;\n }\n return transformFunc;\n}\n/**\n * Given the projection-like objects, searches for a transformation\n * function to convert a coordinates array from the source projection to the\n * destination projection.\n *\n * @param {ProjectionLike} source Source.\n * @param {ProjectionLike} destination Destination.\n * @return {TransformFunction} Transform function.\n * @api\n */\nexport function getTransform(source, destination) {\n var sourceProjection = get(source);\n var destinationProjection = get(destination);\n return getTransformFromProjections(sourceProjection, destinationProjection);\n}\n/**\n * Transforms a coordinate from source projection to destination projection.\n * This returns a new coordinate (and does not modify the original).\n *\n * See {@link module:ol/proj.transformExtent} for extent transformation.\n * See the transform method of {@link module:ol/geom/Geometry~Geometry} and its\n * subclasses for geometry transforms.\n *\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\nexport function transform(coordinate, source, destination) {\n var transformFunc = getTransform(source, destination);\n return transformFunc(coordinate, undefined, coordinate.length);\n}\n/**\n * Transforms an extent from source projection to destination projection. This\n * returns a new extent (and does not modify the original).\n *\n * @param {import(\"./extent.js\").Extent} extent The extent to transform.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @param {number} [opt_stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {import(\"./extent.js\").Extent} The transformed extent.\n * @api\n */\nexport function transformExtent(extent, source, destination, opt_stops) {\n var transformFunc = getTransform(source, destination);\n return applyTransform(extent, transformFunc, undefined, opt_stops);\n}\n/**\n * Transforms the given point to the destination projection.\n *\n * @param {import(\"./coordinate.js\").Coordinate} point Point.\n * @param {Projection} sourceProjection Source projection.\n * @param {Projection} destinationProjection Destination projection.\n * @return {import(\"./coordinate.js\").Coordinate} Point.\n */\nexport function transformWithProjections(point, sourceProjection, destinationProjection) {\n var transformFunc = getTransformFromProjections(sourceProjection, destinationProjection);\n return transformFunc(point);\n}\n/**\n * @type {Projection|null}\n */\nvar userProjection = null;\n/**\n * Set the projection for coordinates supplied from and returned by API methods.\n * This includes all API methods except for those interacting with tile grids.\n * @param {ProjectionLike} projection The user projection.\n * @api\n */\nexport function setUserProjection(projection) {\n userProjection = get(projection);\n}\n/**\n * Clear the user projection if set.\n * @api\n */\nexport function clearUserProjection() {\n userProjection = null;\n}\n/**\n * Get the projection for coordinates supplied from and returned by API methods.\n * Note that this method is not yet a part of the stable API. Support for user\n * projections is not yet complete and should be considered experimental.\n * @return {Projection|null} The user projection (or null if not set).\n * @api\n */\nexport function getUserProjection() {\n return userProjection;\n}\n/**\n * Use geographic coordinates (WGS-84 datum) in API methods. This includes all API\n * methods except for those interacting with tile grids.\n * @api\n */\nexport function useGeographic() {\n setUserProjection('EPSG:4326');\n}\n/**\n * Return a coordinate transformed into the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} sourceProjection The input coordinate projection.\n * @return {Array} The input coordinate in the user projection.\n */\nexport function toUserCoordinate(coordinate, sourceProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, sourceProjection, userProjection);\n}\n/**\n * Return a coordinate transformed from the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {Array} The input coordinate transformed.\n */\nexport function fromUserCoordinate(coordinate, destProjection) {\n if (!userProjection) {\n if (showCoordinateWarning &&\n !equals(coordinate, [0, 0]) &&\n coordinate[0] >= -180 &&\n coordinate[0] <= 180 &&\n coordinate[1] >= -90 &&\n coordinate[1] <= 90) {\n showCoordinateWarning = false;\n // eslint-disable-next-line no-console\n console.warn('Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.');\n }\n return coordinate;\n }\n return transform(coordinate, userProjection, destProjection);\n}\n/**\n * Return an extent transformed into the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} sourceProjection The input extent projection.\n * @return {import(\"./extent.js\").Extent} The input extent in the user projection.\n */\nexport function toUserExtent(extent, sourceProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, sourceProjection, userProjection);\n}\n/**\n * Return an extent transformed from the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {import(\"./extent.js\").Extent} The input extent transformed.\n */\nexport function fromUserExtent(extent, destProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, userProjection, destProjection);\n}\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in input projection units per pixel.\n * @param {ProjectionLike} sourceProjection The input projection.\n * @return {number} Resolution in user projection units per pixel.\n */\nexport function toUserResolution(resolution, sourceProjection) {\n if (!userProjection) {\n return resolution;\n }\n var sourceUnits = get(sourceProjection).getUnits();\n var userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[sourceUnits]) / METERS_PER_UNIT[userUnits]\n : resolution;\n}\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in user projection units per pixel.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {number} Resolution in destination projection units per pixel.\n */\nexport function fromUserResolution(resolution, destProjection) {\n if (!userProjection) {\n return resolution;\n }\n var sourceUnits = get(destProjection).getUnits();\n var userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[userUnits]) / METERS_PER_UNIT[sourceUnits]\n : resolution;\n}\n/**\n * Creates a safe coordinate transform function from a coordinate transform function.\n * \"Safe\" means that it can handle wrapping of x-coordinates for global projections,\n * and that coordinates exceeding the source projection validity extent's range will be\n * clamped to the validity range.\n * @param {Projection} sourceProj Source projection.\n * @param {Projection} destProj Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} transform Transform function (source to destiation).\n * @return {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} Safe transform function (source to destiation).\n */\nexport function createSafeCoordinateTransform(sourceProj, destProj, transform) {\n return function (coord) {\n var transformed, worldsAway;\n if (sourceProj.canWrapX()) {\n var sourceExtent = sourceProj.getExtent();\n var sourceExtentWidth = getWidth(sourceExtent);\n coord = coord.slice(0);\n worldsAway = getWorldsAway(coord, sourceProj, sourceExtentWidth);\n if (worldsAway) {\n // Move x to the real world\n coord[0] = coord[0] - worldsAway * sourceExtentWidth;\n }\n coord[0] = clamp(coord[0], sourceExtent[0], sourceExtent[2]);\n coord[1] = clamp(coord[1], sourceExtent[1], sourceExtent[3]);\n transformed = transform(coord);\n }\n else {\n transformed = transform(coord);\n }\n if (worldsAway && destProj.canWrapX()) {\n // Move transformed coordinate back to the offset world\n transformed[0] += worldsAway * getWidth(destProj.getExtent());\n }\n return transformed;\n };\n}\n/**\n * Add transforms to and from EPSG:4326 and EPSG:3857. This function is called\n * by when this module is executed and should only need to be called again after\n * `clearAllProjections()` is called (e.g. in tests).\n */\nexport function addCommon() {\n // Add transformations that don't alter coordinates to convert within set of\n // projections with equal meaning.\n addEquivalentProjections(EPSG3857_PROJECTIONS);\n addEquivalentProjections(EPSG4326_PROJECTIONS);\n // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like\n // coordinates and back.\n addEquivalentTransforms(EPSG4326_PROJECTIONS, EPSG3857_PROJECTIONS, fromEPSG4326, toEPSG4326);\n}\naddCommon();\n//# sourceMappingURL=proj.js.map","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).RBush=i()}(this,function(){\"use strict\";function t(t,r,e,a,h){!function t(n,r,e,a,h){for(;a>e;){if(a-e>600){var o=a-e+1,s=r-e+1,l=Math.log(o),f=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*f*(o-f)/o)*(s-o/2<0?-1:1),m=Math.max(e,Math.floor(r-s*f/o+u)),c=Math.min(a,Math.floor(r+(o-s)*f/o+u));t(n,r,m,c,h)}var p=n[r],d=e,x=a;for(i(n,e,r),h(n[a],p)>0&&i(n,e,a);d0;)x--}0===h(n[e],p)?i(n,e,x):i(n,++x,a),x<=r&&(e=x+1),r<=x&&(a=x-1)}}(t,r,e||0,a||t.length-1,h||n)}function i(t,i,n){var r=t[i];t[i]=t[n],t[n]=r}function n(t,i){return ti?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function e(t,i,n){if(!n)return i.indexOf(t);for(var r=0;r=t.minX&&i.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(i,n,r,e,a){for(var h=[n,r];h.length;)if(!((r=h.pop())-(n=h.pop())<=e)){var o=n+Math.ceil((r-n)/e/2)*e;t(i,o,n,r,a),h.push(n,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var i=this.data,n=[];if(!c(t,i))return n;for(var r=this.toBBox,e=[];i;){for(var a=0;a=0&&e[i].children.length>this._maxEntries;)this._split(e,i),i--;this._adjustParentBBoxes(r,e,i)},r.prototype._split=function(t,i){var n=t[i],r=n.children.length,e=this._minEntries;this._chooseSplitAxis(n,e,r);var h=this._chooseSplitIndex(n,e,r),o=p(n.children.splice(h,n.children.length-h));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(n,o)},r.prototype._splitRoot=function(t,i){this.data=p([t,i]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,i,n){for(var r,e,a,o,s,l,u,m=1/0,c=1/0,p=i;p<=n-i;p++){var d=h(t,0,p,this.toBBox),x=h(t,p,n,this.toBBox),v=(e=d,a=x,o=void 0,s=void 0,l=void 0,u=void 0,o=Math.max(e.minX,a.minX),s=Math.max(e.minY,a.minY),l=Math.min(e.maxX,a.maxX),u=Math.min(e.maxY,a.maxY),Math.max(0,l-o)*Math.max(0,u-s)),M=f(d)+f(x);v=i;c--){var p=t.children[c];o(s,t.leaf?e(p):p),l+=u(s)}return l},r.prototype._adjustParentBBoxes=function(t,i,n){for(var r=n;r>=0;r--)o(i[r],t)},r.prototype._condense=function(t){for(var i=t.length-1,n=void 0;i>=0;i--)0===t[i].children.length?i>0?(n=t[i-1].children).splice(n.indexOf(t[i]),1):this.clear():a(t[i],this.toBBox)},r});\n","/**\n * @module ol/geom/flat/contains\n */\nimport { forEachCorner } from '../../extent.js';\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @return {boolean} Contains extent.\n */\nexport function linearRingContainsExtent(flatCoordinates, offset, end, stride, extent) {\n var outside = forEachCorner(extent, \n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains (x, y).\n */\n function (coordinate) {\n return !linearRingContainsXY(flatCoordinates, offset, end, stride, coordinate[0], coordinate[1]);\n });\n return !outside;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingContainsXY(flatCoordinates, offset, end, stride, x, y) {\n // https://geomalgorithms.com/a03-_inclusion.html\n // Copyright 2000 softSurfer, 2012 Dan Sunday\n // This code may be freely used and modified for any purpose\n // providing that this copyright notice is included with it.\n // SoftSurfer makes no warranty for this code, and cannot be held\n // liable for any real or imagined damage resulting from its use.\n // Users of this code must verify correctness for their application.\n var wn = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n if (y1 <= y) {\n if (y2 > y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) > 0) {\n wn++;\n }\n }\n else if (y2 <= y && (x2 - x1) * (y - y1) - (x - x1) * (y2 - y1) < 0) {\n wn--;\n }\n x1 = x2;\n y1 = y2;\n }\n return wn !== 0;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y) {\n if (ends.length === 0) {\n return false;\n }\n if (!linearRingContainsXY(flatCoordinates, offset, ends[0], stride, x, y)) {\n return false;\n }\n for (var i = 1, ii = ends.length; i < ii; ++i) {\n if (linearRingContainsXY(flatCoordinates, ends[i - 1], ends[i], stride, x, y)) {\n return false;\n }\n }\n return true;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\nexport function linearRingssContainsXY(flatCoordinates, offset, endss, stride, x, y) {\n if (endss.length === 0) {\n return false;\n }\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (linearRingsContainsXY(flatCoordinates, offset, ends, stride, x, y)) {\n return true;\n }\n offset = ends[ends.length - 1];\n }\n return false;\n}\n//# sourceMappingURL=contains.js.map","/**\n * @module ol/style/TextPlacement\n */\n/**\n * Text placement. One of `'point'`, `'line'`. Default is `'point'`. Note that\n * `'line'` requires the underlying geometry to be a {@link module:ol/geom/LineString~LineString},\n * {@link module:ol/geom/Polygon~Polygon}, {@link module:ol/geom/MultiLineString~MultiLineString} or\n * {@link module:ol/geom/MultiPolygon~MultiPolygon}.\n * @enum {string}\n */\nexport default {\n POINT: 'point',\n LINE: 'line',\n};\n//# sourceMappingURL=TextPlacement.js.map","/**\n * @module ol/tilecoord\n */\n/**\n * An array of three numbers representing the location of a tile in a tile\n * grid. The order is `z` (zoom level), `x` (column), and `y` (row).\n * @typedef {Array} TileCoord\n * @api\n */\n/**\n * @param {number} z Z.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {TileCoord} [opt_tileCoord] Tile coordinate.\n * @return {TileCoord} Tile coordinate.\n */\nexport function createOrUpdate(z, x, y, opt_tileCoord) {\n if (opt_tileCoord !== undefined) {\n opt_tileCoord[0] = z;\n opt_tileCoord[1] = x;\n opt_tileCoord[2] = y;\n return opt_tileCoord;\n }\n else {\n return [z, x, y];\n }\n}\n/**\n * @param {number} z Z.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {string} Key.\n */\nexport function getKeyZXY(z, x, y) {\n return z + '/' + x + '/' + y;\n}\n/**\n * Get the key for a tile coord.\n * @param {TileCoord} tileCoord The tile coord.\n * @return {string} Key.\n */\nexport function getKey(tileCoord) {\n return getKeyZXY(tileCoord[0], tileCoord[1], tileCoord[2]);\n}\n/**\n * Get the tile cache key for a tile key obtained through `tile.getKey()`.\n * @param {string} tileKey The tile key.\n * @return {string} The cache key.\n */\nexport function getCacheKeyForTileKey(tileKey) {\n var _a = tileKey\n .substring(tileKey.lastIndexOf('/') + 1, tileKey.length)\n .split(',')\n .map(Number), z = _a[0], x = _a[1], y = _a[2];\n return getKeyZXY(z, x, y);\n}\n/**\n * Get a tile coord given a key.\n * @param {string} key The tile coord key.\n * @return {TileCoord} The tile coord.\n */\nexport function fromKey(key) {\n return key.split('/').map(Number);\n}\n/**\n * @param {TileCoord} tileCoord Tile coord.\n * @return {number} Hash.\n */\nexport function hash(tileCoord) {\n return (tileCoord[1] << tileCoord[0]) + tileCoord[2];\n}\n/**\n * @param {TileCoord} tileCoord Tile coordinate.\n * @param {!import(\"./tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @return {boolean} Tile coordinate is within extent and zoom level range.\n */\nexport function withinExtentAndZ(tileCoord, tileGrid) {\n var z = tileCoord[0];\n var x = tileCoord[1];\n var y = tileCoord[2];\n if (tileGrid.getMinZoom() > z || z > tileGrid.getMaxZoom()) {\n return false;\n }\n var tileRange = tileGrid.getFullTileRange(z);\n if (!tileRange) {\n return true;\n }\n else {\n return tileRange.containsXY(x, y);\n }\n}\n//# sourceMappingURL=tilecoord.js.map","module.exports = __webpack_public_path__ + \"img/graphic-6.3ab06089.png\";","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/Select\n */\nimport Collection from '../Collection.js';\nimport CollectionEventType from '../CollectionEventType.js';\nimport Event from '../events/Event.js';\nimport Interaction from './Interaction.js';\nimport VectorLayer from '../layer/Vector.js';\nimport { TRUE } from '../functions.js';\nimport { clear } from '../obj.js';\nimport { createEditingStyle } from '../style/Style.js';\nimport { extend, includes } from '../array.js';\nimport { getUid } from '../util.js';\nimport { never, shiftKeyOnly, singleClick } from '../events/condition.js';\n/**\n * @enum {string}\n */\nvar SelectEventType = {\n /**\n * Triggered when feature(s) has been (de)selected.\n * @event SelectEvent#select\n * @api\n */\n SELECT: 'select',\n};\n/**\n * A function that takes an {@link module:ol/Feature~Feature} or\n * {@link module:ol/render/Feature~RenderFeature} and an\n * {@link module:ol/layer/Layer~Layer} and returns `true` if the feature may be\n * selected or `false` otherwise.\n * @typedef {function(import(\"../Feature.js\").FeatureLike, import(\"../layer/Layer.js\").default):boolean} FilterFunction\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [addCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * By default, this is {@link module:ol/events/condition.never}. Use this if you\n * want to use different events for add and remove instead of `toggle`.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. This is the event\n * for the selected features as a whole. By default, this is\n * {@link module:ol/events/condition.singleClick}. Clicking on a feature selects that\n * feature and removes any that were in the selection. Clicking outside any\n * feature removes all from the selection.\n * See `toggle`, `add`, `remove` options for adding/removing extra features to/\n * from the selection.\n * @property {Array|function(import(\"../layer/Layer.js\").default): boolean} [layers]\n * A list of layers from which features should be selected. Alternatively, a\n * filter function can be provided. The function will be called for each layer\n * in the map and should return `true` for layers that you want to be\n * selectable. If the option is absent, all visible layers will be considered\n * selectable.\n * @property {import(\"../style/Style.js\").StyleLike|null} [style]\n * Style for the selected features. By default the default edit style is used\n * (see {@link module:ol/style/Style~Style}). Set to `null` if this interaction should not apply\n * any style changes for selected features.\n * If set to a falsey value, the selected feature's style will not change.\n * @property {import(\"../events/condition.js\").Condition} [removeCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * By default, this is {@link module:ol/events/condition.never}. Use this if you\n * want to use different events for add and remove instead of `toggle`.\n * @property {import(\"../events/condition.js\").Condition} [toggleCondition] A function\n * that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. This is in addition\n * to the `condition` event. By default,\n * {@link module:ol/events/condition.shiftKeyOnly}, i.e. pressing `shift` as\n * well as the `condition` event, adds that feature to the current selection if\n * it is not currently selected, and removes it if it is. See `add` and `remove`\n * if you want to use different events instead of a toggle.\n * @property {boolean} [multi=false] A boolean that determines if the default\n * behaviour should select only single features or all (overlapping) features at\n * the clicked map position. The default of `false` means single select.\n * @property {import(\"../Collection.js\").default} [features]\n * Collection where the interaction will place selected features. Optional. If\n * not set the interaction will create a collection. In any case the collection\n * used by the interaction is returned by\n * {@link module:ol/interaction/Select~Select#getFeatures}.\n * @property {FilterFunction} [filter] A function\n * that takes an {@link module:ol/Feature~Feature} and an\n * {@link module:ol/layer/Layer~Layer} and returns `true` if the feature may be\n * selected or `false` otherwise.\n * @property {number} [hitTolerance=0] Hit-detection tolerance. Pixels inside\n * the radius around the given position will be checked for features.\n */\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/Select~Select} instances are instances of\n * this type.\n */\nvar SelectEvent = /** @class */ (function (_super) {\n __extends(SelectEvent, _super);\n /**\n * @param {SelectEventType} type The event type.\n * @param {Array} selected Selected features.\n * @param {Array} deselected Deselected features.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Associated\n * {@link module:ol/MapBrowserEvent~MapBrowserEvent}.\n */\n function SelectEvent(type, selected, deselected, mapBrowserEvent) {\n var _this = _super.call(this, type) || this;\n /**\n * Selected features array.\n * @type {Array}\n * @api\n */\n _this.selected = selected;\n /**\n * Deselected features array.\n * @type {Array}\n * @api\n */\n _this.deselected = deselected;\n /**\n * Associated {@link module:ol/MapBrowserEvent~MapBrowserEvent}.\n * @type {import(\"../MapBrowserEvent.js\").default}\n * @api\n */\n _this.mapBrowserEvent = mapBrowserEvent;\n return _this;\n }\n return SelectEvent;\n}(Event));\nexport { SelectEvent };\n/**\n * Original feature styles to reset to when features are no longer selected.\n * @type {Object|import(\"../style/Style.js\").StyleFunction>}\n */\nvar originalFeatureStyles = {};\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'select', SelectEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} SelectOnSignature\n */\n/**\n * @classdesc\n * Interaction for selecting vector features. By default, selected features are\n * styled differently, so this interaction can be used for visual highlighting,\n * as well as selecting features for other actions, such as modification or\n * output. There are three ways of controlling which features are selected:\n * using the browser event as defined by the `condition` and optionally the\n * `toggle`, `add`/`remove`, and `multi` options; a `layers` filter; and a\n * further feature filter using the `filter` option.\n *\n * @fires SelectEvent\n * @api\n */\nvar Select = /** @class */ (function (_super) {\n __extends(Select, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function Select(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {SelectOnSignature}\n */\n _this.on;\n /***\n * @type {SelectOnSignature}\n */\n _this.once;\n /***\n * @type {SelectOnSignature}\n */\n _this.un;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n */\n _this.boundAddFeature_ = _this.addFeature_.bind(_this);\n /**\n * @private\n */\n _this.boundRemoveFeature_ = _this.removeFeature_.bind(_this);\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : singleClick;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.addCondition_ = options.addCondition ? options.addCondition : never;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.removeCondition_ = options.removeCondition\n ? options.removeCondition\n : never;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.toggleCondition_ = options.toggleCondition\n ? options.toggleCondition\n : shiftKeyOnly;\n /**\n * @private\n * @type {boolean}\n */\n _this.multi_ = options.multi ? options.multi : false;\n /**\n * @private\n * @type {FilterFunction}\n */\n _this.filter_ = options.filter ? options.filter : TRUE;\n /**\n * @private\n * @type {number}\n */\n _this.hitTolerance_ = options.hitTolerance ? options.hitTolerance : 0;\n /**\n * @private\n * @type {import(\"../style/Style.js\").default|Array|import(\"../style/Style.js\").StyleFunction|null}\n */\n _this.style_ =\n options.style !== undefined ? options.style : getDefaultStyleFunction();\n /**\n * @private\n * @type {import(\"../Collection.js\").default}\n */\n _this.features_ = options.features || new Collection();\n /** @type {function(import(\"../layer/Layer.js\").default): boolean} */\n var layerFilter;\n if (options.layers) {\n if (typeof options.layers === 'function') {\n layerFilter = options.layers;\n }\n else {\n var layers_1 = options.layers;\n layerFilter = function (layer) {\n return includes(layers_1, layer);\n };\n }\n }\n else {\n layerFilter = TRUE;\n }\n /**\n * @private\n * @type {function(import(\"../layer/Layer.js\").default): boolean}\n */\n _this.layerFilter_ = layerFilter;\n /**\n * An association between selected feature (key)\n * and layer (value)\n * @private\n * @type {Object}\n */\n _this.featureLayerAssociation_ = {};\n return _this;\n }\n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @private\n */\n Select.prototype.addFeatureLayerAssociation_ = function (feature, layer) {\n this.featureLayerAssociation_[getUid(feature)] = layer;\n };\n /**\n * Get the selected features.\n * @return {import(\"../Collection.js\").default} Features collection.\n * @api\n */\n Select.prototype.getFeatures = function () {\n return this.features_;\n };\n /**\n * Returns the Hit-detection tolerance.\n * @return {number} Hit tolerance in pixels.\n * @api\n */\n Select.prototype.getHitTolerance = function () {\n return this.hitTolerance_;\n };\n /**\n * Returns the associated {@link module:ol/layer/Vector~VectorLayer vector layer} of\n * a selected feature.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature\n * @return {import('../layer/Vector.js').default} Layer.\n * @api\n */\n Select.prototype.getLayer = function (feature) {\n return /** @type {import('../layer/Vector.js').default} */ (this.featureLayerAssociation_[getUid(feature)]);\n };\n /**\n * Hit-detection tolerance. Pixels inside the radius around the given position\n * will be checked for features.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @api\n */\n Select.prototype.setHitTolerance = function (hitTolerance) {\n this.hitTolerance_ = hitTolerance;\n };\n /**\n * Remove the interaction from its current map, if any, and attach it to a new\n * map, if any. Pass `null` to just remove the interaction from the current map.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n Select.prototype.setMap = function (map) {\n var currentMap = this.getMap();\n if (currentMap && this.style_) {\n this.features_.forEach(this.restorePreviousStyle_.bind(this));\n }\n _super.prototype.setMap.call(this, map);\n if (map) {\n this.features_.addEventListener(CollectionEventType.ADD, this.boundAddFeature_);\n this.features_.addEventListener(CollectionEventType.REMOVE, this.boundRemoveFeature_);\n if (this.style_) {\n this.features_.forEach(this.applySelectedStyle_.bind(this));\n }\n }\n else {\n this.features_.removeEventListener(CollectionEventType.ADD, this.boundAddFeature_);\n this.features_.removeEventListener(CollectionEventType.REMOVE, this.boundRemoveFeature_);\n }\n };\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n Select.prototype.addFeature_ = function (evt) {\n var feature = evt.element;\n if (this.style_) {\n this.applySelectedStyle_(feature);\n }\n if (!this.getLayer(feature)) {\n var layer = /** @type {VectorLayer} */ (this.getMap()\n .getAllLayers()\n .find(function (layer) {\n if (layer instanceof VectorLayer &&\n layer.getSource() &&\n layer.getSource().hasFeature(feature)) {\n return layer;\n }\n }));\n if (layer) {\n this.addFeatureLayerAssociation_(feature, layer);\n }\n }\n };\n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt Event.\n * @private\n */\n Select.prototype.removeFeature_ = function (evt) {\n var feature = evt.element;\n if (this.style_) {\n this.restorePreviousStyle_(feature);\n }\n };\n /**\n * @return {import(\"../style/Style.js\").StyleLike|null} Select style.\n */\n Select.prototype.getStyle = function () {\n return this.style_;\n };\n /**\n * @param {import(\"../Feature.js\").default} feature Feature\n * @private\n */\n Select.prototype.applySelectedStyle_ = function (feature) {\n var key = getUid(feature);\n if (!(key in originalFeatureStyles)) {\n originalFeatureStyles[key] = feature.getStyle();\n }\n feature.setStyle(this.style_);\n };\n /**\n * @param {import(\"../Feature.js\").default} feature Feature\n * @private\n */\n Select.prototype.restorePreviousStyle_ = function (feature) {\n var interactions = this.getMap().getInteractions().getArray();\n for (var i = interactions.length - 1; i >= 0; --i) {\n var interaction = interactions[i];\n if (interaction !== this &&\n interaction instanceof Select &&\n interaction.getStyle() &&\n interaction.getFeatures().getArray().lastIndexOf(feature) !== -1) {\n feature.setStyle(interaction.getStyle());\n return;\n }\n }\n var key = getUid(feature);\n feature.setStyle(originalFeatureStyles[key]);\n delete originalFeatureStyles[key];\n };\n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @private\n */\n Select.prototype.removeFeatureLayerAssociation_ = function (feature) {\n delete this.featureLayerAssociation_[getUid(feature)];\n };\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} and may change the\n * selected state of features.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @this {Select}\n */\n Select.prototype.handleEvent = function (mapBrowserEvent) {\n if (!this.condition_(mapBrowserEvent)) {\n return true;\n }\n var add = this.addCondition_(mapBrowserEvent);\n var remove = this.removeCondition_(mapBrowserEvent);\n var toggle = this.toggleCondition_(mapBrowserEvent);\n var set = !add && !remove && !toggle;\n var map = mapBrowserEvent.map;\n var features = this.getFeatures();\n var deselected = [];\n var selected = [];\n if (set) {\n // Replace the currently selected feature(s) with the feature(s) at the\n // pixel, or clear the selected feature(s) if there is no feature at\n // the pixel.\n clear(this.featureLayerAssociation_);\n map.forEachFeatureAtPixel(mapBrowserEvent.pixel, \n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @return {boolean|undefined} Continue to iterate over the features.\n */\n function (feature, layer) {\n if (this.filter_(feature, layer)) {\n this.addFeatureLayerAssociation_(feature, layer);\n selected.push(feature);\n return !this.multi_;\n }\n }.bind(this), {\n layerFilter: this.layerFilter_,\n hitTolerance: this.hitTolerance_,\n });\n for (var i = features.getLength() - 1; i >= 0; --i) {\n var feature = features.item(i);\n var index = selected.indexOf(feature);\n if (index > -1) {\n // feature is already selected\n selected.splice(index, 1);\n }\n else {\n features.remove(feature);\n deselected.push(feature);\n }\n }\n if (selected.length !== 0) {\n features.extend(selected);\n }\n }\n else {\n // Modify the currently selected feature(s).\n map.forEachFeatureAtPixel(mapBrowserEvent.pixel, \n /**\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../layer/Layer.js\").default} layer Layer.\n * @return {boolean|undefined} Continue to iterate over the features.\n */\n function (feature, layer) {\n if (this.filter_(feature, layer)) {\n if ((add || toggle) && !includes(features.getArray(), feature)) {\n this.addFeatureLayerAssociation_(feature, layer);\n selected.push(feature);\n }\n else if ((remove || toggle) &&\n includes(features.getArray(), feature)) {\n deselected.push(feature);\n this.removeFeatureLayerAssociation_(feature);\n }\n return !this.multi_;\n }\n }.bind(this), {\n layerFilter: this.layerFilter_,\n hitTolerance: this.hitTolerance_,\n });\n for (var j = deselected.length - 1; j >= 0; --j) {\n features.remove(deselected[j]);\n }\n features.extend(selected);\n }\n if (selected.length > 0 || deselected.length > 0) {\n this.dispatchEvent(new SelectEvent(SelectEventType.SELECT, selected, deselected, mapBrowserEvent));\n }\n return true;\n };\n return Select;\n}(Interaction));\n/**\n * @return {import(\"../style/Style.js\").StyleFunction} Styles.\n */\nfunction getDefaultStyleFunction() {\n var styles = createEditingStyle();\n extend(styles['Polygon'], styles['LineString']);\n extend(styles['GeometryCollection'], styles['LineString']);\n return function (feature) {\n if (!feature.getGeometry()) {\n return null;\n }\n return styles[feature.getGeometry().getType()];\n };\n}\nexport default Select;\n//# sourceMappingURL=Select.js.map","import DateUtils from \"@/helpers/DateUtils.js\";\nexport default class Notification {\n\tconstructor({added_on, body, event, key, status, title, to, date}) {\n\t\tthis.added_on = added_on ? added_on : DateUtils.toDefaultDateTime(new Date());\n\t\tthis.body = body || {};\n\t\tthis.event = event || \"\";\n\t\tthis.status = status || \"\";\n\t\tthis.title = title || \"\";\n\t\tthis.to = to || \"\";\n\t\tthis.date = date || 0;\n\t\tif (key) {\n\t\t\tthis.key = key;\n\t\t}\n\t}\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Georreferencer.vue?vue&type=style&index=0&id=3f39df1c&lang=scss&scoped=true&\"","/**\n * @module ol/reproj\n */\nimport { IMAGE_SMOOTHING_DISABLED } from './renderer/canvas/common.js';\nimport { assign } from './obj.js';\nimport { containsCoordinate, createEmpty, extend, forEachCorner, getCenter, getHeight, getTopLeft, getWidth, } from './extent.js';\nimport { createCanvasContext2D } from './dom.js';\nimport { getPointResolution, transform } from './proj.js';\nimport { solveLinearSystem } from './math.js';\nvar brokenDiagonalRendering_;\n/**\n * @type {Array}\n */\nexport var canvasPool = [];\n/**\n * This draws a small triangle into a canvas by setting the triangle as the clip region\n * and then drawing a (too large) rectangle\n *\n * @param {CanvasRenderingContext2D} ctx The context in which to draw the triangle\n * @param {number} u1 The x-coordinate of the second point. The first point is 0,0.\n * @param {number} v1 The y-coordinate of the second point.\n * @param {number} u2 The x-coordinate of the third point.\n * @param {number} v2 The y-coordinate of the third point.\n */\nfunction drawTestTriangle(ctx, u1, v1, u2, v2) {\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(u1, v1);\n ctx.lineTo(u2, v2);\n ctx.closePath();\n ctx.save();\n ctx.clip();\n ctx.fillRect(0, 0, Math.max(u1, u2) + 1, Math.max(v1, v2));\n ctx.restore();\n}\n/**\n * Given the data from getImageData, see if the right values appear at the provided offset.\n * Returns true if either the color or transparency is off\n *\n * @param {Uint8ClampedArray} data The data returned from getImageData\n * @param {number} offset The pixel offset from the start of data.\n * @return {boolean} true if the diagonal rendering is broken\n */\nfunction verifyBrokenDiagonalRendering(data, offset) {\n // the values ought to be close to the rgba(210, 0, 0, 0.75)\n return (Math.abs(data[offset * 4] - 210) > 2 ||\n Math.abs(data[offset * 4 + 3] - 0.75 * 255) > 2);\n}\n/**\n * Determines if the current browser configuration can render triangular clip regions correctly.\n * This value is cached so the function is only expensive the first time called.\n * Firefox on Windows (as of now) does not if HWA is enabled. See https://bugzilla.mozilla.org/show_bug.cgi?id=1606976\n * IE also doesn't. Chrome works, and everything seems to work on OSX and Android. This function caches the\n * result. I suppose that it is conceivably possible that a browser might flip modes while the app is\n * running, but lets hope not.\n *\n * @return {boolean} true if the Diagonal Rendering is broken.\n */\nfunction isBrokenDiagonalRendering() {\n if (brokenDiagonalRendering_ === undefined) {\n var ctx = document.createElement('canvas').getContext('2d');\n ctx.globalCompositeOperation = 'lighter';\n ctx.fillStyle = 'rgba(210, 0, 0, 0.75)';\n drawTestTriangle(ctx, 4, 5, 4, 0);\n drawTestTriangle(ctx, 4, 5, 0, 5);\n var data = ctx.getImageData(0, 0, 3, 3).data;\n brokenDiagonalRendering_ =\n verifyBrokenDiagonalRendering(data, 0) ||\n verifyBrokenDiagonalRendering(data, 4) ||\n verifyBrokenDiagonalRendering(data, 8);\n }\n return brokenDiagonalRendering_;\n}\n/**\n * Calculates ideal resolution to use from the source in order to achieve\n * pixel mapping as close as possible to 1:1 during reprojection.\n * The resolution is calculated regardless of what resolutions\n * are actually available in the dataset (TileGrid, Image, ...).\n *\n * @param {import(\"./proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"./proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"./coordinate.js\").Coordinate} targetCenter Target center.\n * @param {number} targetResolution Target resolution.\n * @return {number} The best resolution to use. Can be +-Infinity, NaN or 0.\n */\nexport function calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution) {\n var sourceCenter = transform(targetCenter, targetProj, sourceProj);\n // calculate the ideal resolution of the source data\n var sourceResolution = getPointResolution(targetProj, targetResolution, targetCenter);\n var targetMetersPerUnit = targetProj.getMetersPerUnit();\n if (targetMetersPerUnit !== undefined) {\n sourceResolution *= targetMetersPerUnit;\n }\n var sourceMetersPerUnit = sourceProj.getMetersPerUnit();\n if (sourceMetersPerUnit !== undefined) {\n sourceResolution /= sourceMetersPerUnit;\n }\n // Based on the projection properties, the point resolution at the specified\n // coordinates may be slightly different. We need to reverse-compensate this\n // in order to achieve optimal results.\n var sourceExtent = sourceProj.getExtent();\n if (!sourceExtent || containsCoordinate(sourceExtent, sourceCenter)) {\n var compensationFactor = getPointResolution(sourceProj, sourceResolution, sourceCenter) /\n sourceResolution;\n if (isFinite(compensationFactor) && compensationFactor > 0) {\n sourceResolution /= compensationFactor;\n }\n }\n return sourceResolution;\n}\n/**\n * Calculates ideal resolution to use from the source in order to achieve\n * pixel mapping as close as possible to 1:1 during reprojection.\n * The resolution is calculated regardless of what resolutions\n * are actually available in the dataset (TileGrid, Image, ...).\n *\n * @param {import(\"./proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"./proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"./extent.js\").Extent} targetExtent Target extent\n * @param {number} targetResolution Target resolution.\n * @return {number} The best resolution to use. Can be +-Infinity, NaN or 0.\n */\nexport function calculateSourceExtentResolution(sourceProj, targetProj, targetExtent, targetResolution) {\n var targetCenter = getCenter(targetExtent);\n var sourceResolution = calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution);\n if (!isFinite(sourceResolution) || sourceResolution <= 0) {\n forEachCorner(targetExtent, function (corner) {\n sourceResolution = calculateSourceResolution(sourceProj, targetProj, corner, targetResolution);\n return isFinite(sourceResolution) && sourceResolution > 0;\n });\n }\n return sourceResolution;\n}\n/**\n * @typedef {Object} ImageExtent\n * @property {import(\"./extent.js\").Extent} extent Extent.\n * @property {HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} image Image.\n */\n/**\n * Renders the source data into new canvas based on the triangulation.\n *\n * @param {number} width Width of the canvas.\n * @param {number} height Height of the canvas.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} sourceResolution Source resolution.\n * @param {import(\"./extent.js\").Extent} sourceExtent Extent of the data source.\n * @param {number} targetResolution Target resolution.\n * @param {import(\"./extent.js\").Extent} targetExtent Target extent.\n * @param {import(\"./reproj/Triangulation.js\").default} triangulation Calculated triangulation.\n * @param {Array} sources Array of sources.\n * @param {number} gutter Gutter of the sources.\n * @param {boolean} [opt_renderEdges] Render reprojection edges.\n * @param {boolean} [opt_interpolate] Use linear interpolation when resampling.\n * @return {HTMLCanvasElement} Canvas with reprojected data.\n */\nexport function render(width, height, pixelRatio, sourceResolution, sourceExtent, targetResolution, targetExtent, triangulation, sources, gutter, opt_renderEdges, opt_interpolate) {\n var context = createCanvasContext2D(Math.round(pixelRatio * width), Math.round(pixelRatio * height), canvasPool);\n if (!opt_interpolate) {\n assign(context, IMAGE_SMOOTHING_DISABLED);\n }\n if (sources.length === 0) {\n return context.canvas;\n }\n context.scale(pixelRatio, pixelRatio);\n function pixelRound(value) {\n return Math.round(value * pixelRatio) / pixelRatio;\n }\n context.globalCompositeOperation = 'lighter';\n var sourceDataExtent = createEmpty();\n sources.forEach(function (src, i, arr) {\n extend(sourceDataExtent, src.extent);\n });\n var canvasWidthInUnits = getWidth(sourceDataExtent);\n var canvasHeightInUnits = getHeight(sourceDataExtent);\n var stitchContext = createCanvasContext2D(Math.round((pixelRatio * canvasWidthInUnits) / sourceResolution), Math.round((pixelRatio * canvasHeightInUnits) / sourceResolution));\n if (!opt_interpolate) {\n assign(stitchContext, IMAGE_SMOOTHING_DISABLED);\n }\n var stitchScale = pixelRatio / sourceResolution;\n sources.forEach(function (src, i, arr) {\n var xPos = src.extent[0] - sourceDataExtent[0];\n var yPos = -(src.extent[3] - sourceDataExtent[3]);\n var srcWidth = getWidth(src.extent);\n var srcHeight = getHeight(src.extent);\n // This test should never fail -- but it does. Need to find a fix the upstream condition\n if (src.image.width > 0 && src.image.height > 0) {\n stitchContext.drawImage(src.image, gutter, gutter, src.image.width - 2 * gutter, src.image.height - 2 * gutter, xPos * stitchScale, yPos * stitchScale, srcWidth * stitchScale, srcHeight * stitchScale);\n }\n });\n var targetTopLeft = getTopLeft(targetExtent);\n triangulation.getTriangles().forEach(function (triangle, i, arr) {\n /* Calculate affine transform (src -> dst)\n * Resulting matrix can be used to transform coordinate\n * from `sourceProjection` to destination pixels.\n *\n * To optimize number of context calls and increase numerical stability,\n * we also do the following operations:\n * trans(-topLeftExtentCorner), scale(1 / targetResolution), scale(1, -1)\n * here before solving the linear system so [ui, vi] are pixel coordinates.\n *\n * Src points: xi, yi\n * Dst points: ui, vi\n * Affine coefficients: aij\n *\n * | x0 y0 1 0 0 0 | |a00| |u0|\n * | x1 y1 1 0 0 0 | |a01| |u1|\n * | x2 y2 1 0 0 0 | x |a02| = |u2|\n * | 0 0 0 x0 y0 1 | |a10| |v0|\n * | 0 0 0 x1 y1 1 | |a11| |v1|\n * | 0 0 0 x2 y2 1 | |a12| |v2|\n */\n var source = triangle.source;\n var target = triangle.target;\n var x0 = source[0][0], y0 = source[0][1];\n var x1 = source[1][0], y1 = source[1][1];\n var x2 = source[2][0], y2 = source[2][1];\n // Make sure that everything is on pixel boundaries\n var u0 = pixelRound((target[0][0] - targetTopLeft[0]) / targetResolution);\n var v0 = pixelRound(-(target[0][1] - targetTopLeft[1]) / targetResolution);\n var u1 = pixelRound((target[1][0] - targetTopLeft[0]) / targetResolution);\n var v1 = pixelRound(-(target[1][1] - targetTopLeft[1]) / targetResolution);\n var u2 = pixelRound((target[2][0] - targetTopLeft[0]) / targetResolution);\n var v2 = pixelRound(-(target[2][1] - targetTopLeft[1]) / targetResolution);\n // Shift all the source points to improve numerical stability\n // of all the subsequent calculations. The [x0, y0] is used here.\n // This is also used to simplify the linear system.\n var sourceNumericalShiftX = x0;\n var sourceNumericalShiftY = y0;\n x0 = 0;\n y0 = 0;\n x1 -= sourceNumericalShiftX;\n y1 -= sourceNumericalShiftY;\n x2 -= sourceNumericalShiftX;\n y2 -= sourceNumericalShiftY;\n var augmentedMatrix = [\n [x1, y1, 0, 0, u1 - u0],\n [x2, y2, 0, 0, u2 - u0],\n [0, 0, x1, y1, v1 - v0],\n [0, 0, x2, y2, v2 - v0],\n ];\n var affineCoefs = solveLinearSystem(augmentedMatrix);\n if (!affineCoefs) {\n return;\n }\n context.save();\n context.beginPath();\n if (isBrokenDiagonalRendering() || !opt_interpolate) {\n // Make sure that all lines are horizontal or vertical\n context.moveTo(u1, v1);\n // This is the diagonal line. Do it in 4 steps\n var steps = 4;\n var ud = u0 - u1;\n var vd = v0 - v1;\n for (var step = 0; step < steps; step++) {\n // Go horizontally\n context.lineTo(u1 + pixelRound(((step + 1) * ud) / steps), v1 + pixelRound((step * vd) / (steps - 1)));\n // Go vertically\n if (step != steps - 1) {\n context.lineTo(u1 + pixelRound(((step + 1) * ud) / steps), v1 + pixelRound(((step + 1) * vd) / (steps - 1)));\n }\n }\n // We are almost at u0r, v0r\n context.lineTo(u2, v2);\n }\n else {\n context.moveTo(u1, v1);\n context.lineTo(u0, v0);\n context.lineTo(u2, v2);\n }\n context.clip();\n context.transform(affineCoefs[0], affineCoefs[2], affineCoefs[1], affineCoefs[3], u0, v0);\n context.translate(sourceDataExtent[0] - sourceNumericalShiftX, sourceDataExtent[3] - sourceNumericalShiftY);\n context.scale(sourceResolution / pixelRatio, -sourceResolution / pixelRatio);\n context.drawImage(stitchContext.canvas, 0, 0);\n context.restore();\n });\n if (opt_renderEdges) {\n context.save();\n context.globalCompositeOperation = 'source-over';\n context.strokeStyle = 'black';\n context.lineWidth = 1;\n triangulation.getTriangles().forEach(function (triangle, i, arr) {\n var target = triangle.target;\n var u0 = (target[0][0] - targetTopLeft[0]) / targetResolution;\n var v0 = -(target[0][1] - targetTopLeft[1]) / targetResolution;\n var u1 = (target[1][0] - targetTopLeft[0]) / targetResolution;\n var v1 = -(target[1][1] - targetTopLeft[1]) / targetResolution;\n var u2 = (target[2][0] - targetTopLeft[0]) / targetResolution;\n var v2 = -(target[2][1] - targetTopLeft[1]) / targetResolution;\n context.beginPath();\n context.moveTo(u1, v1);\n context.lineTo(u0, v0);\n context.lineTo(u2, v2);\n context.closePath();\n context.stroke();\n });\n context.restore();\n }\n return context.canvas;\n}\n//# sourceMappingURL=reproj.js.map","/**\n * @module ol/reproj/Triangulation\n */\nimport { boundingExtent, createEmpty, extendCoordinate, getArea, getBottomLeft, getBottomRight, getTopLeft, getTopRight, getWidth, intersects, } from '../extent.js';\nimport { getTransform } from '../proj.js';\nimport { log2, modulo } from '../math.js';\n/**\n * Single triangle; consists of 3 source points and 3 target points.\n * @typedef {Object} Triangle\n * @property {Array} source Source.\n * @property {Array} target Target.\n */\n/**\n * Maximum number of subdivision steps during raster reprojection triangulation.\n * Prevents high memory usage and large number of proj4 calls (for certain\n * transformations and areas). At most `2*(2^this)` triangles are created for\n * each triangulated extent (tile/image).\n * @type {number}\n */\nvar MAX_SUBDIVISION = 10;\n/**\n * Maximum allowed size of triangle relative to world width. When transforming\n * corners of world extent between certain projections, the resulting\n * triangulation seems to have zero error and no subdivision is performed. If\n * the triangle width is more than this (relative to world width; 0-1),\n * subdivison is forced (up to `MAX_SUBDIVISION`). Default is `0.25`.\n * @type {number}\n */\nvar MAX_TRIANGLE_WIDTH = 0.25;\n/**\n * @classdesc\n * Class containing triangulation of the given target extent.\n * Used for determining source data and the reprojection itself.\n */\nvar Triangulation = /** @class */ (function () {\n /**\n * @param {import(\"../proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"../proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"../extent.js\").Extent} targetExtent Target extent to triangulate.\n * @param {import(\"../extent.js\").Extent} maxSourceExtent Maximal source extent that can be used.\n * @param {number} errorThreshold Acceptable error (in source units).\n * @param {?number} opt_destinationResolution The (optional) resolution of the destination.\n */\n function Triangulation(sourceProj, targetProj, targetExtent, maxSourceExtent, errorThreshold, opt_destinationResolution) {\n /**\n * @type {import(\"../proj/Projection.js\").default}\n * @private\n */\n this.sourceProj_ = sourceProj;\n /**\n * @type {import(\"../proj/Projection.js\").default}\n * @private\n */\n this.targetProj_ = targetProj;\n /** @type {!Object} */\n var transformInvCache = {};\n var transformInv = getTransform(this.targetProj_, this.sourceProj_);\n /**\n * @param {import(\"../coordinate.js\").Coordinate} c A coordinate.\n * @return {import(\"../coordinate.js\").Coordinate} Transformed coordinate.\n * @private\n */\n this.transformInv_ = function (c) {\n var key = c[0] + '/' + c[1];\n if (!transformInvCache[key]) {\n transformInvCache[key] = transformInv(c);\n }\n return transformInvCache[key];\n };\n /**\n * @type {import(\"../extent.js\").Extent}\n * @private\n */\n this.maxSourceExtent_ = maxSourceExtent;\n /**\n * @type {number}\n * @private\n */\n this.errorThresholdSquared_ = errorThreshold * errorThreshold;\n /**\n * @type {Array}\n * @private\n */\n this.triangles_ = [];\n /**\n * Indicates that the triangulation crosses edge of the source projection.\n * @type {boolean}\n * @private\n */\n this.wrapsXInSource_ = false;\n /**\n * @type {boolean}\n * @private\n */\n this.canWrapXInSource_ =\n this.sourceProj_.canWrapX() &&\n !!maxSourceExtent &&\n !!this.sourceProj_.getExtent() &&\n getWidth(maxSourceExtent) == getWidth(this.sourceProj_.getExtent());\n /**\n * @type {?number}\n * @private\n */\n this.sourceWorldWidth_ = this.sourceProj_.getExtent()\n ? getWidth(this.sourceProj_.getExtent())\n : null;\n /**\n * @type {?number}\n * @private\n */\n this.targetWorldWidth_ = this.targetProj_.getExtent()\n ? getWidth(this.targetProj_.getExtent())\n : null;\n var destinationTopLeft = getTopLeft(targetExtent);\n var destinationTopRight = getTopRight(targetExtent);\n var destinationBottomRight = getBottomRight(targetExtent);\n var destinationBottomLeft = getBottomLeft(targetExtent);\n var sourceTopLeft = this.transformInv_(destinationTopLeft);\n var sourceTopRight = this.transformInv_(destinationTopRight);\n var sourceBottomRight = this.transformInv_(destinationBottomRight);\n var sourceBottomLeft = this.transformInv_(destinationBottomLeft);\n /*\n * The maxSubdivision controls how many splittings of the target area can\n * be done. The idea here is to do a linear mapping of the target areas\n * but the actual overal reprojection (can be) extremely non-linear. The\n * default value of MAX_SUBDIVISION was chosen based on mapping a 256x256\n * tile size. However this function is also called to remap canvas rendered\n * layers which can be much larger. This calculation increases the maxSubdivision\n * value by the right factor so that each 256x256 pixel area has\n * MAX_SUBDIVISION divisions.\n */\n var maxSubdivision = MAX_SUBDIVISION +\n (opt_destinationResolution\n ? Math.max(0, Math.ceil(log2(getArea(targetExtent) /\n (opt_destinationResolution *\n opt_destinationResolution *\n 256 *\n 256))))\n : 0);\n this.addQuad_(destinationTopLeft, destinationTopRight, destinationBottomRight, destinationBottomLeft, sourceTopLeft, sourceTopRight, sourceBottomRight, sourceBottomLeft, maxSubdivision);\n if (this.wrapsXInSource_) {\n var leftBound_1 = Infinity;\n this.triangles_.forEach(function (triangle, i, arr) {\n leftBound_1 = Math.min(leftBound_1, triangle.source[0][0], triangle.source[1][0], triangle.source[2][0]);\n });\n // Shift triangles to be as close to `leftBound` as possible\n // (if the distance is more than `worldWidth / 2` it can be closer.\n this.triangles_.forEach(function (triangle) {\n if (Math.max(triangle.source[0][0], triangle.source[1][0], triangle.source[2][0]) -\n leftBound_1 >\n this.sourceWorldWidth_ / 2) {\n var newTriangle = [\n [triangle.source[0][0], triangle.source[0][1]],\n [triangle.source[1][0], triangle.source[1][1]],\n [triangle.source[2][0], triangle.source[2][1]],\n ];\n if (newTriangle[0][0] - leftBound_1 > this.sourceWorldWidth_ / 2) {\n newTriangle[0][0] -= this.sourceWorldWidth_;\n }\n if (newTriangle[1][0] - leftBound_1 > this.sourceWorldWidth_ / 2) {\n newTriangle[1][0] -= this.sourceWorldWidth_;\n }\n if (newTriangle[2][0] - leftBound_1 > this.sourceWorldWidth_ / 2) {\n newTriangle[2][0] -= this.sourceWorldWidth_;\n }\n // Rarely (if the extent contains both the dateline and prime meridian)\n // the shift can in turn break some triangles.\n // Detect this here and don't shift in such cases.\n var minX = Math.min(newTriangle[0][0], newTriangle[1][0], newTriangle[2][0]);\n var maxX = Math.max(newTriangle[0][0], newTriangle[1][0], newTriangle[2][0]);\n if (maxX - minX < this.sourceWorldWidth_ / 2) {\n triangle.source = newTriangle;\n }\n }\n }.bind(this));\n }\n transformInvCache = {};\n }\n /**\n * Adds triangle to the triangulation.\n * @param {import(\"../coordinate.js\").Coordinate} a The target a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} b The target b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} c The target c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} aSrc The source a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} bSrc The source b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} cSrc The source c coordinate.\n * @private\n */\n Triangulation.prototype.addTriangle_ = function (a, b, c, aSrc, bSrc, cSrc) {\n this.triangles_.push({\n source: [aSrc, bSrc, cSrc],\n target: [a, b, c],\n });\n };\n /**\n * Adds quad (points in clock-wise order) to the triangulation\n * (and reprojects the vertices) if valid.\n * Performs quad subdivision if needed to increase precision.\n *\n * @param {import(\"../coordinate.js\").Coordinate} a The target a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} b The target b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} c The target c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} d The target d coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} aSrc The source a coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} bSrc The source b coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} cSrc The source c coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} dSrc The source d coordinate.\n * @param {number} maxSubdivision Maximal allowed subdivision of the quad.\n * @private\n */\n Triangulation.prototype.addQuad_ = function (a, b, c, d, aSrc, bSrc, cSrc, dSrc, maxSubdivision) {\n var sourceQuadExtent = boundingExtent([aSrc, bSrc, cSrc, dSrc]);\n var sourceCoverageX = this.sourceWorldWidth_\n ? getWidth(sourceQuadExtent) / this.sourceWorldWidth_\n : null;\n var sourceWorldWidth = /** @type {number} */ (this.sourceWorldWidth_);\n // when the quad is wrapped in the source projection\n // it covers most of the projection extent, but not fully\n var wrapsX = this.sourceProj_.canWrapX() &&\n sourceCoverageX > 0.5 &&\n sourceCoverageX < 1;\n var needsSubdivision = false;\n if (maxSubdivision > 0) {\n if (this.targetProj_.isGlobal() && this.targetWorldWidth_) {\n var targetQuadExtent = boundingExtent([a, b, c, d]);\n var targetCoverageX = getWidth(targetQuadExtent) / this.targetWorldWidth_;\n needsSubdivision =\n targetCoverageX > MAX_TRIANGLE_WIDTH || needsSubdivision;\n }\n if (!wrapsX && this.sourceProj_.isGlobal() && sourceCoverageX) {\n needsSubdivision =\n sourceCoverageX > MAX_TRIANGLE_WIDTH || needsSubdivision;\n }\n }\n if (!needsSubdivision && this.maxSourceExtent_) {\n if (isFinite(sourceQuadExtent[0]) &&\n isFinite(sourceQuadExtent[1]) &&\n isFinite(sourceQuadExtent[2]) &&\n isFinite(sourceQuadExtent[3])) {\n if (!intersects(sourceQuadExtent, this.maxSourceExtent_)) {\n // whole quad outside source projection extent -> ignore\n return;\n }\n }\n }\n var isNotFinite = 0;\n if (!needsSubdivision) {\n if (!isFinite(aSrc[0]) ||\n !isFinite(aSrc[1]) ||\n !isFinite(bSrc[0]) ||\n !isFinite(bSrc[1]) ||\n !isFinite(cSrc[0]) ||\n !isFinite(cSrc[1]) ||\n !isFinite(dSrc[0]) ||\n !isFinite(dSrc[1])) {\n if (maxSubdivision > 0) {\n needsSubdivision = true;\n }\n else {\n // It might be the case that only 1 of the points is infinite. In this case\n // we can draw a single triangle with the other three points\n isNotFinite =\n (!isFinite(aSrc[0]) || !isFinite(aSrc[1]) ? 8 : 0) +\n (!isFinite(bSrc[0]) || !isFinite(bSrc[1]) ? 4 : 0) +\n (!isFinite(cSrc[0]) || !isFinite(cSrc[1]) ? 2 : 0) +\n (!isFinite(dSrc[0]) || !isFinite(dSrc[1]) ? 1 : 0);\n if (isNotFinite != 1 &&\n isNotFinite != 2 &&\n isNotFinite != 4 &&\n isNotFinite != 8) {\n return;\n }\n }\n }\n }\n if (maxSubdivision > 0) {\n if (!needsSubdivision) {\n var center = [(a[0] + c[0]) / 2, (a[1] + c[1]) / 2];\n var centerSrc = this.transformInv_(center);\n var dx = void 0;\n if (wrapsX) {\n var centerSrcEstimX = (modulo(aSrc[0], sourceWorldWidth) +\n modulo(cSrc[0], sourceWorldWidth)) /\n 2;\n dx = centerSrcEstimX - modulo(centerSrc[0], sourceWorldWidth);\n }\n else {\n dx = (aSrc[0] + cSrc[0]) / 2 - centerSrc[0];\n }\n var dy = (aSrc[1] + cSrc[1]) / 2 - centerSrc[1];\n var centerSrcErrorSquared = dx * dx + dy * dy;\n needsSubdivision = centerSrcErrorSquared > this.errorThresholdSquared_;\n }\n if (needsSubdivision) {\n if (Math.abs(a[0] - c[0]) <= Math.abs(a[1] - c[1])) {\n // split horizontally (top & bottom)\n var bc = [(b[0] + c[0]) / 2, (b[1] + c[1]) / 2];\n var bcSrc = this.transformInv_(bc);\n var da = [(d[0] + a[0]) / 2, (d[1] + a[1]) / 2];\n var daSrc = this.transformInv_(da);\n this.addQuad_(a, b, bc, da, aSrc, bSrc, bcSrc, daSrc, maxSubdivision - 1);\n this.addQuad_(da, bc, c, d, daSrc, bcSrc, cSrc, dSrc, maxSubdivision - 1);\n }\n else {\n // split vertically (left & right)\n var ab = [(a[0] + b[0]) / 2, (a[1] + b[1]) / 2];\n var abSrc = this.transformInv_(ab);\n var cd = [(c[0] + d[0]) / 2, (c[1] + d[1]) / 2];\n var cdSrc = this.transformInv_(cd);\n this.addQuad_(a, ab, cd, d, aSrc, abSrc, cdSrc, dSrc, maxSubdivision - 1);\n this.addQuad_(ab, b, c, cd, abSrc, bSrc, cSrc, cdSrc, maxSubdivision - 1);\n }\n return;\n }\n }\n if (wrapsX) {\n if (!this.canWrapXInSource_) {\n return;\n }\n this.wrapsXInSource_ = true;\n }\n // Exactly zero or one of *Src is not finite\n // The triangles must have the diagonal line as the first side\n // This is to allow easy code in reproj.s to make it straight for broken\n // browsers that can't handle diagonal clipping\n if ((isNotFinite & 0xb) == 0) {\n this.addTriangle_(a, c, d, aSrc, cSrc, dSrc);\n }\n if ((isNotFinite & 0xe) == 0) {\n this.addTriangle_(a, c, b, aSrc, cSrc, bSrc);\n }\n if (isNotFinite) {\n // Try the other two triangles\n if ((isNotFinite & 0xd) == 0) {\n this.addTriangle_(b, d, a, bSrc, dSrc, aSrc);\n }\n if ((isNotFinite & 0x7) == 0) {\n this.addTriangle_(b, d, c, bSrc, dSrc, cSrc);\n }\n }\n };\n /**\n * Calculates extent of the `source` coordinates from all the triangles.\n *\n * @return {import(\"../extent.js\").Extent} Calculated extent.\n */\n Triangulation.prototype.calculateSourceExtent = function () {\n var extent = createEmpty();\n this.triangles_.forEach(function (triangle, i, arr) {\n var src = triangle.source;\n extendCoordinate(extent, src[0]);\n extendCoordinate(extent, src[1]);\n extendCoordinate(extent, src[2]);\n });\n return extent;\n };\n /**\n * @return {Array} Array of the calculated triangles.\n */\n Triangulation.prototype.getTriangles = function () {\n return this.triangles_;\n };\n return Triangulation;\n}());\nexport default Triangulation;\n//# sourceMappingURL=Triangulation.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/reproj/Tile\n */\nimport { ERROR_THRESHOLD } from './common.js';\nimport EventType from '../events/EventType.js';\nimport Tile from '../Tile.js';\nimport TileState from '../TileState.js';\nimport Triangulation from './Triangulation.js';\nimport { calculateSourceExtentResolution, canvasPool, render as renderReprojected, } from '../reproj.js';\nimport { clamp } from '../math.js';\nimport { getArea, getIntersection } from '../extent.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { releaseCanvas } from '../dom.js';\n/**\n * @typedef {function(number, number, number, number) : import(\"../Tile.js\").default} FunctionType\n */\n/**\n * @classdesc\n * Class encapsulating single reprojected tile.\n * See {@link module:ol/source/TileImage~TileImage}.\n *\n */\nvar ReprojTile = /** @class */ (function (_super) {\n __extends(ReprojTile, _super);\n /**\n * @param {import(\"../proj/Projection.js\").default} sourceProj Source projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} sourceTileGrid Source tile grid.\n * @param {import(\"../proj/Projection.js\").default} targetProj Target projection.\n * @param {import(\"../tilegrid/TileGrid.js\").default} targetTileGrid Target tile grid.\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Coordinate of the tile.\n * @param {import(\"../tilecoord.js\").TileCoord} wrappedTileCoord Coordinate of the tile wrapped in X.\n * @param {number} pixelRatio Pixel ratio.\n * @param {number} gutter Gutter of the source tiles.\n * @param {FunctionType} getTileFunction\n * Function returning source tiles (z, x, y, pixelRatio).\n * @param {number} [opt_errorThreshold] Acceptable reprojection error (in px).\n * @param {boolean} [opt_renderEdges] Render reprojection edges.\n * @param {boolean} [opt_interpolate] Use linear interpolation when resampling.\n */\n function ReprojTile(sourceProj, sourceTileGrid, targetProj, targetTileGrid, tileCoord, wrappedTileCoord, pixelRatio, gutter, getTileFunction, opt_errorThreshold, opt_renderEdges, opt_interpolate) {\n var _this = _super.call(this, tileCoord, TileState.IDLE, { interpolate: !!opt_interpolate }) || this;\n /**\n * @private\n * @type {boolean}\n */\n _this.renderEdges_ = opt_renderEdges !== undefined ? opt_renderEdges : false;\n /**\n * @private\n * @type {number}\n */\n _this.pixelRatio_ = pixelRatio;\n /**\n * @private\n * @type {number}\n */\n _this.gutter_ = gutter;\n /**\n * @private\n * @type {HTMLCanvasElement}\n */\n _this.canvas_ = null;\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n _this.sourceTileGrid_ = sourceTileGrid;\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n _this.targetTileGrid_ = targetTileGrid;\n /**\n * @private\n * @type {import(\"../tilecoord.js\").TileCoord}\n */\n _this.wrappedTileCoord_ = wrappedTileCoord ? wrappedTileCoord : tileCoord;\n /**\n * @private\n * @type {!Array}\n */\n _this.sourceTiles_ = [];\n /**\n * @private\n * @type {?Array}\n */\n _this.sourcesListenerKeys_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.sourceZ_ = 0;\n var targetExtent = targetTileGrid.getTileCoordExtent(_this.wrappedTileCoord_);\n var maxTargetExtent = _this.targetTileGrid_.getExtent();\n var maxSourceExtent = _this.sourceTileGrid_.getExtent();\n var limitedTargetExtent = maxTargetExtent\n ? getIntersection(targetExtent, maxTargetExtent)\n : targetExtent;\n if (getArea(limitedTargetExtent) === 0) {\n // Tile is completely outside range -> EMPTY\n // TODO: is it actually correct that the source even creates the tile ?\n _this.state = TileState.EMPTY;\n return _this;\n }\n var sourceProjExtent = sourceProj.getExtent();\n if (sourceProjExtent) {\n if (!maxSourceExtent) {\n maxSourceExtent = sourceProjExtent;\n }\n else {\n maxSourceExtent = getIntersection(maxSourceExtent, sourceProjExtent);\n }\n }\n var targetResolution = targetTileGrid.getResolution(_this.wrappedTileCoord_[0]);\n var sourceResolution = calculateSourceExtentResolution(sourceProj, targetProj, limitedTargetExtent, targetResolution);\n if (!isFinite(sourceResolution) || sourceResolution <= 0) {\n // invalid sourceResolution -> EMPTY\n // probably edges of the projections when no extent is defined\n _this.state = TileState.EMPTY;\n return _this;\n }\n var errorThresholdInPixels = opt_errorThreshold !== undefined ? opt_errorThreshold : ERROR_THRESHOLD;\n /**\n * @private\n * @type {!import(\"./Triangulation.js\").default}\n */\n _this.triangulation_ = new Triangulation(sourceProj, targetProj, limitedTargetExtent, maxSourceExtent, sourceResolution * errorThresholdInPixels, targetResolution);\n if (_this.triangulation_.getTriangles().length === 0) {\n // no valid triangles -> EMPTY\n _this.state = TileState.EMPTY;\n return _this;\n }\n _this.sourceZ_ = sourceTileGrid.getZForResolution(sourceResolution);\n var sourceExtent = _this.triangulation_.calculateSourceExtent();\n if (maxSourceExtent) {\n if (sourceProj.canWrapX()) {\n sourceExtent[1] = clamp(sourceExtent[1], maxSourceExtent[1], maxSourceExtent[3]);\n sourceExtent[3] = clamp(sourceExtent[3], maxSourceExtent[1], maxSourceExtent[3]);\n }\n else {\n sourceExtent = getIntersection(sourceExtent, maxSourceExtent);\n }\n }\n if (!getArea(sourceExtent)) {\n _this.state = TileState.EMPTY;\n }\n else {\n var sourceRange = sourceTileGrid.getTileRangeForExtentAndZ(sourceExtent, _this.sourceZ_);\n for (var srcX = sourceRange.minX; srcX <= sourceRange.maxX; srcX++) {\n for (var srcY = sourceRange.minY; srcY <= sourceRange.maxY; srcY++) {\n var tile = getTileFunction(_this.sourceZ_, srcX, srcY, pixelRatio);\n if (tile) {\n _this.sourceTiles_.push(tile);\n }\n }\n }\n if (_this.sourceTiles_.length === 0) {\n _this.state = TileState.EMPTY;\n }\n }\n return _this;\n }\n /**\n * Get the HTML Canvas element for this tile.\n * @return {HTMLCanvasElement} Canvas.\n */\n ReprojTile.prototype.getImage = function () {\n return this.canvas_;\n };\n /**\n * @private\n */\n ReprojTile.prototype.reproject_ = function () {\n var sources = [];\n this.sourceTiles_.forEach(function (tile, i, arr) {\n if (tile && tile.getState() == TileState.LOADED) {\n sources.push({\n extent: this.sourceTileGrid_.getTileCoordExtent(tile.tileCoord),\n image: tile.getImage(),\n });\n }\n }.bind(this));\n this.sourceTiles_.length = 0;\n if (sources.length === 0) {\n this.state = TileState.ERROR;\n }\n else {\n var z = this.wrappedTileCoord_[0];\n var size = this.targetTileGrid_.getTileSize(z);\n var width = typeof size === 'number' ? size : size[0];\n var height = typeof size === 'number' ? size : size[1];\n var targetResolution = this.targetTileGrid_.getResolution(z);\n var sourceResolution = this.sourceTileGrid_.getResolution(this.sourceZ_);\n var targetExtent = this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);\n this.canvas_ = renderReprojected(width, height, this.pixelRatio_, sourceResolution, this.sourceTileGrid_.getExtent(), targetResolution, targetExtent, this.triangulation_, sources, this.gutter_, this.renderEdges_, this.interpolate);\n this.state = TileState.LOADED;\n }\n this.changed();\n };\n /**\n * Load not yet loaded URI.\n */\n ReprojTile.prototype.load = function () {\n if (this.state == TileState.IDLE) {\n this.state = TileState.LOADING;\n this.changed();\n var leftToLoad_1 = 0;\n this.sourcesListenerKeys_ = [];\n this.sourceTiles_.forEach(function (tile, i, arr) {\n var state = tile.getState();\n if (state == TileState.IDLE || state == TileState.LOADING) {\n leftToLoad_1++;\n var sourceListenKey_1 = listen(tile, EventType.CHANGE, function (e) {\n var state = tile.getState();\n if (state == TileState.LOADED ||\n state == TileState.ERROR ||\n state == TileState.EMPTY) {\n unlistenByKey(sourceListenKey_1);\n leftToLoad_1--;\n if (leftToLoad_1 === 0) {\n this.unlistenSources_();\n this.reproject_();\n }\n }\n }, this);\n this.sourcesListenerKeys_.push(sourceListenKey_1);\n }\n }.bind(this));\n if (leftToLoad_1 === 0) {\n setTimeout(this.reproject_.bind(this), 0);\n }\n else {\n this.sourceTiles_.forEach(function (tile, i, arr) {\n var state = tile.getState();\n if (state == TileState.IDLE) {\n tile.load();\n }\n });\n }\n }\n };\n /**\n * @private\n */\n ReprojTile.prototype.unlistenSources_ = function () {\n this.sourcesListenerKeys_.forEach(unlistenByKey);\n this.sourcesListenerKeys_ = null;\n };\n /**\n * Remove from the cache due to expiry\n */\n ReprojTile.prototype.release = function () {\n if (this.canvas_) {\n releaseCanvas(this.canvas_.getContext('2d'));\n canvasPool.push(this.canvas_);\n this.canvas_ = null;\n }\n _super.prototype.release.call(this);\n };\n return ReprojTile;\n}(Tile));\nexport default ReprojTile;\n//# sourceMappingURL=Tile.js.map","/**\n * @module ol/renderer/vector\n */\nimport ImageState from '../ImageState.js';\nimport { getUid } from '../util.js';\n/**\n * Feature callback. The callback will be called with three arguments. The first\n * argument is one {@link module:ol/Feature~Feature feature} or {@link module:ol/render/Feature~RenderFeature render feature}\n * at the pixel, the second is the {@link module:ol/layer/Layer~Layer layer} of the feature and will be null for\n * unmanaged layers. The third is the {@link module:ol/geom/SimpleGeometry~SimpleGeometry} of the feature. For features\n * with a GeometryCollection geometry, it will be the first detected geometry from the collection.\n * @template T\n * @typedef {function(import(\"../Feature.js\").FeatureLike, import(\"../layer/Layer.js\").default, import(\"../geom/SimpleGeometry.js\").default): T} FeatureCallback\n */\n/**\n * Tolerance for geometry simplification in device pixels.\n * @type {number}\n */\nvar SIMPLIFY_TOLERANCE = 0.5;\n/**\n * @const\n * @type {Object}\n */\nvar GEOMETRY_RENDERERS = {\n 'Point': renderPointGeometry,\n 'LineString': renderLineStringGeometry,\n 'Polygon': renderPolygonGeometry,\n 'MultiPoint': renderMultiPointGeometry,\n 'MultiLineString': renderMultiLineStringGeometry,\n 'MultiPolygon': renderMultiPolygonGeometry,\n 'GeometryCollection': renderGeometryCollectionGeometry,\n 'Circle': renderCircleGeometry,\n};\n/**\n * @param {import(\"../Feature.js\").FeatureLike} feature1 Feature 1.\n * @param {import(\"../Feature.js\").FeatureLike} feature2 Feature 2.\n * @return {number} Order.\n */\nexport function defaultOrder(feature1, feature2) {\n return parseInt(getUid(feature1), 10) - parseInt(getUid(feature2), 10);\n}\n/**\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Squared pixel tolerance.\n */\nexport function getSquaredTolerance(resolution, pixelRatio) {\n var tolerance = getTolerance(resolution, pixelRatio);\n return tolerance * tolerance;\n}\n/**\n * @param {number} resolution Resolution.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Pixel tolerance.\n */\nexport function getTolerance(resolution, pixelRatio) {\n return (SIMPLIFY_TOLERANCE * resolution) / pixelRatio;\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Builder group.\n * @param {import(\"../geom/Circle.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderCircleGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var fillStyle = style.getFill();\n var strokeStyle = style.getStroke();\n if (fillStyle || strokeStyle) {\n var circleReplay = builderGroup.getBuilder(style.getZIndex(), 'Circle');\n circleReplay.setFillStrokeStyle(fillStyle, strokeStyle);\n circleReplay.drawCircle(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} replayGroup Replay group.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {function(import(\"../events/Event.js\").default): void} listener Listener function.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Transform from user to view projection.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n * @return {boolean} `true` if style is loading.\n */\nexport function renderFeature(replayGroup, feature, style, squaredTolerance, listener, opt_transform, opt_declutterBuilderGroup) {\n var loading = false;\n var imageStyle = style.getImage();\n if (imageStyle) {\n var imageState = imageStyle.getImageState();\n if (imageState == ImageState.LOADED || imageState == ImageState.ERROR) {\n imageStyle.unlistenImageChange(listener);\n }\n else {\n if (imageState == ImageState.IDLE) {\n imageStyle.load();\n }\n imageStyle.listenImageChange(listener);\n loading = true;\n }\n }\n renderFeatureInternal(replayGroup, feature, style, squaredTolerance, opt_transform, opt_declutterBuilderGroup);\n return loading;\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} replayGroup Replay group.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [opt_transform] Optional transform function.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderFeatureInternal(replayGroup, feature, style, squaredTolerance, opt_transform, opt_declutterBuilderGroup) {\n var geometry = style.getGeometryFunction()(feature);\n if (!geometry) {\n return;\n }\n var simplifiedGeometry = geometry.simplifyTransformed(squaredTolerance, opt_transform);\n var renderer = style.getRenderer();\n if (renderer) {\n renderGeometry(replayGroup, simplifiedGeometry, style, feature);\n }\n else {\n var geometryRenderer = GEOMETRY_RENDERERS[simplifiedGeometry.getType()];\n geometryRenderer(replayGroup, simplifiedGeometry, style, feature, opt_declutterBuilderGroup);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} replayGroup Replay group.\n * @param {import(\"../geom/Geometry.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n */\nfunction renderGeometry(replayGroup, geometry, style, feature) {\n if (geometry.getType() == 'GeometryCollection') {\n var geometries = \n /** @type {import(\"../geom/GeometryCollection.js\").default} */ (geometry).getGeometries();\n for (var i = 0, ii = geometries.length; i < ii; ++i) {\n renderGeometry(replayGroup, geometries[i], style, feature);\n }\n return;\n }\n var replay = replayGroup.getBuilder(style.getZIndex(), 'Default');\n replay.drawCustom(\n /** @type {import(\"../geom/SimpleGeometry.js\").default} */ (geometry), feature, style.getRenderer(), style.getHitDetectionRenderer());\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} replayGroup Replay group.\n * @param {import(\"../geom/GeometryCollection.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderGeometryCollectionGeometry(replayGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var geometries = geometry.getGeometriesArray();\n var i, ii;\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n var geometryRenderer = GEOMETRY_RENDERERS[geometries[i].getType()];\n geometryRenderer(replayGroup, geometries[i], style, feature, opt_declutterBuilderGroup);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/LineString.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderLineStringGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var strokeStyle = style.getStroke();\n if (strokeStyle) {\n var lineStringReplay = builderGroup.getBuilder(style.getZIndex(), 'LineString');\n lineStringReplay.setFillStrokeStyle(null, strokeStyle);\n lineStringReplay.drawLineString(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/MultiLineString.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderMultiLineStringGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var strokeStyle = style.getStroke();\n if (strokeStyle) {\n var lineStringReplay = builderGroup.getBuilder(style.getZIndex(), 'LineString');\n lineStringReplay.setFillStrokeStyle(null, strokeStyle);\n lineStringReplay.drawMultiLineString(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/MultiPolygon.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderMultiPolygonGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var fillStyle = style.getFill();\n var strokeStyle = style.getStroke();\n if (strokeStyle || fillStyle) {\n var polygonReplay = builderGroup.getBuilder(style.getZIndex(), 'Polygon');\n polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);\n polygonReplay.drawMultiPolygon(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/Point.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderPointGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var imageStyle = style.getImage();\n var textStyle = style.getText();\n /** @type {import(\"../render/canvas.js\").DeclutterImageWithText} */\n var declutterImageWithText;\n if (imageStyle) {\n if (imageStyle.getImageState() != ImageState.LOADED) {\n return;\n }\n var imageBuilderGroup = builderGroup;\n if (opt_declutterBuilderGroup) {\n var declutterMode = imageStyle.getDeclutterMode();\n if (declutterMode !== 'none') {\n imageBuilderGroup = opt_declutterBuilderGroup;\n if (declutterMode === 'obstacle') {\n // draw in non-declutter group:\n var imageReplay_1 = builderGroup.getBuilder(style.getZIndex(), 'Image');\n imageReplay_1.setImageStyle(imageStyle, declutterImageWithText);\n imageReplay_1.drawPoint(geometry, feature);\n }\n else if (textStyle && textStyle.getText()) {\n declutterImageWithText = {};\n }\n }\n }\n var imageReplay = imageBuilderGroup.getBuilder(style.getZIndex(), 'Image');\n imageReplay.setImageStyle(imageStyle, declutterImageWithText);\n imageReplay.drawPoint(geometry, feature);\n }\n if (textStyle && textStyle.getText()) {\n var textBuilderGroup = builderGroup;\n if (opt_declutterBuilderGroup) {\n textBuilderGroup = opt_declutterBuilderGroup;\n }\n var textReplay = textBuilderGroup.getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle, declutterImageWithText);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/MultiPoint.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderMultiPointGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var imageStyle = style.getImage();\n var textStyle = style.getText();\n /** @type {import(\"../render/canvas.js\").DeclutterImageWithText} */\n var declutterImageWithText;\n if (imageStyle) {\n if (imageStyle.getImageState() != ImageState.LOADED) {\n return;\n }\n var imageBuilderGroup = builderGroup;\n if (opt_declutterBuilderGroup) {\n var declutterMode = imageStyle.getDeclutterMode();\n if (declutterMode !== 'none') {\n imageBuilderGroup = opt_declutterBuilderGroup;\n if (declutterMode === 'obstacle') {\n // draw in non-declutter group:\n var imageReplay_2 = builderGroup.getBuilder(style.getZIndex(), 'Image');\n imageReplay_2.setImageStyle(imageStyle, declutterImageWithText);\n imageReplay_2.drawMultiPoint(geometry, feature);\n }\n else if (textStyle && textStyle.getText()) {\n declutterImageWithText = {};\n }\n }\n }\n var imageReplay = imageBuilderGroup.getBuilder(style.getZIndex(), 'Image');\n imageReplay.setImageStyle(imageStyle, declutterImageWithText);\n imageReplay.drawMultiPoint(geometry, feature);\n }\n if (textStyle && textStyle.getText()) {\n var textBuilderGroup = builderGroup;\n if (opt_declutterBuilderGroup) {\n textBuilderGroup = opt_declutterBuilderGroup;\n }\n var textReplay = textBuilderGroup.getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle, declutterImageWithText);\n textReplay.drawText(geometry, feature);\n }\n}\n/**\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} builderGroup Replay group.\n * @param {import(\"../geom/Polygon.js\").default|import(\"../render/Feature.js\").default} geometry Geometry.\n * @param {import(\"../style/Style.js\").default} style Style.\n * @param {import(\"../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n */\nfunction renderPolygonGeometry(builderGroup, geometry, style, feature, opt_declutterBuilderGroup) {\n var fillStyle = style.getFill();\n var strokeStyle = style.getStroke();\n if (fillStyle || strokeStyle) {\n var polygonReplay = builderGroup.getBuilder(style.getZIndex(), 'Polygon');\n polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);\n polygonReplay.drawPolygon(geometry, feature);\n }\n var textStyle = style.getText();\n if (textStyle && textStyle.getText()) {\n var textReplay = (opt_declutterBuilderGroup || builderGroup).getBuilder(style.getZIndex(), 'Text');\n textReplay.setTextStyle(textStyle);\n textReplay.drawText(geometry, feature);\n }\n}\n//# sourceMappingURL=vector.js.map","/**\n * @module ol/render/Event\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Event from '../events/Event.js';\nvar RenderEvent = /** @class */ (function (_super) {\n __extends(RenderEvent, _super);\n /**\n * @param {import(\"./EventType.js\").default} type Type.\n * @param {import(\"../transform.js\").Transform} [opt_inversePixelTransform] Transform for\n * CSS pixels to rendered pixels.\n * @param {import(\"../PluggableMap.js\").FrameState} [opt_frameState] Frame state.\n * @param {?(CanvasRenderingContext2D|WebGLRenderingContext)} [opt_context] Context.\n */\n function RenderEvent(type, opt_inversePixelTransform, opt_frameState, opt_context) {\n var _this = _super.call(this, type) || this;\n /**\n * Transform from CSS pixels (relative to the top-left corner of the map viewport)\n * to rendered pixels on this event's `context`. Only available when a Canvas renderer is used, null otherwise.\n * @type {import(\"../transform.js\").Transform|undefined}\n * @api\n */\n _this.inversePixelTransform = opt_inversePixelTransform;\n /**\n * An object representing the current render frame state.\n * @type {import(\"../PluggableMap.js\").FrameState|undefined}\n * @api\n */\n _this.frameState = opt_frameState;\n /**\n * Canvas context. Not available when the event is dispatched by the map. For Canvas 2D layers,\n * the context will be the 2D rendering context. For WebGL layers, the context will be the WebGL\n * context.\n * @type {CanvasRenderingContext2D|WebGLRenderingContext|undefined}\n * @api\n */\n _this.context = opt_context;\n return _this;\n }\n return RenderEvent;\n}(Event));\nexport default RenderEvent;\n//# sourceMappingURL=Event.js.map","/**\n * @module ol/size\n */\n/**\n * An array of numbers representing a size: `[width, height]`.\n * @typedef {Array} Size\n * @api\n */\n/**\n * Returns a buffered size.\n * @param {Size} size Size.\n * @param {number} num The amount by which to buffer.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} The buffered size.\n */\nexport function buffer(size, num, opt_size) {\n if (opt_size === undefined) {\n opt_size = [0, 0];\n }\n opt_size[0] = size[0] + 2 * num;\n opt_size[1] = size[1] + 2 * num;\n return opt_size;\n}\n/**\n * Determines if a size has a positive area.\n * @param {Size} size The size to test.\n * @return {boolean} The size has a positive area.\n */\nexport function hasArea(size) {\n return size[0] > 0 && size[1] > 0;\n}\n/**\n * Returns a size scaled by a ratio. The result will be an array of integers.\n * @param {Size} size Size.\n * @param {number} ratio Ratio.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} The scaled size.\n */\nexport function scale(size, ratio, opt_size) {\n if (opt_size === undefined) {\n opt_size = [0, 0];\n }\n opt_size[0] = (size[0] * ratio + 0.5) | 0;\n opt_size[1] = (size[1] * ratio + 0.5) | 0;\n return opt_size;\n}\n/**\n * Returns an `Size` array for the passed in number (meaning: square) or\n * `Size` array.\n * (meaning: non-square),\n * @param {number|Size} size Width and height.\n * @param {Size} [opt_size] Optional reusable size array.\n * @return {Size} Size.\n * @api\n */\nexport function toSize(size, opt_size) {\n if (Array.isArray(size)) {\n return size;\n }\n else {\n if (opt_size === undefined) {\n opt_size = [size, size];\n }\n else {\n opt_size[0] = size;\n opt_size[1] = size;\n }\n return opt_size;\n }\n}\n//# sourceMappingURL=size.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/Observable\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport { listen, listenOnce, unlistenByKey } from './events.js';\n/***\n * @template {string} Type\n * @template {Event|import(\"./events/Event.js\").default} EventClass\n * @template Return\n * @typedef {(type: Type, listener: (event: EventClass) => ?) => Return} OnSignature\n */\n/***\n * @template {string} Type\n * @template Return\n * @typedef {(type: Type[], listener: (event: Event|import(\"./events/Event\").default) => ?) => Return extends void ? void : Return[]} CombinedOnSignature\n */\n/**\n * @typedef {'change'|'error'} EventTypes\n */\n/***\n * @template Return\n * @typedef {OnSignature & CombinedOnSignature} ObservableOnSignature\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * An event target providing convenient methods for listener registration\n * and unregistration. A generic `change` event is always available through\n * {@link module:ol/Observable~Observable#changed}.\n *\n * @fires import(\"./events/Event.js\").default\n * @api\n */\nvar Observable = /** @class */ (function (_super) {\n __extends(Observable, _super);\n function Observable() {\n var _this = _super.call(this) || this;\n _this.on =\n /** @type {ObservableOnSignature} */ (_this.onInternal);\n _this.once =\n /** @type {ObservableOnSignature} */ (_this.onceInternal);\n _this.un = /** @type {ObservableOnSignature} */ (_this.unInternal);\n /**\n * @private\n * @type {number}\n */\n _this.revision_ = 0;\n return _this;\n }\n /**\n * Increases the revision counter and dispatches a 'change' event.\n * @api\n */\n Observable.prototype.changed = function () {\n ++this.revision_;\n this.dispatchEvent(EventType.CHANGE);\n };\n /**\n * Get the version number for this object. Each time the object is modified,\n * its version number will be incremented.\n * @return {number} Revision.\n * @api\n */\n Observable.prototype.getRevision = function () {\n return this.revision_;\n };\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n Observable.prototype.onInternal = function (type, listener) {\n if (Array.isArray(type)) {\n var len = type.length;\n var keys = new Array(len);\n for (var i = 0; i < len; ++i) {\n keys[i] = listen(this, type[i], listener);\n }\n return keys;\n }\n else {\n return listen(this, /** @type {string} */ (type), listener);\n }\n };\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n Observable.prototype.onceInternal = function (type, listener) {\n var key;\n if (Array.isArray(type)) {\n var len = type.length;\n key = new Array(len);\n for (var i = 0; i < len; ++i) {\n key[i] = listenOnce(this, type[i], listener);\n }\n }\n else {\n key = listenOnce(this, /** @type {string} */ (type), listener);\n }\n /** @type {Object} */ (listener).ol_key = key;\n return key;\n };\n /**\n * Unlisten for a certain type of event.\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @protected\n */\n Observable.prototype.unInternal = function (type, listener) {\n var key = /** @type {Object} */ (listener).ol_key;\n if (key) {\n unByKey(key);\n }\n else if (Array.isArray(type)) {\n for (var i = 0, ii = type.length; i < ii; ++i) {\n this.removeEventListener(type[i], listener);\n }\n }\n else {\n this.removeEventListener(type, listener);\n }\n };\n return Observable;\n}(EventTarget));\n/**\n * Listen for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.on;\n/**\n * Listen once for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.once;\n/**\n * Unlisten for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @api\n */\nObservable.prototype.un;\n/**\n * Removes an event listener using the key returned by `on()` or `once()`.\n * @param {import(\"./events.js\").EventsKey|Array} key The key returned by `on()`\n * or `once()` (or an array of keys).\n * @api\n */\nexport function unByKey(key) {\n if (Array.isArray(key)) {\n for (var i = 0, ii = key.length; i < ii; ++i) {\n unlistenByKey(key[i]);\n }\n }\n else {\n unlistenByKey(/** @type {import(\"./events.js\").EventsKey} */ (key));\n }\n}\nexport default Observable;\n//# sourceMappingURL=Observable.js.map","exports.f = require('./_wks');\n","/**\n * @module ol/obj\n */\n/**\n * Polyfill for Object.assign(). Assigns enumerable and own properties from\n * one or more source objects to a target object.\n * See https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign.\n *\n * @param {!Object} target The target object.\n * @param {...Object} var_sources The source object(s).\n * @return {!Object} The modified target object.\n */\nexport var assign = typeof Object.assign === 'function'\n ? Object.assign\n : function (target, var_sources) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n var output = Object(target);\n for (var i = 1, ii = arguments.length; i < ii; ++i) {\n var source = arguments[i];\n if (source !== undefined && source !== null) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n output[key] = source[key];\n }\n }\n }\n }\n return output;\n };\n/**\n * Removes all properties from an object.\n * @param {Object} object The object to clear.\n */\nexport function clear(object) {\n for (var property in object) {\n delete object[property];\n }\n}\n/**\n * Polyfill for Object.values(). Get an array of property values from an object.\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/values\n *\n * @param {!Object} object The object from which to get the values.\n * @return {!Array} The property values.\n * @template K,V\n */\nexport var getValues = typeof Object.values === 'function'\n ? Object.values\n : function (object) {\n var values = [];\n for (var property in object) {\n values.push(object[property]);\n }\n return values;\n };\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n var property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n//# sourceMappingURL=obj.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/control/Control\n */\nimport BaseObject from '../Object.js';\nimport MapEventType from '../MapEventType.js';\nimport { VOID } from '../functions.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { removeNode } from '../dom.js';\n/**\n * @typedef {Object} Options\n * @property {HTMLElement} [element] The element is the control's\n * container element. This only needs to be specified if you're developing\n * a custom control.\n * @property {function(import(\"../MapEvent.js\").default):void} [render] Function called when\n * the control should be re-rendered. This is called in a `requestAnimationFrame`\n * callback.\n * @property {HTMLElement|string} [target] Specify a target if you want\n * the control to be rendered outside of the map's viewport.\n */\n/**\n * @classdesc\n * A control is a visible widget with a DOM element in a fixed position on the\n * screen. They can involve user input (buttons), or be informational only;\n * the position is determined using CSS. By default these are placed in the\n * container with CSS class name `ol-overlaycontainer-stopevent`, but can use\n * any outside DOM element.\n *\n * This is the base class for controls. You can use it for simple custom\n * controls by creating the element with listeners, creating an instance:\n * ```js\n * var myControl = new Control({element: myElement});\n * ```\n * and then adding this to the map.\n *\n * The main advantage of having this as a control rather than a simple separate\n * DOM element is that preventing propagation is handled for you. Controls\n * will also be objects in a {@link module:ol/Collection~Collection}, so you can use their methods.\n *\n * You can also extend this base for your own control class. See\n * examples/custom-controls for an example of how to do this.\n *\n * @api\n */\nvar Control = /** @class */ (function (_super) {\n __extends(Control, _super);\n /**\n * @param {Options} options Control options.\n */\n function Control(options) {\n var _this = _super.call(this) || this;\n var element = options.element;\n if (element && !options.target && !element.style.pointerEvents) {\n element.style.pointerEvents = 'auto';\n }\n /**\n * @protected\n * @type {HTMLElement}\n */\n _this.element = element ? element : null;\n /**\n * @private\n * @type {HTMLElement}\n */\n _this.target_ = null;\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default|null}\n */\n _this.map_ = null;\n /**\n * @protected\n * @type {!Array}\n */\n _this.listenerKeys = [];\n if (options.render) {\n _this.render = options.render;\n }\n if (options.target) {\n _this.setTarget(options.target);\n }\n return _this;\n }\n /**\n * Clean up.\n */\n Control.prototype.disposeInternal = function () {\n removeNode(this.element);\n _super.prototype.disposeInternal.call(this);\n };\n /**\n * Get the map associated with this control.\n * @return {import(\"../PluggableMap.js\").default|null} Map.\n * @api\n */\n Control.prototype.getMap = function () {\n return this.map_;\n };\n /**\n * Remove the control from its current map and attach it to the new map.\n * Pass `null` to just remove the control from the current map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n * @api\n */\n Control.prototype.setMap = function (map) {\n if (this.map_) {\n removeNode(this.element);\n }\n for (var i = 0, ii = this.listenerKeys.length; i < ii; ++i) {\n unlistenByKey(this.listenerKeys[i]);\n }\n this.listenerKeys.length = 0;\n this.map_ = map;\n if (map) {\n var target = this.target_\n ? this.target_\n : map.getOverlayContainerStopEvent();\n target.appendChild(this.element);\n if (this.render !== VOID) {\n this.listenerKeys.push(listen(map, MapEventType.POSTRENDER, this.render, this));\n }\n map.render();\n }\n };\n /**\n * Renders the control.\n * @param {import(\"../MapEvent.js\").default} mapEvent Map event.\n * @api\n */\n Control.prototype.render = function (mapEvent) { };\n /**\n * This function is used to set a target element for the control. It has no\n * effect if it is called after the control has been added to the map (i.e.\n * after `setMap` is called on the control). If no `target` is set in the\n * options passed to the control constructor and if `setTarget` is not called\n * then the control is added to the map's overlay container.\n * @param {HTMLElement|string} target Target.\n * @api\n */\n Control.prototype.setTarget = function (target) {\n this.target_ =\n typeof target === 'string' ? document.getElementById(target) : target;\n };\n return Control;\n}(BaseObject));\nexport default Control;\n//# sourceMappingURL=Control.js.map","/**\n * @module ol/render/canvas/Immediate\n */\n// FIXME test, especially polygons with holes and multipolygons\n// FIXME need to handle large thick features (where pixel size matters)\n// FIXME add offset and end to ol/geom/flat/transform~transform2D?\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport VectorContext from '../VectorContext.js';\nimport { asColorLike } from '../../colorlike.js';\nimport { compose as composeTransform, create as createTransform, } from '../../transform.js';\nimport { defaultFillStyle, defaultFont, defaultLineCap, defaultLineDash, defaultLineDashOffset, defaultLineJoin, defaultLineWidth, defaultMiterLimit, defaultStrokeStyle, defaultTextAlign, defaultTextBaseline, } from '../canvas.js';\nimport { equals } from '../../array.js';\nimport { intersects } from '../../extent.js';\nimport { transform2D } from '../../geom/flat/transform.js';\nimport { transformGeom2D } from '../../geom/SimpleGeometry.js';\n/**\n * @classdesc\n * A concrete subclass of {@link module:ol/render/VectorContext~VectorContext VectorContext} that implements\n * direct rendering of features and geometries to an HTML5 Canvas context.\n * Instances of this class are created internally by the library and\n * provided to application code as vectorContext member of the\n * {@link module:ol/render/Event~RenderEvent RenderEvent} object associated with postcompose, precompose and\n * render events emitted by layers and maps.\n */\nvar CanvasImmediateRenderer = /** @class */ (function (_super) {\n __extends(CanvasImmediateRenderer, _super);\n /**\n * @param {CanvasRenderingContext2D} context Context.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {number} viewRotation View rotation.\n * @param {number} [opt_squaredTolerance] Optional squared tolerance for simplification.\n * @param {import(\"../../proj.js\").TransformFunction} [opt_userTransform] Transform from user to view projection.\n */\n function CanvasImmediateRenderer(context, pixelRatio, extent, transform, viewRotation, opt_squaredTolerance, opt_userTransform) {\n var _this = _super.call(this) || this;\n /**\n * @private\n * @type {CanvasRenderingContext2D}\n */\n _this.context_ = context;\n /**\n * @private\n * @type {number}\n */\n _this.pixelRatio_ = pixelRatio;\n /**\n * @private\n * @type {import(\"../../extent.js\").Extent}\n */\n _this.extent_ = extent;\n /**\n * @private\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.transform_ = transform;\n /**\n * @private\n * @type {number}\n */\n _this.viewRotation_ = viewRotation;\n /**\n * @private\n * @type {number}\n */\n _this.squaredTolerance_ = opt_squaredTolerance;\n /**\n * @private\n * @type {import(\"../../proj.js\").TransformFunction}\n */\n _this.userTransform_ = opt_userTransform;\n /**\n * @private\n * @type {?import(\"../canvas.js\").FillState}\n */\n _this.contextFillState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").StrokeState}\n */\n _this.contextStrokeState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").TextState}\n */\n _this.contextTextState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").FillState}\n */\n _this.fillState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").StrokeState}\n */\n _this.strokeState_ = null;\n /**\n * @private\n * @type {HTMLCanvasElement|HTMLVideoElement|HTMLImageElement}\n */\n _this.image_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.imageAnchorX_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageAnchorY_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageHeight_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageOpacity_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageOriginX_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.imageOriginY_ = 0;\n /**\n * @private\n * @type {boolean}\n */\n _this.imageRotateWithView_ = false;\n /**\n * @private\n * @type {number}\n */\n _this.imageRotation_ = 0;\n /**\n * @private\n * @type {import(\"../../size.js\").Size}\n */\n _this.imageScale_ = [0, 0];\n /**\n * @private\n * @type {number}\n */\n _this.imageWidth_ = 0;\n /**\n * @private\n * @type {string}\n */\n _this.text_ = '';\n /**\n * @private\n * @type {number}\n */\n _this.textOffsetX_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.textOffsetY_ = 0;\n /**\n * @private\n * @type {boolean}\n */\n _this.textRotateWithView_ = false;\n /**\n * @private\n * @type {number}\n */\n _this.textRotation_ = 0;\n /**\n * @private\n * @type {import(\"../../size.js\").Size}\n */\n _this.textScale_ = [0, 0];\n /**\n * @private\n * @type {?import(\"../canvas.js\").FillState}\n */\n _this.textFillState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").StrokeState}\n */\n _this.textStrokeState_ = null;\n /**\n * @private\n * @type {?import(\"../canvas.js\").TextState}\n */\n _this.textState_ = null;\n /**\n * @private\n * @type {Array}\n */\n _this.pixelCoordinates_ = [];\n /**\n * @private\n * @type {import(\"../../transform.js\").Transform}\n */\n _this.tmpLocalTransform_ = createTransform();\n return _this;\n }\n /**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @private\n */\n CanvasImmediateRenderer.prototype.drawImages_ = function (flatCoordinates, offset, end, stride) {\n if (!this.image_) {\n return;\n }\n var pixelCoordinates = transform2D(flatCoordinates, offset, end, stride, this.transform_, this.pixelCoordinates_);\n var context = this.context_;\n var localTransform = this.tmpLocalTransform_;\n var alpha = context.globalAlpha;\n if (this.imageOpacity_ != 1) {\n context.globalAlpha = alpha * this.imageOpacity_;\n }\n var rotation = this.imageRotation_;\n if (this.imageRotateWithView_) {\n rotation += this.viewRotation_;\n }\n for (var i = 0, ii = pixelCoordinates.length; i < ii; i += 2) {\n var x = pixelCoordinates[i] - this.imageAnchorX_;\n var y = pixelCoordinates[i + 1] - this.imageAnchorY_;\n if (rotation !== 0 ||\n this.imageScale_[0] != 1 ||\n this.imageScale_[1] != 1) {\n var centerX = x + this.imageAnchorX_;\n var centerY = y + this.imageAnchorY_;\n composeTransform(localTransform, centerX, centerY, 1, 1, rotation, -centerX, -centerY);\n context.setTransform.apply(context, localTransform);\n context.translate(centerX, centerY);\n context.scale(this.imageScale_[0], this.imageScale_[1]);\n context.drawImage(this.image_, this.imageOriginX_, this.imageOriginY_, this.imageWidth_, this.imageHeight_, -this.imageAnchorX_, -this.imageAnchorY_, this.imageWidth_, this.imageHeight_);\n context.setTransform(1, 0, 0, 1, 0, 0);\n }\n else {\n context.drawImage(this.image_, this.imageOriginX_, this.imageOriginY_, this.imageWidth_, this.imageHeight_, x, y, this.imageWidth_, this.imageHeight_);\n }\n }\n if (this.imageOpacity_ != 1) {\n context.globalAlpha = alpha;\n }\n };\n /**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @private\n */\n CanvasImmediateRenderer.prototype.drawText_ = function (flatCoordinates, offset, end, stride) {\n if (!this.textState_ || this.text_ === '') {\n return;\n }\n if (this.textFillState_) {\n this.setContextFillState_(this.textFillState_);\n }\n if (this.textStrokeState_) {\n this.setContextStrokeState_(this.textStrokeState_);\n }\n this.setContextTextState_(this.textState_);\n var pixelCoordinates = transform2D(flatCoordinates, offset, end, stride, this.transform_, this.pixelCoordinates_);\n var context = this.context_;\n var rotation = this.textRotation_;\n if (this.textRotateWithView_) {\n rotation += this.viewRotation_;\n }\n for (; offset < end; offset += stride) {\n var x = pixelCoordinates[offset] + this.textOffsetX_;\n var y = pixelCoordinates[offset + 1] + this.textOffsetY_;\n if (rotation !== 0 ||\n this.textScale_[0] != 1 ||\n this.textScale_[1] != 1) {\n var localTransform = composeTransform(this.tmpLocalTransform_, x, y, 1, 1, rotation, -x, -y);\n context.setTransform.apply(context, localTransform);\n context.translate(x, y);\n context.scale(this.textScale_[0], this.textScale_[1]);\n if (this.textStrokeState_) {\n context.strokeText(this.text_, 0, 0);\n }\n if (this.textFillState_) {\n context.fillText(this.text_, 0, 0);\n }\n context.setTransform(1, 0, 0, 1, 0, 0);\n }\n else {\n if (this.textStrokeState_) {\n context.strokeText(this.text_, x, y);\n }\n if (this.textFillState_) {\n context.fillText(this.text_, x, y);\n }\n }\n }\n };\n /**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {boolean} close Close.\n * @private\n * @return {number} end End.\n */\n CanvasImmediateRenderer.prototype.moveToLineTo_ = function (flatCoordinates, offset, end, stride, close) {\n var context = this.context_;\n var pixelCoordinates = transform2D(flatCoordinates, offset, end, stride, this.transform_, this.pixelCoordinates_);\n context.moveTo(pixelCoordinates[0], pixelCoordinates[1]);\n var length = pixelCoordinates.length;\n if (close) {\n length -= 2;\n }\n for (var i = 2; i < length; i += 2) {\n context.lineTo(pixelCoordinates[i], pixelCoordinates[i + 1]);\n }\n if (close) {\n context.closePath();\n }\n return end;\n };\n /**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @private\n * @return {number} End.\n */\n CanvasImmediateRenderer.prototype.drawRings_ = function (flatCoordinates, offset, ends, stride) {\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n offset = this.moveToLineTo_(flatCoordinates, offset, ends[i], stride, true);\n }\n return offset;\n };\n /**\n * Render a circle geometry into the canvas. Rendering is immediate and uses\n * the current fill and stroke styles.\n *\n * @param {import(\"../../geom/Circle.js\").default} geometry Circle geometry.\n * @api\n */\n CanvasImmediateRenderer.prototype.drawCircle = function (geometry) {\n if (!intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n if (this.fillState_ || this.strokeState_) {\n if (this.fillState_) {\n this.setContextFillState_(this.fillState_);\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n }\n var pixelCoordinates = transformGeom2D(geometry, this.transform_, this.pixelCoordinates_);\n var dx = pixelCoordinates[2] - pixelCoordinates[0];\n var dy = pixelCoordinates[3] - pixelCoordinates[1];\n var radius = Math.sqrt(dx * dx + dy * dy);\n var context = this.context_;\n context.beginPath();\n context.arc(pixelCoordinates[0], pixelCoordinates[1], radius, 0, 2 * Math.PI);\n if (this.fillState_) {\n context.fill();\n }\n if (this.strokeState_) {\n context.stroke();\n }\n }\n if (this.text_ !== '') {\n this.drawText_(geometry.getCenter(), 0, 2, 2);\n }\n };\n /**\n * Set the rendering style. Note that since this is an immediate rendering API,\n * any `zIndex` on the provided style will be ignored.\n *\n * @param {import(\"../../style/Style.js\").default} style The rendering style.\n * @api\n */\n CanvasImmediateRenderer.prototype.setStyle = function (style) {\n this.setFillStrokeStyle(style.getFill(), style.getStroke());\n this.setImageStyle(style.getImage());\n this.setTextStyle(style.getText());\n };\n /**\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n */\n CanvasImmediateRenderer.prototype.setTransform = function (transform) {\n this.transform_ = transform;\n };\n /**\n * Render a geometry into the canvas. Call\n * {@link module:ol/render/canvas/Immediate~CanvasImmediateRenderer#setStyle renderer.setStyle()} first to set the rendering style.\n *\n * @param {import(\"../../geom/Geometry.js\").default|import(\"../Feature.js\").default} geometry The geometry to render.\n * @api\n */\n CanvasImmediateRenderer.prototype.drawGeometry = function (geometry) {\n var type = geometry.getType();\n switch (type) {\n case 'Point':\n this.drawPoint(\n /** @type {import(\"../../geom/Point.js\").default} */ (geometry));\n break;\n case 'LineString':\n this.drawLineString(\n /** @type {import(\"../../geom/LineString.js\").default} */ (geometry));\n break;\n case 'Polygon':\n this.drawPolygon(\n /** @type {import(\"../../geom/Polygon.js\").default} */ (geometry));\n break;\n case 'MultiPoint':\n this.drawMultiPoint(\n /** @type {import(\"../../geom/MultiPoint.js\").default} */ (geometry));\n break;\n case 'MultiLineString':\n this.drawMultiLineString(\n /** @type {import(\"../../geom/MultiLineString.js\").default} */ (geometry));\n break;\n case 'MultiPolygon':\n this.drawMultiPolygon(\n /** @type {import(\"../../geom/MultiPolygon.js\").default} */ (geometry));\n break;\n case 'GeometryCollection':\n this.drawGeometryCollection(\n /** @type {import(\"../../geom/GeometryCollection.js\").default} */ (geometry));\n break;\n case 'Circle':\n this.drawCircle(\n /** @type {import(\"../../geom/Circle.js\").default} */ (geometry));\n break;\n default:\n }\n };\n /**\n * Render a feature into the canvas. Note that any `zIndex` on the provided\n * style will be ignored - features are rendered immediately in the order that\n * this method is called. If you need `zIndex` support, you should be using an\n * {@link module:ol/layer/Vector~VectorLayer VectorLayer} instead.\n *\n * @param {import(\"../../Feature.js\").default} feature Feature.\n * @param {import(\"../../style/Style.js\").default} style Style.\n * @api\n */\n CanvasImmediateRenderer.prototype.drawFeature = function (feature, style) {\n var geometry = style.getGeometryFunction()(feature);\n if (!geometry || !intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n this.setStyle(style);\n this.drawGeometry(geometry);\n };\n /**\n * Render a GeometryCollection to the canvas. Rendering is immediate and\n * uses the current styles appropriate for each geometry in the collection.\n *\n * @param {import(\"../../geom/GeometryCollection.js\").default} geometry Geometry collection.\n */\n CanvasImmediateRenderer.prototype.drawGeometryCollection = function (geometry) {\n var geometries = geometry.getGeometriesArray();\n for (var i = 0, ii = geometries.length; i < ii; ++i) {\n this.drawGeometry(geometries[i]);\n }\n };\n /**\n * Render a Point geometry into the canvas. Rendering is immediate and uses\n * the current style.\n *\n * @param {import(\"../../geom/Point.js\").default|import(\"../Feature.js\").default} geometry Point geometry.\n */\n CanvasImmediateRenderer.prototype.drawPoint = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/Point.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n var flatCoordinates = geometry.getFlatCoordinates();\n var stride = geometry.getStride();\n if (this.image_) {\n this.drawImages_(flatCoordinates, 0, flatCoordinates.length, stride);\n }\n if (this.text_ !== '') {\n this.drawText_(flatCoordinates, 0, flatCoordinates.length, stride);\n }\n };\n /**\n * Render a MultiPoint geometry into the canvas. Rendering is immediate and\n * uses the current style.\n *\n * @param {import(\"../../geom/MultiPoint.js\").default|import(\"../Feature.js\").default} geometry MultiPoint geometry.\n */\n CanvasImmediateRenderer.prototype.drawMultiPoint = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/MultiPoint.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n var flatCoordinates = geometry.getFlatCoordinates();\n var stride = geometry.getStride();\n if (this.image_) {\n this.drawImages_(flatCoordinates, 0, flatCoordinates.length, stride);\n }\n if (this.text_ !== '') {\n this.drawText_(flatCoordinates, 0, flatCoordinates.length, stride);\n }\n };\n /**\n * Render a LineString into the canvas. Rendering is immediate and uses\n * the current style.\n *\n * @param {import(\"../../geom/LineString.js\").default|import(\"../Feature.js\").default} geometry LineString geometry.\n */\n CanvasImmediateRenderer.prototype.drawLineString = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/LineString.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n if (!intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n var context = this.context_;\n var flatCoordinates = geometry.getFlatCoordinates();\n context.beginPath();\n this.moveToLineTo_(flatCoordinates, 0, flatCoordinates.length, geometry.getStride(), false);\n context.stroke();\n }\n if (this.text_ !== '') {\n var flatMidpoint = geometry.getFlatMidpoint();\n this.drawText_(flatMidpoint, 0, 2, 2);\n }\n };\n /**\n * Render a MultiLineString geometry into the canvas. Rendering is immediate\n * and uses the current style.\n *\n * @param {import(\"../../geom/MultiLineString.js\").default|import(\"../Feature.js\").default} geometry MultiLineString geometry.\n */\n CanvasImmediateRenderer.prototype.drawMultiLineString = function (geometry) {\n if (this.squaredTolerance_) {\n geometry =\n /** @type {import(\"../../geom/MultiLineString.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n var geometryExtent = geometry.getExtent();\n if (!intersects(this.extent_, geometryExtent)) {\n return;\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n var context = this.context_;\n var flatCoordinates = geometry.getFlatCoordinates();\n var offset = 0;\n var ends = /** @type {Array} */ (geometry.getEnds());\n var stride = geometry.getStride();\n context.beginPath();\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n offset = this.moveToLineTo_(flatCoordinates, offset, ends[i], stride, false);\n }\n context.stroke();\n }\n if (this.text_ !== '') {\n var flatMidpoints = geometry.getFlatMidpoints();\n this.drawText_(flatMidpoints, 0, flatMidpoints.length, 2);\n }\n };\n /**\n * Render a Polygon geometry into the canvas. Rendering is immediate and uses\n * the current style.\n *\n * @param {import(\"../../geom/Polygon.js\").default|import(\"../Feature.js\").default} geometry Polygon geometry.\n */\n CanvasImmediateRenderer.prototype.drawPolygon = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/Polygon.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n if (!intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n if (this.strokeState_ || this.fillState_) {\n if (this.fillState_) {\n this.setContextFillState_(this.fillState_);\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n }\n var context = this.context_;\n context.beginPath();\n this.drawRings_(geometry.getOrientedFlatCoordinates(), 0, \n /** @type {Array} */ (geometry.getEnds()), geometry.getStride());\n if (this.fillState_) {\n context.fill();\n }\n if (this.strokeState_) {\n context.stroke();\n }\n }\n if (this.text_ !== '') {\n var flatInteriorPoint = geometry.getFlatInteriorPoint();\n this.drawText_(flatInteriorPoint, 0, 2, 2);\n }\n };\n /**\n * Render MultiPolygon geometry into the canvas. Rendering is immediate and\n * uses the current style.\n * @param {import(\"../../geom/MultiPolygon.js\").default} geometry MultiPolygon geometry.\n */\n CanvasImmediateRenderer.prototype.drawMultiPolygon = function (geometry) {\n if (this.squaredTolerance_) {\n geometry = /** @type {import(\"../../geom/MultiPolygon.js\").default} */ (geometry.simplifyTransformed(this.squaredTolerance_, this.userTransform_));\n }\n if (!intersects(this.extent_, geometry.getExtent())) {\n return;\n }\n if (this.strokeState_ || this.fillState_) {\n if (this.fillState_) {\n this.setContextFillState_(this.fillState_);\n }\n if (this.strokeState_) {\n this.setContextStrokeState_(this.strokeState_);\n }\n var context = this.context_;\n var flatCoordinates = geometry.getOrientedFlatCoordinates();\n var offset = 0;\n var endss = geometry.getEndss();\n var stride = geometry.getStride();\n context.beginPath();\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n offset = this.drawRings_(flatCoordinates, offset, ends, stride);\n }\n if (this.fillState_) {\n context.fill();\n }\n if (this.strokeState_) {\n context.stroke();\n }\n }\n if (this.text_ !== '') {\n var flatInteriorPoints = geometry.getFlatInteriorPoints();\n this.drawText_(flatInteriorPoints, 0, flatInteriorPoints.length, 2);\n }\n };\n /**\n * @param {import(\"../canvas.js\").FillState} fillState Fill state.\n * @private\n */\n CanvasImmediateRenderer.prototype.setContextFillState_ = function (fillState) {\n var context = this.context_;\n var contextFillState = this.contextFillState_;\n if (!contextFillState) {\n context.fillStyle = fillState.fillStyle;\n this.contextFillState_ = {\n fillStyle: fillState.fillStyle,\n };\n }\n else {\n if (contextFillState.fillStyle != fillState.fillStyle) {\n contextFillState.fillStyle = fillState.fillStyle;\n context.fillStyle = fillState.fillStyle;\n }\n }\n };\n /**\n * @param {import(\"../canvas.js\").StrokeState} strokeState Stroke state.\n * @private\n */\n CanvasImmediateRenderer.prototype.setContextStrokeState_ = function (strokeState) {\n var context = this.context_;\n var contextStrokeState = this.contextStrokeState_;\n if (!contextStrokeState) {\n context.lineCap = strokeState.lineCap;\n if (context.setLineDash) {\n context.setLineDash(strokeState.lineDash);\n context.lineDashOffset = strokeState.lineDashOffset;\n }\n context.lineJoin = strokeState.lineJoin;\n context.lineWidth = strokeState.lineWidth;\n context.miterLimit = strokeState.miterLimit;\n context.strokeStyle = strokeState.strokeStyle;\n this.contextStrokeState_ = {\n lineCap: strokeState.lineCap,\n lineDash: strokeState.lineDash,\n lineDashOffset: strokeState.lineDashOffset,\n lineJoin: strokeState.lineJoin,\n lineWidth: strokeState.lineWidth,\n miterLimit: strokeState.miterLimit,\n strokeStyle: strokeState.strokeStyle,\n };\n }\n else {\n if (contextStrokeState.lineCap != strokeState.lineCap) {\n contextStrokeState.lineCap = strokeState.lineCap;\n context.lineCap = strokeState.lineCap;\n }\n if (context.setLineDash) {\n if (!equals(contextStrokeState.lineDash, strokeState.lineDash)) {\n context.setLineDash((contextStrokeState.lineDash = strokeState.lineDash));\n }\n if (contextStrokeState.lineDashOffset != strokeState.lineDashOffset) {\n contextStrokeState.lineDashOffset = strokeState.lineDashOffset;\n context.lineDashOffset = strokeState.lineDashOffset;\n }\n }\n if (contextStrokeState.lineJoin != strokeState.lineJoin) {\n contextStrokeState.lineJoin = strokeState.lineJoin;\n context.lineJoin = strokeState.lineJoin;\n }\n if (contextStrokeState.lineWidth != strokeState.lineWidth) {\n contextStrokeState.lineWidth = strokeState.lineWidth;\n context.lineWidth = strokeState.lineWidth;\n }\n if (contextStrokeState.miterLimit != strokeState.miterLimit) {\n contextStrokeState.miterLimit = strokeState.miterLimit;\n context.miterLimit = strokeState.miterLimit;\n }\n if (contextStrokeState.strokeStyle != strokeState.strokeStyle) {\n contextStrokeState.strokeStyle = strokeState.strokeStyle;\n context.strokeStyle = strokeState.strokeStyle;\n }\n }\n };\n /**\n * @param {import(\"../canvas.js\").TextState} textState Text state.\n * @private\n */\n CanvasImmediateRenderer.prototype.setContextTextState_ = function (textState) {\n var context = this.context_;\n var contextTextState = this.contextTextState_;\n var textAlign = textState.textAlign\n ? textState.textAlign\n : defaultTextAlign;\n if (!contextTextState) {\n context.font = textState.font;\n context.textAlign = /** @type {CanvasTextAlign} */ (textAlign);\n context.textBaseline = /** @type {CanvasTextBaseline} */ (textState.textBaseline);\n this.contextTextState_ = {\n font: textState.font,\n textAlign: textAlign,\n textBaseline: textState.textBaseline,\n };\n }\n else {\n if (contextTextState.font != textState.font) {\n contextTextState.font = textState.font;\n context.font = textState.font;\n }\n if (contextTextState.textAlign != textAlign) {\n contextTextState.textAlign = /** @type {CanvasTextAlign} */ (textAlign);\n context.textAlign = /** @type {CanvasTextAlign} */ (textAlign);\n }\n if (contextTextState.textBaseline != textState.textBaseline) {\n contextTextState.textBaseline = /** @type {CanvasTextBaseline} */ (textState.textBaseline);\n context.textBaseline = /** @type {CanvasTextBaseline} */ (textState.textBaseline);\n }\n }\n };\n /**\n * Set the fill and stroke style for subsequent draw operations. To clear\n * either fill or stroke styles, pass null for the appropriate parameter.\n *\n * @param {import(\"../../style/Fill.js\").default} fillStyle Fill style.\n * @param {import(\"../../style/Stroke.js\").default} strokeStyle Stroke style.\n */\n CanvasImmediateRenderer.prototype.setFillStrokeStyle = function (fillStyle, strokeStyle) {\n var _this = this;\n if (!fillStyle) {\n this.fillState_ = null;\n }\n else {\n var fillStyleColor = fillStyle.getColor();\n this.fillState_ = {\n fillStyle: asColorLike(fillStyleColor ? fillStyleColor : defaultFillStyle),\n };\n }\n if (!strokeStyle) {\n this.strokeState_ = null;\n }\n else {\n var strokeStyleColor = strokeStyle.getColor();\n var strokeStyleLineCap = strokeStyle.getLineCap();\n var strokeStyleLineDash = strokeStyle.getLineDash();\n var strokeStyleLineDashOffset = strokeStyle.getLineDashOffset();\n var strokeStyleLineJoin = strokeStyle.getLineJoin();\n var strokeStyleWidth = strokeStyle.getWidth();\n var strokeStyleMiterLimit = strokeStyle.getMiterLimit();\n var lineDash = strokeStyleLineDash\n ? strokeStyleLineDash\n : defaultLineDash;\n this.strokeState_ = {\n lineCap: strokeStyleLineCap !== undefined\n ? strokeStyleLineCap\n : defaultLineCap,\n lineDash: this.pixelRatio_ === 1\n ? lineDash\n : lineDash.map(function (n) { return n * _this.pixelRatio_; }),\n lineDashOffset: (strokeStyleLineDashOffset\n ? strokeStyleLineDashOffset\n : defaultLineDashOffset) * this.pixelRatio_,\n lineJoin: strokeStyleLineJoin !== undefined\n ? strokeStyleLineJoin\n : defaultLineJoin,\n lineWidth: (strokeStyleWidth !== undefined\n ? strokeStyleWidth\n : defaultLineWidth) * this.pixelRatio_,\n miterLimit: strokeStyleMiterLimit !== undefined\n ? strokeStyleMiterLimit\n : defaultMiterLimit,\n strokeStyle: asColorLike(strokeStyleColor ? strokeStyleColor : defaultStrokeStyle),\n };\n }\n };\n /**\n * Set the image style for subsequent draw operations. Pass null to remove\n * the image style.\n *\n * @param {import(\"../../style/Image.js\").default} imageStyle Image style.\n */\n CanvasImmediateRenderer.prototype.setImageStyle = function (imageStyle) {\n var imageSize;\n if (!imageStyle || !(imageSize = imageStyle.getSize())) {\n this.image_ = null;\n return;\n }\n var imageAnchor = imageStyle.getAnchor();\n var imageOrigin = imageStyle.getOrigin();\n this.image_ = imageStyle.getImage(this.pixelRatio_);\n this.imageAnchorX_ = imageAnchor[0] * this.pixelRatio_;\n this.imageAnchorY_ = imageAnchor[1] * this.pixelRatio_;\n this.imageHeight_ = imageSize[1] * this.pixelRatio_;\n this.imageOpacity_ = imageStyle.getOpacity();\n this.imageOriginX_ = imageOrigin[0];\n this.imageOriginY_ = imageOrigin[1];\n this.imageRotateWithView_ = imageStyle.getRotateWithView();\n this.imageRotation_ = imageStyle.getRotation();\n this.imageScale_ = imageStyle.getScaleArray();\n this.imageWidth_ = imageSize[0] * this.pixelRatio_;\n };\n /**\n * Set the text style for subsequent draw operations. Pass null to\n * remove the text style.\n *\n * @param {import(\"../../style/Text.js\").default} textStyle Text style.\n */\n CanvasImmediateRenderer.prototype.setTextStyle = function (textStyle) {\n if (!textStyle) {\n this.text_ = '';\n }\n else {\n var textFillStyle = textStyle.getFill();\n if (!textFillStyle) {\n this.textFillState_ = null;\n }\n else {\n var textFillStyleColor = textFillStyle.getColor();\n this.textFillState_ = {\n fillStyle: asColorLike(textFillStyleColor ? textFillStyleColor : defaultFillStyle),\n };\n }\n var textStrokeStyle = textStyle.getStroke();\n if (!textStrokeStyle) {\n this.textStrokeState_ = null;\n }\n else {\n var textStrokeStyleColor = textStrokeStyle.getColor();\n var textStrokeStyleLineCap = textStrokeStyle.getLineCap();\n var textStrokeStyleLineDash = textStrokeStyle.getLineDash();\n var textStrokeStyleLineDashOffset = textStrokeStyle.getLineDashOffset();\n var textStrokeStyleLineJoin = textStrokeStyle.getLineJoin();\n var textStrokeStyleWidth = textStrokeStyle.getWidth();\n var textStrokeStyleMiterLimit = textStrokeStyle.getMiterLimit();\n this.textStrokeState_ = {\n lineCap: textStrokeStyleLineCap !== undefined\n ? textStrokeStyleLineCap\n : defaultLineCap,\n lineDash: textStrokeStyleLineDash\n ? textStrokeStyleLineDash\n : defaultLineDash,\n lineDashOffset: textStrokeStyleLineDashOffset\n ? textStrokeStyleLineDashOffset\n : defaultLineDashOffset,\n lineJoin: textStrokeStyleLineJoin !== undefined\n ? textStrokeStyleLineJoin\n : defaultLineJoin,\n lineWidth: textStrokeStyleWidth !== undefined\n ? textStrokeStyleWidth\n : defaultLineWidth,\n miterLimit: textStrokeStyleMiterLimit !== undefined\n ? textStrokeStyleMiterLimit\n : defaultMiterLimit,\n strokeStyle: asColorLike(textStrokeStyleColor ? textStrokeStyleColor : defaultStrokeStyle),\n };\n }\n var textFont = textStyle.getFont();\n var textOffsetX = textStyle.getOffsetX();\n var textOffsetY = textStyle.getOffsetY();\n var textRotateWithView = textStyle.getRotateWithView();\n var textRotation = textStyle.getRotation();\n var textScale = textStyle.getScaleArray();\n var textText = textStyle.getText();\n var textTextAlign = textStyle.getTextAlign();\n var textTextBaseline = textStyle.getTextBaseline();\n this.textState_ = {\n font: textFont !== undefined ? textFont : defaultFont,\n textAlign: textTextAlign !== undefined ? textTextAlign : defaultTextAlign,\n textBaseline: textTextBaseline !== undefined\n ? textTextBaseline\n : defaultTextBaseline,\n };\n this.text_ =\n textText !== undefined\n ? Array.isArray(textText)\n ? textText.reduce(function (acc, t, i) { return (acc += i % 2 ? ' ' : t); }, '')\n : textText\n : '';\n this.textOffsetX_ =\n textOffsetX !== undefined ? this.pixelRatio_ * textOffsetX : 0;\n this.textOffsetY_ =\n textOffsetY !== undefined ? this.pixelRatio_ * textOffsetY : 0;\n this.textRotateWithView_ =\n textRotateWithView !== undefined ? textRotateWithView : false;\n this.textRotation_ = textRotation !== undefined ? textRotation : 0;\n this.textScale_ = [\n this.pixelRatio_ * textScale[0],\n this.pixelRatio_ * textScale[1],\n ];\n }\n };\n return CanvasImmediateRenderer;\n}(VectorContext));\nexport default CanvasImmediateRenderer;\n//# sourceMappingURL=Immediate.js.map","/**\n * @module ol/render/canvas/hitdetect\n */\nimport CanvasImmediateRenderer from './Immediate.js';\nimport IconAnchorUnits from '../../style/IconAnchorUnits.js';\nimport { Icon } from '../../style.js';\nimport { clamp } from '../../math.js';\nimport { createCanvasContext2D } from '../../dom.js';\nimport { intersects } from '../../extent.js';\nimport { numberSafeCompareFunction } from '../../array.js';\nexport var HIT_DETECT_RESOLUTION = 0.5;\n/**\n * @param {import(\"../../size.js\").Size} size Canvas size in css pixels.\n * @param {Array} transforms Transforms\n * for rendering features to all worlds of the viewport, from coordinates to css\n * pixels.\n * @param {Array} features\n * Features to consider for hit detection.\n * @param {import(\"../../style/Style.js\").StyleFunction|undefined} styleFunction\n * Layer style function.\n * @param {import(\"../../extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @return {ImageData} Hit detection image data.\n */\nexport function createHitDetectionImageData(size, transforms, features, styleFunction, extent, resolution, rotation) {\n var width = size[0] * HIT_DETECT_RESOLUTION;\n var height = size[1] * HIT_DETECT_RESOLUTION;\n var context = createCanvasContext2D(width, height);\n context.imageSmoothingEnabled = false;\n var canvas = context.canvas;\n var renderer = new CanvasImmediateRenderer(context, HIT_DETECT_RESOLUTION, extent, null, rotation);\n var featureCount = features.length;\n // Stretch hit detection index to use the whole available color range\n var indexFactor = Math.floor((256 * 256 * 256 - 1) / featureCount);\n var featuresByZIndex = {};\n for (var i = 1; i <= featureCount; ++i) {\n var feature = features[i - 1];\n var featureStyleFunction = feature.getStyleFunction() || styleFunction;\n if (!styleFunction) {\n continue;\n }\n var styles = featureStyleFunction(feature, resolution);\n if (!styles) {\n continue;\n }\n if (!Array.isArray(styles)) {\n styles = [styles];\n }\n var index = i * indexFactor;\n var color = '#' + ('000000' + index.toString(16)).slice(-6);\n for (var j = 0, jj = styles.length; j < jj; ++j) {\n var originalStyle = styles[j];\n var geometry = originalStyle.getGeometryFunction()(feature);\n if (!geometry || !intersects(extent, geometry.getExtent())) {\n continue;\n }\n var style = originalStyle.clone();\n var fill = style.getFill();\n if (fill) {\n fill.setColor(color);\n }\n var stroke = style.getStroke();\n if (stroke) {\n stroke.setColor(color);\n stroke.setLineDash(null);\n }\n style.setText(undefined);\n var image = originalStyle.getImage();\n if (image && image.getOpacity() !== 0) {\n var imgSize = image.getImageSize();\n if (!imgSize) {\n continue;\n }\n var imgContext = createCanvasContext2D(imgSize[0], imgSize[1], undefined, { alpha: false });\n var img = imgContext.canvas;\n imgContext.fillStyle = color;\n imgContext.fillRect(0, 0, img.width, img.height);\n style.setImage(new Icon({\n img: img,\n imgSize: imgSize,\n anchor: image.getAnchor(),\n anchorXUnits: IconAnchorUnits.PIXELS,\n anchorYUnits: IconAnchorUnits.PIXELS,\n offset: image.getOrigin(),\n opacity: 1,\n size: image.getSize(),\n scale: image.getScale(),\n rotation: image.getRotation(),\n rotateWithView: image.getRotateWithView(),\n }));\n }\n var zIndex = style.getZIndex() || 0;\n var byGeometryType = featuresByZIndex[zIndex];\n if (!byGeometryType) {\n byGeometryType = {};\n featuresByZIndex[zIndex] = byGeometryType;\n byGeometryType['Polygon'] = [];\n byGeometryType['Circle'] = [];\n byGeometryType['LineString'] = [];\n byGeometryType['Point'] = [];\n }\n byGeometryType[geometry.getType().replace('Multi', '')].push(geometry, style);\n }\n }\n var zIndexKeys = Object.keys(featuresByZIndex)\n .map(Number)\n .sort(numberSafeCompareFunction);\n for (var i = 0, ii = zIndexKeys.length; i < ii; ++i) {\n var byGeometryType = featuresByZIndex[zIndexKeys[i]];\n for (var type in byGeometryType) {\n var geomAndStyle = byGeometryType[type];\n for (var j = 0, jj = geomAndStyle.length; j < jj; j += 2) {\n renderer.setStyle(geomAndStyle[j + 1]);\n for (var k = 0, kk = transforms.length; k < kk; ++k) {\n renderer.setTransform(transforms[k]);\n renderer.drawGeometry(geomAndStyle[j]);\n }\n }\n }\n }\n return context.getImageData(0, 0, canvas.width, canvas.height);\n}\n/**\n * @param {import(\"../../pixel\").Pixel} pixel Pixel coordinate on the hit\n * detection canvas in css pixels.\n * @param {Array} features Features. Has to\n * match the `features` array that was passed to `createHitDetectionImageData()`.\n * @param {ImageData} imageData Hit detection image data generated by\n * `createHitDetectionImageData()`.\n * @return {Array} features Features.\n */\nexport function hitDetect(pixel, features, imageData) {\n var resultFeatures = [];\n if (imageData) {\n var x = Math.floor(Math.round(pixel[0]) * HIT_DETECT_RESOLUTION);\n var y = Math.floor(Math.round(pixel[1]) * HIT_DETECT_RESOLUTION);\n // The pixel coordinate is clamped down to the hit-detect canvas' size to account\n // for browsers returning coordinates slightly larger than the actual canvas size\n // due to a non-integer pixel ratio.\n var index = (clamp(x, 0, imageData.width - 1) +\n clamp(y, 0, imageData.height - 1) * imageData.width) *\n 4;\n var r = imageData.data[index];\n var g = imageData.data[index + 1];\n var b = imageData.data[index + 2];\n var i = b + 256 * (g + 256 * r);\n var indexFactor = Math.floor((256 * 256 * 256 - 1) / features.length);\n if (i && i % indexFactor === 0) {\n resultFeatures.push(features[i / indexFactor - 1]);\n }\n }\n return resultFeatures;\n}\n//# sourceMappingURL=hitdetect.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/DoubleClickZoom\n */\nimport Interaction, { zoomByDelta } from './Interaction.js';\nimport MapBrowserEventType from '../MapBrowserEventType.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {number} [delta=1] The zoom delta applied on each double click.\n */\n/**\n * @classdesc\n * Allows the user to zoom by double-clicking on the map.\n * @api\n */\nvar DoubleClickZoom = /** @class */ (function (_super) {\n __extends(DoubleClickZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DoubleClickZoom(opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n * @type {number}\n */\n _this.delta_ = options.delta ? options.delta : 1;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} (if it was a\n * doubleclick) and eventually zooms the map.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n */\n DoubleClickZoom.prototype.handleEvent = function (mapBrowserEvent) {\n var stopEvent = false;\n if (mapBrowserEvent.type == MapBrowserEventType.DBLCLICK) {\n var browserEvent = /** @type {MouseEvent} */ (mapBrowserEvent.originalEvent);\n var map = mapBrowserEvent.map;\n var anchor = mapBrowserEvent.coordinate;\n var delta = browserEvent.shiftKey ? -this.delta_ : this.delta_;\n var view = map.getView();\n zoomByDelta(view, delta, anchor, this.duration_);\n browserEvent.preventDefault();\n stopEvent = true;\n }\n return !stopEvent;\n };\n return DoubleClickZoom;\n}(Interaction));\nexport default DoubleClickZoom;\n//# sourceMappingURL=DoubleClickZoom.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/DragPan\n */\nimport PointerInteraction, { centroid as centroidFromPointers, } from './Pointer.js';\nimport { FALSE } from '../functions.js';\nimport { all, focusWithTabindex, noModifierKeys, primaryAction, } from '../events/condition.js';\nimport { easeOut } from '../easing.js';\nimport { rotate as rotateCoordinate, scale as scaleCoordinate, } from '../coordinate.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean\n * to indicate whether that event should be handled.\n * Default is {@link module:ol/events/condition.noModifierKeys} and {@link module:ol/events/condition.primaryAction}.\n * @property {boolean} [onFocusOnly=false] When the map's target has a `tabindex` attribute set,\n * the interaction will only handle events when the map has the focus.\n * @property {import(\"../Kinetic.js\").default} [kinetic] Kinetic inertia to apply to the pan.\n */\n/**\n * @classdesc\n * Allows the user to pan the map by dragging the map.\n * @api\n */\nvar DragPan = /** @class */ (function (_super) {\n __extends(DragPan, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DragPan(opt_options) {\n var _this = _super.call(this, {\n stopDown: FALSE,\n }) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n * @type {import(\"../Kinetic.js\").default|undefined}\n */\n _this.kinetic_ = options.kinetic;\n /**\n * @type {import(\"../pixel.js\").Pixel}\n */\n _this.lastCentroid = null;\n /**\n * @type {number}\n */\n _this.lastPointersCount_;\n /**\n * @type {boolean}\n */\n _this.panning_ = false;\n var condition = options.condition\n ? options.condition\n : all(noModifierKeys, primaryAction);\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.onFocusOnly\n ? all(focusWithTabindex, condition)\n : condition;\n /**\n * @private\n * @type {boolean}\n */\n _this.noKinetic_ = false;\n return _this;\n }\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n DragPan.prototype.handleDragEvent = function (mapBrowserEvent) {\n if (!this.panning_) {\n this.panning_ = true;\n this.getMap().getView().beginInteraction();\n }\n var targetPointers = this.targetPointers;\n var centroid = centroidFromPointers(targetPointers);\n if (targetPointers.length == this.lastPointersCount_) {\n if (this.kinetic_) {\n this.kinetic_.update(centroid[0], centroid[1]);\n }\n if (this.lastCentroid) {\n var delta = [\n this.lastCentroid[0] - centroid[0],\n centroid[1] - this.lastCentroid[1],\n ];\n var map = mapBrowserEvent.map;\n var view = map.getView();\n scaleCoordinate(delta, view.getResolution());\n rotateCoordinate(delta, view.getRotation());\n view.adjustCenterInternal(delta);\n }\n }\n else if (this.kinetic_) {\n // reset so we don't overestimate the kinetic energy after\n // after one finger down, tiny drag, second finger down\n this.kinetic_.begin();\n }\n this.lastCentroid = centroid;\n this.lastPointersCount_ = targetPointers.length;\n mapBrowserEvent.originalEvent.preventDefault();\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragPan.prototype.handleUpEvent = function (mapBrowserEvent) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n if (this.targetPointers.length === 0) {\n if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) {\n var distance = this.kinetic_.getDistance();\n var angle = this.kinetic_.getAngle();\n var center = view.getCenterInternal();\n var centerpx = map.getPixelFromCoordinateInternal(center);\n var dest = map.getCoordinateFromPixelInternal([\n centerpx[0] - distance * Math.cos(angle),\n centerpx[1] - distance * Math.sin(angle),\n ]);\n view.animateInternal({\n center: view.getConstrainedCenter(dest),\n duration: 500,\n easing: easeOut,\n });\n }\n if (this.panning_) {\n this.panning_ = false;\n view.endInteraction();\n }\n return false;\n }\n else {\n if (this.kinetic_) {\n // reset so we don't overestimate the kinetic energy after\n // after one finger up, tiny drag, second finger up\n this.kinetic_.begin();\n }\n this.lastCentroid = null;\n return true;\n }\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragPan.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length > 0 && this.condition_(mapBrowserEvent)) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n this.lastCentroid = null;\n // stop any current animation\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n if (this.kinetic_) {\n this.kinetic_.begin();\n }\n // No kinetic as soon as more than one pointer on the screen is\n // detected. This is to prevent nasty pans after pinch.\n this.noKinetic_ = this.targetPointers.length > 1;\n return true;\n }\n else {\n return false;\n }\n };\n return DragPan;\n}(PointerInteraction));\nexport default DragPan;\n//# sourceMappingURL=DragPan.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/DragRotate\n */\nimport PointerInteraction from './Pointer.js';\nimport { FALSE } from '../functions.js';\nimport { altShiftKeysOnly, mouseActionButton, mouseOnly, } from '../events/condition.js';\nimport { disable } from '../rotationconstraint.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that takes an\n * {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean\n * to indicate whether that event should be handled.\n * Default is {@link module:ol/events/condition.altShiftKeysOnly}.\n * @property {number} [duration=250] Animation duration in milliseconds.\n */\n/**\n * @classdesc\n * Allows the user to rotate the map by clicking and dragging on the map,\n * normally combined with an {@link module:ol/events/condition} that limits\n * it to when the alt and shift keys are held down.\n *\n * This interaction is only supported for mouse devices.\n * @api\n */\nvar DragRotate = /** @class */ (function (_super) {\n __extends(DragRotate, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DragRotate(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, {\n stopDown: FALSE,\n }) || this;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : altShiftKeysOnly;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.lastAngle_ = undefined;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n DragRotate.prototype.handleDragEvent = function (mapBrowserEvent) {\n if (!mouseOnly(mapBrowserEvent)) {\n return;\n }\n var map = mapBrowserEvent.map;\n var view = map.getView();\n if (view.getConstraints().rotation === disable) {\n return;\n }\n var size = map.getSize();\n var offset = mapBrowserEvent.pixel;\n var theta = Math.atan2(size[1] / 2 - offset[1], offset[0] - size[0] / 2);\n if (this.lastAngle_ !== undefined) {\n var delta = theta - this.lastAngle_;\n view.adjustRotationInternal(-delta);\n }\n this.lastAngle_ = theta;\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragRotate.prototype.handleUpEvent = function (mapBrowserEvent) {\n if (!mouseOnly(mapBrowserEvent)) {\n return true;\n }\n var map = mapBrowserEvent.map;\n var view = map.getView();\n view.endInteraction(this.duration_);\n return false;\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragRotate.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (!mouseOnly(mapBrowserEvent)) {\n return false;\n }\n if (mouseActionButton(mapBrowserEvent) &&\n this.condition_(mapBrowserEvent)) {\n var map = mapBrowserEvent.map;\n map.getView().beginInteraction();\n this.lastAngle_ = undefined;\n return true;\n }\n else {\n return false;\n }\n };\n return DragRotate;\n}(PointerInteraction));\nexport default DragRotate;\n//# sourceMappingURL=DragRotate.js.map","/**\n * @module ol/render/Box\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Disposable from '../Disposable.js';\nimport Polygon from '../geom/Polygon.js';\nvar RenderBox = /** @class */ (function (_super) {\n __extends(RenderBox, _super);\n /**\n * @param {string} className CSS class name.\n */\n function RenderBox(className) {\n var _this = _super.call(this) || this;\n /**\n * @type {import(\"../geom/Polygon.js\").default}\n * @private\n */\n _this.geometry_ = null;\n /**\n * @type {HTMLDivElement}\n * @private\n */\n _this.element_ = document.createElement('div');\n _this.element_.style.position = 'absolute';\n _this.element_.style.pointerEvents = 'auto';\n _this.element_.className = 'ol-box ' + className;\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default|null}\n */\n _this.map_ = null;\n /**\n * @private\n * @type {import(\"../pixel.js\").Pixel}\n */\n _this.startPixel_ = null;\n /**\n * @private\n * @type {import(\"../pixel.js\").Pixel}\n */\n _this.endPixel_ = null;\n return _this;\n }\n /**\n * Clean up.\n */\n RenderBox.prototype.disposeInternal = function () {\n this.setMap(null);\n };\n /**\n * @private\n */\n RenderBox.prototype.render_ = function () {\n var startPixel = this.startPixel_;\n var endPixel = this.endPixel_;\n var px = 'px';\n var style = this.element_.style;\n style.left = Math.min(startPixel[0], endPixel[0]) + px;\n style.top = Math.min(startPixel[1], endPixel[1]) + px;\n style.width = Math.abs(endPixel[0] - startPixel[0]) + px;\n style.height = Math.abs(endPixel[1] - startPixel[1]) + px;\n };\n /**\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n */\n RenderBox.prototype.setMap = function (map) {\n if (this.map_) {\n this.map_.getOverlayContainer().removeChild(this.element_);\n var style = this.element_.style;\n style.left = 'inherit';\n style.top = 'inherit';\n style.width = 'inherit';\n style.height = 'inherit';\n }\n this.map_ = map;\n if (this.map_) {\n this.map_.getOverlayContainer().appendChild(this.element_);\n }\n };\n /**\n * @param {import(\"../pixel.js\").Pixel} startPixel Start pixel.\n * @param {import(\"../pixel.js\").Pixel} endPixel End pixel.\n */\n RenderBox.prototype.setPixels = function (startPixel, endPixel) {\n this.startPixel_ = startPixel;\n this.endPixel_ = endPixel;\n this.createOrUpdateGeometry();\n this.render_();\n };\n /**\n * Creates or updates the cached geometry.\n */\n RenderBox.prototype.createOrUpdateGeometry = function () {\n var startPixel = this.startPixel_;\n var endPixel = this.endPixel_;\n var pixels = [\n startPixel,\n [startPixel[0], endPixel[1]],\n endPixel,\n [endPixel[0], startPixel[1]],\n ];\n var coordinates = pixels.map(this.map_.getCoordinateFromPixelInternal, this.map_);\n // close the polygon\n coordinates[4] = coordinates[0].slice();\n if (!this.geometry_) {\n this.geometry_ = new Polygon([coordinates]);\n }\n else {\n this.geometry_.setCoordinates([coordinates]);\n }\n };\n /**\n * @return {import(\"../geom/Polygon.js\").default} Geometry.\n */\n RenderBox.prototype.getGeometry = function () {\n return this.geometry_;\n };\n return RenderBox;\n}(Disposable));\nexport default RenderBox;\n//# sourceMappingURL=Box.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/DragBox\n */\n// FIXME draw drag box\nimport Event from '../events/Event.js';\nimport PointerInteraction from './Pointer.js';\nimport RenderBox from '../render/Box.js';\nimport { mouseActionButton } from '../events/condition.js';\n/**\n * A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two\n * {@link module:ol/pixel~Pixel}s and returns a `{boolean}`. If the condition is met,\n * true should be returned.\n * @typedef {function(this: ?, import(\"../MapBrowserEvent.js\").default, import(\"../pixel.js\").Pixel, import(\"../pixel.js\").Pixel):boolean} EndCondition\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-dragbox'] CSS class name for styling the box.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a boolean\n * to indicate whether that event should be handled.\n * Default is {@link ol/events/condition~mouseActionButton}.\n * @property {number} [minArea=64] The minimum area of the box in pixel, this value is used by the default\n * `boxEndCondition` function.\n * @property {EndCondition} [boxEndCondition] A function that takes a {@link module:ol/MapBrowserEvent~MapBrowserEvent} and two\n * {@link module:ol/pixel~Pixel}s to indicate whether a `boxend` event should be fired.\n * Default is `true` if the area of the box is bigger than the `minArea` option.\n * @property {function(this:DragBox, import(\"../MapBrowserEvent.js\").default):void} [onBoxEnd] Code to execute just\n * before `boxend` is fired.\n */\n/**\n * @enum {string}\n */\nvar DragBoxEventType = {\n /**\n * Triggered upon drag box start.\n * @event DragBoxEvent#boxstart\n * @api\n */\n BOXSTART: 'boxstart',\n /**\n * Triggered on drag when box is active.\n * @event DragBoxEvent#boxdrag\n * @api\n */\n BOXDRAG: 'boxdrag',\n /**\n * Triggered upon drag box end.\n * @event DragBoxEvent#boxend\n * @api\n */\n BOXEND: 'boxend',\n /**\n * Triggered upon drag box canceled.\n * @event DragBoxEvent#boxcancel\n * @api\n */\n BOXCANCEL: 'boxcancel',\n};\n/**\n * @classdesc\n * Events emitted by {@link module:ol/interaction/DragBox~DragBox} instances are instances of\n * this type.\n */\nvar DragBoxEvent = /** @class */ (function (_super) {\n __extends(DragBoxEvent, _super);\n /**\n * @param {string} type The event type.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate The event coordinate.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Originating event.\n */\n function DragBoxEvent(type, coordinate, mapBrowserEvent) {\n var _this = _super.call(this, type) || this;\n /**\n * The coordinate of the drag event.\n * @const\n * @type {import(\"../coordinate.js\").Coordinate}\n * @api\n */\n _this.coordinate = coordinate;\n /**\n * @const\n * @type {import(\"../MapBrowserEvent.js\").default}\n * @api\n */\n _this.mapBrowserEvent = mapBrowserEvent;\n return _this;\n }\n return DragBoxEvent;\n}(Event));\nexport { DragBoxEvent };\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature<'boxcancel'|'boxdrag'|'boxend'|'boxstart', DragBoxEvent, Return> &\n * import(\"../Observable\").CombinedOnSignature} DragBoxOnSignature\n */\n/**\n * @classdesc\n * Allows the user to draw a vector box by clicking and dragging on the map,\n * normally combined with an {@link module:ol/events/condition} that limits\n * it to when the shift or other key is held down. This is used, for example,\n * for zooming to a specific area of the map\n * (see {@link module:ol/interaction/DragZoom~DragZoom} and\n * {@link module:ol/interaction/DragRotateAndZoom~DragRotateAndZoom}).\n *\n * @fires DragBoxEvent\n * @api\n */\nvar DragBox = /** @class */ (function (_super) {\n __extends(DragBox, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DragBox(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {DragBoxOnSignature}\n */\n _this.on;\n /***\n * @type {DragBoxOnSignature}\n */\n _this.once;\n /***\n * @type {DragBoxOnSignature}\n */\n _this.un;\n var options = opt_options ? opt_options : {};\n /**\n * @type {import(\"../render/Box.js\").default}\n * @private\n */\n _this.box_ = new RenderBox(options.className || 'ol-dragbox');\n /**\n * @type {number}\n * @private\n */\n _this.minArea_ = options.minArea !== undefined ? options.minArea : 64;\n if (options.onBoxEnd) {\n _this.onBoxEnd = options.onBoxEnd;\n }\n /**\n * @type {import(\"../pixel.js\").Pixel}\n * @private\n */\n _this.startPixel_ = null;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : mouseActionButton;\n /**\n * @private\n * @type {EndCondition}\n */\n _this.boxEndCondition_ = options.boxEndCondition\n ? options.boxEndCondition\n : _this.defaultBoxEndCondition;\n return _this;\n }\n /**\n * The default condition for determining whether the boxend event\n * should fire.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent The originating MapBrowserEvent\n * leading to the box end.\n * @param {import(\"../pixel.js\").Pixel} startPixel The starting pixel of the box.\n * @param {import(\"../pixel.js\").Pixel} endPixel The end pixel of the box.\n * @return {boolean} Whether or not the boxend condition should be fired.\n */\n DragBox.prototype.defaultBoxEndCondition = function (mapBrowserEvent, startPixel, endPixel) {\n var width = endPixel[0] - startPixel[0];\n var height = endPixel[1] - startPixel[1];\n return width * width + height * height >= this.minArea_;\n };\n /**\n * Returns geometry of last drawn box.\n * @return {import(\"../geom/Polygon.js\").default} Geometry.\n * @api\n */\n DragBox.prototype.getGeometry = function () {\n return this.box_.getGeometry();\n };\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n DragBox.prototype.handleDragEvent = function (mapBrowserEvent) {\n this.box_.setPixels(this.startPixel_, mapBrowserEvent.pixel);\n this.dispatchEvent(new DragBoxEvent(DragBoxEventType.BOXDRAG, mapBrowserEvent.coordinate, mapBrowserEvent));\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragBox.prototype.handleUpEvent = function (mapBrowserEvent) {\n this.box_.setMap(null);\n var completeBox = this.boxEndCondition_(mapBrowserEvent, this.startPixel_, mapBrowserEvent.pixel);\n if (completeBox) {\n this.onBoxEnd(mapBrowserEvent);\n }\n this.dispatchEvent(new DragBoxEvent(completeBox ? DragBoxEventType.BOXEND : DragBoxEventType.BOXCANCEL, mapBrowserEvent.coordinate, mapBrowserEvent));\n return false;\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n DragBox.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (this.condition_(mapBrowserEvent)) {\n this.startPixel_ = mapBrowserEvent.pixel;\n this.box_.setMap(mapBrowserEvent.map);\n this.box_.setPixels(this.startPixel_, this.startPixel_);\n this.dispatchEvent(new DragBoxEvent(DragBoxEventType.BOXSTART, mapBrowserEvent.coordinate, mapBrowserEvent));\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Function to execute just before `onboxend` is fired\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n */\n DragBox.prototype.onBoxEnd = function (event) { };\n return DragBox;\n}(PointerInteraction));\nexport default DragBox;\n//# sourceMappingURL=DragBox.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/DragZoom\n */\nimport DragBox from './DragBox.js';\nimport { easeOut } from '../easing.js';\nimport { shiftKeyOnly } from '../events/condition.js';\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-dragzoom'] CSS class name for styling the\n * box.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled.\n * Default is {@link module:ol/events/condition.shiftKeyOnly}.\n * @property {number} [duration=200] Animation duration in milliseconds.\n * @property {boolean} [out=false] Use interaction for zooming out.\n * @property {number} [minArea=64] The minimum area of the box in pixel, this value is used by the parent default\n * `boxEndCondition` function.\n */\n/**\n * @classdesc\n * Allows the user to zoom the map by clicking and dragging on the map,\n * normally combined with an {@link module:ol/events/condition} that limits\n * it to when a key, shift by default, is held down.\n *\n * To change the style of the box, use CSS and the `.ol-dragzoom` selector, or\n * your custom one configured with `className`.\n * @api\n */\nvar DragZoom = /** @class */ (function (_super) {\n __extends(DragZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function DragZoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var condition = options.condition ? options.condition : shiftKeyOnly;\n _this = _super.call(this, {\n condition: condition,\n className: options.className || 'ol-dragzoom',\n minArea: options.minArea,\n }) || this;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 200;\n /**\n * @private\n * @type {boolean}\n */\n _this.out_ = options.out !== undefined ? options.out : false;\n return _this;\n }\n /**\n * Function to execute just before `onboxend` is fired\n * @param {import(\"../MapBrowserEvent.js\").default} event Event.\n */\n DragZoom.prototype.onBoxEnd = function (event) {\n var map = this.getMap();\n var view = /** @type {!import(\"../View.js\").default} */ (map.getView());\n var geometry = this.getGeometry();\n if (this.out_) {\n var rotatedExtent = view.rotatedExtentForGeometry(geometry);\n var resolution = view.getResolutionForExtentInternal(rotatedExtent);\n var factor = view.getResolution() / resolution;\n geometry = geometry.clone();\n geometry.scale(factor * factor);\n }\n view.fitInternal(geometry, {\n duration: this.duration_,\n easing: easeOut,\n });\n };\n return DragZoom;\n}(DragBox));\nexport default DragZoom;\n//# sourceMappingURL=DragZoom.js.map","/**\n * @module ol/events/KeyCode\n */\n/**\n * @enum {number}\n * @const\n */\nexport default {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n};\n//# sourceMappingURL=KeyCode.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/KeyboardPan\n */\nimport EventType from '../events/EventType.js';\nimport Interaction, { pan } from './Interaction.js';\nimport KeyCode from '../events/KeyCode.js';\nimport { noModifierKeys, targetNotEditable } from '../events/condition.js';\nimport { rotate as rotateCoordinate } from '../coordinate.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. Default is\n * {@link module:ol/events/condition.noModifierKeys} and\n * {@link module:ol/events/condition.targetNotEditable}.\n * @property {number} [duration=100] Animation duration in milliseconds.\n * @property {number} [pixelDelta=128] The amount of pixels to pan on each key\n * press.\n */\n/**\n * @classdesc\n * Allows the user to pan the map using keyboard arrows.\n * Note that, although this interaction is by default included in maps,\n * the keys can only be used when browser focus is on the element to which\n * the keyboard events are attached. By default, this is the map div,\n * though you can change this with the `keyboardEventTarget` in\n * {@link module:ol/Map~Map}. `document` never loses focus but, for any other\n * element, focus will have to be on, and returned to, this element if the keys\n * are to function.\n * See also {@link module:ol/interaction/KeyboardZoom~KeyboardZoom}.\n * @api\n */\nvar KeyboardPan = /** @class */ (function (_super) {\n __extends(KeyboardPan, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function KeyboardPan(opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options || {};\n /**\n * @private\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Browser event.\n * @return {boolean} Combined condition result.\n */\n _this.defaultCondition_ = function (mapBrowserEvent) {\n return (noModifierKeys(mapBrowserEvent) && targetNotEditable(mapBrowserEvent));\n };\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ =\n options.condition !== undefined\n ? options.condition\n : _this.defaultCondition_;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 100;\n /**\n * @private\n * @type {number}\n */\n _this.pixelDelta_ =\n options.pixelDelta !== undefined ? options.pixelDelta : 128;\n return _this;\n }\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} if it was a\n * `KeyEvent`, and decides the direction to pan to (if an arrow key was\n * pressed).\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @this {KeyboardPan}\n */\n KeyboardPan.prototype.handleEvent = function (mapBrowserEvent) {\n var stopEvent = false;\n if (mapBrowserEvent.type == EventType.KEYDOWN) {\n var keyEvent = /** @type {KeyboardEvent} */ (mapBrowserEvent.originalEvent);\n var keyCode = keyEvent.keyCode;\n if (this.condition_(mapBrowserEvent) &&\n (keyCode == KeyCode.DOWN ||\n keyCode == KeyCode.LEFT ||\n keyCode == KeyCode.RIGHT ||\n keyCode == KeyCode.UP)) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n var mapUnitsDelta = view.getResolution() * this.pixelDelta_;\n var deltaX = 0, deltaY = 0;\n if (keyCode == KeyCode.DOWN) {\n deltaY = -mapUnitsDelta;\n }\n else if (keyCode == KeyCode.LEFT) {\n deltaX = -mapUnitsDelta;\n }\n else if (keyCode == KeyCode.RIGHT) {\n deltaX = mapUnitsDelta;\n }\n else {\n deltaY = mapUnitsDelta;\n }\n var delta = [deltaX, deltaY];\n rotateCoordinate(delta, view.getRotation());\n pan(view, delta, this.duration_);\n keyEvent.preventDefault();\n stopEvent = true;\n }\n }\n return !stopEvent;\n };\n return KeyboardPan;\n}(Interaction));\nexport default KeyboardPan;\n//# sourceMappingURL=KeyboardPan.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/KeyboardZoom\n */\nimport EventType from '../events/EventType.js';\nimport Interaction, { zoomByDelta } from './Interaction.js';\nimport { targetNotEditable } from '../events/condition.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=100] Animation duration in milliseconds.\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. Default is\n * {@link module:ol/events/condition.targetNotEditable}.\n * @property {number} [delta=1] The zoom level delta on each key press.\n */\n/**\n * @classdesc\n * Allows the user to zoom the map using keyboard + and -.\n * Note that, although this interaction is by default included in maps,\n * the keys can only be used when browser focus is on the element to which\n * the keyboard events are attached. By default, this is the map div,\n * though you can change this with the `keyboardEventTarget` in\n * {@link module:ol/Map~Map}. `document` never loses focus but, for any other\n * element, focus will have to be on, and returned to, this element if the keys\n * are to function.\n * See also {@link module:ol/interaction/KeyboardPan~KeyboardPan}.\n * @api\n */\nvar KeyboardZoom = /** @class */ (function (_super) {\n __extends(KeyboardZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function KeyboardZoom(opt_options) {\n var _this = _super.call(this) || this;\n var options = opt_options ? opt_options : {};\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.condition ? options.condition : targetNotEditable;\n /**\n * @private\n * @type {number}\n */\n _this.delta_ = options.delta ? options.delta : 1;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 100;\n return _this;\n }\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} if it was a\n * `KeyEvent`, and decides whether to zoom in or out (depending on whether the\n * key pressed was '+' or '-').\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @this {KeyboardZoom}\n */\n KeyboardZoom.prototype.handleEvent = function (mapBrowserEvent) {\n var stopEvent = false;\n if (mapBrowserEvent.type == EventType.KEYDOWN ||\n mapBrowserEvent.type == EventType.KEYPRESS) {\n var keyEvent = /** @type {KeyboardEvent} */ (mapBrowserEvent.originalEvent);\n var charCode = keyEvent.charCode;\n if (this.condition_(mapBrowserEvent) &&\n (charCode == '+'.charCodeAt(0) || charCode == '-'.charCodeAt(0))) {\n var map = mapBrowserEvent.map;\n var delta = charCode == '+'.charCodeAt(0) ? this.delta_ : -this.delta_;\n var view = map.getView();\n zoomByDelta(view, delta, undefined, this.duration_);\n keyEvent.preventDefault();\n stopEvent = true;\n }\n }\n return !stopEvent;\n };\n return KeyboardZoom;\n}(Interaction));\nexport default KeyboardZoom;\n//# sourceMappingURL=KeyboardZoom.js.map","/**\n * @module ol/Kinetic\n */\n/**\n * @classdesc\n * Implementation of inertial deceleration for map movement.\n *\n * @api\n */\nvar Kinetic = /** @class */ (function () {\n /**\n * @param {number} decay Rate of decay (must be negative).\n * @param {number} minVelocity Minimum velocity (pixels/millisecond).\n * @param {number} delay Delay to consider to calculate the kinetic\n * initial values (milliseconds).\n */\n function Kinetic(decay, minVelocity, delay) {\n /**\n * @private\n * @type {number}\n */\n this.decay_ = decay;\n /**\n * @private\n * @type {number}\n */\n this.minVelocity_ = minVelocity;\n /**\n * @private\n * @type {number}\n */\n this.delay_ = delay;\n /**\n * @private\n * @type {Array}\n */\n this.points_ = [];\n /**\n * @private\n * @type {number}\n */\n this.angle_ = 0;\n /**\n * @private\n * @type {number}\n */\n this.initialVelocity_ = 0;\n }\n /**\n * FIXME empty description for jsdoc\n */\n Kinetic.prototype.begin = function () {\n this.points_.length = 0;\n this.angle_ = 0;\n this.initialVelocity_ = 0;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n */\n Kinetic.prototype.update = function (x, y) {\n this.points_.push(x, y, Date.now());\n };\n /**\n * @return {boolean} Whether we should do kinetic animation.\n */\n Kinetic.prototype.end = function () {\n if (this.points_.length < 6) {\n // at least 2 points are required (i.e. there must be at least 6 elements\n // in the array)\n return false;\n }\n var delay = Date.now() - this.delay_;\n var lastIndex = this.points_.length - 3;\n if (this.points_[lastIndex + 2] < delay) {\n // the last tracked point is too old, which means that the user stopped\n // panning before releasing the map\n return false;\n }\n // get the first point which still falls into the delay time\n var firstIndex = lastIndex - 3;\n while (firstIndex > 0 && this.points_[firstIndex + 2] > delay) {\n firstIndex -= 3;\n }\n var duration = this.points_[lastIndex + 2] - this.points_[firstIndex + 2];\n // we don't want a duration of 0 (divide by zero)\n // we also make sure the user panned for a duration of at least one frame\n // (1/60s) to compute sane displacement values\n if (duration < 1000 / 60) {\n return false;\n }\n var dx = this.points_[lastIndex] - this.points_[firstIndex];\n var dy = this.points_[lastIndex + 1] - this.points_[firstIndex + 1];\n this.angle_ = Math.atan2(dy, dx);\n this.initialVelocity_ = Math.sqrt(dx * dx + dy * dy) / duration;\n return this.initialVelocity_ > this.minVelocity_;\n };\n /**\n * @return {number} Total distance travelled (pixels).\n */\n Kinetic.prototype.getDistance = function () {\n return (this.minVelocity_ - this.initialVelocity_) / this.decay_;\n };\n /**\n * @return {number} Angle of the kinetic panning animation (radians).\n */\n Kinetic.prototype.getAngle = function () {\n return this.angle_;\n };\n return Kinetic;\n}());\nexport default Kinetic;\n//# sourceMappingURL=Kinetic.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/MouseWheelZoom\n */\nimport EventType from '../events/EventType.js';\nimport Interaction, { zoomByDelta } from './Interaction.js';\nimport { DEVICE_PIXEL_RATIO, FIREFOX } from '../has.js';\nimport { all, always, focusWithTabindex } from '../events/condition.js';\nimport { clamp } from '../math.js';\n/**\n * @enum {string}\n */\nexport var Mode = {\n TRACKPAD: 'trackpad',\n WHEEL: 'wheel',\n};\n/**\n * @typedef {Object} Options\n * @property {import(\"../events/condition.js\").Condition} [condition] A function that\n * takes an {@link module:ol/MapBrowserEvent~MapBrowserEvent} and returns a\n * boolean to indicate whether that event should be handled. Default is\n * {@link module:ol/events/condition.always}.\n * @property {boolean} [onFocusOnly=false] When the map's target has a `tabindex` attribute set,\n * the interaction will only handle events when the map has the focus.\n * @property {number} [maxDelta=1] Maximum mouse wheel delta.\n * @property {number} [duration=250] Animation duration in milliseconds.\n * @property {number} [timeout=80] Mouse wheel timeout duration in milliseconds.\n * @property {boolean} [useAnchor=true] Enable zooming using the mouse's\n * location as the anchor. When set to `false`, zooming in and out will zoom to\n * the center of the screen instead of zooming on the mouse's location.\n * @property {boolean} [constrainResolution=false] If true, the mouse wheel zoom\n * event will always animate to the closest zoom level after an interaction;\n * false means intermediary zoom levels are allowed.\n */\n/**\n * @classdesc\n * Allows the user to zoom the map by scrolling the mouse wheel.\n * @api\n */\nvar MouseWheelZoom = /** @class */ (function (_super) {\n __extends(MouseWheelZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function MouseWheelZoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, \n /** @type {import(\"./Interaction.js\").InteractionOptions} */ (options)) || this;\n /**\n * @private\n * @type {number}\n */\n _this.totalDelta_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.lastDelta_ = 0;\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = options.maxDelta !== undefined ? options.maxDelta : 1;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n /**\n * @private\n * @type {number}\n */\n _this.timeout_ = options.timeout !== undefined ? options.timeout : 80;\n /**\n * @private\n * @type {boolean}\n */\n _this.useAnchor_ =\n options.useAnchor !== undefined ? options.useAnchor : true;\n /**\n * @private\n * @type {boolean}\n */\n _this.constrainResolution_ =\n options.constrainResolution !== undefined\n ? options.constrainResolution\n : false;\n var condition = options.condition ? options.condition : always;\n /**\n * @private\n * @type {import(\"../events/condition.js\").Condition}\n */\n _this.condition_ = options.onFocusOnly\n ? all(focusWithTabindex, condition)\n : condition;\n /**\n * @private\n * @type {?import(\"../coordinate.js\").Coordinate}\n */\n _this.lastAnchor_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.startTime_ = undefined;\n /**\n * @private\n * @type {?}\n */\n _this.timeoutId_;\n /**\n * @private\n * @type {Mode|undefined}\n */\n _this.mode_ = undefined;\n /**\n * Trackpad events separated by this delay will be considered separate\n * interactions.\n * @type {number}\n */\n _this.trackpadEventGap_ = 400;\n /**\n * @type {?}\n */\n _this.trackpadTimeoutId_;\n /**\n * The number of delta values per zoom level\n * @private\n * @type {number}\n */\n _this.deltaPerZoom_ = 300;\n return _this;\n }\n /**\n * @private\n */\n MouseWheelZoom.prototype.endInteraction_ = function () {\n this.trackpadTimeoutId_ = undefined;\n var map = this.getMap();\n if (!map) {\n return;\n }\n var view = map.getView();\n view.endInteraction(undefined, this.lastDelta_ ? (this.lastDelta_ > 0 ? 1 : -1) : 0, this.lastAnchor_);\n };\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} (if it was a mousewheel-event) and eventually\n * zooms the map.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n */\n MouseWheelZoom.prototype.handleEvent = function (mapBrowserEvent) {\n if (!this.condition_(mapBrowserEvent)) {\n return true;\n }\n var type = mapBrowserEvent.type;\n if (type !== EventType.WHEEL) {\n return true;\n }\n var map = mapBrowserEvent.map;\n var wheelEvent = /** @type {WheelEvent} */ (mapBrowserEvent.originalEvent);\n wheelEvent.preventDefault();\n if (this.useAnchor_) {\n this.lastAnchor_ = mapBrowserEvent.coordinate;\n }\n // Delta normalisation inspired by\n // https://github.com/mapbox/mapbox-gl-js/blob/001c7b9/js/ui/handler/scroll_zoom.js\n var delta;\n if (mapBrowserEvent.type == EventType.WHEEL) {\n delta = wheelEvent.deltaY;\n if (FIREFOX && wheelEvent.deltaMode === WheelEvent.DOM_DELTA_PIXEL) {\n delta /= DEVICE_PIXEL_RATIO;\n }\n if (wheelEvent.deltaMode === WheelEvent.DOM_DELTA_LINE) {\n delta *= 40;\n }\n }\n if (delta === 0) {\n return false;\n }\n else {\n this.lastDelta_ = delta;\n }\n var now = Date.now();\n if (this.startTime_ === undefined) {\n this.startTime_ = now;\n }\n if (!this.mode_ || now - this.startTime_ > this.trackpadEventGap_) {\n this.mode_ = Math.abs(delta) < 4 ? Mode.TRACKPAD : Mode.WHEEL;\n }\n var view = map.getView();\n if (this.mode_ === Mode.TRACKPAD &&\n !(view.getConstrainResolution() || this.constrainResolution_)) {\n if (this.trackpadTimeoutId_) {\n clearTimeout(this.trackpadTimeoutId_);\n }\n else {\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.beginInteraction();\n }\n this.trackpadTimeoutId_ = setTimeout(this.endInteraction_.bind(this), this.timeout_);\n view.adjustZoom(-delta / this.deltaPerZoom_, this.lastAnchor_);\n this.startTime_ = now;\n return false;\n }\n this.totalDelta_ += delta;\n var timeLeft = Math.max(this.timeout_ - (now - this.startTime_), 0);\n clearTimeout(this.timeoutId_);\n this.timeoutId_ = setTimeout(this.handleWheelZoom_.bind(this, map), timeLeft);\n return false;\n };\n /**\n * @private\n * @param {import(\"../PluggableMap.js\").default} map Map.\n */\n MouseWheelZoom.prototype.handleWheelZoom_ = function (map) {\n var view = map.getView();\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n var delta = -clamp(this.totalDelta_, -this.maxDelta_ * this.deltaPerZoom_, this.maxDelta_ * this.deltaPerZoom_) / this.deltaPerZoom_;\n if (view.getConstrainResolution() || this.constrainResolution_) {\n // view has a zoom constraint, zoom by 1\n delta = delta ? (delta > 0 ? 1 : -1) : 0;\n }\n zoomByDelta(view, delta, this.lastAnchor_, this.duration_);\n this.mode_ = undefined;\n this.totalDelta_ = 0;\n this.lastAnchor_ = null;\n this.startTime_ = undefined;\n this.timeoutId_ = undefined;\n };\n /**\n * Enable or disable using the mouse's location as an anchor when zooming\n * @param {boolean} useAnchor true to zoom to the mouse's location, false\n * to zoom to the center of the map\n * @api\n */\n MouseWheelZoom.prototype.setMouseAnchor = function (useAnchor) {\n this.useAnchor_ = useAnchor;\n if (!useAnchor) {\n this.lastAnchor_ = null;\n }\n };\n return MouseWheelZoom;\n}(Interaction));\nexport default MouseWheelZoom;\n//# sourceMappingURL=MouseWheelZoom.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/PinchRotate\n */\nimport PointerInteraction, { centroid as centroidFromPointers, } from './Pointer.js';\nimport { FALSE } from '../functions.js';\nimport { disable } from '../rotationconstraint.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=250] The duration of the animation in\n * milliseconds.\n * @property {number} [threshold=0.3] Minimal angle in radians to start a rotation.\n */\n/**\n * @classdesc\n * Allows the user to rotate the map by twisting with two fingers\n * on a touch screen.\n * @api\n */\nvar PinchRotate = /** @class */ (function (_super) {\n __extends(PinchRotate, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function PinchRotate(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var pointerOptions = /** @type {import(\"./Pointer.js\").Options} */ (options);\n if (!pointerOptions.stopDown) {\n pointerOptions.stopDown = FALSE;\n }\n _this = _super.call(this, pointerOptions) || this;\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n _this.anchor_ = null;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.lastAngle_ = undefined;\n /**\n * @private\n * @type {boolean}\n */\n _this.rotating_ = false;\n /**\n * @private\n * @type {number}\n */\n _this.rotationDelta_ = 0.0;\n /**\n * @private\n * @type {number}\n */\n _this.threshold_ = options.threshold !== undefined ? options.threshold : 0.3;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 250;\n return _this;\n }\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n PinchRotate.prototype.handleDragEvent = function (mapBrowserEvent) {\n var rotationDelta = 0.0;\n var touch0 = this.targetPointers[0];\n var touch1 = this.targetPointers[1];\n // angle between touches\n var angle = Math.atan2(touch1.clientY - touch0.clientY, touch1.clientX - touch0.clientX);\n if (this.lastAngle_ !== undefined) {\n var delta = angle - this.lastAngle_;\n this.rotationDelta_ += delta;\n if (!this.rotating_ && Math.abs(this.rotationDelta_) > this.threshold_) {\n this.rotating_ = true;\n }\n rotationDelta = delta;\n }\n this.lastAngle_ = angle;\n var map = mapBrowserEvent.map;\n var view = map.getView();\n if (view.getConstraints().rotation === disable) {\n return;\n }\n // rotate anchor point.\n // FIXME: should be the intersection point between the lines:\n // touch0,touch1 and previousTouch0,previousTouch1\n var viewportPosition = map.getViewport().getBoundingClientRect();\n var centroid = centroidFromPointers(this.targetPointers);\n centroid[0] -= viewportPosition.left;\n centroid[1] -= viewportPosition.top;\n this.anchor_ = map.getCoordinateFromPixelInternal(centroid);\n // rotate\n if (this.rotating_) {\n map.render();\n view.adjustRotationInternal(rotationDelta, this.anchor_);\n }\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n PinchRotate.prototype.handleUpEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length < 2) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n view.endInteraction(this.duration_);\n return false;\n }\n else {\n return true;\n }\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n PinchRotate.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length >= 2) {\n var map = mapBrowserEvent.map;\n this.anchor_ = null;\n this.lastAngle_ = undefined;\n this.rotating_ = false;\n this.rotationDelta_ = 0.0;\n if (!this.handlingDownUpSequence) {\n map.getView().beginInteraction();\n }\n return true;\n }\n else {\n return false;\n }\n };\n return PinchRotate;\n}(PointerInteraction));\nexport default PinchRotate;\n//# sourceMappingURL=PinchRotate.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/PinchZoom\n */\nimport PointerInteraction, { centroid as centroidFromPointers, } from './Pointer.js';\nimport { FALSE } from '../functions.js';\n/**\n * @typedef {Object} Options\n * @property {number} [duration=400] Animation duration in milliseconds.\n */\n/**\n * @classdesc\n * Allows the user to zoom the map by pinching with two fingers\n * on a touch screen.\n * @api\n */\nvar PinchZoom = /** @class */ (function (_super) {\n __extends(PinchZoom, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function PinchZoom(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var pointerOptions = /** @type {import(\"./Pointer.js\").Options} */ (options);\n if (!pointerOptions.stopDown) {\n pointerOptions.stopDown = FALSE;\n }\n _this = _super.call(this, pointerOptions) || this;\n /**\n * @private\n * @type {import(\"../coordinate.js\").Coordinate}\n */\n _this.anchor_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.duration_ = options.duration !== undefined ? options.duration : 400;\n /**\n * @private\n * @type {number|undefined}\n */\n _this.lastDistance_ = undefined;\n /**\n * @private\n * @type {number}\n */\n _this.lastScaleDelta_ = 1;\n return _this;\n }\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n */\n PinchZoom.prototype.handleDragEvent = function (mapBrowserEvent) {\n var scaleDelta = 1.0;\n var touch0 = this.targetPointers[0];\n var touch1 = this.targetPointers[1];\n var dx = touch0.clientX - touch1.clientX;\n var dy = touch0.clientY - touch1.clientY;\n // distance between touches\n var distance = Math.sqrt(dx * dx + dy * dy);\n if (this.lastDistance_ !== undefined) {\n scaleDelta = this.lastDistance_ / distance;\n }\n this.lastDistance_ = distance;\n var map = mapBrowserEvent.map;\n var view = map.getView();\n if (scaleDelta != 1.0) {\n this.lastScaleDelta_ = scaleDelta;\n }\n // scale anchor point.\n var viewportPosition = map.getViewport().getBoundingClientRect();\n var centroid = centroidFromPointers(this.targetPointers);\n centroid[0] -= viewportPosition.left;\n centroid[1] -= viewportPosition.top;\n this.anchor_ = map.getCoordinateFromPixelInternal(centroid);\n // scale, bypass the resolution constraint\n map.render();\n view.adjustResolutionInternal(scaleDelta, this.anchor_);\n };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n PinchZoom.prototype.handleUpEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length < 2) {\n var map = mapBrowserEvent.map;\n var view = map.getView();\n var direction = this.lastScaleDelta_ > 1 ? 1 : -1;\n view.endInteraction(this.duration_, direction);\n return false;\n }\n else {\n return true;\n }\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n */\n PinchZoom.prototype.handleDownEvent = function (mapBrowserEvent) {\n if (this.targetPointers.length >= 2) {\n var map = mapBrowserEvent.map;\n this.anchor_ = null;\n this.lastDistance_ = undefined;\n this.lastScaleDelta_ = 1;\n if (!this.handlingDownUpSequence) {\n map.getView().beginInteraction();\n }\n return true;\n }\n else {\n return false;\n }\n };\n return PinchZoom;\n}(PointerInteraction));\nexport default PinchZoom;\n//# sourceMappingURL=PinchZoom.js.map","/**\n * @module ol/interaction\n */\nimport Collection from './Collection.js';\nimport DoubleClickZoom from './interaction/DoubleClickZoom.js';\nimport DragPan from './interaction/DragPan.js';\nimport DragRotate from './interaction/DragRotate.js';\nimport DragZoom from './interaction/DragZoom.js';\nimport KeyboardPan from './interaction/KeyboardPan.js';\nimport KeyboardZoom from './interaction/KeyboardZoom.js';\nimport Kinetic from './Kinetic.js';\nimport MouseWheelZoom from './interaction/MouseWheelZoom.js';\nimport PinchRotate from './interaction/PinchRotate.js';\nimport PinchZoom from './interaction/PinchZoom.js';\nexport { default as DoubleClickZoom } from './interaction/DoubleClickZoom.js';\nexport { default as DragAndDrop } from './interaction/DragAndDrop.js';\nexport { default as DragBox } from './interaction/DragBox.js';\nexport { default as DragPan } from './interaction/DragPan.js';\nexport { default as DragRotate } from './interaction/DragRotate.js';\nexport { default as DragRotateAndZoom } from './interaction/DragRotateAndZoom.js';\nexport { default as DragZoom } from './interaction/DragZoom.js';\nexport { default as Draw } from './interaction/Draw.js';\nexport { default as Extent } from './interaction/Extent.js';\nexport { default as Interaction } from './interaction/Interaction.js';\nexport { default as KeyboardPan } from './interaction/KeyboardPan.js';\nexport { default as KeyboardZoom } from './interaction/KeyboardZoom.js';\nexport { default as Modify } from './interaction/Modify.js';\nexport { default as MouseWheelZoom } from './interaction/MouseWheelZoom.js';\nexport { default as PinchRotate } from './interaction/PinchRotate.js';\nexport { default as PinchZoom } from './interaction/PinchZoom.js';\nexport { default as Pointer } from './interaction/Pointer.js';\nexport { default as Select } from './interaction/Select.js';\nexport { default as Snap } from './interaction/Snap.js';\nexport { default as Translate } from './interaction/Translate.js';\n/**\n * @typedef {Object} DefaultsOptions\n * @property {boolean} [altShiftDragRotate=true] Whether Alt-Shift-drag rotate is\n * desired.\n * @property {boolean} [onFocusOnly=false] Interact only when the map has the\n * focus. This affects the `MouseWheelZoom` and `DragPan` interactions and is\n * useful when page scroll is desired for maps that do not have the browser's\n * focus.\n * @property {boolean} [doubleClickZoom=true] Whether double click zoom is\n * desired.\n * @property {boolean} [keyboard=true] Whether keyboard interaction is desired.\n * @property {boolean} [mouseWheelZoom=true] Whether mousewheel zoom is desired.\n * @property {boolean} [shiftDragZoom=true] Whether Shift-drag zoom is desired.\n * @property {boolean} [dragPan=true] Whether drag pan is desired.\n * @property {boolean} [pinchRotate=true] Whether pinch rotate is desired.\n * @property {boolean} [pinchZoom=true] Whether pinch zoom is desired.\n * @property {number} [zoomDelta] Zoom level delta when using keyboard or double click zoom.\n * @property {number} [zoomDuration] Duration of the zoom animation in\n * milliseconds.\n */\n/**\n * Set of interactions included in maps by default. Specific interactions can be\n * excluded by setting the appropriate option to false in the constructor\n * options, but the order of the interactions is fixed. If you want to specify\n * a different order for interactions, you will need to create your own\n * {@link module:ol/interaction/Interaction~Interaction} instances and insert\n * them into a {@link module:ol/Collection~Collection} in the order you want\n * before creating your {@link module:ol/Map~Map} instance. Changing the order can\n * be of interest if the event propagation needs to be stopped at a point.\n * The default set of interactions, in sequence, is:\n * * {@link module:ol/interaction/DragRotate~DragRotate}\n * * {@link module:ol/interaction/DoubleClickZoom~DoubleClickZoom}\n * * {@link module:ol/interaction/DragPan~DragPan}\n * * {@link module:ol/interaction/PinchRotate~PinchRotate}\n * * {@link module:ol/interaction/PinchZoom~PinchZoom}\n * * {@link module:ol/interaction/KeyboardPan~KeyboardPan}\n * * {@link module:ol/interaction/KeyboardZoom~KeyboardZoom}\n * * {@link module:ol/interaction/MouseWheelZoom~MouseWheelZoom}\n * * {@link module:ol/interaction/DragZoom~DragZoom}\n *\n * @param {DefaultsOptions} [opt_options] Defaults options.\n * @return {import(\"./Collection.js\").default}\n * A collection of interactions to be used with the {@link module:ol/Map~Map}\n * constructor's `interactions` option.\n * @api\n */\nexport function defaults(opt_options) {\n var options = opt_options ? opt_options : {};\n var interactions = new Collection();\n var kinetic = new Kinetic(-0.005, 0.05, 100);\n var altShiftDragRotate = options.altShiftDragRotate !== undefined\n ? options.altShiftDragRotate\n : true;\n if (altShiftDragRotate) {\n interactions.push(new DragRotate());\n }\n var doubleClickZoom = options.doubleClickZoom !== undefined ? options.doubleClickZoom : true;\n if (doubleClickZoom) {\n interactions.push(new DoubleClickZoom({\n delta: options.zoomDelta,\n duration: options.zoomDuration,\n }));\n }\n var dragPan = options.dragPan !== undefined ? options.dragPan : true;\n if (dragPan) {\n interactions.push(new DragPan({\n onFocusOnly: options.onFocusOnly,\n kinetic: kinetic,\n }));\n }\n var pinchRotate = options.pinchRotate !== undefined ? options.pinchRotate : true;\n if (pinchRotate) {\n interactions.push(new PinchRotate());\n }\n var pinchZoom = options.pinchZoom !== undefined ? options.pinchZoom : true;\n if (pinchZoom) {\n interactions.push(new PinchZoom({\n duration: options.zoomDuration,\n }));\n }\n var keyboard = options.keyboard !== undefined ? options.keyboard : true;\n if (keyboard) {\n interactions.push(new KeyboardPan());\n interactions.push(new KeyboardZoom({\n delta: options.zoomDelta,\n duration: options.zoomDuration,\n }));\n }\n var mouseWheelZoom = options.mouseWheelZoom !== undefined ? options.mouseWheelZoom : true;\n if (mouseWheelZoom) {\n interactions.push(new MouseWheelZoom({\n onFocusOnly: options.onFocusOnly,\n duration: options.zoomDuration,\n }));\n }\n var shiftDragZoom = options.shiftDragZoom !== undefined ? options.shiftDragZoom : true;\n if (shiftDragZoom) {\n interactions.push(new DragZoom({\n duration: options.zoomDuration,\n }));\n }\n return interactions;\n}\n//# sourceMappingURL=interaction.js.map","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"content-map\"}},[_c('rutify-here-map',{class:[_vm.calledFrom === 'maps' ? 'themap map-custom-container' : 'themap map-custom-container-calendar'],attrs:{\"name\":\"theMap\",\"lat\":_vm.latitude ? _vm.latitude : '4.671469',\"lng\":_vm.longitude ? _vm.longitude : '-74.073240',\"zoom\":_vm.zoom ? _vm.zoom : '12',\"width\":_vm.width ? _vm.width : _vm.widthMap,\"height\":_vm.height ? _vm.height : '100vh',\"theme\":_vm.mapTheme,\"module\":_vm.calledFrom}}),(_vm.calledFrom === 'maps')?_c('map-view-sidebar',{ref:\"mapviewsidebar\",attrs:{\"isSidebarActive\":_vm.isSidebarActive,\"handleChangeGroupTrigger\":_vm.handleChangeGroup},on:{\"closeSidebar\":_vm.toggleDataSidebar}}):_vm._e(),(_vm.calledFrom === 'maps')?_c('vs-button',{staticClass:\"customizer-btn-map-opc\",attrs:{\"type\":\"filled\",\"size\":\"large\",\"icon-pack\":\"feather\",\"icon\":\"icon-menu\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleDataSidebar(true)}}}):_vm._e(),(_vm.calledFrom === 'maps')?_c('vs-button',{staticClass:\"customizer-btn-map-clear\",attrs:{\"size\":\"large\",\"icon-pack\":\"feather\",\"icon\":\"icon-trash-2\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearMap.apply(null, arguments)}}}):_vm._e(),(_vm.calledFrom === 'maps')?_c('map-settings'):_vm._e(),(_vm.isGeoActive)?_c('georreferencer',{staticClass:\"map-top-right-possition\"}):_vm._e(),_c('routes-legends',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isRoutesLegendsActive && _vm.calledFrom === 'maps'),expression:\"isRoutesLegendsActive && calledFrom === 'maps'\"}],class:_vm.$store.state.reduceButton ? 'map-top-left-possition-reducce-button' : 'map-top-left-possition',attrs:{\"getAssigedZoneResource\":_vm.getAssigedZoneResource,\"clearPolygons\":_vm.clearPolygons}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vs-sidebar',{staticClass:\"add-new-data-sidebar items-no-padding\",attrs:{\"click-not-close\":\"\",\"position-right\":\"\",\"parent\":\"body\",\"default-index\":\"1\",\"color\":\"primary\",\"spacer\":\"\"},model:{value:(_vm.isSidebarActiveLocal),callback:function ($$v) {_vm.isSidebarActiveLocal=$$v},expression:\"isSidebarActiveLocal\"}},[_c('div',{staticClass:\"mt-6 flex items-center justify-between px-6\"},[_c('h4',[_vm._v(_vm._s(_vm.$t(\"MapModule.MapOptions\")))]),_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"XIcon\"},on:{\"click\":function($event){$event.stopPropagation();_vm.isSidebarActiveLocal = false}}})],1),_c('vs-divider',{staticClass:\"mb-0\"}),_c('vs-popup',{staticClass:\"holamundo\",attrs:{\"fullscreen\":_vm.fullscreen,\"title\":\"Schedule list\",\"active\":_vm.popupActiveShow},on:{\"update:active\":function($event){_vm.popupActiveShow=$event}}},[_c('vs-button',{staticClass:\"btn-maximize\",attrs:{\"color\":\"primary\",\"type\":\"line\",\"icon-pack\":\"feather\",\"icon\":_vm.fullscreen ? 'icon-minimize-2' : 'icon-maximize-2'},on:{\"click\":function($event){_vm.fullscreen = !_vm.fullscreen}}}),(_vm.popupActive)?_c('export-selected',{on:{\"closePopupEmit\":_vm.closePopup,\"unmountExportEmit\":_vm.unmountExport}}):_vm._e()],1),_c('div',{staticClass:\"tab-size\",style:({overflowY: 'auto', height: _vm.windowHeight < 600 ? 90 + 'vh' : 95 + 'vh'})},[_c('vs-tabs',{model:{value:(_vm.tabActive),callback:function ($$v) {_vm.tabActive=$$v},expression:\"tabActive\"}},[_c('vs-tab',{attrs:{\"label\":_vm.$t('MapModule.RealTimeTracking')}},[_c('vs-navbar',{staticClass:\"nabarx mb-5\",attrs:{\"type\":'border'},model:{value:(_vm.activeItem),callback:function ($$v) {_vm.activeItem=$$v},expression:\"activeItem\"}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('vs-navbar-title',[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.Views\"))+\" \")])])],1),_c('vs-navbar-item',{attrs:{\"index\":0}},[_c('a',{on:{\"click\":function($event){return _vm.changeView('LIST')}}},[_c('div',{staticClass:\"flex flex-col items-center justify-center\"},[_c('vx-tooltip',{staticClass:\"cursor-pointer\",staticStyle:{\"z-index\":\"99999\"},attrs:{\"title\":_vm.$t('MapModule.ListView'),\"color\":\"primary\",\"position\":\"bottom\",\"text\":_vm.$t('MapModule.ChangeListView')}},[_c('vs-icon',{attrs:{\"icon\":\"view_list\",\"size\":\"medium\",\"color\":_vm.activeItem === 0 ? 'primary' : 'secondary'}})],1),_c('small',[_vm._v(_vm._s(_vm.$t(\"MapModule.ListView\")))])],1)])]),_c('vs-navbar-item',{attrs:{\"index\":1}},[_c('a',{on:{\"click\":function($event){return _vm.changeView('CARDS')}}},[_c('div',{staticClass:\"flex flex-col items-center justify-center\"},[_c('vx-tooltip',{staticStyle:{\"z-index\":\"99999\"},attrs:{\"title\":_vm.$t('MapModule.CardView'),\"color\":\"primary\",\"position\":\"bottom\",\"text\":_vm.$t('MapModule.ChangeCardView')}},[_c('vs-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"account_box\",\"size\":\"medium\",\"color\":_vm.activeItem === 1 ? 'primary' : 'secondary'}})],1),_c('small',[_vm._v(_vm._s(_vm.$t(\"MapModule.CardsView\")))])],1)])]),(_vm.selectedGroup.resource_id.length > 0)?_c('vs-navbar-item',{attrs:{\"index\":2}},[_c('export-transmission')],1):_vm._e()],1),_c('group-list-selector',{staticClass:\"mb-base\",on:{\"changeGroupEmit\":_vm.changeGroupEmit}},[_c('div',{staticClass:\"search-page__search-bar flex items-center mt-4\"},[_c('vs-input',{staticClass:\"w-full\",attrs:{\"icon-no-border\":\"\",\"placeholder\":_vm.$t('Search'),\"icon\":\"icon-search\",\"icon-pack\":\"feather\"},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1)]),_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\",style:({height: _vm.windowHeight < 600 ? '300px' : 55 + 'vh'}),attrs:{\"settings\":_vm.settings}},[_c('div',{staticClass:\"vs-con-loading__container\",attrs:{\"id\":\"content-resource-select\"}},[(_vm.viewType === 'CARDS' && _vm.resourcesDataFilter.length > 0 && !_vm.loadedingResource)?_c('div',_vm._l((_vm.resourcesDataFilter),function(resource){return _c('card-transmision',{key:resource.uid,attrs:{\"resource\":resource},on:{\"openExportPopupEmit\":_vm.openExportPopup}})}),1):_vm._e(),(_vm.viewType === 'LIST' && _vm.resourcesDataFilter.length > 0 && !_vm.loadedingResource)?_c('div',[_c('ul',{staticClass:\"bordered-items\"},_vm._l((_vm.resourcesDataFilter),function(resource){return _c('li',{key:resource.uid,staticClass:\"cursor-pointer\"},[_c('list-item-transmision',{attrs:{\"resource\":resource},on:{\"openExportPopupEmit\":_vm.openExportPopup}})],1)}),0)]):_vm._e(),(!_vm.loadedingResource && _vm.resourcesDataFilter.length === 0)?_c('div',{staticClass:\"flex w-full bg-img mt-2\"},[_c('div',{staticClass:\"vx-col flex items-center justify-center flex-col mx-auto text-center\"},[_c('img',{staticClass:\"mx-auto mb-4\",attrs:{\"src\":require(\"@/assets/images/pages/graphic-6.png\"),\"alt\":\"graphic-graphic-6\"}}),_c('h1',{staticClass:\"sm:mx-0 mx-4 sm:mb-5 mb-5 text-4xl d-theme-heading-color\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"ResourceList\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")]),_c('p',{staticClass:\"sm:mx-0 mx-4 sm:mb-12 mb-5 text-primary\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.resourcesDataFilter.length === 0 && _vm.loadedingResult === null\n\t\t\t\t\t\t\t\t\t\t\t? _vm.$t(\"MapModule.AlertVisualizarInfo\")\n\t\t\t\t\t\t\t\t\t\t\t: _vm.$t(\"MapModule.ResourcesNotFound\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")])])]):_vm._e(),(_vm.loadedingResource)?_c('div',{staticClass:\"flex w-full bg-img mt-6\"},[_c('div',{staticClass:\"vx-col flex items-center justify-center flex-col mx-auto text-center mt-6\"},[_c('loading')],1)]):_vm._e()])])],1),_c('vs-tab',{attrs:{\"label\":_vm.$t('MapModule.Routes')}},[_c('div',{staticClass:\"tab-text\"},[_c('vs-navbar',{staticClass:\"nabarx mb-5\",attrs:{\"type\":'border'},model:{value:(_vm.activeItemRoutes),callback:function ($$v) {_vm.activeItemRoutes=$$v},expression:\"activeItemRoutes\"}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('vs-navbar-title',[_c('span',[_vm._v(_vm._s(_vm.type))])])],1),_c('vs-navbar-item',{attrs:{\"index\":0}},[_c('a',{on:{\"click\":function($event){return _vm.changeOptions(2)}}},[_c('div',{staticClass:\"flex flex-col items-center justify-center\"},[_c('vx-tooltip',{staticStyle:{\"z-index\":\"99999\"},attrs:{\"color\":\"primary\",\"position\":\"bottom\",\"title\":_vm.$t('Config'),\"text\":_vm.$t('MapModule.ConfigText')}},[_c('vs-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"settings\",\"size\":\"medium\",\"color\":_vm.selectedOption === 'Schedule' ? 'primary' : 'secondary'}})],1),_c('small',[_vm._v(_vm._s(_vm.$t(\"Config\")))])],1)])]),_c('vs-navbar-item',{attrs:{\"index\":1}},[_c('a',{on:{\"click\":function($event){return _vm.changeOptions(3)}}},[_c('div',{staticClass:\"flex flex-col items-center justify-center\"},[_c('vx-tooltip',{staticStyle:{\"z-index\":\"99999\"},attrs:{\"title\":_vm.$t('MapModule.SearchRoutes'),\"color\":\"primary\",\"position\":\"left\",\"text\":\"Visualizar las rutas programadas y ejecutas de los recursos.\"}},[_c('vs-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"assistant_direction\",\"size\":\"medium\",\"color\":_vm.selectedOption === 'Routes' ? 'primary' : 'secondary'}})],1),_c('small',[_vm._v(_vm._s(_vm.$t(\"MapModule.SearchRoutes\")))])],1)])])],1),(_vm.activeItemRoutes === 1)?_c('vx-card',{staticClass:\"vs-con-loading__container max-heigth\",attrs:{\"no-shadow\":\"\",\"title\":_vm.$t('MapModule.SearchRoutes'),\"id\":\"content-resource-select\"}},[_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.RouteType\")))]),_c('v-select',{staticClass:\"select-large\",attrs:{\"clearable\":false,\"options\":_vm.routeTypeOptions,\"name\":\"resource\",\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr'},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n\t\t\t\t\t\t\t\t\t\t\tvar search = ref.search;\n\t\t\t\t\t\t\t\t\t\t\tvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}],null,false,3646429856),model:{value:(_vm.routeType),callback:function ($$v) {_vm.routeType=$$v},expression:\"routeType\"}})],1),_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('group-select',{on:{\"changeGroupEmit\":_vm.changeGroupEmit}})],1),_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"general.SearchResourceBy\")))]),_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"name\":\"selectedResource\",\"clearable\":false,\"options\":_vm.searchOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"disabled\":_vm.resourcesForSelect.length === 0},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n\t\t\t\t\t\t\t\t\t\t\tvar search = ref.search;\n\t\t\t\t\t\t\t\t\t\t\tvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}],null,false,3646429856),model:{value:(_vm.searchFieldSelected),callback:function ($$v) {_vm.searchFieldSelected=$$v},expression:\"searchFieldSelected\"}})],1),_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"Resource.Resources\")))]),_c('v-select',{staticClass:\"select-large\",attrs:{\"multiple\":_vm.routeType.value === 'EXECUTED' || _vm.routeType.value === 'PROGRAMED',\"clearable\":false,\"options\":_vm.resourcesForSelect,\"name\":\"resource\",\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"disabled\":_vm.resourcesForSelect.length === 0},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n\t\t\t\t\t\t\t\t\t\t\tvar search = ref.search;\n\t\t\t\t\t\t\t\t\t\t\tvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}},{key:\"option\",fn:function(ref){\n\t\t\t\t\t\t\t\t\t\t\tvar username = ref.username;\n\t\t\t\t\t\t\t\t\t\t\tvar label = ref.label;\nreturn [_c('span',[_vm._v(_vm._s(username))]),_c('br'),(_vm.searchField !== 'username')?_c('cite',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(_vm._s(label))]):_vm._e()]}}],null,false,2706927700),model:{value:(_vm.select1),callback:function ($$v) {_vm.select1=$$v},expression:\"select1\"}},[_c('li',{staticClass:\"pagination\",attrs:{\"slot\":\"list-footer\"},slot:\"list-footer\"},[_c('vs-pagination',{staticClass:\"mt-5\",attrs:{\"total\":_vm.totalPages,\"max\":7},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)])],1),_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('div',[_c('small',{staticClass:\"date-label\"},[_vm._v(_vm._s(_vm.$t(\"InitDate\")))]),_c('datepicker',{attrs:{\"language\":_vm.$vs.rtl ? _vm.langHe : _vm.langEn,\"name\":\"start-date\",\"disabledDates\":_vm.disabledDatesFrom},model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v},expression:\"startDate\"}})],1)])]),_c('vs-button',{staticClass:\"mr-4 mt-4 vs-con-loading__container\",attrs:{\"id\":\"btn-excute-route\",\"disabled\":!_vm.select1},on:{\"click\":_vm.handleSubmit}},[_vm._v(_vm._s(_vm.btnTextSubmit)+\"\\n\\t\\t\\t\\t\\t\\t\")])],1):_c('routes-config',{attrs:{\"qtyResource\":_vm.select1 ? _vm.select1.length : 0},on:{\"showMarkersForExecutedRouteEmit\":_vm.showMarkersForExecutedRoute,\"enableMarkerLabelsForExecutedRouteEmit\":_vm.enableMarkerLabelsForExecutedRoute,\"togglePolylineEmit\":_vm.drawTogglePolyline,\"changePropertiesAuxiliaryRouteEmit\":_vm.changePropertiesAuxiliaryRouteEmit}})],1)]),_c('vs-tab',{attrs:{\"label\":_vm.$t('general.VisitPoints')}},[_c('div',{staticClass:\"tab-text\"},[_c('div',{staticClass:\"vx-col w-full\"},[_c('visit-point-list',{style:({height: _vm.windowHeight < 600 ? '880px' : 100 + '%'}),attrs:{\"customConfig\":_vm.visitPointListConfig}},[_c('div',[_c('h4',{domProps:{\"textContent\":_vm._s(_vm.$t('general.VisitPoints'))}}),_c('p',{staticClass:\"mt-2\",domProps:{\"textContent\":_vm._s(_vm.$t('general.VisitingPointsDescription'))}}),_c('vs-button',{staticClass:\"mt-4 mb-4\",attrs:{\"id\":\"btn-locate-visit-point\"},on:{\"click\":_vm.drawVisitPoints}},[_vm._v(_vm._s(_vm.$t(\"Locate\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")])],1)])],1)])]),_c('vs-tab',{attrs:{\"label\":_vm.$t('Schedule.Schedules')}},[_c('div',{staticClass:\"tab-text\"},[_c('div',{staticClass:\"max-heigth\"},[_c('vx-card',{staticClass:\"vs-con-loading__container\",attrs:{\"title\":_vm.$t('Schedule.SearchSchedule'),\"id\":\"content-resource-select\"}},[_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('group-select',{on:{\"changeGroupEmit\":_vm.changeGroupEmit}})],1),_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"general.SearchResourceBy\")))]),_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"name\":\"selectedResource\",\"clearable\":false,\"options\":_vm.searchOptions,\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"disabled\":_vm.resourcesForSelect.length === 0},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n\t\t\t\t\t\t\t\t\t\t\tvar search = ref.search;\n\t\t\t\t\t\t\t\t\t\t\tvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}]),model:{value:(_vm.searchFieldSelected),callback:function ($$v) {_vm.searchFieldSelected=$$v},expression:\"searchFieldSelected\"}})],1),_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"Resource.Resources\")))]),_c('v-select',{staticClass:\"select-large\",attrs:{\"clearable\":false,\"options\":_vm.resourcesForSelect,\"name\":\"resource\",\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"disabled\":_vm.resourcesForSelect.length === 0},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\n\t\t\t\t\t\t\t\t\t\t\tvar search = ref.search;\n\t\t\t\t\t\t\t\t\t\t\tvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}},{key:\"option\",fn:function(ref){\n\t\t\t\t\t\t\t\t\t\t\tvar username = ref.username;\n\t\t\t\t\t\t\t\t\t\t\tvar label = ref.label;\nreturn [_c('span',[_vm._v(_vm._s(username))]),_c('br'),(_vm.searchField !== 'username')?_c('cite',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(_vm._s(label))]):_vm._e()]}}]),model:{value:(_vm.select1),callback:function ($$v) {_vm.select1=$$v},expression:\"select1\"}},[_c('li',{staticClass:\"pagination\",attrs:{\"slot\":\"list-footer\"},slot:\"list-footer\"},[_c('vs-pagination',{staticClass:\"mt-5\",attrs:{\"total\":_vm.totalPages,\"max\":7},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)])],1),_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('div',[_c('small',{staticClass:\"date-label\"},[_vm._v(_vm._s(_vm.$t(\"InitDate\")))]),_c('datepicker',{attrs:{\"language\":_vm.$vs.rtl ? _vm.langHe : _vm.langEn,\"name\":\"start-date\",\"disabledDates\":_vm.disabledDatesFrom},model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v},expression:\"startDate\"}})],1)]),_c('div',{staticClass:\"vx-col w-full my-1\"},[_c('div',[_c('small',{staticClass:\"date-label\"},[_vm._v(_vm._s(_vm.$t(\"EndDate\")))]),_c('datepicker',{attrs:{\"language\":_vm.$vs.rtl ? _vm.langHe : _vm.langEn,\"disabledDates\":_vm.disabledEndDatesTo,\"name\":\"end-date\"},model:{value:(_vm.endDate),callback:function ($$v) {_vm.endDate=$$v},expression:\"endDate\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.validateEndDate),expression:\"!validateEndDate\"}],staticClass:\"text-danger text-sm\"},[_vm._v(_vm._s(_vm.$t(\"Reports.EndDateGreaterOrEqualInitDate\")))])],1)])]),_c('vs-button',{staticClass:\"mr-4 mt-4 vs-con-loading__container\",attrs:{\"id\":\"btn-excute-route\",\"disabled\":!_vm.select1 || !_vm.validateEndDate},on:{\"click\":_vm.getResourceEvents}},[_vm._v(_vm._s(_vm.btnTextSubmit)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)],1)])])],1)],1),_c('div',{ref:\"container_infowindow\"}),_c('vs-prompt',{attrs:{\"active\":_vm.activeConfirmKeepGroupPrompt,\"acceptText\":this.$t('Accept'),\"cancelText\":this.$t('Cancel'),\"title\":_vm.$t('Groups.DefaultGroup')},on:{\"cancel\":_vm.clearValMultiple,\"accept\":_vm.acceptAlert,\"close\":_vm.close,\"update:active\":function($event){_vm.activeConfirmKeepGroupPrompt=$event}}},[_c('div',[_c('b',[_vm._v(_vm._s(_vm.selectedGroup.name))]),_vm._v(\", \"+_vm._s(_vm.$t(\"Groups.FavoriteConfirmText\"))+\"\\n\\t\\t\\t\"),_c('ul',{staticClass:\"demo-alignment\"},[_c('li',[_c('vs-checkbox',{model:{value:(_vm.checkBoxDefaultGroup),callback:function ($$v) {_vm.checkBoxDefaultGroup=$$v},expression:\"checkBoxDefaultGroup\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"Groups.AskForAgain\")))])],1)])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"no-shadow\":\"\",\"card-border\":\"\"}},[_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full md:w-1/1\"},[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"ListGroup\")))]),_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"name\":\"group\",\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"clearable\":false,\"options\":_vm.group_options},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}]),model:{value:(_vm.selectedGroup),callback:function ($$v) {_vm.selectedGroup=$$v},expression:\"selectedGroup\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('group')),expression:\"errors.has('group')\"}],staticClass:\"text-danger text-sm\"},[_vm._v(_vm._s(_vm.errors.first(\"group\")))])],1)]),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListSelector.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupListSelector.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GroupListSelector.vue?vue&type=template&id=ee6de25e&\"\nimport script from \"./GroupListSelector.vue?vue&type=script&lang=js&\"\nexport * from \"./GroupListSelector.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"vs-input--label\"},[_vm._v(_vm._s(_vm.$t(\"ListGroup\")))]),_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],attrs:{\"name\":\"group\",\"dir\":_vm.$vs.rtl ? 'rtl' : 'ltr',\"clearable\":false,\"options\":_vm.group_options},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}]),model:{value:(_vm.selectedGroup),callback:function ($$v) {_vm.selectedGroup=$$v},expression:\"selectedGroup\"}}),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.errors.has('group')),expression:\"errors.has('group')\"}],staticClass:\"text-danger text-sm\",domProps:{\"textContent\":_vm._s(_vm.errors.first('group'))}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GroupSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GroupSelect.vue?vue&type=template&id=be42522c&\"\nimport script from \"./GroupSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./GroupSelect.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"lds-ring\"},[_c('div'),_c('div'),_c('div'),_c('div')])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=1ba9af08&scoped=true&\"\nimport script from \"./Loading.vue?vue&type=script&lang=js&\"\nexport * from \"./Loading.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=1ba9af08&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ba9af08\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"vx-col w-full mb-base\"},[_c('vx-card',{staticClass:\"pr-4 pl-4\",attrs:{\"no-shadow\":\"\",\"card-border\":\"\",\"title\":_vm.resource_data.username}},[_c('template',{slot:\"actions\"},[_c('div',{staticClass:\"flex flex-row justify-between\"},[_c('feather-icon',{attrs:{\"title\":_vm.featuresOpen ? _vm.$t('MapModule.Minimize') : _vm.$t('MapModule.Maximize'),\"icon\":_vm.featuresOpen ? 'Minimize2Icon' : 'Maximize2Icon',\"svgClasses\":'h-4 w-4 stroke-current'},on:{\"click\":_vm.toggleFeatures}})],1)]),_c('div',{staticClass:\"flex items-start sm:flex-col md:flex-row\"},[_c('vs-avatar',{attrs:{\"size\":\"48px\",\"text\":_vm.resource_data.username,\"src\":_vm.avatar}}),_c('div',{staticClass:\"ml-4\"},[_c('p',{staticClass:\"font-medium truncate\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"capitalize\")(_vm.fullName))+\"\\n\\t\\t\\t\\t\")]),_c('p',{staticClass:\"font-small\"},[_c('small',[_vm._v(_vm._s(_vm.resource_data.email))])]),(!_vm.featuresOpen)?_c('div',[_c('feather-icon',{staticClass:\"mr-4\",attrs:{\"icon\":_vm.resource_local.transmissionIcon,\"svgClasses\":_vm.transmissionColorIcon}}),_c('feather-icon',{staticClass:\"mr-4\",attrs:{\"icon\":_vm.batteryLevelIcon.icon,\"svgClasses\":'h-8 w-8 stroke-current ' + _vm.batteryLevelIcon.color}}),_c('feather-icon',{staticClass:\"mr-4 cursor-pointer\",attrs:{\"icon\":\"Navigation2Icon\"},on:{\"click\":_vm.LocateMarker}}),_c('vs-icon',{staticClass:\"mt-1\",attrs:{\"icon\":_vm.gpsIcon,\"size\":\"small\",\"color\":_vm.gpsIcon === 'gps_fixed' ? 'primary' : 'secondary'}}),_c('tracking-info',{attrs:{\"tracking\":Object.assign({}, _vm.tracking, {username: _vm.resource_data.username})}})],1):_vm._e()])],1),_c('transition',{attrs:{\"name\":\"slide-fade\"}},[(_vm.isShownGeofence)?_c('geofence-zone',{attrs:{\"zoneList\":_vm.dataZoneCarton},on:{\"isShowFeatures\":_vm.isShowFeaturesEmit}}):_c('div',[_c('div',{directives:[{name:\"show-slide\",rawName:\"v-show-slide\",value:(_vm.featuresOpen),expression:\"featuresOpen\"}]},[_c('div',{staticClass:\"flex justify-between\"},[_c('small',{staticClass:\"flex items-center mb-1 mt-5 text-grey\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(\"Status\")+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('small',{staticClass:\"flex items-center mb-1 mt-5 text-grey\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"MapModule.LastTransmission\"))+\"\\n\\t\\t\\t\\t\\t\\t\")])]),_c('div',{staticClass:\"flex justify-between\"},[_c('span',{staticClass:\"flex items-center\"},[_c('feather-icon',{attrs:{\"icon\":_vm.resource_local.transmissionIcon,\"svgClasses\":_vm.transmissionColorIcon}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t((\"MapModule.\" + _vm.transmissionText))))])],1),_c('span',{staticClass:\"flex items-center\"},[_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.lastTransmission))])])]),_c('vs-divider'),_c('div',{staticClass:\"flex justify-between\"},[_c('small',{staticClass:\"flex items-center mb-1 mt-2 text-grey\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Alarm.BatteryLevel\"))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('small',{staticClass:\"flex items-center mb-1 mt-2 text-grey\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(\"GPS Status\")+\"\\n\\t\\t\\t\\t\\t\\t\")])]),_c('div',{staticClass:\"flex justify-between\"},[_c('span',{staticClass:\"flex items-center\"},[_c('feather-icon',{attrs:{\"icon\":_vm.batteryLevelIcon.icon,\"svgClasses\":'h-8 w-8 stroke-current ' + _vm.batteryLevelIcon.color}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.tracking.battery)+\" %\")])],1),_c('span',{staticClass:\"flex items-center\"},[_c('vs-icon',{attrs:{\"icon\":_vm.gpsIcon,\"size\":\"small\",\"color\":_vm.gpsIcon === 'gps_fixed' ? 'primary' : 'secondary'}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.gpsIcon === \"gps_fixed\" ? \"On\" : \"Off\"))])],1)]),_c('vs-divider'),_c('p',{staticClass:\"text-grey\"},[_vm._v(_vm._s(\"Completed visit\"))]),_c('div',{staticClass:\"mb-1 vs-con-loading__container\",attrs:{\"id\":\"progress-visit\"}},[_c('div',{staticClass:\"flex justify-between\"},[_c('small',{staticClass:\"font-semibold\"},[_vm._v(_vm._s(_vm.resource_local.progress_done_per))]),_c('small',{staticClass:\"text-success\"},[_vm._v(_vm._s(_vm.resource_local.progress_goal))])]),_c('vs-progress',{staticClass:\"block mt-1 shadow-md\",attrs:{\"indeterminate\":_vm.indeterminateProgress,\"percent\":_vm.resource_local.current_progress,\"color\":_vm.currentProgressColor}})],1),_c('vs-divider'),_c('div',{staticClass:\"flex justify-center flex-wrap\"},[_c('vx-tooltip',{staticClass:\"cursor-pointer\",staticStyle:{\"z-index\":\"99999\"},attrs:{\"title\":_vm.$t('MapModule.ScheduledRoute'),\"color\":\"primary\",\"position\":\"bottom\",\"text\":_vm.$t('MapModule.SeeDayScheduledRoute')}},[_c('vs-button',{staticClass:\"mr-2 vs-con-loading__container\",attrs:{\"id\":_vm.routeBtnId,\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-git-pull-request\"},on:{\"click\":_vm.programmedRoute}})],1),_c('vx-tooltip',{staticClass:\"cursor-pointer\",staticStyle:{\"z-index\":\"99999\"},attrs:{\"title\":_vm.$t('MapModule.ExecutedRoute'),\"color\":\"primary\",\"position\":\"bottom\",\"text\":_vm.$t('MapModule.SeeDayExecutedRoute')}},[_c('vs-button',{staticClass:\"mr-2 vs-con-loading__container\",attrs:{\"id\":_vm.executedRouteBtnId,\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-git-commit\"},on:{\"click\":_vm.executedRoute}})],1),_c('vx-tooltip',{staticClass:\"cursor-pointer\",staticStyle:{\"z-index\":\"99999\"},attrs:{\"title\":_vm.$t('MapModule.QuotesDay'),\"color\":\"primary\",\"position\":\"bottom\",\"text\":_vm.$t('MapModule.SeeListQuotesDay')}},[_c('vs-button',{staticClass:\"mr-2 vs-con-loading__container\",attrs:{\"id\":_vm.scheduleBtnId,\"type\":\"border\",\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-calendar\"},on:{\"click\":function($event){return _vm.getEvents(_vm.resource_data.id)}}})],1),_c('vx-tooltip',{staticClass:\"cursor-pointer\",staticStyle:{\"z-index\":\"99999\"},attrs:{\"title\":_vm.$t('general.Geofence'),\"color\":\"primary\",\"position\":\"top\",\"text\":_vm.$t('View') + ' ' + _vm.$t('Alarm.AssignedZones')}},[_c('vs-button',{staticClass:\"vs-con-loading__container\",attrs:{\"id\":_vm.geofenceBtnId,\"type\":\"border\",\"color\":\"primary\",\"icon-pack\":\"feather\",\"icon\":\"icon-layers\"},on:{\"click\":function($event){return _vm.getZonesAssignedToResource(_vm.resource_data.id)}}})],1)],1)],1)])],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class tracking {\n\tconstructor({\n\t\taddress,\n\t\tbattery,\n\t\tcity,\n\t\tcompany_id,\n\t\tcreated_at,\n\t\tcx,\n\t\tcy,\n\t\tdate,\n\t\tdecoded_data,\n\t\tgps,\n\t\timei,\n\t\toriginal_data,\n\t\tresource_id,\n\t\tsend_mail_battery,\n\t\tsend_mail_calendar,\n\t\tsend_mail_detention,\n\t\tsend_mail_zone,\n\t\tversion,\n\t\tactive,\n\t\tpositionrecord_id,\n\t\tversion_os,\n\t\tusername,\n\t}) {\n\t\tthis.username = username ? username : \"\";\n\t\tthis.address = address || \"\";\n\t\tthis.battery = battery || 0;\n\t\tthis.city = city || \"\";\n\t\tthis.company_id = company_id || \"\";\n\t\tthis.created_at = created_at || \"\";\n\t\tthis.cx = cx || \"\";\n\t\tthis.cy = cy || \"\";\n\t\tthis.date = date || \"\";\n\t\tthis.decoded_data = decoded_data || \"\";\n\t\tthis.gps = gps || \"\";\n\t\tthis.imei = imei || \"\";\n\t\tthis.original_data = original_data || \"\";\n\t\tthis.resource_id = resource_id || \"\";\n\t\tthis.send_mail_battery = send_mail_battery || \"\";\n\t\tthis.send_mail_calendar = send_mail_calendar || \"\";\n\t\tthis.send_mail_detention = send_mail_detention || \"\";\n\t\tthis.send_mail_zone = send_mail_zone || \"\";\n\t\tthis.version = version || \"\";\n\t\tthis.version_os = version_os ? version_os : \"\";\n\t\tthis.active = active !== undefined && active ? true : false;\n\t\tthis.howLong = 0; // ninutes\n\t\tthis.positionrecord_id = positionrecord_id || null; // ninutes\n\t\tthis.calculateHowLongLastTransmision();\n\t}\n\n\tgetBatteryIcon() {\n\t\tif (this.battery >= 60) {\n\t\t\treturn {icon: \"BatteryIcon\", color: \"text-success\"};\n\t\t} else if (this.battery < 60 && this.battery >= 30) {\n\t\t\treturn {icon: \"BatteryIcon\", color: \"text-warning\"};\n\t\t} else {\n\t\t\treturn {icon: \"BatteryChargingIcon\", color: \"text-danger\"};\n\t\t}\n\t}\n\n\tcalculateHowLongLastTransmision() {\n\t\tconst currenDate = new Date();\n\t\tconst lastTransmisionDate = new Date(this.date);\n\t\tthis.howLong = Math.floor((currenDate.getTime() - lastTransmisionDate.getTime()) / (1000 * 60));\n\t}\n\n\tgetTransmissionColor() {\n\t\tif (this.active) return \"text-success\";\n\t\telse return \"text-danger\";\n\t}\n\n\tgetTransmissionText() {\n\t\tif (this.active) return \"OnLine\";\n\t\telse return \"OffLine\";\n\t}\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"export-table\",attrs:{\"id\":\"export-table\"}},[_c('div',{staticClass:\"vx-row mb-2\"},[_c('div',{staticClass:\"vx-col w-full flex items-center justify-between\"},[_c('div',{staticClass:\"flex items-center\"},[_c('feather-icon',{staticClass:\"g-breadcrumb--title\",attrs:{\"icon\":\"ChevronLeftIcon\",\"svgClasses\":\"h-8 w-8\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('isShowFeatures', true)}}}),_c('vs-breadcrumb',{staticClass:\"g-breadcrumb--title\",attrs:{\"separator\":\"\",\"items\":[{title: _vm.$t('general.Return')}]},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('isShowFeatures', true)}}})],1),_c('div',[_c('span',{staticClass:\"g-table--title\",staticStyle:{\"color\":\"#0b8ff4\"},domProps:{\"textContent\":_vm._s(_vm.$t('Alarm.AssignedZones'))}})])])]),_c('div',{staticClass:\"vx-row pt-2\"},[_c('div',{staticClass:\"vx-col w-full flex justify-between\"},[_c('p',{staticClass:\"g-label--normal text-warning\"},[_vm._v(_vm._s(_vm.$t(\"general.SelectedZonesOnTheMap\")))]),_c('p',{staticClass:\"g-label--normal text-warning\",class:_vm.hasAnimation ? 'bounce-enter-active' : ''},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(\"(\" + _vm.getZones.length + \"/6)\")+\"\\n\\t\\t\\t\\t\")])])]),_c('vs-table',{attrs:{\"data\":_vm.zoneList,\"multiple\":\"\",\"search\":\"\",\"pagination\":\"\",\"maxItems\":\"7\"},on:{\"selected\":_vm.handleSelected},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar data = ref.data;\nreturn _vm._l((data),function(tr,indextr){return _c('vs-tr',{key:indextr,class:tr.disabled ? 'disabled' : '',attrs:{\"data\":tr}},[_c('vs-td',{staticClass:\"g-table--description\"},[_vm._v(_vm._s(tr.zone_id))]),_c('vs-td',{staticClass:\"g-table--description\"},[_vm._v(_vm._s(tr.name))])],1)})}}]),model:{value:(_vm.selectedZones),callback:function ($$v) {_vm.selectedZones=$$v},expression:\"selectedZones\"}},[_c('div',{staticClass:\"flex flex-wrap-reverse items-center flex-grow justify-between\",attrs:{\"slot\":\"header\"},slot:\"header\"},[(_vm.selectedZones.length > 0)?_c('vs-button',{attrs:{\"type\":\"border\",\"icon-pack\":\"feather\"},on:{\"click\":function($event){$event.preventDefault();return _vm.drawCartoPolygons.apply(null, arguments)}}},[_c('span',{staticClass:\"g-table--title\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Zonification.View\"))+\"\\n\\t\\t\\t\\t\\t\")])]):_vm._e()],1),_c('template',{slot:\"thead\"},[_c('vs-th',{staticClass:\"g-table--title\",domProps:{\"textContent\":_vm._s('Id')}}),_c('vs-th',{staticClass:\"g-table--title\",domProps:{\"textContent\":_vm._s(_vm.$t('Name'))}})],1)],2)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import cartodb from \"@/constants/cartodb.js\";\nimport cartoDB from \"@/helpers/cartoDB\";\nimport {removeGeoJsonLayer, setMapViewBounds, showGeoJSONData} from \"./HereMap\";\n\nconst {cartoTable} = cartodb;\n\nfunction fitBoundGeoJson(cartodbIds) {\n\tcartoDB\n\t\t.executeQueryWithBounds(\n\t\t\t`WITH bbox as (SELECT ST_Envelope(the_geom) as the_geom FROM ${cartoTable} WHERE cartodb_id IN (${cartodbIds}))\n SELECT the_geom, ST_Xmax(the_geom) as xmax,\n ST_Ymax(the_geom) as ymax,\n ST_Xmin(the_geom) as xmin,\n ST_Ymin(the_geom) as ymin\n FROM bbox`\n\t\t)\n\t\t.then((res) => {\n\t\t\tlet geoJson = null;\n\t\t\tif (res.data.features.length > 1) {\n\t\t\t\tlet aux = [];\n\t\t\t\tres.data[\"features\"].forEach((elem, index) => {\n\t\t\t\t\taux[index] = elem.properties;\n\t\t\t\t});\n\t\t\t\tlet xmin = aux[0].xmin;\n\t\t\t\tlet xmax = aux[0].xmax;\n\t\t\t\tlet ymin = aux[0].ymin;\n\t\t\t\tlet ymax = aux[0].ymax;\n\t\t\t\taux.forEach((item, index) => {\n\t\t\t\t\tif (xmin > aux[index].xmin) {\n\t\t\t\t\t\txmin = aux[index].xmin;\n\t\t\t\t\t}\n\t\t\t\t\tif (xmax < aux[index].xmax) {\n\t\t\t\t\t\txmax = aux[index].xmax;\n\t\t\t\t\t}\n\t\t\t\t\tif (ymin > aux[index].ymin) {\n\t\t\t\t\t\tymin = aux[index].ymin;\n\t\t\t\t\t}\n\t\t\t\t\tif (ymax < aux[index].ymax) {\n\t\t\t\t\t\tymax = aux[index].ymax;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tgeoJson = {properties: {xmin: xmin, xmax: xmax, ymin: ymin, ymax: ymax}};\n\t\t\t} else {\n\t\t\t\tgeoJson = res.data[\"features\"][res.data[\"features\"].length - 1];\n\t\t\t}\n\t\t\tsetMapViewBounds(geoJson);\n\t\t});\n}\n\nexport function drawCartoPolygons(cartodbIds) {\n\tremoveGeoJsonLayer();\n\tcartoDB\n\t\t.executeQueryWithBounds(`SELECT * FROM ${cartoTable} WHERE cartodb_id IN (${cartodbIds})`)\n\t\t.then((res) => {\n\t\t\tshowGeoJSONData(res[\"data\"]);\n\t\t\tfitBoundGeoJson(cartodbIds);\n\t\t})\n\t\t.catch((err) => {\n\t\t\tthrow new Error(err);\n\t\t});\n}\n","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeofenceZone.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeofenceZone.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GeofenceZone.vue?vue&type=template&id=6157ed1c&scoped=true&\"\nimport script from \"./GeofenceZone.vue?vue&type=script&lang=js&\"\nexport * from \"./GeofenceZone.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GeofenceZone.vue?vue&type=style&index=0&id=6157ed1c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6157ed1c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tracking-content\"},[_c('feather-icon',{staticClass:\"ml-4 cursor-pointer\",attrs:{\"icon\":\"SmartphoneIcon\",\"title\":_vm.$t('MapModule.software_details')},on:{\"click\":function($event){_vm.popupActive = true}}}),_c('vs-popup',{attrs:{\"title\":_vm.$t('MapModule.software_details'),\"active\":_vm.popupActive},on:{\"update:active\":function($event){_vm.popupActive=$event}}},[_c('vx-card',{staticClass:\"text-center cursor-pointer\",attrs:{\"no-shadow\":\"\"}},[_c('img',{staticClass:\"mx-auto mb-2\",attrs:{\"src\":_vm.logo,\"alt\":\"graphic\",\"width\":\"70\"}}),_c('h4',[_vm._v(_vm._s(_vm._f(\"title\")(_vm.tracking.version ? _vm.tracking.version : _vm.$t(\"MapModule.no_transmission\"))))]),_c('small',{staticClass:\"font-semibold\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.mobile_app_version\")))]),_c('template',{slot:\"footer\"},[_c('vs-divider'),_c('div',{staticClass:\"flex justify-between mb-1\"},[_c('span',{staticClass:\"flex items-center\"},[_c('feather-icon',{attrs:{\"icon\":\"UserIcon\",\"svgClasses\":\"h-5 w-5 stroke-current\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(\"Username\")))])],1),_c('span',{staticClass:\"flex items-center\"},[_c('span',{staticClass:\"ml-2 font-semibold\"},[_vm._v(_vm._s(_vm.tracking.username))])])]),_c('div',{staticClass:\"flex justify-between mb-1\"},[_c('span',{staticClass:\"flex items-center\"},[_c('feather-icon',{attrs:{\"icon\":\"SmartphoneIcon\",\"svgClasses\":\"h-5 w-5 stroke-current\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.android_os_version\"))+\": \")])],1),_c('span',{staticClass:\"flex items-center\"},[_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm._f(\"title\")(_vm.tracking.version_os ? _vm.tracking.version_os : _vm.$t(\"MapModule.no_transmission\"))))])])]),_c('div',{staticClass:\"flex justify-between mb-1\"},[_c('span',{staticClass:\"flex items-center\"},[_c('feather-icon',{attrs:{\"icon\":\"CalendarIcon\",\"svgClasses\":\"h-5 w-5 stroke-current\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(\"Date\")))])],1),_c('span',{staticClass:\"flex items-center\"},[_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm._f(\"title\")(_vm.tracking.date ? _vm.tracking.date : _vm.$t(\"MapModule.no_transmission\"))))])])])],1)],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrackingInfo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TrackingInfo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TrackingInfo.vue?vue&type=template&id=0f92e2ed&scoped=true&\"\nimport script from \"./TrackingInfo.vue?vue&type=script&lang=js&\"\nexport * from \"./TrackingInfo.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TrackingInfo.vue?vue&type=style&index=0&id=0f92e2ed&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f92e2ed\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardTransmision.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardTransmision.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CardTransmision.vue?vue&type=template&id=1a4cbc67&scoped=true&\"\nimport script from \"./CardTransmision.vue?vue&type=script&lang=js&\"\nexport * from \"./CardTransmision.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CardTransmision.vue?vue&type=style&index=0&id=1a4cbc67&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a4cbc67\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vs-list-item',{attrs:{\"title\":_vm.resource_local.username,\"subtitle\":_vm.fullname}},[_c('template',{slot:\"avatar\"},[_c('vs-avatar',{on:{\"click\":_vm.openExportPopup}})],1),_c('wifi-icon',{staticClass:\"mr-2\",attrs:{\"size\":\"24\",\"color\":\"#28c76f\"}}),(_vm.currentBatteryLevel >= 30)?_c('battery-icon',{staticClass:\"mr-2\",attrs:{\"color\":_vm.batteryLevelIcon.color}}):_c('battery-charging-icon',{staticClass:\"mr-2\",attrs:{\"color\":_vm.batteryLevelIcon.color}}),_c('vs-icon',{staticStyle:{\"margin-top\":\"-6px\"},attrs:{\"icon\":_vm.gpsIcon,\"size\":\"23px\",\"color\":_vm.gpsIcon === 'gps_fixed' ? 'primary' : 'secondary'},on:{\"click\":_vm.openExportPopup}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListTransmision.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListTransmision.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ListTransmision.vue?vue&type=template&id=21c5fcd9&\"\nimport script from \"./ListTransmision.vue?vue&type=script&lang=js&\"\nexport * from \"./ListTransmision.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"chat__contact flex items-center px-2 pt-4 pb-2\",class:{\n\t\t'bg-primary-gradient text-white shadow-lg': _vm.isActiveChatUser,\n\t}},[_c('div',{staticClass:\"contact__avatar mr-1\"},[_c('vs-avatar',{staticClass:\"border-2 border-solid border-white\",attrs:{\"src\":_vm.photoURL,\"size\":\"42px\"}})],1),_c('div',{staticClass:\"contact__container w-full flex items-center justify-between overflow-hidden\"},[_c('div',{staticClass:\"contact__info flex flex-col truncate w-5/6\"},[_c('h5',{staticClass:\"font-semibold\",class:{'text-white': _vm.isActiveChatUser}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.resource.username)+\"\\n\\t\\t\\t\")]),_c('span',{staticClass:\"truncate\"},[_vm._v(_vm._s(_vm.resource.name))])]),_c('div',{staticClass:\"chat__contact__meta flex self-start flex-col items-end w-1/6\"},[_c('div',{staticClass:\"flex justify-center\"},[_c('feather-icon',{staticClass:\"mr-4\",attrs:{\"title\":_vm.$t('general.Status'),\"icon\":_vm.resource_local.transmissionIcon,\"svgClasses\":_vm.transmissionColorIcon}}),_c('feather-icon',{staticClass:\"mr-4\",attrs:{\"title\":_vm.$t('Alarm.BatteryLevel'),\"icon\":_vm.batteryLevelIcon.icon,\"svgClasses\":'h-8 w-8 stroke-current ' + _vm.batteryLevelIcon.color}}),_c('feather-icon',{staticClass:\"mr-4\",attrs:{\"icon\":\"Navigation2Icon\",\"title\":_vm.$t('general.Navigation')},on:{\"click\":_vm.LocateMarker}}),_c('vs-icon',{staticClass:\"mt-1\",attrs:{\"size\":\"small\",\"title\":_vm.$t('general.GpsStatus'),\"icon\":_vm.gpsIcon,\"color\":_vm.gpsIcon === 'gps_fixed' ? 'primary' : 'secondary'}})],1)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListItemTransmision.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListItemTransmision.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ListItemTransmision.vue?vue&type=template&id=e9cd3288&scoped=true&\"\nimport script from \"./ListItemTransmision.vue?vue&type=script&lang=js&\"\nexport * from \"./ListItemTransmision.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ListItemTransmision.vue?vue&type=style&index=0&id=e9cd3288&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e9cd3288\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('vs-prompt',{staticClass:\"export-options\",attrs:{\"title\":\"Export To Excel\",\"accept-text\":\"Export\",\"active\":_vm.activePrompt},on:{\"cancle\":_vm.clearFields,\"accept\":_vm.exportToExcel,\"close\":_vm.clearFields,\"update:active\":function($event){_vm.activePrompt=$event}}},[_c('vs-input',{staticClass:\"w-full\",attrs:{\"placeholder\":\"Enter File Name..\"},model:{value:(_vm.fileName),callback:function ($$v) {_vm.fileName=$$v},expression:\"fileName\"}}),_c('v-select',{staticClass:\"my-4\",attrs:{\"options\":_vm.formats},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}]),model:{value:(_vm.selectedFormat),callback:function ($$v) {_vm.selectedFormat=$$v},expression:\"selectedFormat\"}}),_c('div',{staticClass:\"flex\"},[_c('span',{staticClass:\"mr-4\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.CellAutoWith\"))+\":\")]),_c('vs-switch',{model:{value:(_vm.cellAutoWidth),callback:function ($$v) {_vm.cellAutoWidth=$$v},expression:\"cellAutoWidth\"}},[_vm._v(_vm._s(_vm.$t(\"MapModule.CellAutoWith\")))])],1)],1),_c('div',{staticClass:\"export-table\"},[_c('vs-table',{attrs:{\"data\":_vm.dataEventsDay,\"multiple\":\"\",\"search\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar data = ref.data;\nreturn _vm._l((data),function(tr,indextr){return _c('vs-tr',{key:indextr,attrs:{\"data\":tr}},[_c('vs-td',{staticClass:\"g-table--description\"},[_vm._v(_vm._s(indextr + 1))]),_c('vs-td',{staticClass:\"g-table--description\"},[_vm._v(_vm._s(tr.visit_point_name))]),_c('vs-td',{staticClass:\"g-table--description\"},[_vm._v(_vm._s(data[indextr].address))]),_c('vs-td',{staticClass:\"g-table--description\"},[_vm._v(_vm._s(data[indextr].init_hour + \" - \" + data[indextr].end_hour)+\"\\n\\t\\t\\t\\t\\t\")]),_c('vs-td',[_c('vs-chip',{attrs:{\"color\":_vm.chipColor(data[indextr].event_status_id)}},[_vm._v(_vm._s(_vm.chipLabel(data[indextr].event_status_id))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1)],1)})}}]),model:{value:(_vm.selectedUsers),callback:function ($$v) {_vm.selectedUsers=$$v},expression:\"selectedUsers\"}},[_c('template',{slot:\"header\"},[_c('vx-tooltip',{staticClass:\"cursor-pointer\",attrs:{\"position\":\"top\",\"text\":_vm.$t('ExportSelected')}},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-download\"},on:{\"click\":function($event){$event.preventDefault();return _vm.showActivePrompt.apply(null, arguments)}}})],1)],1),_c('template',{slot:\"thead\"},[_c('vs-th',{staticClass:\"g-table--title\"},[_vm._v(\" N.\")]),_c('vs-th',{staticClass:\"g-table--title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"VisitPoint\")))]),_c('vs-th',{staticClass:\"g-table--title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Address\")))]),_c('vs-th',{staticClass:\"g-table--title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"general.Hour\")))]),_c('vs-th',{staticClass:\"g-table--title\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"Status\")))])],1)],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExportSelected.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExportSelected.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ExportSelected.vue?vue&type=template&id=e6ff51da&scoped=true&\"\nimport script from \"./ExportSelected.vue?vue&type=script&lang=js&\"\nexport * from \"./ExportSelected.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ExportSelected.vue?vue&type=style&index=0&id=e6ff51da&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e6ff51da\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('vx-card',{staticClass:\"pr-4 pl-4 mb-5\",attrs:{\"no-shadow\":\"\",\"card-border\":\"\",\"title\":_vm.$t('MapModule.ScheduledRoute')}},[_c('div',{staticClass:\"vx-row mb-6\"},[_c('div',{staticClass:\"vx-col w-full md:w-1/2\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.StrokeWeight\")))]),_c('vs-input-number',{staticClass:\"w-full\",attrs:{\"min\":1,\"max\":10},model:{value:(_vm.optionsProgramedRouteLineWidth),callback:function ($$v) {_vm.optionsProgramedRouteLineWidth=$$v},expression:\"optionsProgramedRouteLineWidth\"}})],1),_c('div',{staticClass:\"vx-col w-full md:w-1/2\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.StrokeOpacity\")))]),_c('vs-input-number',{staticClass:\"w-full\",attrs:{\"step\":1,\"min\":1,\"max\":10},model:{value:(_vm.optionsProgramedRouteStrokeOpacity),callback:function ($$v) {_vm.optionsProgramedRouteStrokeOpacity=$$v},expression:\"optionsProgramedRouteStrokeOpacity\"}})],1)]),_c('div',{staticClass:\"vx-row mb-6\"},[_c('div',{staticClass:\"vx-col w-full md:w-1/2\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.OptimizeWaypoints\")))]),_c('vs-switch',{attrs:{\"color\":\"success\"},model:{value:(_vm.optionsProgramedRouteOptimizeWaypoints),callback:function ($$v) {_vm.optionsProgramedRouteOptimizeWaypoints=$$v},expression:\"optionsProgramedRouteOptimizeWaypoints\"}})],1),_c('div',{staticClass:\"vx-col w-full md:w-1/2\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.StrokeColor\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.optionsProgramedRouteStrokeColors),expression:\"optionsProgramedRouteStrokeColors\"}],staticClass:\"w-full\",attrs:{\"type\":\"color\",\"name\":\"\",\"value\":\"\"},domProps:{\"value\":(_vm.optionsProgramedRouteStrokeColors)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.optionsProgramedRouteStrokeColors=$event.target.value}}})])])]),_c('vx-card',{staticClass:\"pr-4 pl-4 mt-5\",attrs:{\"no-shadow\":\"\",\"card-border\":\"\",\"title\":_vm.$t('MapModule.ExecutedRoute')}},[_c('div',{staticClass:\"vx-row mb-6\"},[_c('div',{staticClass:\"vx-col w-full md:w-1/2\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.StrokeWeight\")))]),_c('vs-input-number',{staticClass:\"w-full\",attrs:{\"min\":1,\"max\":10},model:{value:(_vm.optionsExecutedRouteLineWidth),callback:function ($$v) {_vm.optionsExecutedRouteLineWidth=$$v},expression:\"optionsExecutedRouteLineWidth\"}})],1),_c('div',{staticClass:\"vx-col w-full md:w-1/2\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.StrokeOpacity\")))]),_c('vs-input-number',{staticClass:\"w-full\",attrs:{\"step\":1,\"min\":1,\"max\":10},model:{value:(_vm.optionsExecutedRouteStrokeOpacity),callback:function ($$v) {_vm.optionsExecutedRouteStrokeOpacity=$$v},expression:\"optionsExecutedRouteStrokeOpacity\"}})],1)]),_c('div',{staticClass:\"vx-row mb-6\"},[_c('div',{staticClass:\"vx-col w-full\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.StrokeColor\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.optionsExecutedRouteStrokeColors),expression:\"optionsExecutedRouteStrokeColors\"}],staticClass:\"w-full\",attrs:{\"type\":\"color\",\"name\":\"\",\"value\":\"\"},domProps:{\"value\":(_vm.optionsExecutedRouteStrokeColors)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.optionsExecutedRouteStrokeColors=$event.target.value}}})])])]),_c('vx-card',{staticClass:\"pr-4 pl-4 mt-5\",attrs:{\"no-shadow\":\"\",\"card-border\":\"\",\"title\":_vm.$t('MapModule.ExecutedRouteLinear')}},[_c('vs-alert',{staticClass:\"text-white\",attrs:{\"color\":\"red\",\"close-icon\":\"close\",\"title\":null,\"active\":_vm.activeAlert},on:{\"update:active\":function($event){_vm.activeAlert=$event}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t(\"MapModule.AlertRouteLinear\"))+\"\\n\\t\\t\")]),_c('div',{staticClass:\"vx-row mb-6\"},[_c('div',{staticClass:\"vx-col w-full md:w-1/3\",attrs:{\"title\":_vm.$t('MapModule.ShowLinearRouteText')}},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.Line\")))]),_c('vs-switch',{attrs:{\"color\":\"success\",\"disabled\":_vm.qtyResource > 1},model:{value:(_vm.enableLineWaypoints),callback:function ($$v) {_vm.enableLineWaypoints=$$v},expression:\"enableLineWaypoints\"}})],1),_c('div',{staticClass:\"vx-col w-full md:w-1/3\",attrs:{\"title\":_vm.$t('MapModule.ShowWaypointsText')}},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.Points\")))]),_c('vs-switch',{attrs:{\"color\":\"success\",\"disabled\":_vm.qtyResource > 1},on:{\"input\":_vm.openConfirm},model:{value:(_vm.optionsExecuteRouteShowWaypoints),callback:function ($$v) {_vm.optionsExecuteRouteShowWaypoints=$$v},expression:\"optionsExecuteRouteShowWaypoints\"}})],1),_c('div',{staticClass:\"vx-col w-full md:w-1/3\",attrs:{\"title\":_vm.$t('MapModule.ShowLabelText')}},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.Numbers\")))]),_c('vs-switch',{attrs:{\"color\":\"success\",\"disabled\":!_vm.optionsExecuteRouteShowWaypoints || _vm.qtyResource > 1},model:{value:(_vm.enableWaypointsLabel),callback:function ($$v) {_vm.enableWaypointsLabel=$$v},expression:\"enableWaypointsLabel\"}})],1)]),_c('div',{staticClass:\"vx-row mb-6\"},[_c('div',{staticClass:\"vx-col w-full md:w-1/2\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.StrokeWeight\")))]),_c('vs-input-number',{staticClass:\"w-full\",attrs:{\"disabled\":!_vm.enableLineWaypoints || _vm.qtyResource > 1,\"min\":1,\"max\":10},model:{value:(_vm.optionsExecutedRouteStrokeWeightyTwo),callback:function ($$v) {_vm.optionsExecutedRouteStrokeWeightyTwo=$$v},expression:\"optionsExecutedRouteStrokeWeightyTwo\"}})],1),_c('div',{staticClass:\"vx-col w-full md:w-1/2\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(_vm._s(_vm.$t(\"MapModule.StrokeOpacity\")))]),_c('vs-input-number',{staticClass:\"w-full\",attrs:{\"disabled\":!_vm.enableLineWaypoints || _vm.qtyResource > 1,\"step\":1,\"min\":1,\"max\":10},model:{value:(_vm.optionsExecutedRouteStrokeOpacityTwo),callback:function ($$v) {_vm.optionsExecutedRouteStrokeOpacityTwo=$$v},expression:\"optionsExecutedRouteStrokeOpacityTwo\"}})],1)]),_c('div',{staticClass:\"vx-row mb-6\"},[_c('div',{staticClass:\"vx-col w-full\"},[_c('small',{staticClass:\"date-label\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"MapModule.StrokeColor\")))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.optionsExecutedRouteStrokeColorsTwo),expression:\"optionsExecutedRouteStrokeColorsTwo\"}],staticClass:\"w-full\",attrs:{\"type\":\"color\",\"name\":\"\",\"value\":\"\",\"disabled\":_vm.qtyResource > 1},domProps:{\"value\":(_vm.optionsExecutedRouteStrokeColorsTwo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.optionsExecutedRouteStrokeColorsTwo=$event.target.value}}})])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoutesConfig.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoutesConfig.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoutesConfig.vue?vue&type=template&id=5ff5d300&\"\nimport script from \"./RoutesConfig.vue?vue&type=script&lang=js&\"\nexport * from \"./RoutesConfig.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"button-demo\"}},[_c('button-filled'),_c('button-border'),_c('button-flat'),_c('button-line-down'),_c('button-gradient'),_c('button-relief'),_c('button-color'),_c('button-text-color'),_c('button-icon'),_c('button-icon-only'),_c('button-size'),_c('button-router'),_c('button-link')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Filled\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"\\n\\t\\tTo define the type of button the directive is used \"),_c('code',[_vm._v(\"type\")]),_vm._v(\" with the value of some type of button\\n\\t\\tlike it can be: \"),_c('code',[_vm._v(\"filled\")])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"filled\"}},[_vm._v(\"Primary\")]),_c('vs-button',{attrs:{\"color\":\"success\",\"type\":\"filled\"}},[_vm._v(\"Success\")]),_c('vs-button',{attrs:{\"color\":\"danger\",\"type\":\"filled\"}},[_vm._v(\"Danger\")]),_c('vs-button',{attrs:{\"color\":\"warning\",\"type\":\"filled\"}},[_vm._v(\"Warning\")]),_c('vs-button',{attrs:{\"color\":\"dark\",\"type\":\"filled\"}},[_vm._v(\"Dark\")]),_c('vs-button',{attrs:{\"color\":\"rgb(62, 201, 214)\",\"type\":\"filled\"}},[_vm._v(\"RGB\")]),_c('vs-button',{attrs:{\"disabled\":\"\",\"type\":\"filled\"}},[_vm._v(\"Disabled\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tPrimary\\n\\t\\tSuccess\\n\\t\\tDanger\\n\\t\\tWarning\\n\\t\\tDark\\n\\t\\tRGB\\n\\t\\tDisabled\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonFilled.vue?vue&type=template&id=07e599fd&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Border\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"To add a type of button with edges we change the value of \"),_c('code',[_vm._v(\"border\")])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"border\"}},[_vm._v(\"Primary\")]),_c('vs-button',{attrs:{\"color\":\"success\",\"type\":\"border\"}},[_vm._v(\"Success\")]),_c('vs-button',{attrs:{\"color\":\"danger\",\"type\":\"border\"}},[_vm._v(\"Danger\")]),_c('vs-button',{attrs:{\"color\":\"warning\",\"type\":\"border\"}},[_vm._v(\"Warning\")]),_c('vs-button',{attrs:{\"color\":\"dark\",\"type\":\"border\"}},[_vm._v(\"Dark\")]),_c('vs-button',{attrs:{\"color\":\"rgb(11, 189, 135)\",\"type\":\"border\"}},[_vm._v(\"RGB\")]),_c('vs-button',{attrs:{\"disabled\":\"\",\"type\":\"border\"}},[_vm._v(\"Disabled\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tPrimary\\n\\t\\tSuccess\\n\\t\\tDanger\\n\\t\\tWarning\\n\\t\\tDark\\n\\t\\tRGB\\n\\t\\tDisabled\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonBorder.vue?vue&type=template&id=0986f5c4&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Flat\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"To add a type of button with edges just change the prop \"),_c('code',[_vm._v(\"type\")]),_vm._v(\" to \"),_c('code',[_vm._v(\"flat\")])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"flat\"}},[_vm._v(\"Primary\")]),_c('vs-button',{attrs:{\"color\":\"success\",\"type\":\"flat\"}},[_vm._v(\"Success\")]),_c('vs-button',{attrs:{\"color\":\"danger\",\"type\":\"flat\"}},[_vm._v(\"Danger\")]),_c('vs-button',{attrs:{\"color\":\"warning\",\"type\":\"flat\"}},[_vm._v(\"Warning\")]),_c('vs-button',{attrs:{\"color\":\"dark\",\"type\":\"flat\"}},[_vm._v(\"Dark\")]),_c('vs-button',{attrs:{\"color\":\"rgb(11, 189, 135)\",\"type\":\"flat\"}},[_vm._v(\"RGB\")]),_c('vs-button',{attrs:{\"disabled\":\"\",\"type\":\"flat\"}},[_vm._v(\"Disabled\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tPrimary\\n\\t\\tSuccess\\n\\t\\tDanger\\n\\t\\tWarning\\n\\t\\tDark RGB Disabled\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonFlat.vue?vue&type=template&id=14fc3a55&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Line Down\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"To add a type of button with edges we change the value of \"),_c('code',[_vm._v(\"type\")]),_vm._v(\" by: \"),_c('code',[_vm._v(\"line\")])]),_c('vs-alert',{staticClass:\"mt-5\",attrs:{\"color\":\"primary\",\"icon\":\"new_releases\",\"active\":\"true\"}},[_c('span',[_vm._v(\"you can change the position of the line up with the property line-position=\\\"top\\\". You can also change\\n\\t\\t\\tthe way the line appears on mouse hover with the property line-origin using the allowed values:\\n\\t\\t\\t\"),_c('strong',[_vm._v(\"left, center(default) or right\")])])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"type\":\"line\"}},[_vm._v(\"Primary\")]),_c('vs-button',{attrs:{\"type\":\"line\",\"line-origin\":\"left\",\"color\":\"success\"}},[_vm._v(\"Success\")]),_c('vs-button',{attrs:{\"type\":\"line\",\"line-origin\":\"right\",\"color\":\"danger\"}},[_vm._v(\"Danger\")]),_c('vs-button',{attrs:{\"type\":\"line\",\"line-position\":\"top\",\"line-origin\":\"left\",\"color\":\"warning\"}},[_vm._v(\"Warning\")]),_c('vs-button',{attrs:{\"type\":\"line\",\"line-position\":\"top\",\"line-origin\":\"right\",\"color\":\"dark\"}},[_vm._v(\"Dark\")]),_c('vs-button',{attrs:{\"type\":\"line\",\"disabled\":\"\"}},[_vm._v(\"Disabled\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tPrimary Success Danger\\n\\t\\tWarning Dark\\n\\t\\tDisabled\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonLineDown.vue?vue&type=template&id=53848d8c&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Gradient\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"To add a type of button with edges we change the value of \"),_c('code',[_vm._v(\"type\")]),_vm._v(\" by: \"),_c('code',[_vm._v(\"gradient\")])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"type\":\"gradient\"}},[_vm._v(\"Primary\")]),_c('vs-button',{attrs:{\"color\":\"success\",\"type\":\"gradient\"}},[_vm._v(\"Success\")]),_c('vs-button',{attrs:{\"color\":\"danger\",\"type\":\"gradient\"}},[_vm._v(\"Danger\")]),_c('vs-button',{attrs:{\"color\":\"warning\",\"type\":\"gradient\"}},[_vm._v(\"Warning\")]),_c('vs-button',{attrs:{\"color\":\"dark\",\"type\":\"gradient\"}},[_vm._v(\"Dark\")]),_c('vs-button',{attrs:{\"color\":\"#3dd495\",\"gradient-color-secondary\":\"rgb(130, 207, 23)\",\"type\":\"gradient\"}},[_vm._v(\"Dark\")]),_c('vs-button',{attrs:{\"disabled\":\"\",\"type\":\"gradient\"}},[_vm._v(\"Disabled\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tprimary success danger warning dark dark\\n\\t\\tDisabled\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonGradient.vue?vue&type=template&id=102215e7&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Relief\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"To add a type of button with edges we change the value of \"),_c('code',[_vm._v(\"type\")]),_vm._v(\" by: \"),_c('code',[_vm._v(\"relief\")])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"type\":\"relief\"}},[_vm._v(\"Primary\")]),_c('vs-button',{attrs:{\"color\":\"success\",\"type\":\"relief\"}},[_vm._v(\"Success\")]),_c('vs-button',{attrs:{\"color\":\"danger\",\"type\":\"relief\"}},[_vm._v(\"Danger\")]),_c('vs-button',{attrs:{\"color\":\"warning\",\"type\":\"relief\"}},[_vm._v(\"warning\")]),_c('vs-button',{attrs:{\"color\":\"dark\",\"type\":\"relief\"}},[_vm._v(\"dark\")]),_c('vs-button',{attrs:{\"color\":\"rgb(187, 138, 200)\",\"type\":\"relief\"}},[_vm._v(\"Color\")]),_c('vs-button',{attrs:{\"disabled\":\"\",\"type\":\"relief\"}},[_vm._v(\"Disabled\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tPrimary Success Danger warning dark Color Disabled\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonRelief.vue?vue&type=template&id=9b923a16&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Color\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"\\n\\t\\tThere are cases in which we need something more personalized like a specific color, you can change the color\\n\\t\\tof the button with the property \"),_c('code',[_vm._v(\"color\")]),_vm._v(\" giving it as a value the color\\n\\t\")]),_c('vs-alert',{staticClass:\"mt-5\",attrs:{\"icon\":\"warning\",\"active\":\"true\",\"color\":\"warning\"}},[_c('span',[_vm._v(\"Only \"),_c('strong',[_vm._v(\"RGB\")]),_vm._v(\" and \"),_c('strong',[_vm._v(\"HEX\")]),_vm._v(\" colors are supported.\")])]),_c('vs-alert',{staticClass:\"mt-5\",attrs:{\"color\":\"primary\",\"icon\":\"new_releases\",\"active\":\"true\"}},[_c('span',[_vm._v(\"If you need a gradient type button, to assign the color you have to use the property\\n\\t\\t\\t\"),_c('code',[_vm._v(\"gradient-color-secondary\")])])]),_c('div',{staticClass:\"demo-alignment\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.colorx),expression:\"colorx\"}],attrs:{\"type\":\"color\",\"name\":\"\",\"value\":\"\"},domProps:{\"value\":(_vm.colorx)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.colorx=$event.target.value}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.colorx2),expression:\"colorx2\"}],attrs:{\"type\":\"color\",\"name\":\"\",\"value\":\"\"},domProps:{\"value\":(_vm.colorx2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.colorx2=$event.target.value}}}),_c('vs-button',{attrs:{\"color\":_vm.colorx,\"type\":\"filled\"}},[_vm._v(\"Color\")]),_c('vs-button',{attrs:{\"color\":_vm.colorx,\"type\":\"border\"}},[_vm._v(\"Color\")]),_c('vs-button',{attrs:{\"color\":_vm.colorx,\"type\":\"flat\"}},[_vm._v(\"Color\")]),_c('vs-button',{attrs:{\"color\":_vm.colorx,\"type\":\"line\"}},[_vm._v(\"Color\")]),_c('vs-button',{attrs:{\"color\":_vm.colorx,\"gradient-color-secondary\":_vm.colorx2,\"type\":\"gradient\"}},[_vm._v(\"Color\")]),_c('vs-button',{attrs:{\"color\":_vm.colorx,\"type\":\"relief\"}},[_vm._v(\"Color\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\t \\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonColor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonColor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ButtonColor.vue?vue&type=template&id=02a873f2&\"\nimport script from \"./ButtonColor.vue?vue&type=script&lang=js&\"\nexport * from \"./ButtonColor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Text Color\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"You can change the font color of buttons, need only set the prop \"),_c('code',[_vm._v(\"text-color\")]),_vm._v(\" with your color\")]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"type\":\"border\",\"text-color\":\"#7367F0\"}},[_vm._v(\"Primary\")]),_c('vs-button',{attrs:{\"type\":\"border\",\"text-color\":\"#28C76F\"}},[_vm._v(\"Success\")]),_c('vs-button',{attrs:{\"type\":\"border\",\"text-color\":\"#EA5455\"}},[_vm._v(\"Danger\")]),_c('vs-button',{attrs:{\"type\":\"border\",\"text-color\":\"rgb(255,159,67)\"}},[_vm._v(\"Warning\")]),_c('vs-button',{staticClass:\"demo-text-dark\",attrs:{\"type\":\"border\",\"text-color\":\"rgb(30,30,30)\"}},[_vm._v(\"Dark\")]),_c('vs-button',{attrs:{\"type\":\"border\",\"text-color\":\"tomato\"}},[_vm._v(\"Color\")]),_c('vs-button',{attrs:{\"disabled\":\"\",\"text-color\":\"rgb(0, 0, 0)\"}},[_vm._v(\"Disabled\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tPrimary\\n\\t\\tSuccess\\n\\t\\tDanger\\n\\t\\tWarning\\n\\t\\tDark Color Disabled\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonTextColor.vue?vue&type=template&id=e8476542&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Icon\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"You can add an icon to the button with the property \"),_c('code',[_vm._v(\"icon\")])]),_c('vs-alert',{staticClass:\"mt-5\",attrs:{\"color\":\"primary\",\"icon\":\"new_releases\",\"active\":\"true\"}},[_c('span',[_vm._v(\"Vuesax uses the Google Material Icons font library by default. For a list of all available icons, visit\\n\\t\\t\\tthe official \"),_c('a',{attrs:{\"href\":\"https://material.io/icons/\",\"target\":\"_blank\"}},[_vm._v(\"Material Icons page\")]),_vm._v(\". Other icon\\n\\t\\t\\tlibraries can be used by providing the class for the respective pack in the icon-pack property. ex. FA4\\n\\t\\t\\tuses fa or fas, FA5 uses fas, far, or fal.\")])]),_c('vs-alert',{staticClass:\"mt-5 mb-3\",attrs:{\"color\":\"primary\",\"icon\":\"new_releases\",\"active\":\"true\"}},[_c('span',[_vm._v(\"You can change the position of the icon so that it is after the text with the property\\n\\t\\t\\t\"),_c('code',[_vm._v(\"icon-after\")])])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-home\"}},[_vm._v(\"Home\")]),_c('vs-button',{attrs:{\"color\":\"warning\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-star\"}},[_vm._v(\"Star\")]),_c('vs-button',{attrs:{\"color\":\"success\",\"type\":\"flat\",\"icon-pack\":\"feather\",\"icon\":\"icon-check\"}},[_vm._v(\"Done\")]),_c('vs-button',{attrs:{\"color\":\"dark\",\"type\":\"line\",\"icon-pack\":\"feather\",\"icon\":\"icon-menu\",\"icon-after\":\"\"}},[_vm._v(\"menu\")]),_c('vs-button',{attrs:{\"color\":\"danger\",\"type\":\"gradient\",\"icon-pack\":\"feather\",\"icon\":\"icon-heart\",\"icon-after\":\"\"}},[_vm._v(\"favorite\")]),_c('vs-button',{attrs:{\"disabled\":\"\",\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-home\"}},[_vm._v(\"Disabled\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tHome Star\\n\\t\\tDone menu favorite\\n\\t\\tDisabled\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonIcon.vue?vue&type=template&id=37dd143b&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Icon Only\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"\\n\\t\\tYou can have a button with only the icon you want with the property \"),_c('code',[_vm._v(\"icon\")]),_vm._v(\" and not add any\\n\\t\\tinternal value to the button\\n\\t\")]),_c('vs-alert',{staticClass:\"mt-5 mb-3\",attrs:{\"color\":\"primary\",\"icon\":\"new_releases\",\"active\":\"true\"}},[_c('span',[_vm._v(\"You can use the radius property to determine the border-radius of the button, there are many cases in\\n\\t\\t\\twhich we need it to be round for example.\")])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-search\"}}),_c('vs-button',{attrs:{\"color\":\"warning\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-archive\"}}),_c('vs-button',{attrs:{\"color\":\"success\",\"type\":\"flat\",\"icon-pack\":\"feather\",\"icon\":\"icon-camera\"}}),_c('vs-button',{attrs:{\"color\":\"dark\",\"type\":\"line\",\"icon-pack\":\"feather\",\"icon\":\"icon-calendar\"}}),_c('vs-button',{attrs:{\"color\":\"danger\",\"type\":\"gradient\",\"icon-pack\":\"feather\",\"icon\":\"icon-user-plus\"}}),_c('vs-button',{attrs:{\"disabled\":\"\",\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-search\"}}),_c('vs-button',{attrs:{\"radius\":\"\",\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-search\"}}),_c('vs-button',{attrs:{\"radius\":\"\",\"color\":\"warning\",\"type\":\"filled\",\"icon-pack\":\"feather\",\"icon\":\"icon-archive\"}}),_c('vs-button',{attrs:{\"radius\":\"\",\"color\":\"success\",\"type\":\"flat\",\"icon-pack\":\"feather\",\"icon\":\"icon-camera\"}}),_c('vs-button',{attrs:{\"radius\":\"\",\"color\":\"dark\",\"type\":\"line\",\"icon-pack\":\"feather\",\"icon\":\"icon-calendar\"}}),_c('vs-button',{attrs:{\"radius\":\"\",\"color\":\"danger\",\"type\":\"gradient\",\"icon-pack\":\"feather\",\"icon\":\"icon-user-plus\"}}),_c('vs-button',{attrs:{\"disabled\":\"\",\"radius\":\"\",\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-search\"}})],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\t \\n\\t\\t \\n\\t\\t \\n\\t\\t \\n\\t\\t \\n\\t\\t \\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonIconOnly.vue?vue&type=template&id=1250901d&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Size\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"\\n\\t\\tTo define the size of button the directive is used \"),_c('code',[_vm._v(\"size\")]),_vm._v(\". there are three type of size:\\n\\t\\t\"),_c('code',[_vm._v(\"large\")]),_vm._v(\", \"),_c('code',[_vm._v(\"default\")]),_vm._v(\", \"),_c('code',[_vm._v(\"small\")]),_vm._v(\". It is not important to specify the size when\\n\\t\\tthe button is of type \"),_c('code',[_vm._v(\"default\")])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"size\":\"large\"}},[_vm._v(\"Large\")]),_c('vs-button',[_vm._v(\"Default\")]),_c('vs-button',{attrs:{\"size\":\"small\"}},[_vm._v(\"Small\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tLarge Default\\n\\t\\tSmall\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonSize.vue?vue&type=template&id=f285d850&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Router\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"\\n\\t\\tYou can send a string or object to directive to. This directive wrap a $router.push() vue method, you can\\n\\t\\tuse all programmatic navigation on vue router.\\n\\t\")]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"filled\",\"to\":\"/components/list\"}},[_vm._v(\"String literal\")]),_c('vs-button',{attrs:{\"color\":\"warning\",\"type\":\"filled\",\"to\":{path: '/components/list'}}},[_vm._v(\"Object Path\")]),_c('vs-button',{attrs:{\"color\":\"success\",\"type\":\"filled\",\"to\":{name: 'todo'}}},[_vm._v(\"Named Router\")]),_c('vs-button',{attrs:{\"color\":\"dark\",\"type\":\"filled\",\"to\":{path: '/pages/search', query: {q: 'modern admin'}}}},[_vm._v(\"With Query\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tString\\n\\t\\tliteral Object Path Named\\n\\t\\tRouter With Query\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonRouter.vue?vue&type=template&id=c3739f16&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vx-card',{attrs:{\"title\":\"Link\",\"code-toggler\":\"\"}},[_c('p',[_vm._v(\"You can specify for \"),_c('code',[_vm._v(\"window.location.href\")])]),_c('vs-alert',{staticClass:\"mt-5\",attrs:{\"color\":\"primary\",\"icon\":\"new_releases\",\"active\":\"true\"}},[_c('span',[_vm._v(\"You can use the \"),_c('code',[_vm._v(\"target\")]),_vm._v(\" property to window.open()\")])]),_c('div',{staticClass:\"demo-alignment\"},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"filled\",\"href\":\"https://pixinvent.com/\"}},[_vm._v(\"String literal\")]),_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"filled\",\"href\":{url: 'https://pixinvent.com/'}}},[_vm._v(\"Object Path\")]),_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"filled\",\"target\":\"\",\"href\":\"https://pixinvent.com/\"}},[_vm._v(\"Open New Tab\")])],1),_c('template',{slot:\"codeContainer\"},[_vm._v(\"\\n\\t\\tString literal Object Path Open New Tab\\n\\t\")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ButtonLink.vue?vue&type=template&id=2ff4038a&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Button.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=7128876c&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('a',{on:{\"click\":function($event){_vm.activePrompt = true}}},[_c('div',{staticClass:\"flex flex-col items-center justify-center\"},[_c('vx-tooltip',{staticStyle:{\"z-index\":\"99999\"},attrs:{\"title\":_vm.$t('Export'),\"color\":\"primary\",\"position\":\"bottom\",\"text\":_vm.$t('Export') + ' ' + _vm.$t('MapModule.RealTimeTracking')}},[_c('vs-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"cloud_download\",\"size\":\"medium\",\"color\":\"secondary\"}})],1),_c('small',[_vm._v(_vm._s(_vm.$t(\"Export\")))])],1)]),_c('vs-prompt',{staticClass:\"export-options\",attrs:{\"title\":_vm.$t('Export') + ' ' + _vm.$t('MapModule.RealTimeTracking'),\"accept-text\":_vm.$t('Export'),\"cancel-text\":_vm.$t('Cancel'),\"active\":_vm.activePrompt,\"is-valid\":_vm.validName},on:{\"cancel\":_vm.clearFields,\"accept\":_vm.exportToExcel,\"close\":_vm.clearFields,\"update:active\":function($event){_vm.activePrompt=$event}}},[_c('vs-input',{staticClass:\"w-full\",attrs:{\"placeholder\":_vm.$t('EnterFileName')},model:{value:(_vm.fileName),callback:function ($$v) {_vm.fileName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"fileName\"}}),_c('v-select',{staticClass:\"my-4\",attrs:{\"options\":_vm.formats},scopedSlots:_vm._u([{key:\"no-options\",fn:function(ref){\nvar search = ref.search;\nvar searching = ref.searching;\nreturn [(searching)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"general.NoResultsFoundFor\") + \" \")),_c('em',[_vm._v(_vm._s(search))])]:_vm._e()]}}]),model:{value:(_vm.selectedFormat),callback:function ($$v) {_vm.selectedFormat=$$v},expression:\"selectedFormat\"}}),_c('div',{staticClass:\"flex\"},[_c('span',{staticClass:\"mr-4\"},[_vm._v(_vm._s(_vm.$t(\"CellAutoWidth\"))+\":\")]),_c('vs-switch',{model:{value:(_vm.cellAutoWidth),callback:function ($$v) {_vm.cellAutoWidth=$$v},expression:\"cellAutoWidth\"}},[_vm._v(_vm._s(_vm.$t(\"CellAutoWidth\")))])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExportTransmission.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExportTransmission.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ExportTransmission.vue?vue&type=template&id=61b409c7&\"\nimport script from \"./ExportTransmission.vue?vue&type=script&lang=js&\"\nexport * from \"./ExportTransmission.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapViewSidebar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapViewSidebar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MapViewSidebar.vue?vue&type=template&id=4310efab&scoped=true&\"\nimport script from \"./MapViewSidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./MapViewSidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MapViewSidebar.vue?vue&type=style&index=0&id=4310efab&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4310efab\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('vx-card',{staticStyle:{\"width\":\"250px\"},attrs:{\"title\":_vm.title}},[_c('template',{slot:\"actions\"},[_c('feather-icon',{staticClass:\"cursor-pointer\",attrs:{\"icon\":\"XIcon\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toogleWindow.apply(null, arguments)}}})],1),_c('div',{staticClass:\"vx-row\"},[_c('vue-perfect-scrollbar',{staticClass:\"scroll-area\",attrs:{\"settings\":_vm.settings}},_vm._l((_vm.legends),function(legend){return _c('div',{key:legend.id,staticClass:\"vx-col sm:w-1/1 md:w-1/1 lg:w-full xl:w-full mb-2 pl-2 pr-2\"},[_c('p',{staticClass:\"font-bold\"},[_vm._v(_vm._s(_vm._f(\"title\")(legend.resource.label)))]),_c('hr',{style:((\"width:100%;height:4px;border-width:0;color:gray;background-color:\" + (legend.color)))}),(_vm.routeType === 'EXECUTED')?_c('div',[_c('p',{staticClass:\"text-sm font-medium\"},[_c('span',[(8 > 0)?_c('span',[_vm._v(_vm._s(_vm.$t(\"RoutesLegends.Distance\"))+\": \")]):_vm._e()]),_c('span',[_vm._v(_vm._s(_vm._f(\"km_formatter\")(_vm.accumulatedDistance(legend.route))))])]),_c('p',{staticClass:\"text-sm font-medium\"},[_c('span',[_c('span',[_vm._v(_vm._s(_vm.$t(\"RoutesLegends.Time\"))+\": \")])]),_c('span',[_vm._v(_vm._s(_vm.accumulatedTime(legend.route)))])])]):_vm._e(),(_vm.routeType === 'PROGRAMED')?_c('div',[_c('p',{staticClass:\"text-sm font-medium\"},[_c('span',[(8 > 0)?_c('span',[_vm._v(_vm._s(_vm.$t(\"RoutesLegends.TotalVisits\"))+\":\")]):_vm._e()]),_c('span',[_vm._v(_vm._s(legend.route.total_visit))])])]):_vm._e()])}),0)],1),_c('vs-divider',{staticClass:\"my-6\"}),_c('div',{staticClass:\"vx-row flex-col-reverse md:flex-col-reverse sm:flex-row lg:flex-row\"},[(true)?_c('div',{staticClass:\"vx-col w-full md:w-full sm:w-1/1 lg:w-1/1 xl:w-1/1 flex flex-col justify-between\"},[_c('div',[_c('span',{staticClass:\"font-medium\"},[_vm._v(_vm._s(_vm.$t(\"Zonification.Zonification\")))]),_c('p',{staticClass:\"mt-2 text-sm font-medium\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"RoutesLegends.ViewZones\")))])])]),_c('vs-button',{staticClass:\"shadow-md w-full lg:mt-0 mt-4\",attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-octagon\",\"icon-after\":\"\"},on:{\"click\":_vm.drawZones}},[_vm._v(_vm._s(_vm.$t(\"Zonification.View\"))+\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.$t(\"Zonification.Zonification\"))+\"\\n\\t\\t\\t\\t\")])],1):_vm._e(),(_vm.isDisabledButtonRemoveZones)?_c('div',{staticClass:\"\\n\\t\\t\\t\\t\\tvx-col\\n\\t\\t\\t\\t\\tw-full\\n\\t\\t\\t\\t\\tmd:w-full\\n\\t\\t\\t\\t\\tsm:w-1/1\\n\\t\\t\\t\\t\\tlg:w-1/1\\n\\t\\t\\t\\t\\txl:w-1/1\\n\\t\\t\\t\\t\\tflex flex-col flex-wrap\\n\\t\\t\\t\\t\\tlg:mb-0\\n\\t\\t\\t\\t\\tmd:mb-base\\n\\t\\t\\t\\t\\tsm:mb-0\\n\\t\\t\\t\\t\\tmt-2\\n\\t\\t\\t\\t\"},[_c('vs-button',{staticClass:\"shadow-md w-full lg:mt-0 mt-4\",attrs:{\"icon-pack\":\"feather\",\"icon\":\"icon-trash\",\"icon-after\":\"\",\"color\":\"danger\"},on:{\"click\":_vm.clearPolygons}},[_vm._v(_vm._s(_vm.$t(\"Zonification.RemoveZones\"))+\"\\n\\t\\t\\t\\t\")])],1):_vm._e()])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoutesLegends.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoutesLegends.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RoutesLegends.vue?vue&type=template&id=57416db8&scoped=true&\"\nimport script from \"./RoutesLegends.vue?vue&type=script&lang=js&\"\nexport * from \"./RoutesLegends.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RoutesLegends.vue?vue&type=style&index=0&id=57416db8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"57416db8\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"map\"},[_c('div',{ref:\"hereMap\",style:({width: this.width, height: this.height})})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HereMap.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HereMap.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HereMap.vue?vue&type=template&id=87b0ae18&\"\nimport script from \"./HereMap.vue?vue&type=script&lang=js&\"\nexport * from \"./HereMap.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Maps.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Maps.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Maps.vue?vue&type=template&id=cbb5667e&scoped=true&\"\nimport script from \"./Maps.vue?vue&type=script&lang=js&\"\nexport * from \"./Maps.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Maps.vue?vue&type=style&index=0&id=cbb5667e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cbb5667e\",\n null\n \n)\n\nexport default component.exports","/**\n * @module ol/style/IconImageCache\n */\nimport { asString } from '../color.js';\n/**\n * @classdesc\n * Singleton class. Available through {@link module:ol/style/IconImageCache.shared}.\n */\nvar IconImageCache = /** @class */ (function () {\n function IconImageCache() {\n /**\n * @type {!Object}\n * @private\n */\n this.cache_ = {};\n /**\n * @type {number}\n * @private\n */\n this.cacheSize_ = 0;\n /**\n * @type {number}\n * @private\n */\n this.maxCacheSize_ = 32;\n }\n /**\n * FIXME empty description for jsdoc\n */\n IconImageCache.prototype.clear = function () {\n this.cache_ = {};\n this.cacheSize_ = 0;\n };\n /**\n * @return {boolean} Can expire cache.\n */\n IconImageCache.prototype.canExpireCache = function () {\n return this.cacheSize_ > this.maxCacheSize_;\n };\n /**\n * FIXME empty description for jsdoc\n */\n IconImageCache.prototype.expire = function () {\n if (this.canExpireCache()) {\n var i = 0;\n for (var key in this.cache_) {\n var iconImage = this.cache_[key];\n if ((i++ & 3) === 0 && !iconImage.hasListener()) {\n delete this.cache_[key];\n --this.cacheSize_;\n }\n }\n }\n };\n /**\n * @param {string} src Src.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"../color.js\").Color} color Color.\n * @return {import(\"./IconImage.js\").default} Icon image.\n */\n IconImageCache.prototype.get = function (src, crossOrigin, color) {\n var key = getKey(src, crossOrigin, color);\n return key in this.cache_ ? this.cache_[key] : null;\n };\n /**\n * @param {string} src Src.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"../color.js\").Color} color Color.\n * @param {import(\"./IconImage.js\").default} iconImage Icon image.\n */\n IconImageCache.prototype.set = function (src, crossOrigin, color, iconImage) {\n var key = getKey(src, crossOrigin, color);\n this.cache_[key] = iconImage;\n ++this.cacheSize_;\n };\n /**\n * Set the cache size of the icon cache. Default is `32`. Change this value when\n * your map uses more than 32 different icon images and you are not caching icon\n * styles on the application level.\n * @param {number} maxCacheSize Cache max size.\n * @api\n */\n IconImageCache.prototype.setSize = function (maxCacheSize) {\n this.maxCacheSize_ = maxCacheSize;\n this.expire();\n };\n return IconImageCache;\n}());\n/**\n * @param {string} src Src.\n * @param {?string} crossOrigin Cross origin.\n * @param {import(\"../color.js\").Color} color Color.\n * @return {string} Cache key.\n */\nfunction getKey(src, crossOrigin, color) {\n var colorString = color ? asString(color) : 'null';\n return crossOrigin + ':' + src + ':' + colorString;\n}\nexport default IconImageCache;\n/**\n * The {@link module:ol/style/IconImageCache~IconImageCache} for\n * {@link module:ol/style/Icon~Icon} images.\n * @api\n */\nexport var shared = new IconImageCache();\n//# sourceMappingURL=IconImageCache.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/renderer/canvas/VectorLayer\n */\nimport CanvasBuilderGroup from '../../render/canvas/BuilderGroup.js';\nimport CanvasLayerRenderer, { canvasPool } from './Layer.js';\nimport ExecutorGroup from '../../render/canvas/ExecutorGroup.js';\nimport ViewHint from '../../ViewHint.js';\nimport { HIT_DETECT_RESOLUTION, createHitDetectionImageData, hitDetect, } from '../../render/canvas/hitdetect.js';\nimport { apply, makeInverse, makeScale, toString as transformToString, } from '../../transform.js';\nimport { buffer, containsExtent, createEmpty, getWidth, intersects as intersectsExtent, wrapX as wrapExtentX, } from '../../extent.js';\nimport { createCanvasContext2D, releaseCanvas } from '../../dom.js';\nimport { defaultOrder as defaultRenderOrder, getTolerance as getRenderTolerance, getSquaredTolerance as getSquaredRenderTolerance, renderFeature, } from '../vector.js';\nimport { equals } from '../../array.js';\nimport { fromUserExtent, getTransformFromProjections, getUserProjection, toUserExtent, toUserResolution, } from '../../proj.js';\nimport { getUid } from '../../util.js';\nimport { wrapX as wrapCoordinateX } from '../../coordinate.js';\n/**\n * @classdesc\n * Canvas renderer for vector layers.\n * @api\n */\nvar CanvasVectorLayerRenderer = /** @class */ (function (_super) {\n __extends(CanvasVectorLayerRenderer, _super);\n /**\n * @param {import(\"../../layer/BaseVector.js\").default} vectorLayer Vector layer.\n */\n function CanvasVectorLayerRenderer(vectorLayer) {\n var _this = _super.call(this, vectorLayer) || this;\n /** @private */\n _this.boundHandleStyleImageChange_ = _this.handleStyleImageChange_.bind(_this);\n /**\n * @type {boolean}\n */\n _this.animatingOrInteracting_;\n /**\n * @type {ImageData}\n */\n _this.hitDetectionImageData_ = null;\n /**\n * @type {Array}\n */\n _this.renderedFeatures_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.renderedRevision_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.renderedResolution_ = NaN;\n /**\n * @private\n * @type {import(\"../../extent.js\").Extent}\n */\n _this.renderedExtent_ = createEmpty();\n /**\n * @private\n * @type {import(\"../../extent.js\").Extent}\n */\n _this.wrappedRenderedExtent_ = createEmpty();\n /**\n * @private\n * @type {number}\n */\n _this.renderedRotation_;\n /**\n * @private\n * @type {import(\"../../coordinate\").Coordinate}\n */\n _this.renderedCenter_ = null;\n /**\n * @private\n * @type {import(\"../../proj/Projection\").default}\n */\n _this.renderedProjection_ = null;\n /**\n * @private\n * @type {function(import(\"../../Feature.js\").default, import(\"../../Feature.js\").default): number|null}\n */\n _this.renderedRenderOrder_ = null;\n /**\n * @private\n * @type {import(\"../../render/canvas/ExecutorGroup\").default}\n */\n _this.replayGroup_ = null;\n /**\n * A new replay group had to be created by `prepareFrame()`\n * @type {boolean}\n */\n _this.replayGroupChanged = true;\n /**\n * @type {import(\"../../render/canvas/ExecutorGroup\").default}\n */\n _this.declutterExecutorGroup = null;\n /**\n * Clipping to be performed by `renderFrame()`\n * @type {boolean}\n */\n _this.clipping = true;\n /**\n * @private\n * @type {CanvasRenderingContext2D}\n */\n _this.compositionContext_ = null;\n /**\n * @private\n * @type {number}\n */\n _this.opacity_ = 1;\n return _this;\n }\n /**\n * @param {ExecutorGroup} executorGroup Executor group.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {import(\"rbush\").default} [opt_declutterTree] Declutter tree.\n */\n CanvasVectorLayerRenderer.prototype.renderWorlds = function (executorGroup, frameState, opt_declutterTree) {\n var extent = frameState.extent;\n var viewState = frameState.viewState;\n var center = viewState.center;\n var resolution = viewState.resolution;\n var projection = viewState.projection;\n var rotation = viewState.rotation;\n var projectionExtent = projection.getExtent();\n var vectorSource = this.getLayer().getSource();\n var pixelRatio = frameState.pixelRatio;\n var viewHints = frameState.viewHints;\n var snapToPixel = !(viewHints[ViewHint.ANIMATING] || viewHints[ViewHint.INTERACTING]);\n var context = this.compositionContext_;\n var width = Math.round(frameState.size[0] * pixelRatio);\n var height = Math.round(frameState.size[1] * pixelRatio);\n var multiWorld = vectorSource.getWrapX() && projection.canWrapX();\n var worldWidth = multiWorld ? getWidth(projectionExtent) : null;\n var endWorld = multiWorld\n ? Math.ceil((extent[2] - projectionExtent[2]) / worldWidth) + 1\n : 1;\n var world = multiWorld\n ? Math.floor((extent[0] - projectionExtent[0]) / worldWidth)\n : 0;\n do {\n var transform = this.getRenderTransform(center, resolution, rotation, pixelRatio, width, height, world * worldWidth);\n executorGroup.execute(context, 1, transform, rotation, snapToPixel, undefined, opt_declutterTree);\n } while (++world < endWorld);\n };\n CanvasVectorLayerRenderer.prototype.setupCompositionContext_ = function () {\n if (this.opacity_ !== 1) {\n var compositionContext = createCanvasContext2D(this.context.canvas.width, this.context.canvas.height, canvasPool);\n this.compositionContext_ = compositionContext;\n }\n else {\n this.compositionContext_ = this.context;\n }\n };\n CanvasVectorLayerRenderer.prototype.releaseCompositionContext_ = function () {\n if (this.opacity_ !== 1) {\n var alpha = this.context.globalAlpha;\n this.context.globalAlpha = this.opacity_;\n this.context.drawImage(this.compositionContext_.canvas, 0, 0);\n this.context.globalAlpha = alpha;\n releaseCanvas(this.compositionContext_);\n canvasPool.push(this.compositionContext_.canvas);\n this.compositionContext_ = null;\n }\n };\n /**\n * Render declutter items for this layer\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n */\n CanvasVectorLayerRenderer.prototype.renderDeclutter = function (frameState) {\n if (this.declutterExecutorGroup) {\n this.setupCompositionContext_();\n this.renderWorlds(this.declutterExecutorGroup, frameState, frameState.declutterTree);\n this.releaseCompositionContext_();\n }\n };\n /**\n * Render the layer.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {HTMLElement} target Target that may be used to render content to.\n * @return {HTMLElement} The rendered element.\n */\n CanvasVectorLayerRenderer.prototype.renderFrame = function (frameState, target) {\n var pixelRatio = frameState.pixelRatio;\n var layerState = frameState.layerStatesArray[frameState.layerIndex];\n // set forward and inverse pixel transforms\n makeScale(this.pixelTransform, 1 / pixelRatio, 1 / pixelRatio);\n makeInverse(this.inversePixelTransform, this.pixelTransform);\n var canvasTransform = transformToString(this.pixelTransform);\n this.useContainer(target, canvasTransform, this.getBackground(frameState));\n var context = this.context;\n var canvas = context.canvas;\n var replayGroup = this.replayGroup_;\n var declutterExecutorGroup = this.declutterExecutorGroup;\n if ((!replayGroup || replayGroup.isEmpty()) &&\n (!declutterExecutorGroup || declutterExecutorGroup.isEmpty())) {\n return null;\n }\n // resize and clear\n var width = Math.round(frameState.size[0] * pixelRatio);\n var height = Math.round(frameState.size[1] * pixelRatio);\n if (canvas.width != width || canvas.height != height) {\n canvas.width = width;\n canvas.height = height;\n if (canvas.style.transform !== canvasTransform) {\n canvas.style.transform = canvasTransform;\n }\n }\n else if (!this.containerReused) {\n context.clearRect(0, 0, width, height);\n }\n this.preRender(context, frameState);\n var viewState = frameState.viewState;\n var projection = viewState.projection;\n this.opacity_ = layerState.opacity;\n this.setupCompositionContext_();\n // clipped rendering if layer extent is set\n var clipped = false;\n var render = true;\n if (layerState.extent && this.clipping) {\n var layerExtent = fromUserExtent(layerState.extent, projection);\n render = intersectsExtent(layerExtent, frameState.extent);\n clipped = render && !containsExtent(layerExtent, frameState.extent);\n if (clipped) {\n this.clipUnrotated(this.compositionContext_, frameState, layerExtent);\n }\n }\n if (render) {\n this.renderWorlds(replayGroup, frameState);\n }\n if (clipped) {\n this.compositionContext_.restore();\n }\n this.releaseCompositionContext_();\n this.postRender(context, frameState);\n if (this.renderedRotation_ !== viewState.rotation) {\n this.renderedRotation_ = viewState.rotation;\n this.hitDetectionImageData_ = null;\n }\n return this.container;\n };\n /**\n * Asynchronous layer level hit detection.\n * @param {import(\"../../pixel.js\").Pixel} pixel Pixel.\n * @return {Promise>} Promise that resolves with an array of features.\n */\n CanvasVectorLayerRenderer.prototype.getFeatures = function (pixel) {\n return new Promise(\n /**\n * @param {function(Array): void} resolve Resolver function.\n * @this {CanvasVectorLayerRenderer}\n */\n function (resolve) {\n if (!this.hitDetectionImageData_ && !this.animatingOrInteracting_) {\n var size = [this.context.canvas.width, this.context.canvas.height];\n apply(this.pixelTransform, size);\n var center = this.renderedCenter_;\n var resolution = this.renderedResolution_;\n var rotation = this.renderedRotation_;\n var projection = this.renderedProjection_;\n var extent = this.wrappedRenderedExtent_;\n var layer = this.getLayer();\n var transforms = [];\n var width = size[0] * HIT_DETECT_RESOLUTION;\n var height = size[1] * HIT_DETECT_RESOLUTION;\n transforms.push(this.getRenderTransform(center, resolution, rotation, HIT_DETECT_RESOLUTION, width, height, 0).slice());\n var source = layer.getSource();\n var projectionExtent = projection.getExtent();\n if (source.getWrapX() &&\n projection.canWrapX() &&\n !containsExtent(projectionExtent, extent)) {\n var startX = extent[0];\n var worldWidth = getWidth(projectionExtent);\n var world = 0;\n var offsetX = void 0;\n while (startX < projectionExtent[0]) {\n --world;\n offsetX = worldWidth * world;\n transforms.push(this.getRenderTransform(center, resolution, rotation, HIT_DETECT_RESOLUTION, width, height, offsetX).slice());\n startX += worldWidth;\n }\n world = 0;\n startX = extent[2];\n while (startX > projectionExtent[2]) {\n ++world;\n offsetX = worldWidth * world;\n transforms.push(this.getRenderTransform(center, resolution, rotation, HIT_DETECT_RESOLUTION, width, height, offsetX).slice());\n startX -= worldWidth;\n }\n }\n this.hitDetectionImageData_ = createHitDetectionImageData(size, transforms, this.renderedFeatures_, layer.getStyleFunction(), extent, resolution, rotation);\n }\n resolve(hitDetect(pixel, this.renderedFeatures_, this.hitDetectionImageData_));\n }.bind(this));\n };\n /**\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @param {number} hitTolerance Hit tolerance in pixels.\n * @param {import(\"../vector.js\").FeatureCallback} callback Feature callback.\n * @param {Array>} matches The hit detected matches with tolerance.\n * @return {T|undefined} Callback result.\n * @template T\n */\n CanvasVectorLayerRenderer.prototype.forEachFeatureAtCoordinate = function (coordinate, frameState, hitTolerance, callback, matches) {\n var _this = this;\n if (!this.replayGroup_) {\n return undefined;\n }\n var resolution = frameState.viewState.resolution;\n var rotation = frameState.viewState.rotation;\n var layer = this.getLayer();\n /** @type {!Object|true>} */\n var features = {};\n /**\n * @param {import(\"../../Feature.js\").FeatureLike} feature Feature.\n * @param {import(\"../../geom/SimpleGeometry.js\").default} geometry Geometry.\n * @param {number} distanceSq The squared distance to the click position\n * @return {T|undefined} Callback result.\n */\n var featureCallback = function (feature, geometry, distanceSq) {\n var key = getUid(feature);\n var match = features[key];\n if (!match) {\n if (distanceSq === 0) {\n features[key] = true;\n return callback(feature, layer, geometry);\n }\n matches.push((features[key] = {\n feature: feature,\n layer: layer,\n geometry: geometry,\n distanceSq: distanceSq,\n callback: callback,\n }));\n }\n else if (match !== true && distanceSq < match.distanceSq) {\n if (distanceSq === 0) {\n features[key] = true;\n matches.splice(matches.lastIndexOf(match), 1);\n return callback(feature, layer, geometry);\n }\n match.geometry = geometry;\n match.distanceSq = distanceSq;\n }\n return undefined;\n };\n var result;\n var executorGroups = [this.replayGroup_];\n if (this.declutterExecutorGroup) {\n executorGroups.push(this.declutterExecutorGroup);\n }\n executorGroups.some(function (executorGroup) {\n return (result = executorGroup.forEachFeatureAtCoordinate(coordinate, resolution, rotation, hitTolerance, featureCallback, executorGroup === _this.declutterExecutorGroup &&\n frameState.declutterTree\n ? frameState.declutterTree.all().map(function (item) { return item.value; })\n : null));\n });\n return result;\n };\n /**\n * Perform action necessary to get the layer rendered after new fonts have loaded\n */\n CanvasVectorLayerRenderer.prototype.handleFontsChanged = function () {\n var layer = this.getLayer();\n if (layer.getVisible() && this.replayGroup_) {\n layer.changed();\n }\n };\n /**\n * Handle changes in image style state.\n * @param {import(\"../../events/Event.js\").default} event Image style change event.\n * @private\n */\n CanvasVectorLayerRenderer.prototype.handleStyleImageChange_ = function (event) {\n this.renderIfReadyAndVisible();\n };\n /**\n * Determine whether render should be called.\n * @param {import(\"../../PluggableMap.js\").FrameState} frameState Frame state.\n * @return {boolean} Layer is ready to be rendered.\n */\n CanvasVectorLayerRenderer.prototype.prepareFrame = function (frameState) {\n var vectorLayer = this.getLayer();\n var vectorSource = vectorLayer.getSource();\n if (!vectorSource) {\n return false;\n }\n var animating = frameState.viewHints[ViewHint.ANIMATING];\n var interacting = frameState.viewHints[ViewHint.INTERACTING];\n var updateWhileAnimating = vectorLayer.getUpdateWhileAnimating();\n var updateWhileInteracting = vectorLayer.getUpdateWhileInteracting();\n if ((this.ready && !updateWhileAnimating && animating) ||\n (!updateWhileInteracting && interacting)) {\n this.animatingOrInteracting_ = true;\n return true;\n }\n this.animatingOrInteracting_ = false;\n var frameStateExtent = frameState.extent;\n var viewState = frameState.viewState;\n var projection = viewState.projection;\n var resolution = viewState.resolution;\n var pixelRatio = frameState.pixelRatio;\n var vectorLayerRevision = vectorLayer.getRevision();\n var vectorLayerRenderBuffer = vectorLayer.getRenderBuffer();\n var vectorLayerRenderOrder = vectorLayer.getRenderOrder();\n if (vectorLayerRenderOrder === undefined) {\n vectorLayerRenderOrder = defaultRenderOrder;\n }\n var center = viewState.center.slice();\n var extent = buffer(frameStateExtent, vectorLayerRenderBuffer * resolution);\n var renderedExtent = extent.slice();\n var loadExtents = [extent.slice()];\n var projectionExtent = projection.getExtent();\n if (vectorSource.getWrapX() &&\n projection.canWrapX() &&\n !containsExtent(projectionExtent, frameState.extent)) {\n // For the replay group, we need an extent that intersects the real world\n // (-180° to +180°). To support geometries in a coordinate range from -540°\n // to +540°, we add at least 1 world width on each side of the projection\n // extent. If the viewport is wider than the world, we need to add half of\n // the viewport width to make sure we cover the whole viewport.\n var worldWidth = getWidth(projectionExtent);\n var gutter = Math.max(getWidth(extent) / 2, worldWidth);\n extent[0] = projectionExtent[0] - gutter;\n extent[2] = projectionExtent[2] + gutter;\n wrapCoordinateX(center, projection);\n var loadExtent = wrapExtentX(loadExtents[0], projection);\n // If the extent crosses the date line, we load data for both edges of the worlds\n if (loadExtent[0] < projectionExtent[0] &&\n loadExtent[2] < projectionExtent[2]) {\n loadExtents.push([\n loadExtent[0] + worldWidth,\n loadExtent[1],\n loadExtent[2] + worldWidth,\n loadExtent[3],\n ]);\n }\n else if (loadExtent[0] > projectionExtent[0] &&\n loadExtent[2] > projectionExtent[2]) {\n loadExtents.push([\n loadExtent[0] - worldWidth,\n loadExtent[1],\n loadExtent[2] - worldWidth,\n loadExtent[3],\n ]);\n }\n }\n if (this.ready &&\n this.renderedResolution_ == resolution &&\n this.renderedRevision_ == vectorLayerRevision &&\n this.renderedRenderOrder_ == vectorLayerRenderOrder &&\n containsExtent(this.wrappedRenderedExtent_, extent)) {\n if (!equals(this.renderedExtent_, renderedExtent)) {\n this.hitDetectionImageData_ = null;\n this.renderedExtent_ = renderedExtent;\n }\n this.renderedCenter_ = center;\n this.replayGroupChanged = false;\n return true;\n }\n this.replayGroup_ = null;\n var replayGroup = new CanvasBuilderGroup(getRenderTolerance(resolution, pixelRatio), extent, resolution, pixelRatio);\n var declutterBuilderGroup;\n if (this.getLayer().getDeclutter()) {\n declutterBuilderGroup = new CanvasBuilderGroup(getRenderTolerance(resolution, pixelRatio), extent, resolution, pixelRatio);\n }\n var userProjection = getUserProjection();\n var userTransform;\n if (userProjection) {\n for (var i = 0, ii = loadExtents.length; i < ii; ++i) {\n var extent_1 = loadExtents[i];\n var userExtent_1 = toUserExtent(extent_1, projection);\n vectorSource.loadFeatures(userExtent_1, toUserResolution(resolution, projection), userProjection);\n }\n userTransform = getTransformFromProjections(userProjection, projection);\n }\n else {\n for (var i = 0, ii = loadExtents.length; i < ii; ++i) {\n vectorSource.loadFeatures(loadExtents[i], resolution, projection);\n }\n }\n var squaredTolerance = getSquaredRenderTolerance(resolution, pixelRatio);\n var ready = true;\n var render = \n /**\n * @param {import(\"../../Feature.js\").default} feature Feature.\n * @this {CanvasVectorLayerRenderer}\n */\n function (feature) {\n var styles;\n var styleFunction = feature.getStyleFunction() || vectorLayer.getStyleFunction();\n if (styleFunction) {\n styles = styleFunction(feature, resolution);\n }\n if (styles) {\n var dirty = this.renderFeature(feature, squaredTolerance, styles, replayGroup, userTransform, declutterBuilderGroup);\n ready = ready && !dirty;\n }\n }.bind(this);\n var userExtent = toUserExtent(extent, projection);\n /** @type {Array} */\n var features = vectorSource.getFeaturesInExtent(userExtent);\n if (vectorLayerRenderOrder) {\n features.sort(vectorLayerRenderOrder);\n }\n for (var i = 0, ii = features.length; i < ii; ++i) {\n render(features[i]);\n }\n this.renderedFeatures_ = features;\n this.ready = ready;\n var replayGroupInstructions = replayGroup.finish();\n var executorGroup = new ExecutorGroup(extent, resolution, pixelRatio, vectorSource.getOverlaps(), replayGroupInstructions, vectorLayer.getRenderBuffer());\n if (declutterBuilderGroup) {\n this.declutterExecutorGroup = new ExecutorGroup(extent, resolution, pixelRatio, vectorSource.getOverlaps(), declutterBuilderGroup.finish(), vectorLayer.getRenderBuffer());\n }\n this.renderedResolution_ = resolution;\n this.renderedRevision_ = vectorLayerRevision;\n this.renderedRenderOrder_ = vectorLayerRenderOrder;\n this.renderedExtent_ = renderedExtent;\n this.wrappedRenderedExtent_ = extent;\n this.renderedCenter_ = center;\n this.renderedProjection_ = projection;\n this.replayGroup_ = executorGroup;\n this.hitDetectionImageData_ = null;\n this.replayGroupChanged = true;\n return true;\n };\n /**\n * @param {import(\"../../Feature.js\").default} feature Feature.\n * @param {number} squaredTolerance Squared render tolerance.\n * @param {import(\"../../style/Style.js\").default|Array} styles The style or array of styles.\n * @param {import(\"../../render/canvas/BuilderGroup.js\").default} builderGroup Builder group.\n * @param {import(\"../../proj.js\").TransformFunction} [opt_transform] Transform from user to view projection.\n * @param {import(\"../../render/canvas/BuilderGroup.js\").default} [opt_declutterBuilderGroup] Builder for decluttering.\n * @return {boolean} `true` if an image is loading.\n */\n CanvasVectorLayerRenderer.prototype.renderFeature = function (feature, squaredTolerance, styles, builderGroup, opt_transform, opt_declutterBuilderGroup) {\n if (!styles) {\n return false;\n }\n var loading = false;\n if (Array.isArray(styles)) {\n for (var i = 0, ii = styles.length; i < ii; ++i) {\n loading =\n renderFeature(builderGroup, feature, styles[i], squaredTolerance, this.boundHandleStyleImageChange_, opt_transform, opt_declutterBuilderGroup) || loading;\n }\n }\n else {\n loading = renderFeature(builderGroup, feature, styles, squaredTolerance, this.boundHandleStyleImageChange_, opt_transform, opt_declutterBuilderGroup);\n }\n return loading;\n };\n return CanvasVectorLayerRenderer;\n}(CanvasLayerRenderer));\nexport default CanvasVectorLayerRenderer;\n//# sourceMappingURL=VectorLayer.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/Vector\n */\nimport BaseVectorLayer from './BaseVector.js';\nimport CanvasVectorLayerRenderer from '../renderer/canvas/VectorLayer.js';\n/**\n * @classdesc\n * Vector data is rendered client-side, as vectors. This layer type provides most accurate rendering\n * even during animations. Points and labels stay upright on rotated views. For very large\n * amounts of vector data, performance may suffer during pan and zoom animations. In this case,\n * try {@link module:ol/layer/VectorImage~VectorImageLayer}.\n *\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Vector.js\").default} VectorSourceType\n * @extends {BaseVectorLayer}\n * @api\n */\nvar VectorLayer = /** @class */ (function (_super) {\n __extends(VectorLayer, _super);\n /**\n * @param {import(\"./BaseVector.js\").Options} [opt_options] Options.\n */\n function VectorLayer(opt_options) {\n return _super.call(this, opt_options) || this;\n }\n VectorLayer.prototype.createRenderer = function () {\n return new CanvasVectorLayerRenderer(this);\n };\n return VectorLayer;\n}(BaseVectorLayer));\nexport default VectorLayer;\n//# sourceMappingURL=Vector.js.map","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAlCAYAAAAjt+tHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADBElEQVRYhbWXz0obURSHv4ljnMS0lEBdhBLiQgSxlFIQSlfCFUExr+DaJ8gz5AEka18hC0Ey4KoUAiKlIIoLQ+hCrISiMZmGZNLF3Js/OjOZiZMfXO7JTXJ+39w5N5Oj9ft9ALa2tnQgBsTlrBOtuoANdAC7Uql0AbR+v6/M44AhR1wCxCIytyVAB7Dk6FQqla4mhFDmSeCtnA1mswMW0AIe5NxRV2lI86Wiaf6I2HhMBSG+ytAGupoQIiXN00XT/JVLJEjGYhhzc5EaW70eLdum1m5TEOIj0AAeRgvPAEjG45GbAxi6Dr0etNswrLOYjnOv1cBYWIjcfAzC0cBTrQyrXY+69jwVGzceBZDjrtEAXef37e1Us/r+2HCj8AJYymT4VyrxIZejfXgYel7KZLi7v/cFeLkSjw/C+uUl7O7yvlzmz97eVLOVz4/lnAzwjDIrf6qnnd1yhgIAaB4deSbwU2p/fwoAl+0aJJpWoW5Btfpiqa5pgLOtYWOvnEpRPe2mVqBfndGCChtPUqAdqGvaYFu94sdSicdS6cV6JACzlP8x7HaBYFv95uDAdd0rpzfA6JGRH371KXDJ6Q1gGMO41Xrx9lTyyekPIPXqU+CSMzBA0Gr2VSiAZHIQZtfXX28+QQrAdgOYsWwF0B0ZWP0+xuLiTBytpycVDjx1hu2SBdDqdCCRwEilojVvNp3c8qX0tDUhRBxIAe/waUxyGxuks9lAZo16nZrHE1A2JnfAX6CpdsDCaZdU0zDamsUAiqb5nfl50svL/uY3N9SqVQpCfJNLqr6et2YWYAdpTgf/4YumeZbb3CS9suJufn1N7fSUghBfGK8t7+Z0QnuuZgWXLJrmeW57m/Tq6rj51RW1kxMKQnyWV6nu8yiAe3vuJwlm4NRJSkL8zO3skF5bc8wvLqgdH1MQ4pM0b8phKSMvTQTwgEgVTfM8l88DUCuX1ZU3CWEeGMAF4q2EOAPUPW/iFFdg81AAzyCScqjnbAdn61thzEMDjECoolRHVR2xThhzgP9S0rBvE6m7igAAAABJRU5ErkJggg==\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('bread-crumbs',{attrs:{\"title\":_vm.$t('OnDemand.AssignedVisits'),\"subTitle\":_vm.$t('general.SubtitleAssignedVisits'),\"sizeTitle\":30,\"lineHeightTitle\":37,\"sizeSubTitle\":15,\"lineHeightSubTitle\":18}}),_c('div',{staticClass:\"vx-row mb-2\"},[_c('div',{staticClass:\"vx-col w-full flex items-center\"},[_c('feather-icon',{staticClass:\"g-breadcrumb--title\",attrs:{\"icon\":\"ChevronLeftIcon\",\"svgClasses\":\"h-8 w-8\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$router.push({name: 'apps-on-demand'})}}}),_c('vs-breadcrumb',{staticClass:\"g-breadcrumb--title\",attrs:{\"separator\":\"\",\"items\":[{title: _vm.$t('general.Return')}]},on:{\"click\":function($event){$event.preventDefault();return _vm.$router.push({name: 'apps-on-demand'})}}})],1)]),_c('div',{staticClass:\"vx-row\"},[_c('div',{staticClass:\"vx-col w-full\"},[_c('vx-card',[_c('div',{attrs:{\"slot\":\"no-body\"},slot:\"no-body\"},[_c('vs-table',{staticClass:\"table-dark-inverted p-4\",attrs:{\"data\":_vm.dispatchedOrders,\"max-items\":\"15\",\"pagination\":\"\",\"search\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar data = ref.data;\nreturn _vm._l((data),function(tr,indextr){return _c('vs-tr',{key:indextr},[_c('vs-td',{attrs:{\"data\":data[indextr].id}},[_c('span',[_vm._v(_vm._s(data[indextr].id))])]),_c('vs-td',{attrs:{\"data\":data[indextr].status}},[_c('vs-chip',{staticClass:\"font-semibold\",attrs:{\"color\":_vm.colors[_vm.statusColor(data[indextr].event_status_id)]}},[_vm._v(_vm._s(_vm._f(\"capitalize\")(_vm.statusText(data[indextr].event_status_id)))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\")])],1),_c('vs-td',{attrs:{\"data\":data[indextr].id}},[_c('span',[_vm._v(_vm._s(_vm._f(\"capitalize\")(data[indextr].activity_name)))])]),_c('vs-td',{attrs:{\"data\":data[indextr].id}},[_c('span',{staticClass:\"truncate\"},[_vm._v(_vm._s(_vm._f(\"capitalize\")(data[indextr].visit_point_name))+\" -\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"capitalize\")(_vm.fullAddress(data[indextr]))))])]),_c('vs-td',{attrs:{\"data\":data[indextr].id}},[_c('ul',{staticClass:\"users-liked user-list\"},[_c('li',[_c('div',{staticClass:\"flex flex-row\"},[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('OnDemand.ViewResourceCalendar'),\"position\":\"bottom\"}},[_c('vs-avatar',{staticClass:\"border-2 border-white border-solid -m-1\",attrs:{\"src\":_vm.contactImage(data[indextr].resource_id),\"size\":\"30px\"},on:{\"click\":function($event){return _vm.goToResourceCalendar(data[indextr].resource_id)}}})],1),_c('span',{staticClass:\"ml-2 truncate font-semibold\"},[_vm._v(_vm._s(data[indextr].username))])],1)])])]),_c('vs-td',{attrs:{\"data\":data[indextr].id}},[_c('on-demand-distance',{attrs:{\"event\":data[indextr],\"color\":_vm.colors[_vm.statusColor(data[indextr].event_status_id)]}})],1),_c('vs-td',{attrs:{\"data\":data[indextr].id}},[_c('span',[_vm._v(\" \"+_vm._s(data[indextr].init_hour)+\" - \"+_vm._s(data[indextr].end_hour))])]),_c('vs-td',{attrs:{\"data\":data[indextr].id}},[(data[indextr].event_init_hour)?_c('span',[_vm._v(_vm._s(data[indextr].event_init_hour))]):_vm._e(),(!data[indextr].event_init_hour)?_c('feather-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"ClockIcon\",\"svgClasses\":\"h-4 w-4\"}}):_vm._e(),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t-\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),(data[indextr].event_end_hour)?_c('span',[_vm._v(_vm._s(data[indextr].event_end_hour))]):_vm._e(),(!data[indextr].event_end_hour)?_c('feather-icon',{staticClass:\"ml-1\",attrs:{\"icon\":\"ClockIcon\",\"svgClasses\":\"h-4 w-4\"}}):_vm._e()],1),_c('vs-td',{attrs:{\"data\":data[indextr].id}},[_c('vx-tooltip',{attrs:{\"text\":!_vm.disabledMapBtn(data[indextr])\n\t\t\t\t\t\t\t\t\t\t\t\t? _vm.$t('OnDemand.DisabledMapBtnTitle')\n\t\t\t\t\t\t\t\t\t\t\t\t: _vm.$t('OnDemand.TrackingOnTheMap'),\"position\":\"bottom\"}},[_c('vs-button',{attrs:{\"color\":\"primary\",\"type\":\"border\",\"icon-pack\":\"feather\",\"icon\":\"icon-map\",\"disabled\":!_vm.disabledMapBtn(data[indextr])},on:{\"click\":function($event){return _vm.handleBtnMapClick(data[indextr])}}})],1)],1)],1)})}}])},[_c('template',{slot:\"thead\"},[_c('vs-th',[_vm._v(\"N\")]),_c('vs-th',[_vm._v(_vm._s(_vm._f(\"mayus\")(_vm.$t(\"Status\"))))]),_c('vs-th',[_vm._v(_vm._s(_vm._f(\"mayus\")(_vm.$t(\"Activity.Activity\"))))]),_c('vs-th',[_vm._v(_vm._s(_vm._f(\"mayus\")(_vm.$t(\"VisitPoint\"))))]),_c('vs-th',[_vm._v(_vm._s(_vm._f(\"mayus\")(_vm.$t(\"Resource.Resource\"))))]),_c('vs-th',[_vm._v(_vm._s(_vm._f(\"mayus\")(_vm.$t(\"Routing.DistanceRoute\"))))]),_c('vs-th',[_vm._v(_vm._s(_vm._f(\"mayus\")(_vm.$t(\"OnDemand.ScheduledHour\"))))]),_c('vs-th',[_vm._v(_vm._s(_vm._f(\"mayus\")(_vm.$t(\"OnDemand.ExecutedHour\"))))]),_c('vs-th',[_vm._v(_vm._s(_vm._f(\"mayus\")(_vm.$t(\"Map\"))))])],1)],2)],1)])],1),_c('vs-popup',{attrs:{\"fullscreen\":false,\"active\":_vm.activeMapPopup,\"title\":_vm.$t('Maps')},on:{\"update:active\":function($event){_vm.activeMapPopup=$event}}},[(_vm.activeMapPopup)?_c('map-view-on-demand',{attrs:{\"name\":\"map-iot\",\"latitude\":\"4.686699\",\"longitude\":\"-74.0837187\",\"zoom\":\"13\",\"theme\":\"uber\",\"mapType\":\"here\",\"calledFrom\":\"onDemand\",\"width\":\"50vw\",\"height\":\"70vh\",\"markerData\":[_vm.resource],\"onDemandEvent\":_vm.itemSelected}}):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.event.event_status_id === 5 || _vm.event.event_status_id === 4)?_c('div',[_c('vx-tooltip',{attrs:{\"text\":_vm.$t('OnDemand.DistanceToPoint'),\"position\":\"bottom\"}},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.distance),expression:\"distance\"}]},[_vm._v(_vm._s(_vm._f(\"km_formatter\")(_vm.distance)))]),_c('vs-progress',{attrs:{\"percent\":_vm.percent,\"color\":_vm.color}})],1)],1):_vm._e(),(_vm.event.event_status_id === 6 || _vm.event.event_status_id === 7)?_c('div',[_c('span',[_vm._v(_vm._s(_vm.$t(\"OnDemand.ReachedThePoint\")))]),_c('vs-progress',{attrs:{\"percent\":100,\"color\":_vm.color}})],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnDemandDistance.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnDemandDistance.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OnDemandDistance.vue?vue&type=template&id=6716ffcd&\"\nimport script from \"./OnDemandDistance.vue?vue&type=script&lang=js&\"\nexport * from \"./OnDemandDistance.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnDemandHistory.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OnDemandHistory.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OnDemandHistory.vue?vue&type=template&id=2e4bb150&scoped=true&\"\nimport script from \"./OnDemandHistory.vue?vue&type=script&lang=js&\"\nexport * from \"./OnDemandHistory.vue?vue&type=script&lang=js&\"\nimport style0 from \"./OnDemandHistory.vue?vue&type=style&index=0&id=2e4bb150&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e4bb150\",\n null\n \n)\n\nexport default component.exports","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/Pointer\n */\nimport Interaction from './Interaction.js';\nimport MapBrowserEventType from '../MapBrowserEventType.js';\n/**\n * @typedef {Object} Options\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} [handleDownEvent]\n * Function handling \"down\" events. If the function returns `true` then a drag\n * sequence is started.\n * @property {function(import(\"../MapBrowserEvent.js\").default):void} [handleDragEvent]\n * Function handling \"drag\" events. This function is called on \"move\" events\n * during a drag sequence.\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} [handleEvent]\n * Method called by the map to notify the interaction that a browser event was\n * dispatched to the map. The function may return `false` to prevent the\n * propagation of the event to other interactions in the map's interactions\n * chain.\n * @property {function(import(\"../MapBrowserEvent.js\").default):void} [handleMoveEvent]\n * Function handling \"move\" events. This function is called on \"move\" events.\n * This functions is also called during a drag sequence, so during a drag\n * sequence both the `handleDragEvent` function and this function are called.\n * If `handleDownEvent` is defined and it returns true this function will not\n * be called during a drag sequence.\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} [handleUpEvent]\n * Function handling \"up\" events. If the function returns `false` then the\n * current drag sequence is stopped.\n * @property {function(boolean):boolean} [stopDown]\n * Should the down event be propagated to other interactions, or should be\n * stopped?\n */\n/**\n * @classdesc\n * Base class that calls user-defined functions on `down`, `move` and `up`\n * events. This class also manages \"drag sequences\".\n *\n * When the `handleDownEvent` user function returns `true` a drag sequence is\n * started. During a drag sequence the `handleDragEvent` user function is\n * called on `move` events. The drag sequence ends when the `handleUpEvent`\n * user function is called and returns `false`.\n * @api\n */\nvar PointerInteraction = /** @class */ (function (_super) {\n __extends(PointerInteraction, _super);\n /**\n * @param {Options} [opt_options] Options.\n */\n function PointerInteraction(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n _this = _super.call(this, \n /** @type {import(\"./Interaction.js\").InteractionOptions} */ (options)) || this;\n if (options.handleDownEvent) {\n _this.handleDownEvent = options.handleDownEvent;\n }\n if (options.handleDragEvent) {\n _this.handleDragEvent = options.handleDragEvent;\n }\n if (options.handleMoveEvent) {\n _this.handleMoveEvent = options.handleMoveEvent;\n }\n if (options.handleUpEvent) {\n _this.handleUpEvent = options.handleUpEvent;\n }\n if (options.stopDown) {\n _this.stopDown = options.stopDown;\n }\n /**\n * @type {boolean}\n * @protected\n */\n _this.handlingDownUpSequence = false;\n /**\n * @type {Array}\n * @protected\n */\n _this.targetPointers = [];\n return _this;\n }\n /**\n * Returns the current number of pointers involved in the interaction,\n * e.g. `2` when two fingers are used.\n * @return {number} The number of pointers.\n * @api\n */\n PointerInteraction.prototype.getPointerCount = function () {\n return this.targetPointers.length;\n };\n /**\n * Handle pointer down events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n * @protected\n */\n PointerInteraction.prototype.handleDownEvent = function (mapBrowserEvent) {\n return false;\n };\n /**\n * Handle pointer drag events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @protected\n */\n PointerInteraction.prototype.handleDragEvent = function (mapBrowserEvent) { };\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event} and may call into\n * other functions, if event sequences like e.g. 'drag' or 'down-up' etc. are\n * detected.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n PointerInteraction.prototype.handleEvent = function (mapBrowserEvent) {\n if (!mapBrowserEvent.originalEvent) {\n return true;\n }\n var stopEvent = false;\n this.updateTrackedPointers_(mapBrowserEvent);\n if (this.handlingDownUpSequence) {\n if (mapBrowserEvent.type == MapBrowserEventType.POINTERDRAG) {\n this.handleDragEvent(mapBrowserEvent);\n // prevent page scrolling during dragging\n mapBrowserEvent.originalEvent.preventDefault();\n }\n else if (mapBrowserEvent.type == MapBrowserEventType.POINTERUP) {\n var handledUp = this.handleUpEvent(mapBrowserEvent);\n this.handlingDownUpSequence =\n handledUp && this.targetPointers.length > 0;\n }\n }\n else {\n if (mapBrowserEvent.type == MapBrowserEventType.POINTERDOWN) {\n var handled = this.handleDownEvent(mapBrowserEvent);\n this.handlingDownUpSequence = handled;\n stopEvent = this.stopDown(handled);\n }\n else if (mapBrowserEvent.type == MapBrowserEventType.POINTERMOVE) {\n this.handleMoveEvent(mapBrowserEvent);\n }\n }\n return !stopEvent;\n };\n /**\n * Handle pointer move events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @protected\n */\n PointerInteraction.prototype.handleMoveEvent = function (mapBrowserEvent) { };\n /**\n * Handle pointer up events.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @return {boolean} If the event was consumed.\n * @protected\n */\n PointerInteraction.prototype.handleUpEvent = function (mapBrowserEvent) {\n return false;\n };\n /**\n * This function is used to determine if \"down\" events should be propagated\n * to other interactions or should be stopped.\n * @param {boolean} handled Was the event handled by the interaction?\n * @return {boolean} Should the `down` event be stopped?\n */\n PointerInteraction.prototype.stopDown = function (handled) {\n return handled;\n };\n /**\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Event.\n * @private\n */\n PointerInteraction.prototype.updateTrackedPointers_ = function (mapBrowserEvent) {\n if (mapBrowserEvent.activePointers) {\n this.targetPointers = mapBrowserEvent.activePointers;\n }\n };\n return PointerInteraction;\n}(Interaction));\n/**\n * @param {Array} pointerEvents List of events.\n * @return {import(\"../pixel.js\").Pixel} Centroid pixel.\n */\nexport function centroid(pointerEvents) {\n var length = pointerEvents.length;\n var clientX = 0;\n var clientY = 0;\n for (var i = 0; i < length; i++) {\n clientX += pointerEvents[i].clientX;\n clientY += pointerEvents[i].clientY;\n }\n return [clientX / length, clientY / length];\n}\nexport default PointerInteraction;\n//# sourceMappingURL=Pointer.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/interaction/Interaction\n */\nimport BaseObject from '../Object.js';\nimport InteractionProperty from './Property.js';\nimport { easeOut, linear } from '../easing.js';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} InteractionOnSignature\n */\n/**\n * Object literal with config options for interactions.\n * @typedef {Object} InteractionOptions\n * @property {function(import(\"../MapBrowserEvent.js\").default):boolean} handleEvent\n * Method called by the map to notify the interaction that a browser event was\n * dispatched to the map. If the function returns a falsy value, propagation of\n * the event to other interactions in the map's interactions chain will be\n * prevented (this includes functions with no explicit return). The interactions\n * are traversed in reverse order of the interactions collection of the map.\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * User actions that change the state of the map. Some are similar to controls,\n * but are not associated with a DOM element.\n * For example, {@link module:ol/interaction/KeyboardZoom~KeyboardZoom} is\n * functionally the same as {@link module:ol/control/Zoom~Zoom}, but triggered\n * by a keyboard event not a button element event.\n * Although interactions do not have a DOM element, some of them do render\n * vectors and so are visible on the screen.\n * @api\n */\nvar Interaction = /** @class */ (function (_super) {\n __extends(Interaction, _super);\n /**\n * @param {InteractionOptions} [opt_options] Options.\n */\n function Interaction(opt_options) {\n var _this = _super.call(this) || this;\n /***\n * @type {InteractionOnSignature}\n */\n _this.on;\n /***\n * @type {InteractionOnSignature}\n */\n _this.once;\n /***\n * @type {InteractionOnSignature}\n */\n _this.un;\n if (opt_options && opt_options.handleEvent) {\n _this.handleEvent = opt_options.handleEvent;\n }\n /**\n * @private\n * @type {import(\"../PluggableMap.js\").default|null}\n */\n _this.map_ = null;\n _this.setActive(true);\n return _this;\n }\n /**\n * Return whether the interaction is currently active.\n * @return {boolean} `true` if the interaction is active, `false` otherwise.\n * @observable\n * @api\n */\n Interaction.prototype.getActive = function () {\n return /** @type {boolean} */ (this.get(InteractionProperty.ACTIVE));\n };\n /**\n * Get the map associated with this interaction.\n * @return {import(\"../PluggableMap.js\").default|null} Map.\n * @api\n */\n Interaction.prototype.getMap = function () {\n return this.map_;\n };\n /**\n * Handles the {@link module:ol/MapBrowserEvent~MapBrowserEvent map browser event}.\n * @param {import(\"../MapBrowserEvent.js\").default} mapBrowserEvent Map browser event.\n * @return {boolean} `false` to stop event propagation.\n * @api\n */\n Interaction.prototype.handleEvent = function (mapBrowserEvent) {\n return true;\n };\n /**\n * Activate or deactivate the interaction.\n * @param {boolean} active Active.\n * @observable\n * @api\n */\n Interaction.prototype.setActive = function (active) {\n this.set(InteractionProperty.ACTIVE, active);\n };\n /**\n * Remove the interaction from its current map and attach it to the new map.\n * Subclasses may set up event handlers to get notified about changes to\n * the map here.\n * @param {import(\"../PluggableMap.js\").default|null} map Map.\n */\n Interaction.prototype.setMap = function (map) {\n this.map_ = map;\n };\n return Interaction;\n}(BaseObject));\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {import(\"../coordinate.js\").Coordinate} delta Delta.\n * @param {number} [opt_duration] Duration.\n */\nexport function pan(view, delta, opt_duration) {\n var currentCenter = view.getCenterInternal();\n if (currentCenter) {\n var center = [currentCenter[0] + delta[0], currentCenter[1] + delta[1]];\n view.animateInternal({\n duration: opt_duration !== undefined ? opt_duration : 250,\n easing: linear,\n center: view.getConstrainedCenter(center),\n });\n }\n}\n/**\n * @param {import(\"../View.js\").default} view View.\n * @param {number} delta Delta from previous zoom level.\n * @param {import(\"../coordinate.js\").Coordinate} [opt_anchor] Anchor coordinate in the user projection.\n * @param {number} [opt_duration] Duration.\n */\nexport function zoomByDelta(view, delta, opt_anchor, opt_duration) {\n var currentZoom = view.getZoom();\n if (currentZoom === undefined) {\n return;\n }\n var newZoom = view.getConstrainedZoom(currentZoom + delta);\n var newResolution = view.getResolutionForZoom(newZoom);\n if (view.getAnimating()) {\n view.cancelAnimations();\n }\n view.animate({\n resolution: newResolution,\n anchor: opt_anchor,\n duration: opt_duration !== undefined ? opt_duration : 250,\n easing: easeOut,\n });\n}\nexport default Interaction;\n//# sourceMappingURL=Interaction.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"slot\":\"no-body\"},slot:\"no-body\"},[_c('div',{staticClass:\"p-6\",class:{\n\t\t\t'flex justify-between flex-row-reverse items-center': false,\n\t\t\t'text-center': !_vm.iconRight,\n\t\t\t'pb-0': !_vm.iconRight,\n\t\t}},[_c('div',[_c('h5',{staticClass:\"mb-1 font-bold\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm._f(\"mayus\")(_vm.visit_point_local.name))+\"\\n\\t\\t\\t\")]),_c('span',[_vm._v(_vm._s(_vm.visit_point_local.address))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfowindowVisitPoint.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfowindowVisitPoint.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./InfowindowVisitPoint.vue?vue&type=template&id=4643e45c&\"\nimport script from \"./InfowindowVisitPoint.vue?vue&type=script&lang=js&\"\nexport * from \"./InfowindowVisitPoint.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAlCAYAAAAjt+tHAAAACXBIWXMAAAsTAAALEwEAmpwYAAADDElEQVRYhbWXT2sTURTFf5nEOKZJ1Sy6khgVahBqKtOFpeqqBZcKguBORMRPkKV0me8hFUHQZSG40lKFhFoKJUqpMerCKlraMR1DmLjIe5OZZCaZyZ8Dl/vmZnLPyX33zeSGms0mAEtLSxFAAaLCRxgtGoAJ1AGzUCg0AELNZlOSRwFVWFQIUEZEbgoBdcAQVi8UCo3Q4uKiJI8Bk8KrjKcCBlADDoSvy1+pCvKpfKa0PmJiB3JlbV4sTaBhL30snymtpy9ME5uIo56IjZTYOKpR+6uTp7SeK2sziG2wN54KEIufHDk5gBpLQChsXQpOJUJrr6WhTiRGTm6xtnNbnLLR2t3eVjluKE5iKxy2bO/7Lihhvu1sDeTl9x3mpsKBUNiyqVSGf9pjzlzUOJp9GNhPpTLsfd1x5OwvIByxrLr9nh9PH3CUvc/PZ48G8oa+78jZie5Ih8rUk09DebecvQW47JO++dIzQS/Es7c9c/YQ0B2yEg0Kl5zeAn597ApVl6eBVlmDrr1yWtp86B8rfL3x7A0VdN0PvipQXZ62yuq1PiyucFhc6YqPRMA44fIc6Nbkp9SJuXuuca+c3gKUY12hoU+BS05vAeGo580Do0dOXwKGPgXDCPDbzT0RSEDkuLVMXb4xPHkfSAGmm4Axw5QCGjbDMAzU+KmxMBr6vlxanBHa45IBUNMPIBxFTZweLfnhn1ZucSk4zYiNvJYra/N5XrsOJum5myRTGV9kv6tlKsVV18/EYFLDNheY4uJA3DCDczRTAPKsrqFESJ691Jv8yzaV4iq5srYgQrK/OkczAzD9DKfWf/h8plRKX71FMj3jTl7ZovLuFbmypuHsLe/htM94Lr19fNtIL9wheS7rJP+8SWXtBbmydsVe4g4B7uN5LwhhKhAXFstnSpvpa3dJnp9tke9+oPL2ObmylhXkujBDEnmhrwAPEfF8prSRvt56A1berMhfrhOA3LcAFxGTQkQJkHuu02ou3+SBBHSIiAmTD/k6rdLXgpAHFmATIZtSHlV5xOpByAH+A7RUm/KY5/tUAAAAAElFTkSuQmCC\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapView.vue?vue&type=style&index=0&id=6068cf6b&lang=scss&scoped=true&\"","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/geom/MultiLineString\n */\nimport GeometryLayout from './GeometryLayout.js';\nimport LineString from './LineString.js';\nimport SimpleGeometry from './SimpleGeometry.js';\nimport { arrayMaxSquaredDelta, assignClosestArrayPoint } from './flat/closest.js';\nimport { closestSquaredDistanceXY } from '../extent.js';\nimport { deflateCoordinatesArray } from './flat/deflate.js';\nimport { douglasPeuckerArray } from './flat/simplify.js';\nimport { extend } from '../array.js';\nimport { inflateCoordinatesArray } from './flat/inflate.js';\nimport { interpolatePoint, lineStringsCoordinateAtM, } from './flat/interpolate.js';\nimport { intersectsLineStringArray } from './flat/intersectsextent.js';\n/**\n * @classdesc\n * Multi-linestring geometry.\n *\n * @api\n */\nvar MultiLineString = /** @class */ (function (_super) {\n __extends(MultiLineString, _super);\n /**\n * @param {Array|LineString>|Array} coordinates\n * Coordinates or LineString geometries. (For internal use, flat coordinates in\n * combination with `opt_layout` and `opt_ends` are also accepted.)\n * @param {import(\"./GeometryLayout.js\").default} [opt_layout] Layout.\n * @param {Array} [opt_ends] Flat coordinate ends for internal use.\n */\n function MultiLineString(coordinates, opt_layout, opt_ends) {\n var _this = _super.call(this) || this;\n /**\n * @type {Array}\n * @private\n */\n _this.ends_ = [];\n /**\n * @private\n * @type {number}\n */\n _this.maxDelta_ = -1;\n /**\n * @private\n * @type {number}\n */\n _this.maxDeltaRevision_ = -1;\n if (Array.isArray(coordinates[0])) {\n _this.setCoordinates(\n /** @type {Array>} */ (coordinates), opt_layout);\n }\n else if (opt_layout !== undefined && opt_ends) {\n _this.setFlatCoordinates(opt_layout, \n /** @type {Array} */ (coordinates));\n _this.ends_ = opt_ends;\n }\n else {\n var layout = _this.getLayout();\n var lineStrings = /** @type {Array} */ (coordinates);\n var flatCoordinates = [];\n var ends = [];\n for (var i = 0, ii = lineStrings.length; i < ii; ++i) {\n var lineString = lineStrings[i];\n if (i === 0) {\n layout = lineString.getLayout();\n }\n extend(flatCoordinates, lineString.getFlatCoordinates());\n ends.push(flatCoordinates.length);\n }\n _this.setFlatCoordinates(layout, flatCoordinates);\n _this.ends_ = ends;\n }\n return _this;\n }\n /**\n * Append the passed linestring to the multilinestring.\n * @param {LineString} lineString LineString.\n * @api\n */\n MultiLineString.prototype.appendLineString = function (lineString) {\n if (!this.flatCoordinates) {\n this.flatCoordinates = lineString.getFlatCoordinates().slice();\n }\n else {\n extend(this.flatCoordinates, lineString.getFlatCoordinates().slice());\n }\n this.ends_.push(this.flatCoordinates.length);\n this.changed();\n };\n /**\n * Make a complete copy of the geometry.\n * @return {!MultiLineString} Clone.\n * @api\n */\n MultiLineString.prototype.clone = function () {\n var multiLineString = new MultiLineString(this.flatCoordinates.slice(), this.layout, this.ends_.slice());\n multiLineString.applyProperties(this);\n return multiLineString;\n };\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n MultiLineString.prototype.closestPointXY = function (x, y, closestPoint, minSquaredDistance) {\n if (minSquaredDistance < closestSquaredDistanceXY(this.getExtent(), x, y)) {\n return minSquaredDistance;\n }\n if (this.maxDeltaRevision_ != this.getRevision()) {\n this.maxDelta_ = Math.sqrt(arrayMaxSquaredDelta(this.flatCoordinates, 0, this.ends_, this.stride, 0));\n this.maxDeltaRevision_ = this.getRevision();\n }\n return assignClosestArrayPoint(this.flatCoordinates, 0, this.ends_, this.stride, this.maxDelta_, false, x, y, closestPoint, minSquaredDistance);\n };\n /**\n * Returns the coordinate at `m` using linear interpolation, or `null` if no\n * such coordinate exists.\n *\n * `opt_extrapolate` controls extrapolation beyond the range of Ms in the\n * MultiLineString. If `opt_extrapolate` is `true` then Ms less than the first\n * M will return the first coordinate and Ms greater than the last M will\n * return the last coordinate.\n *\n * `opt_interpolate` controls interpolation between consecutive LineStrings\n * within the MultiLineString. If `opt_interpolate` is `true` the coordinates\n * will be linearly interpolated between the last coordinate of one LineString\n * and the first coordinate of the next LineString. If `opt_interpolate` is\n * `false` then the function will return `null` for Ms falling between\n * LineStrings.\n *\n * @param {number} m M.\n * @param {boolean} [opt_extrapolate] Extrapolate. Default is `false`.\n * @param {boolean} [opt_interpolate] Interpolate. Default is `false`.\n * @return {import(\"../coordinate.js\").Coordinate|null} Coordinate.\n * @api\n */\n MultiLineString.prototype.getCoordinateAtM = function (m, opt_extrapolate, opt_interpolate) {\n if ((this.layout != GeometryLayout.XYM &&\n this.layout != GeometryLayout.XYZM) ||\n this.flatCoordinates.length === 0) {\n return null;\n }\n var extrapolate = opt_extrapolate !== undefined ? opt_extrapolate : false;\n var interpolate = opt_interpolate !== undefined ? opt_interpolate : false;\n return lineStringsCoordinateAtM(this.flatCoordinates, 0, this.ends_, this.stride, m, extrapolate, interpolate);\n };\n /**\n * Return the coordinates of the multilinestring.\n * @return {Array>} Coordinates.\n * @api\n */\n MultiLineString.prototype.getCoordinates = function () {\n return inflateCoordinatesArray(this.flatCoordinates, 0, this.ends_, this.stride);\n };\n /**\n * @return {Array} Ends.\n */\n MultiLineString.prototype.getEnds = function () {\n return this.ends_;\n };\n /**\n * Return the linestring at the specified index.\n * @param {number} index Index.\n * @return {LineString} LineString.\n * @api\n */\n MultiLineString.prototype.getLineString = function (index) {\n if (index < 0 || this.ends_.length <= index) {\n return null;\n }\n return new LineString(this.flatCoordinates.slice(index === 0 ? 0 : this.ends_[index - 1], this.ends_[index]), this.layout);\n };\n /**\n * Return the linestrings of this multilinestring.\n * @return {Array} LineStrings.\n * @api\n */\n MultiLineString.prototype.getLineStrings = function () {\n var flatCoordinates = this.flatCoordinates;\n var ends = this.ends_;\n var layout = this.layout;\n /** @type {Array} */\n var lineStrings = [];\n var offset = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var lineString = new LineString(flatCoordinates.slice(offset, end), layout);\n lineStrings.push(lineString);\n offset = end;\n }\n return lineStrings;\n };\n /**\n * @return {Array} Flat midpoints.\n */\n MultiLineString.prototype.getFlatMidpoints = function () {\n var midpoints = [];\n var flatCoordinates = this.flatCoordinates;\n var offset = 0;\n var ends = this.ends_;\n var stride = this.stride;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var midpoint = interpolatePoint(flatCoordinates, offset, end, stride, 0.5);\n extend(midpoints, midpoint);\n offset = end;\n }\n return midpoints;\n };\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {MultiLineString} Simplified MultiLineString.\n * @protected\n */\n MultiLineString.prototype.getSimplifiedGeometryInternal = function (squaredTolerance) {\n var simplifiedFlatCoordinates = [];\n var simplifiedEnds = [];\n simplifiedFlatCoordinates.length = douglasPeuckerArray(this.flatCoordinates, 0, this.ends_, this.stride, squaredTolerance, simplifiedFlatCoordinates, 0, simplifiedEnds);\n return new MultiLineString(simplifiedFlatCoordinates, GeometryLayout.XY, simplifiedEnds);\n };\n /**\n * Get the type of this geometry.\n * @return {import(\"./Geometry.js\").Type} Geometry type.\n * @api\n */\n MultiLineString.prototype.getType = function () {\n return 'MultiLineString';\n };\n /**\n * Test if the geometry and the passed extent intersect.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n * @api\n */\n MultiLineString.prototype.intersectsExtent = function (extent) {\n return intersectsLineStringArray(this.flatCoordinates, 0, this.ends_, this.stride, extent);\n };\n /**\n * Set the coordinates of the multilinestring.\n * @param {!Array>} coordinates Coordinates.\n * @param {GeometryLayout} [opt_layout] Layout.\n * @api\n */\n MultiLineString.prototype.setCoordinates = function (coordinates, opt_layout) {\n this.setLayout(opt_layout, coordinates, 2);\n if (!this.flatCoordinates) {\n this.flatCoordinates = [];\n }\n var ends = deflateCoordinatesArray(this.flatCoordinates, 0, coordinates, this.stride, this.ends_);\n this.flatCoordinates.length = ends.length === 0 ? 0 : ends[ends.length - 1];\n this.changed();\n };\n return MultiLineString;\n}(SimpleGeometry));\nexport default MultiLineString;\n//# sourceMappingURL=MultiLineString.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/BaseTile\n */\nimport Layer from './Layer.js';\nimport TileProperty from './TileProperty.js';\nimport { assign } from '../obj.js';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseTileLayerOnSignature\n */\n/**\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {number} [preload=0] Preload. Load low-resolution tiles up to `preload` levels. `0`\n * means no preloading.\n * @property {TileSourceType} [source] Source for this layer.\n * @property {import(\"../PluggableMap.js\").default} [map] Sets the layer as overlay on a map. The map will not manage\n * this layer in its layers collection, and the layer will be rendered on top. This is useful for\n * temporary layers. The standard way to add a layer to a map and have it managed by the map is to\n * use {@link import(\"../PluggableMap.js\").default#addLayer map.addLayer()}.\n * @property {boolean} [useInterimTilesOnError=true] Use interim tiles on error.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @template {import(\"../renderer/Layer.js\").default} RendererType\n * @extends {Layer}\n * @api\n */\nvar BaseTileLayer = /** @class */ (function (_super) {\n __extends(BaseTileLayer, _super);\n /**\n * @param {Options} [opt_options] Tile layer options.\n */\n function BaseTileLayer(opt_options) {\n var _this = this;\n var options = opt_options ? opt_options : {};\n var baseOptions = assign({}, options);\n delete baseOptions.preload;\n delete baseOptions.useInterimTilesOnError;\n _this = _super.call(this, baseOptions) || this;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.on;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.once;\n /***\n * @type {BaseTileLayerOnSignature}\n */\n _this.un;\n _this.setPreload(options.preload !== undefined ? options.preload : 0);\n _this.setUseInterimTilesOnError(options.useInterimTilesOnError !== undefined\n ? options.useInterimTilesOnError\n : true);\n return _this;\n }\n /**\n * Return the level as number to which we will preload tiles up to.\n * @return {number} The level to preload tiles up to.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.getPreload = function () {\n return /** @type {number} */ (this.get(TileProperty.PRELOAD));\n };\n /**\n * Set the level as number to which we will preload tiles up to.\n * @param {number} preload The level to preload tiles up to.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.setPreload = function (preload) {\n this.set(TileProperty.PRELOAD, preload);\n };\n /**\n * Whether we use interim tiles on error.\n * @return {boolean} Use interim tiles on error.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.getUseInterimTilesOnError = function () {\n return /** @type {boolean} */ (this.get(TileProperty.USE_INTERIM_TILES_ON_ERROR));\n };\n /**\n * Set whether we use interim tiles on error.\n * @param {boolean} useInterimTilesOnError Use interim tiles on error.\n * @observable\n * @api\n */\n BaseTileLayer.prototype.setUseInterimTilesOnError = function (useInterimTilesOnError) {\n this.set(TileProperty.USE_INTERIM_TILES_ON_ERROR, useInterimTilesOnError);\n };\n /**\n * Get data for a pixel location. The return type depends on the source data. For image tiles,\n * a four element RGBA array will be returned. For data tiles, the array length will match the\n * number of bands in the dataset. For requests outside the layer extent, `null` will be returned.\n * Data for a image tiles can only be retrieved if the source's `crossOrigin` property is set.\n *\n * ```js\n * // display layer data on every pointer move\n * map.on('pointermove', (event) => {\n * console.log(layer.getData(event.pixel));\n * });\n * ```\n * @param {import(\"../pixel\").Pixel} pixel Pixel.\n * @return {Uint8ClampedArray|Uint8Array|Float32Array|DataView|null} Pixel data.\n * @api\n */\n BaseTileLayer.prototype.getData = function (pixel) {\n return _super.prototype.getData.call(this, pixel);\n };\n return BaseTileLayer;\n}(Layer));\nexport default BaseTileLayer;\n//# sourceMappingURL=BaseTile.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/Tile\n */\nimport BaseTileLayer from './BaseTile.js';\nimport CanvasTileLayerRenderer from '../renderer/canvas/TileLayer.js';\n/**\n * @classdesc\n * For layer sources that provide pre-rendered, tiled images in grids that are\n * organized by zoom levels for specific resolutions.\n * Note that any property set in the options is set as a {@link module:ol/Object~BaseObject}\n * property on the layer object; for example, setting `title: 'My Title'` in the\n * options means that `title` is observable, and has get/set accessors.\n *\n * @template {import(\"../source/Tile.js\").default} TileSourceType\n * @extends BaseTileLayer\n * @api\n */\nvar TileLayer = /** @class */ (function (_super) {\n __extends(TileLayer, _super);\n /**\n * @param {import(\"./BaseTile.js\").Options} [opt_options] Tile layer options.\n */\n function TileLayer(opt_options) {\n return _super.call(this, opt_options) || this;\n }\n TileLayer.prototype.createRenderer = function () {\n return new CanvasTileLayerRenderer(this);\n };\n return TileLayer;\n}(BaseTileLayer));\nexport default TileLayer;\n//# sourceMappingURL=Tile.js.map","/**\n * @module ol/ViewHint\n */\n/**\n * @enum {number}\n */\nexport default {\n ANIMATING: 0,\n INTERACTING: 1,\n};\n//# sourceMappingURL=ViewHint.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/Feature\n */\nimport BaseObject from './Object.js';\nimport EventType from './events/EventType.js';\nimport { assert } from './asserts.js';\nimport { listen, unlistenByKey } from './events.js';\n/**\n * @typedef {typeof Feature|typeof import(\"./render/Feature.js\").default} FeatureClass\n */\n/**\n * @typedef {Feature|import(\"./render/Feature.js\").default} FeatureLike\n */\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} FeatureOnSignature\n */\n/***\n * @template Geometry\n * @typedef {Object & { geometry?: Geometry }} ObjectWithGeometry\n */\n/**\n * @classdesc\n * A vector object for geographic features with a geometry and other\n * attribute properties, similar to the features in vector file formats like\n * GeoJSON.\n *\n * Features can be styled individually with `setStyle`; otherwise they use the\n * style of their vector layer.\n *\n * Note that attribute properties are set as {@link module:ol/Object~BaseObject} properties on\n * the feature object, so they are observable, and have get/set accessors.\n *\n * Typically, a feature has a single geometry property. You can set the\n * geometry using the `setGeometry` method and get it with `getGeometry`.\n * It is possible to store more than one geometry on a feature using attribute\n * properties. By default, the geometry used for rendering is identified by\n * the property name `geometry`. If you want to use another geometry property\n * for rendering, use the `setGeometryName` method to change the attribute\n * property associated with the geometry for the feature. For example:\n *\n * ```js\n *\n * import Feature from 'ol/Feature';\n * import Polygon from 'ol/geom/Polygon';\n * import Point from 'ol/geom/Point';\n *\n * var feature = new Feature({\n * geometry: new Polygon(polyCoords),\n * labelPoint: new Point(labelCoords),\n * name: 'My Polygon'\n * });\n *\n * // get the polygon geometry\n * var poly = feature.getGeometry();\n *\n * // Render the feature as a point using the coordinates from labelPoint\n * feature.setGeometryName('labelPoint');\n *\n * // get the point geometry\n * var point = feature.getGeometry();\n * ```\n *\n * @api\n * @template {import(\"./geom/Geometry.js\").default} [Geometry=import(\"./geom/Geometry.js\").default]\n */\nvar Feature = /** @class */ (function (_super) {\n __extends(Feature, _super);\n /**\n * @param {Geometry|ObjectWithGeometry} [opt_geometryOrProperties]\n * You may pass a Geometry object directly, or an object literal containing\n * properties. If you pass an object literal, you may include a Geometry\n * associated with a `geometry` key.\n */\n function Feature(opt_geometryOrProperties) {\n var _this = _super.call(this) || this;\n /***\n * @type {FeatureOnSignature}\n */\n _this.on;\n /***\n * @type {FeatureOnSignature}\n */\n _this.once;\n /***\n * @type {FeatureOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {number|string|undefined}\n */\n _this.id_ = undefined;\n /**\n * @type {string}\n * @private\n */\n _this.geometryName_ = 'geometry';\n /**\n * User provided style.\n * @private\n * @type {import(\"./style/Style.js\").StyleLike}\n */\n _this.style_ = null;\n /**\n * @private\n * @type {import(\"./style/Style.js\").StyleFunction|undefined}\n */\n _this.styleFunction_ = undefined;\n /**\n * @private\n * @type {?import(\"./events.js\").EventsKey}\n */\n _this.geometryChangeKey_ = null;\n _this.addChangeListener(_this.geometryName_, _this.handleGeometryChanged_);\n if (opt_geometryOrProperties) {\n if (typeof (\n /** @type {?} */ (opt_geometryOrProperties).getSimplifiedGeometry) === 'function') {\n var geometry = /** @type {Geometry} */ (opt_geometryOrProperties);\n _this.setGeometry(geometry);\n }\n else {\n /** @type {Object} */\n var properties = opt_geometryOrProperties;\n _this.setProperties(properties);\n }\n }\n return _this;\n }\n /**\n * Clone this feature. If the original feature has a geometry it\n * is also cloned. The feature id is not set in the clone.\n * @return {Feature} The clone.\n * @api\n */\n Feature.prototype.clone = function () {\n var clone = /** @type {Feature} */ (new Feature(this.hasProperties() ? this.getProperties() : null));\n clone.setGeometryName(this.getGeometryName());\n var geometry = this.getGeometry();\n if (geometry) {\n clone.setGeometry(/** @type {Geometry} */ (geometry.clone()));\n }\n var style = this.getStyle();\n if (style) {\n clone.setStyle(style);\n }\n return clone;\n };\n /**\n * Get the feature's default geometry. A feature may have any number of named\n * geometries. The \"default\" geometry (the one that is rendered by default) is\n * set when calling {@link module:ol/Feature~Feature#setGeometry}.\n * @return {Geometry|undefined} The default geometry for the feature.\n * @api\n * @observable\n */\n Feature.prototype.getGeometry = function () {\n return /** @type {Geometry|undefined} */ (this.get(this.geometryName_));\n };\n /**\n * Get the feature identifier. This is a stable identifier for the feature and\n * is either set when reading data from a remote source or set explicitly by\n * calling {@link module:ol/Feature~Feature#setId}.\n * @return {number|string|undefined} Id.\n * @api\n */\n Feature.prototype.getId = function () {\n return this.id_;\n };\n /**\n * Get the name of the feature's default geometry. By default, the default\n * geometry is named `geometry`.\n * @return {string} Get the property name associated with the default geometry\n * for this feature.\n * @api\n */\n Feature.prototype.getGeometryName = function () {\n return this.geometryName_;\n };\n /**\n * Get the feature's style. Will return what was provided to the\n * {@link module:ol/Feature~Feature#setStyle} method.\n * @return {import(\"./style/Style.js\").StyleLike|undefined} The feature style.\n * @api\n */\n Feature.prototype.getStyle = function () {\n return this.style_;\n };\n /**\n * Get the feature's style function.\n * @return {import(\"./style/Style.js\").StyleFunction|undefined} Return a function\n * representing the current style of this feature.\n * @api\n */\n Feature.prototype.getStyleFunction = function () {\n return this.styleFunction_;\n };\n /**\n * @private\n */\n Feature.prototype.handleGeometryChange_ = function () {\n this.changed();\n };\n /**\n * @private\n */\n Feature.prototype.handleGeometryChanged_ = function () {\n if (this.geometryChangeKey_) {\n unlistenByKey(this.geometryChangeKey_);\n this.geometryChangeKey_ = null;\n }\n var geometry = this.getGeometry();\n if (geometry) {\n this.geometryChangeKey_ = listen(geometry, EventType.CHANGE, this.handleGeometryChange_, this);\n }\n this.changed();\n };\n /**\n * Set the default geometry for the feature. This will update the property\n * with the name returned by {@link module:ol/Feature~Feature#getGeometryName}.\n * @param {Geometry|undefined} geometry The new geometry.\n * @api\n * @observable\n */\n Feature.prototype.setGeometry = function (geometry) {\n this.set(this.geometryName_, geometry);\n };\n /**\n * Set the style for the feature to override the layer style. This can be a\n * single style object, an array of styles, or a function that takes a\n * resolution and returns an array of styles. To unset the feature style, call\n * `setStyle()` without arguments or a falsey value.\n * @param {import(\"./style/Style.js\").StyleLike} [opt_style] Style for this feature.\n * @api\n * @fires module:ol/events/Event~BaseEvent#event:change\n */\n Feature.prototype.setStyle = function (opt_style) {\n this.style_ = opt_style;\n this.styleFunction_ = !opt_style\n ? undefined\n : createStyleFunction(opt_style);\n this.changed();\n };\n /**\n * Set the feature id. The feature id is considered stable and may be used when\n * requesting features or comparing identifiers returned from a remote source.\n * The feature id can be used with the\n * {@link module:ol/source/Vector~VectorSource#getFeatureById} method.\n * @param {number|string|undefined} id The feature id.\n * @api\n * @fires module:ol/events/Event~BaseEvent#event:change\n */\n Feature.prototype.setId = function (id) {\n this.id_ = id;\n this.changed();\n };\n /**\n * Set the property name to be used when getting the feature's default geometry.\n * When calling {@link module:ol/Feature~Feature#getGeometry}, the value of the property with\n * this name will be returned.\n * @param {string} name The property name of the default geometry.\n * @api\n */\n Feature.prototype.setGeometryName = function (name) {\n this.removeChangeListener(this.geometryName_, this.handleGeometryChanged_);\n this.geometryName_ = name;\n this.addChangeListener(this.geometryName_, this.handleGeometryChanged_);\n this.handleGeometryChanged_();\n };\n return Feature;\n}(BaseObject));\n/**\n * Convert the provided object into a feature style function. Functions passed\n * through unchanged. Arrays of Style or single style objects wrapped\n * in a new feature style function.\n * @param {!import(\"./style/Style.js\").StyleFunction|!Array|!import(\"./style/Style.js\").default} obj\n * A feature style function, a single style, or an array of styles.\n * @return {import(\"./style/Style.js\").StyleFunction} A style function.\n */\nexport function createStyleFunction(obj) {\n if (typeof obj === 'function') {\n return obj;\n }\n else {\n /**\n * @type {Array}\n */\n var styles_1;\n if (Array.isArray(obj)) {\n styles_1 = obj;\n }\n else {\n assert(typeof ( /** @type {?} */(obj).getZIndex) === 'function', 41); // Expected an `import(\"./style/Style.js\").Style` or an array of `import(\"./style/Style.js\").Style`\n var style = /** @type {import(\"./style/Style.js\").default} */ (obj);\n styles_1 = [style];\n }\n return function () {\n return styles_1;\n };\n }\n}\nexport default Feature;\n//# sourceMappingURL=Feature.js.map","/**\n * @module ol/geom/flat/reverse\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n */\nexport function coordinates(flatCoordinates, offset, end, stride) {\n while (offset < end - stride) {\n for (var i = 0; i < stride; ++i) {\n var tmp = flatCoordinates[offset + i];\n flatCoordinates[offset + i] = flatCoordinates[end - stride + i];\n flatCoordinates[end - stride + i] = tmp;\n }\n offset += stride;\n end -= stride;\n }\n}\n//# sourceMappingURL=reverse.js.map","/**\n * @module ol/geom/flat/orient\n */\nimport { coordinates as reverseCoordinates } from './reverse.js';\n/**\n * Is the linear ring oriented clockwise in a coordinate system with a bottom-left\n * coordinate origin? For a coordinate system with a top-left coordinate origin,\n * the ring's orientation is clockwise when this function returns false.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {boolean} Is clockwise.\n */\nexport function linearRingIsClockwise(flatCoordinates, offset, end, stride) {\n // https://stackoverflow.com/q/1165647/clockwise-method#1165943\n // https://github.com/OSGeo/gdal/blob/master/gdal/ogr/ogrlinearring.cpp\n var edge = 0;\n var x1 = flatCoordinates[end - stride];\n var y1 = flatCoordinates[end - stride + 1];\n for (; offset < end; offset += stride) {\n var x2 = flatCoordinates[offset];\n var y2 = flatCoordinates[offset + 1];\n edge += (x2 - x1) * (y2 + y1);\n x1 = x2;\n y1 = y2;\n }\n return edge === 0 ? undefined : edge > 0;\n}\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingsAreOriented(flatCoordinates, offset, ends, stride, opt_right) {\n var right = opt_right !== undefined ? opt_right : false;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var isClockwise = linearRingIsClockwise(flatCoordinates, offset, end, stride);\n if (i === 0) {\n if ((right && isClockwise) || (!right && !isClockwise)) {\n return false;\n }\n }\n else {\n if ((right && !isClockwise) || (!right && isClockwise)) {\n return false;\n }\n }\n offset = end;\n }\n return true;\n}\n/**\n * Determines if linear rings are oriented. By default, left-hand orientation\n * is tested (first ring must be clockwise, remaining rings counter-clockwise).\n * To test for right-hand orientation, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Test for right-hand orientation\n * (counter-clockwise exterior ring and clockwise interior rings).\n * @return {boolean} Rings are correctly oriented.\n */\nexport function linearRingssAreOriented(flatCoordinates, offset, endss, stride, opt_right) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n var ends = endss[i];\n if (!linearRingsAreOriented(flatCoordinates, offset, ends, stride, opt_right)) {\n return false;\n }\n if (ends.length) {\n offset = ends[ends.length - 1];\n }\n }\n return true;\n}\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRings(flatCoordinates, offset, ends, stride, opt_right) {\n var right = opt_right !== undefined ? opt_right : false;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n var isClockwise = linearRingIsClockwise(flatCoordinates, offset, end, stride);\n var reverse = i === 0\n ? (right && isClockwise) || (!right && !isClockwise)\n : (right && !isClockwise) || (!right && isClockwise);\n if (reverse) {\n reverseCoordinates(flatCoordinates, offset, end, stride);\n }\n offset = end;\n }\n return offset;\n}\n/**\n * Orient coordinates in a flat array of linear rings. By default, rings\n * are oriented following the left-hand rule (clockwise for exterior and\n * counter-clockwise for interior rings). To orient according to the\n * right-hand rule, use the `opt_right` argument.\n *\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Array of array of end indexes.\n * @param {number} stride Stride.\n * @param {boolean} [opt_right] Follow the right-hand rule for orientation.\n * @return {number} End.\n */\nexport function orientLinearRingsArray(flatCoordinates, offset, endss, stride, opt_right) {\n for (var i = 0, ii = endss.length; i < ii; ++i) {\n offset = orientLinearRings(flatCoordinates, offset, endss[i], stride, opt_right);\n }\n return offset;\n}\n/**\n * Return a two-dimensional endss\n * @param {Array} flatCoordinates Flat coordinates\n * @param {Array} ends Linear ring end indexes\n * @return {Array>} Two dimensional endss array that can\n * be used to contruct a MultiPolygon\n */\nexport function inflateEnds(flatCoordinates, ends) {\n var endss = [];\n var offset = 0;\n var prevEndIndex = 0;\n for (var i = 0, ii = ends.length; i < ii; ++i) {\n var end = ends[i];\n // classifies an array of rings into polygons with outer rings and holes\n if (!linearRingIsClockwise(flatCoordinates, offset, end, 2)) {\n endss.push(ends.slice(prevEndIndex, i + 1));\n }\n else {\n if (endss.length === 0) {\n continue;\n }\n endss[endss.length - 1].push(ends[prevEndIndex]);\n }\n prevEndIndex = i + 1;\n offset = end;\n }\n return endss;\n}\n//# sourceMappingURL=orient.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"vx-col w-full sm:w-1/2 lg:w-1/3 mb-base\"},[_c('vx-card',[_c('div',{staticStyle:{\"height\":\"90px\"},attrs:{\"slot\":\"no-body\"},slot:\"no-body\"},[_c('vs-dropdown',{staticClass:\"cursor-pointer\",attrs:{\"vs-custom-content\":\"\",\"vs-trigger-click\":\"\"}},[_c('span',{staticClass:\"cursor-pointer flex items-center i18n-locale\"},[_c('img',{staticClass:\"responsive card-img-top\",attrs:{\"src\":_vm.maptipe_locale_img,\"alt\":_vm.mapTypeSelected}})]),_c('vs-dropdown-menu',{staticClass:\"w-48 i18n-dropdown vx-navbar-dropdown\"},[_c('vs-dropdown-group',{staticClass:\"text-center\",attrs:{\"vs-label\":_vm.$t('general.MapTypes')}},[_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapType('normal')}}},[_c('div',{staticClass:\"drop-items\"},[_c('img',{staticClass:\"h-8 w-8 img-h\",class:[{'map-active': _vm.mapTypeSelected === 'normal'}],attrs:{\"src\":require(\"@/assets/images/maps/roadmap.jpg\"),\"alt\":\"de\"}}),_c('small',[_vm._v(_vm._s(_vm.$t(\"MapModule.Default\")))])])]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapType('satellite')}}},[_c('div',{staticClass:\"drop-items\"},[_c('img',{staticClass:\"h-8 w-8 img-h\",class:[\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'map-active': _vm.mapTypeSelected === 'satellite',\n\t\t\t\t\t\t\t\t\t\t} ],attrs:{\"src\":require(\"@/assets/images/maps/satellite.jpg\"),\"alt\":\"pt\"}}),_c('small',[_vm._v(_vm._s(_vm.$t(\"MapModule.Satellite\")))])])]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapType('terrain')}}},[_c('div',{staticClass:\"drop-items\"},[_c('img',{staticClass:\"h-8 w-8 img-h\",class:[{'map-active': _vm.mapTypeSelected === 'terrain'}],attrs:{\"src\":require(\"@/assets/images/maps/terrain.jpg\"),\"alt\":\"pt\"}}),_c('small',[_vm._v(_vm._s(_vm.$t(\"MapModule.Terrain\")))])])])],1),_c('vs-dropdown-group',{staticClass:\"text-center\",attrs:{\"vs-label\":_vm.$t('MapModule.Traffic')}},[(!_vm.activeTrafficLayer)?_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapType('traffic')}}},[_c('div',{staticClass:\"drop-items\"},[_c('img',{staticClass:\"h-8 w-8 img-h\",class:[{'map-active': _vm.activeTrafficLayer}],attrs:{\"src\":require(\"@/assets/images/maps/traffic.png\"),\"alt\":\"pt\"}}),_c('small',[_vm._v(_vm._s(_vm.$t(\"MapModule.ActivateTraffic\")))])])]):_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapType('traffic_clean')}}},[_c('div',{staticClass:\"drop-items\"},[_c('img',{staticClass:\"h-8 w-8 img-h\",class:[{'map-active': _vm.activeTrafficLayer}],attrs:{\"src\":require(\"@/assets/images/maps/traffic.png\"),\"alt\":\"pt\"}}),_c('small',[_vm._v(_vm._s(_vm.$t(\"MapModule.DisableTraffic\")))])])])],1),_c('vs-dropdown-group',{staticClass:\"text-center\",attrs:{\"vs-collapse\":\"\",\"vs-label\":_vm.$t('general.Styles')}},[_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapStyle('normal.day')}}},[_vm._v(\"  \"+_vm._s(_vm.$t(\"MapModule.Default\"))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapStyle('normal.night')}}},[_vm._v(\"  Dark \")]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapStyle('normal.day.grey')}}},[_vm._v(\"  Gray \")]),_c('vs-dropdown-item',{on:{\"click\":function($event){return _vm.changeMapStyle('normal.night.grey')}}},[_vm._v(\"  Dark - Gray\\n\\t\\t\\t\\t\\t\\t\")])],1)],1)],1)],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"a-footer\",staticStyle:{\"background-color\":\"#ff8c34\",\"border-radius\":\"0px 0px 10px 10px\"}},[_c('span',{staticClass:\"hidden sm:block\"},[_vm._v(_vm._s(_vm.$t(\"general.MapStyle\")))])])])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapSettings.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapSettings.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MapSettings.vue?vue&type=template&id=0d4fd011&scoped=true&\"\nimport script from \"./MapSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./MapSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MapSettings.vue?vue&type=style&index=0&id=0d4fd011&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d4fd011\",\n null\n \n)\n\nexport default component.exports","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/MapBrowserEvent\n */\nimport MapEvent from './MapEvent.js';\n/**\n * @classdesc\n * Events emitted as map browser events are instances of this type.\n * See {@link module:ol/PluggableMap~PluggableMap} for which events trigger a map browser event.\n * @template {UIEvent} EVENT\n */\nvar MapBrowserEvent = /** @class */ (function (_super) {\n __extends(MapBrowserEvent, _super);\n /**\n * @param {string} type Event type.\n * @param {import(\"./PluggableMap.js\").default} map Map.\n * @param {EVENT} originalEvent Original event.\n * @param {boolean} [opt_dragging] Is the map currently being dragged?\n * @param {import(\"./PluggableMap.js\").FrameState} [opt_frameState] Frame state.\n * @param {Array} [opt_activePointers] Active pointers.\n */\n function MapBrowserEvent(type, map, originalEvent, opt_dragging, opt_frameState, opt_activePointers) {\n var _this = _super.call(this, type, map, opt_frameState) || this;\n /**\n * The original browser event.\n * @const\n * @type {EVENT}\n * @api\n */\n _this.originalEvent = originalEvent;\n /**\n * The map pixel relative to the viewport corresponding to the original browser event.\n * @type {?import(\"./pixel.js\").Pixel}\n */\n _this.pixel_ = null;\n /**\n * The coordinate in the user projection corresponding to the original browser event.\n * @type {?import(\"./coordinate.js\").Coordinate}\n */\n _this.coordinate_ = null;\n /**\n * Indicates if the map is currently being dragged. Only set for\n * `POINTERDRAG` and `POINTERMOVE` events. Default is `false`.\n *\n * @type {boolean}\n * @api\n */\n _this.dragging = opt_dragging !== undefined ? opt_dragging : false;\n /**\n * @type {Array|undefined}\n */\n _this.activePointers = opt_activePointers;\n return _this;\n }\n Object.defineProperty(MapBrowserEvent.prototype, \"pixel\", {\n /**\n * The map pixel relative to the viewport corresponding to the original event.\n * @type {import(\"./pixel.js\").Pixel}\n * @api\n */\n get: function () {\n if (!this.pixel_) {\n this.pixel_ = this.map.getEventPixel(this.originalEvent);\n }\n return this.pixel_;\n },\n set: function (pixel) {\n this.pixel_ = pixel;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MapBrowserEvent.prototype, \"coordinate\", {\n /**\n * The coordinate corresponding to the original browser event. This will be in the user\n * projection if one is set. Otherwise it will be in the view projection.\n * @type {import(\"./coordinate.js\").Coordinate}\n * @api\n */\n get: function () {\n if (!this.coordinate_) {\n this.coordinate_ = this.map.getCoordinateFromPixel(this.pixel);\n }\n return this.coordinate_;\n },\n set: function (coordinate) {\n this.coordinate_ = coordinate;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Prevents the default browser action.\n * See https://developer.mozilla.org/en-US/docs/Web/API/event.preventDefault.\n * @api\n */\n MapBrowserEvent.prototype.preventDefault = function () {\n _super.prototype.preventDefault.call(this);\n if ('preventDefault' in this.originalEvent) {\n /** @type {UIEvent} */ (this.originalEvent).preventDefault();\n }\n };\n /**\n * Prevents further propagation of the current event.\n * See https://developer.mozilla.org/en-US/docs/Web/API/event.stopPropagation.\n * @api\n */\n MapBrowserEvent.prototype.stopPropagation = function () {\n _super.prototype.stopPropagation.call(this);\n if ('stopPropagation' in this.originalEvent) {\n /** @type {UIEvent} */ (this.originalEvent).stopPropagation();\n }\n };\n return MapBrowserEvent;\n}(MapEvent));\nexport default MapBrowserEvent;\n//# sourceMappingURL=MapBrowserEvent.js.map","/**\n * @module ol/geom/GeometryLayout\n */\n/**\n * The coordinate layout for geometries, indicating whether a 3rd or 4th z ('Z')\n * or measure ('M') coordinate is available. Supported values are `'XY'`,\n * `'XYZ'`, `'XYM'`, `'XYZM'`.\n * @enum {string}\n */\nexport default {\n XY: 'XY',\n XYZ: 'XYZ',\n XYM: 'XYM',\n XYZM: 'XYZM',\n};\n//# sourceMappingURL=GeometryLayout.js.map","/**\n * @module ol/source/TileEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a tile starts loading.\n * @event module:ol/source/Tile.TileSourceEvent#tileloadstart\n * @api\n */\n TILELOADSTART: 'tileloadstart',\n /**\n * Triggered when a tile finishes loading, either when its data is loaded,\n * or when loading was aborted because the tile is no longer needed.\n * @event module:ol/source/Tile.TileSourceEvent#tileloadend\n * @api\n */\n TILELOADEND: 'tileloadend',\n /**\n * Triggered if tile loading results in an error.\n * @event module:ol/source/Tile.TileSourceEvent#tileloaderror\n * @api\n */\n TILELOADERROR: 'tileloaderror',\n};\n/**\n * @typedef {'tileloadstart'|'tileloadend'|'tileloaderror'} TileSourceEventTypes\n */\n//# sourceMappingURL=TileEventType.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/source/Tile\n */\nimport Event from '../events/Event.js';\nimport Source from './Source.js';\nimport TileCache from '../TileCache.js';\nimport TileState from '../TileState.js';\nimport { abstract } from '../util.js';\nimport { assert } from '../asserts.js';\nimport { equivalent } from '../proj.js';\nimport { getKeyZXY, withinExtentAndZ } from '../tilecoord.js';\nimport { getForProjection as getTileGridForProjection, wrapX, } from '../tilegrid.js';\nimport { scale as scaleSize, toSize } from '../size.js';\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} TileSourceOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [cacheSize] CacheSize.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {number} [tilePixelRatio] TilePixelRatio.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Projection.\n * @property {import(\"./Source.js\").State} [state] State.\n * @property {import(\"../tilegrid/TileGrid.js\").default} [tileGrid] TileGrid.\n * @property {boolean} [wrapX=false] WrapX.\n * @property {number} [transition] Transition.\n * @property {string} [key] Key.\n * @property {number|import(\"../array.js\").NearestDirectionFunction} [zDirection=0] ZDirection.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for sources providing images divided into a tile grid.\n * @abstract\n * @api\n */\nvar TileSource = /** @class */ (function (_super) {\n __extends(TileSource, _super);\n /**\n * @param {Options} options SourceTile source options.\n */\n function TileSource(options) {\n var _this = _super.call(this, {\n attributions: options.attributions,\n attributionsCollapsible: options.attributionsCollapsible,\n projection: options.projection,\n state: options.state,\n wrapX: options.wrapX,\n interpolate: options.interpolate,\n }) || this;\n /***\n * @type {TileSourceOnSignature}\n */\n _this.on;\n /***\n * @type {TileSourceOnSignature}\n */\n _this.once;\n /***\n * @type {TileSourceOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {boolean}\n */\n _this.opaque_ = options.opaque !== undefined ? options.opaque : false;\n /**\n * @private\n * @type {number}\n */\n _this.tilePixelRatio_ =\n options.tilePixelRatio !== undefined ? options.tilePixelRatio : 1;\n /**\n * @type {import(\"../tilegrid/TileGrid.js\").default|null}\n */\n _this.tileGrid = options.tileGrid !== undefined ? options.tileGrid : null;\n var tileSize = [256, 256];\n if (_this.tileGrid) {\n toSize(_this.tileGrid.getTileSize(_this.tileGrid.getMinZoom()), tileSize);\n }\n /**\n * @protected\n * @type {import(\"../TileCache.js\").default}\n */\n _this.tileCache = new TileCache(options.cacheSize || 0);\n /**\n * @protected\n * @type {import(\"../size.js\").Size}\n */\n _this.tmpSize = [0, 0];\n /**\n * @private\n * @type {string}\n */\n _this.key_ = options.key || '';\n /**\n * @protected\n * @type {import(\"../Tile.js\").Options}\n */\n _this.tileOptions = {\n transition: options.transition,\n interpolate: options.interpolate,\n };\n /**\n * zDirection hint, read by the renderer. Indicates which resolution should be used\n * by a renderer if the views resolution does not match any resolution of the tile source.\n * If 0, the nearest resolution will be used. If 1, the nearest lower resolution\n * will be used. If -1, the nearest higher resolution will be used.\n * @type {number|import(\"../array.js\").NearestDirectionFunction}\n */\n _this.zDirection = options.zDirection ? options.zDirection : 0;\n return _this;\n }\n /**\n * @return {boolean} Can expire cache.\n */\n TileSource.prototype.canExpireCache = function () {\n return this.tileCache.canExpireCache();\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @param {!Object} usedTiles Used tiles.\n */\n TileSource.prototype.expireCache = function (projection, usedTiles) {\n var tileCache = this.getTileCacheForProjection(projection);\n if (tileCache) {\n tileCache.expireCache(usedTiles);\n }\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @param {number} z Zoom level.\n * @param {import(\"../TileRange.js\").default} tileRange Tile range.\n * @param {function(import(\"../Tile.js\").default):(boolean|void)} callback Called with each\n * loaded tile. If the callback returns `false`, the tile will not be\n * considered loaded.\n * @return {boolean} The tile range is fully covered with loaded tiles.\n */\n TileSource.prototype.forEachLoadedTile = function (projection, z, tileRange, callback) {\n var tileCache = this.getTileCacheForProjection(projection);\n if (!tileCache) {\n return false;\n }\n var covered = true;\n var tile, tileCoordKey, loaded;\n for (var x = tileRange.minX; x <= tileRange.maxX; ++x) {\n for (var y = tileRange.minY; y <= tileRange.maxY; ++y) {\n tileCoordKey = getKeyZXY(z, x, y);\n loaded = false;\n if (tileCache.containsKey(tileCoordKey)) {\n tile = /** @type {!import(\"../Tile.js\").default} */ (tileCache.get(tileCoordKey));\n loaded = tile.getState() === TileState.LOADED;\n if (loaded) {\n loaded = callback(tile) !== false;\n }\n }\n if (!loaded) {\n covered = false;\n }\n }\n }\n return covered;\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {number} Gutter.\n */\n TileSource.prototype.getGutterForProjection = function (projection) {\n return 0;\n };\n /**\n * Return the key to be used for all tiles in the source.\n * @return {string} The key for all tiles.\n */\n TileSource.prototype.getKey = function () {\n return this.key_;\n };\n /**\n * Set the value to be used as the key for all tiles in the source.\n * @param {string} key The key for tiles.\n * @protected\n */\n TileSource.prototype.setKey = function (key) {\n if (this.key_ !== key) {\n this.key_ = key;\n this.changed();\n }\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {boolean} Opaque.\n */\n TileSource.prototype.getOpaque = function (projection) {\n return this.opaque_;\n };\n /**\n * @return {Array|null} Resolutions.\n */\n TileSource.prototype.getResolutions = function () {\n if (!this.tileGrid) {\n return null;\n }\n return this.tileGrid.getResolutions();\n };\n /**\n * @abstract\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!import(\"../Tile.js\").default} Tile.\n */\n TileSource.prototype.getTile = function (z, x, y, pixelRatio, projection) {\n return abstract();\n };\n /**\n * Return the tile grid of the tile source.\n * @return {import(\"../tilegrid/TileGrid.js\").default|null} Tile grid.\n * @api\n */\n TileSource.prototype.getTileGrid = function () {\n return this.tileGrid;\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {!import(\"../tilegrid/TileGrid.js\").default} Tile grid.\n */\n TileSource.prototype.getTileGridForProjection = function (projection) {\n if (!this.tileGrid) {\n return getTileGridForProjection(projection);\n }\n else {\n return this.tileGrid;\n }\n };\n /**\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {import(\"../TileCache.js\").default} Tile cache.\n * @protected\n */\n TileSource.prototype.getTileCacheForProjection = function (projection) {\n var sourceProjection = this.getProjection();\n assert(sourceProjection === null || equivalent(sourceProjection, projection), 68 // A VectorTile source can only be rendered if it has a projection compatible with the view projection.\n );\n return this.tileCache;\n };\n /**\n * Get the tile pixel ratio for this source. Subclasses may override this\n * method, which is meant to return a supported pixel ratio that matches the\n * provided `pixelRatio` as close as possible.\n * @param {number} pixelRatio Pixel ratio.\n * @return {number} Tile pixel ratio.\n */\n TileSource.prototype.getTilePixelRatio = function (pixelRatio) {\n return this.tilePixelRatio_;\n };\n /**\n * @param {number} z Z.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {import(\"../size.js\").Size} Tile size.\n */\n TileSource.prototype.getTilePixelSize = function (z, pixelRatio, projection) {\n var tileGrid = this.getTileGridForProjection(projection);\n var tilePixelRatio = this.getTilePixelRatio(pixelRatio);\n var tileSize = toSize(tileGrid.getTileSize(z), this.tmpSize);\n if (tilePixelRatio == 1) {\n return tileSize;\n }\n else {\n return scaleSize(tileSize, tilePixelRatio, this.tmpSize);\n }\n };\n /**\n * Returns a tile coordinate wrapped around the x-axis. When the tile coordinate\n * is outside the resolution and extent range of the tile grid, `null` will be\n * returned.\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {import(\"../proj/Projection.js\").default} [opt_projection] Projection.\n * @return {import(\"../tilecoord.js\").TileCoord} Tile coordinate to be passed to the tileUrlFunction or\n * null if no tile URL should be created for the passed `tileCoord`.\n */\n TileSource.prototype.getTileCoordForTileUrlFunction = function (tileCoord, opt_projection) {\n var projection = opt_projection !== undefined ? opt_projection : this.getProjection();\n var tileGrid = this.getTileGridForProjection(projection);\n if (this.getWrapX() && projection.isGlobal()) {\n tileCoord = wrapX(tileGrid, tileCoord, projection);\n }\n return withinExtentAndZ(tileCoord, tileGrid) ? tileCoord : null;\n };\n /**\n * Remove all cached tiles from the source. The next render cycle will fetch new tiles.\n * @api\n */\n TileSource.prototype.clear = function () {\n this.tileCache.clear();\n };\n TileSource.prototype.refresh = function () {\n this.clear();\n _super.prototype.refresh.call(this);\n };\n /**\n * Increases the cache size if needed\n * @param {number} tileCount Minimum number of tiles needed.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n */\n TileSource.prototype.updateCacheSize = function (tileCount, projection) {\n var tileCache = this.getTileCacheForProjection(projection);\n if (tileCount > tileCache.highWaterMark) {\n tileCache.highWaterMark = tileCount;\n }\n };\n /**\n * Marks a tile coord as being used, without triggering a load.\n * @abstract\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n */\n TileSource.prototype.useTile = function (z, x, y, projection) { };\n return TileSource;\n}(Source));\n/**\n * @classdesc\n * Events emitted by {@link module:ol/source/Tile~TileSource} instances are instances of this\n * type.\n */\nvar TileSourceEvent = /** @class */ (function (_super) {\n __extends(TileSourceEvent, _super);\n /**\n * @param {string} type Type.\n * @param {import(\"../Tile.js\").default} tile The tile.\n */\n function TileSourceEvent(type, tile) {\n var _this = _super.call(this, type) || this;\n /**\n * The tile related to the event.\n * @type {import(\"../Tile.js\").default}\n * @api\n */\n _this.tile = tile;\n return _this;\n }\n return TileSourceEvent;\n}(Event));\nexport { TileSourceEvent };\nexport default TileSource;\n//# sourceMappingURL=Tile.js.map","/**\n * @module ol/tileurlfunction\n */\nimport { assert } from './asserts.js';\nimport { modulo } from './math.js';\nimport { hash as tileCoordHash } from './tilecoord.js';\n/**\n * @param {string} template Template.\n * @param {import(\"./tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @return {import(\"./Tile.js\").UrlFunction} Tile URL function.\n */\nexport function createFromTemplate(template, tileGrid) {\n var zRegEx = /\\{z\\}/g;\n var xRegEx = /\\{x\\}/g;\n var yRegEx = /\\{y\\}/g;\n var dashYRegEx = /\\{-y\\}/g;\n return (\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile Coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\n function (tileCoord, pixelRatio, projection) {\n if (!tileCoord) {\n return undefined;\n }\n else {\n return template\n .replace(zRegEx, tileCoord[0].toString())\n .replace(xRegEx, tileCoord[1].toString())\n .replace(yRegEx, tileCoord[2].toString())\n .replace(dashYRegEx, function () {\n var z = tileCoord[0];\n var range = tileGrid.getFullTileRange(z);\n assert(range, 55); // The {-y} placeholder requires a tile grid with extent\n var y = range.getHeight() - tileCoord[2] - 1;\n return y.toString();\n });\n }\n });\n}\n/**\n * @param {Array} templates Templates.\n * @param {import(\"./tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @return {import(\"./Tile.js\").UrlFunction} Tile URL function.\n */\nexport function createFromTemplates(templates, tileGrid) {\n var len = templates.length;\n var tileUrlFunctions = new Array(len);\n for (var i = 0; i < len; ++i) {\n tileUrlFunctions[i] = createFromTemplate(templates[i], tileGrid);\n }\n return createFromTileUrlFunctions(tileUrlFunctions);\n}\n/**\n * @param {Array} tileUrlFunctions Tile URL Functions.\n * @return {import(\"./Tile.js\").UrlFunction} Tile URL function.\n */\nexport function createFromTileUrlFunctions(tileUrlFunctions) {\n if (tileUrlFunctions.length === 1) {\n return tileUrlFunctions[0];\n }\n return (\n /**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile Coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\n function (tileCoord, pixelRatio, projection) {\n if (!tileCoord) {\n return undefined;\n }\n else {\n var h = tileCoordHash(tileCoord);\n var index = modulo(h, tileUrlFunctions.length);\n return tileUrlFunctions[index](tileCoord, pixelRatio, projection);\n }\n });\n}\n/**\n * @param {import(\"./tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\nexport function nullTileUrlFunction(tileCoord, pixelRatio, projection) {\n return undefined;\n}\n/**\n * @param {string} url URL.\n * @return {Array} Array of urls.\n */\nexport function expandUrl(url) {\n var urls = [];\n var match = /\\{([a-z])-([a-z])\\}/.exec(url);\n if (match) {\n // char range\n var startCharCode = match[1].charCodeAt(0);\n var stopCharCode = match[2].charCodeAt(0);\n var charCode = void 0;\n for (charCode = startCharCode; charCode <= stopCharCode; ++charCode) {\n urls.push(url.replace(match[0], String.fromCharCode(charCode)));\n }\n return urls;\n }\n match = /\\{(\\d+)-(\\d+)\\}/.exec(url);\n if (match) {\n // number range\n var stop_1 = parseInt(match[2], 10);\n for (var i = parseInt(match[1], 10); i <= stop_1; i++) {\n urls.push(url.replace(match[0], i.toString()));\n }\n return urls;\n }\n urls.push(url);\n return urls;\n}\n//# sourceMappingURL=tileurlfunction.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/source/UrlTile\n */\nimport TileEventType from './TileEventType.js';\nimport TileSource, { TileSourceEvent } from './Tile.js';\nimport TileState from '../TileState.js';\nimport { createFromTemplates, expandUrl } from '../tileurlfunction.js';\nimport { getKeyZXY } from '../tilecoord.js';\nimport { getUid } from '../util.js';\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.\n * @property {number} [cacheSize] Cache size.\n * @property {boolean} [opaque=false] Whether the layer is opaque.\n * @property {import(\"../proj.js\").ProjectionLike} [projection] Projection.\n * @property {import(\"./Source.js\").State} [state] State.\n * @property {import(\"../tilegrid/TileGrid.js\").default} [tileGrid] TileGrid.\n * @property {import(\"../Tile.js\").LoadFunction} tileLoadFunction TileLoadFunction.\n * @property {number} [tilePixelRatio] TilePixelRatio.\n * @property {import(\"../Tile.js\").UrlFunction} [tileUrlFunction] TileUrlFunction.\n * @property {string} [url] Url.\n * @property {Array} [urls] Urls.\n * @property {boolean} [wrapX=true] WrapX.\n * @property {number} [transition] Transition.\n * @property {string} [key] Key.\n * @property {number|import(\"../array.js\").NearestDirectionFunction} [zDirection=0] ZDirection.\n * @property {boolean} [interpolate=false] Use interpolated values when resampling. By default,\n * the nearest neighbor is used when resampling.\n */\n/**\n * @classdesc\n * Base class for sources providing tiles divided into a tile grid over http.\n *\n * @fires import(\"./Tile.js\").TileSourceEvent\n */\nvar UrlTile = /** @class */ (function (_super) {\n __extends(UrlTile, _super);\n /**\n * @param {Options} options Image tile options.\n */\n function UrlTile(options) {\n var _this = _super.call(this, {\n attributions: options.attributions,\n cacheSize: options.cacheSize,\n opaque: options.opaque,\n projection: options.projection,\n state: options.state,\n tileGrid: options.tileGrid,\n tilePixelRatio: options.tilePixelRatio,\n wrapX: options.wrapX,\n transition: options.transition,\n interpolate: options.interpolate,\n key: options.key,\n attributionsCollapsible: options.attributionsCollapsible,\n zDirection: options.zDirection,\n }) || this;\n /**\n * @private\n * @type {boolean}\n */\n _this.generateTileUrlFunction_ =\n _this.tileUrlFunction === UrlTile.prototype.tileUrlFunction;\n /**\n * @protected\n * @type {import(\"../Tile.js\").LoadFunction}\n */\n _this.tileLoadFunction = options.tileLoadFunction;\n if (options.tileUrlFunction) {\n _this.tileUrlFunction = options.tileUrlFunction;\n }\n /**\n * @protected\n * @type {!Array|null}\n */\n _this.urls = null;\n if (options.urls) {\n _this.setUrls(options.urls);\n }\n else if (options.url) {\n _this.setUrl(options.url);\n }\n /**\n * @private\n * @type {!Object}\n */\n _this.tileLoadingKeys_ = {};\n return _this;\n }\n /**\n * Return the tile load function of the source.\n * @return {import(\"../Tile.js\").LoadFunction} TileLoadFunction\n * @api\n */\n UrlTile.prototype.getTileLoadFunction = function () {\n return this.tileLoadFunction;\n };\n /**\n * Return the tile URL function of the source.\n * @return {import(\"../Tile.js\").UrlFunction} TileUrlFunction\n * @api\n */\n UrlTile.prototype.getTileUrlFunction = function () {\n return Object.getPrototypeOf(this).tileUrlFunction === this.tileUrlFunction\n ? this.tileUrlFunction.bind(this)\n : this.tileUrlFunction;\n };\n /**\n * Return the URLs used for this source.\n * When a tileUrlFunction is used instead of url or urls,\n * null will be returned.\n * @return {!Array|null} URLs.\n * @api\n */\n UrlTile.prototype.getUrls = function () {\n return this.urls;\n };\n /**\n * Handle tile change events.\n * @param {import(\"../events/Event.js\").default} event Event.\n * @protected\n */\n UrlTile.prototype.handleTileChange = function (event) {\n var tile = /** @type {import(\"../Tile.js\").default} */ (event.target);\n var uid = getUid(tile);\n var tileState = tile.getState();\n var type;\n if (tileState == TileState.LOADING) {\n this.tileLoadingKeys_[uid] = true;\n type = TileEventType.TILELOADSTART;\n }\n else if (uid in this.tileLoadingKeys_) {\n delete this.tileLoadingKeys_[uid];\n type =\n tileState == TileState.ERROR\n ? TileEventType.TILELOADERROR\n : tileState == TileState.LOADED\n ? TileEventType.TILELOADEND\n : undefined;\n }\n if (type != undefined) {\n this.dispatchEvent(new TileSourceEvent(type, tile));\n }\n };\n /**\n * Set the tile load function of the source.\n * @param {import(\"../Tile.js\").LoadFunction} tileLoadFunction Tile load function.\n * @api\n */\n UrlTile.prototype.setTileLoadFunction = function (tileLoadFunction) {\n this.tileCache.clear();\n this.tileLoadFunction = tileLoadFunction;\n this.changed();\n };\n /**\n * Set the tile URL function of the source.\n * @param {import(\"../Tile.js\").UrlFunction} tileUrlFunction Tile URL function.\n * @param {string} [key] Optional new tile key for the source.\n * @api\n */\n UrlTile.prototype.setTileUrlFunction = function (tileUrlFunction, key) {\n this.tileUrlFunction = tileUrlFunction;\n this.tileCache.pruneExceptNewestZ();\n if (typeof key !== 'undefined') {\n this.setKey(key);\n }\n else {\n this.changed();\n }\n };\n /**\n * Set the URL to use for requests.\n * @param {string} url URL.\n * @api\n */\n UrlTile.prototype.setUrl = function (url) {\n var urls = expandUrl(url);\n this.urls = urls;\n this.setUrls(urls);\n };\n /**\n * Set the URLs to use for requests.\n * @param {Array} urls URLs.\n * @api\n */\n UrlTile.prototype.setUrls = function (urls) {\n this.urls = urls;\n var key = urls.join('\\n');\n if (this.generateTileUrlFunction_) {\n this.setTileUrlFunction(createFromTemplates(urls, this.tileGrid), key);\n }\n else {\n this.setKey(key);\n }\n };\n /**\n * @param {import(\"../tilecoord.js\").TileCoord} tileCoord Tile coordinate.\n * @param {number} pixelRatio Pixel ratio.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n * @return {string|undefined} Tile URL.\n */\n UrlTile.prototype.tileUrlFunction = function (tileCoord, pixelRatio, projection) {\n return undefined;\n };\n /**\n * Marks a tile coord as being used, without triggering a load.\n * @param {number} z Tile coordinate z.\n * @param {number} x Tile coordinate x.\n * @param {number} y Tile coordinate y.\n */\n UrlTile.prototype.useTile = function (z, x, y) {\n var tileCoordKey = getKeyZXY(z, x, y);\n if (this.tileCache.containsKey(tileCoordKey)) {\n this.tileCache.get(tileCoordKey);\n }\n };\n return UrlTile;\n}(TileSource));\nexport default UrlTile;\n//# sourceMappingURL=UrlTile.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * @module ol/layer/Base\n */\nimport BaseObject from '../Object.js';\nimport LayerProperty from './Property.js';\nimport { abstract } from '../util.js';\nimport { assert } from '../asserts.js';\nimport { assign } from '../obj.js';\nimport { clamp } from '../math.js';\n/**\n * A css color, or a function called with a view resolution returning a css color.\n *\n * @typedef {string|function(number):string} BackgroundColor\n * @api\n */\n/**\n * @typedef {import(\"../ObjectEventType\").Types|'change:extent'|'change:maxResolution'|'change:maxZoom'|\n * 'change:minResolution'|'change:minZoom'|'change:opacity'|'change:visible'|'change:zIndex'} BaseLayerObjectEventTypes\n */\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseLayerOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {BackgroundColor} [background] Background color for the layer. If not specified, no background\n * will be rendered.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Note that with {@link module:ol/layer/Base~BaseLayer} and all its subclasses, any property set in\n * the options is set as a {@link module:ol/Object~BaseObject} property on the layer object, so\n * is observable, and has get/set accessors.\n *\n * @api\n */\nvar BaseLayer = /** @class */ (function (_super) {\n __extends(BaseLayer, _super);\n /**\n * @param {Options} options Layer options.\n */\n function BaseLayer(options) {\n var _this = _super.call(this) || this;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.on;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.once;\n /***\n * @type {BaseLayerOnSignature}\n */\n _this.un;\n /**\n * @type {BackgroundColor|false}\n * @private\n */\n _this.background_ = options.background;\n /**\n * @type {Object}\n */\n var properties = assign({}, options);\n if (typeof options.properties === 'object') {\n delete properties.properties;\n assign(properties, options.properties);\n }\n properties[LayerProperty.OPACITY] =\n options.opacity !== undefined ? options.opacity : 1;\n assert(typeof properties[LayerProperty.OPACITY] === 'number', 64); // Layer opacity must be a number\n properties[LayerProperty.VISIBLE] =\n options.visible !== undefined ? options.visible : true;\n properties[LayerProperty.Z_INDEX] = options.zIndex;\n properties[LayerProperty.MAX_RESOLUTION] =\n options.maxResolution !== undefined ? options.maxResolution : Infinity;\n properties[LayerProperty.MIN_RESOLUTION] =\n options.minResolution !== undefined ? options.minResolution : 0;\n properties[LayerProperty.MIN_ZOOM] =\n options.minZoom !== undefined ? options.minZoom : -Infinity;\n properties[LayerProperty.MAX_ZOOM] =\n options.maxZoom !== undefined ? options.maxZoom : Infinity;\n /**\n * @type {string}\n * @private\n */\n _this.className_ =\n properties.className !== undefined ? properties.className : 'ol-layer';\n delete properties.className;\n _this.setProperties(properties);\n /**\n * @type {import(\"./Layer.js\").State}\n * @private\n */\n _this.state_ = null;\n return _this;\n }\n /**\n * Get the background for this layer.\n * @return {BackgroundColor|false} Layer background.\n */\n BaseLayer.prototype.getBackground = function () {\n return this.background_;\n };\n /**\n * @return {string} CSS class name.\n */\n BaseLayer.prototype.getClassName = function () {\n return this.className_;\n };\n /**\n * This method is not meant to be called by layers or layer renderers because the state\n * is incorrect if the layer is included in a layer group.\n *\n * @param {boolean} [opt_managed] Layer is managed.\n * @return {import(\"./Layer.js\").State} Layer state.\n */\n BaseLayer.prototype.getLayerState = function (opt_managed) {\n /** @type {import(\"./Layer.js\").State} */\n var state = this.state_ ||\n /** @type {?} */ ({\n layer: this,\n managed: opt_managed === undefined ? true : opt_managed,\n });\n var zIndex = this.getZIndex();\n state.opacity = clamp(Math.round(this.getOpacity() * 100) / 100, 0, 1);\n state.visible = this.getVisible();\n state.extent = this.getExtent();\n state.zIndex = zIndex === undefined && !state.managed ? Infinity : zIndex;\n state.maxResolution = this.getMaxResolution();\n state.minResolution = Math.max(this.getMinResolution(), 0);\n state.minZoom = this.getMinZoom();\n state.maxZoom = this.getMaxZoom();\n this.state_ = state;\n return state;\n };\n /**\n * @abstract\n * @param {Array} [opt_array] Array of layers (to be\n * modified in place).\n * @return {Array} Array of layers.\n */\n BaseLayer.prototype.getLayersArray = function (opt_array) {\n return abstract();\n };\n /**\n * @abstract\n * @param {Array} [opt_states] Optional list of layer\n * states (to be modified in place).\n * @return {Array} List of layer states.\n */\n BaseLayer.prototype.getLayerStatesArray = function (opt_states) {\n return abstract();\n };\n /**\n * Return the {@link module:ol/extent~Extent extent} of the layer or `undefined` if it\n * will be visible regardless of extent.\n * @return {import(\"../extent.js\").Extent|undefined} The layer extent.\n * @observable\n * @api\n */\n BaseLayer.prototype.getExtent = function () {\n return /** @type {import(\"../extent.js\").Extent|undefined} */ (this.get(LayerProperty.EXTENT));\n };\n /**\n * Return the maximum resolution of the layer.\n * @return {number} The maximum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMaxResolution = function () {\n return /** @type {number} */ (this.get(LayerProperty.MAX_RESOLUTION));\n };\n /**\n * Return the minimum resolution of the layer.\n * @return {number} The minimum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMinResolution = function () {\n return /** @type {number} */ (this.get(LayerProperty.MIN_RESOLUTION));\n };\n /**\n * Return the minimum zoom level of the layer.\n * @return {number} The minimum zoom level of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMinZoom = function () {\n return /** @type {number} */ (this.get(LayerProperty.MIN_ZOOM));\n };\n /**\n * Return the maximum zoom level of the layer.\n * @return {number} The maximum zoom level of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getMaxZoom = function () {\n return /** @type {number} */ (this.get(LayerProperty.MAX_ZOOM));\n };\n /**\n * Return the opacity of the layer (between 0 and 1).\n * @return {number} The opacity of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getOpacity = function () {\n return /** @type {number} */ (this.get(LayerProperty.OPACITY));\n };\n /**\n * @abstract\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n BaseLayer.prototype.getSourceState = function () {\n return abstract();\n };\n /**\n * Return the visibility of the layer (`true` or `false`).\n * @return {boolean} The visibility of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getVisible = function () {\n return /** @type {boolean} */ (this.get(LayerProperty.VISIBLE));\n };\n /**\n * Return the Z-index of the layer, which is used to order layers before\n * rendering. The default Z-index is 0.\n * @return {number} The Z-index of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.getZIndex = function () {\n return /** @type {number} */ (this.get(LayerProperty.Z_INDEX));\n };\n /**\n * Sets the background color.\n * @param {BackgroundColor} [opt_background] Background color.\n */\n BaseLayer.prototype.setBackground = function (opt_background) {\n this.background_ = opt_background;\n this.changed();\n };\n /**\n * Set the extent at which the layer is visible. If `undefined`, the layer\n * will be visible at all extents.\n * @param {import(\"../extent.js\").Extent|undefined} extent The extent of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setExtent = function (extent) {\n this.set(LayerProperty.EXTENT, extent);\n };\n /**\n * Set the maximum resolution at which the layer is visible.\n * @param {number} maxResolution The maximum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMaxResolution = function (maxResolution) {\n this.set(LayerProperty.MAX_RESOLUTION, maxResolution);\n };\n /**\n * Set the minimum resolution at which the layer is visible.\n * @param {number} minResolution The minimum resolution of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMinResolution = function (minResolution) {\n this.set(LayerProperty.MIN_RESOLUTION, minResolution);\n };\n /**\n * Set the maximum zoom (exclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} maxZoom The maximum zoom of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMaxZoom = function (maxZoom) {\n this.set(LayerProperty.MAX_ZOOM, maxZoom);\n };\n /**\n * Set the minimum zoom (inclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} minZoom The minimum zoom of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setMinZoom = function (minZoom) {\n this.set(LayerProperty.MIN_ZOOM, minZoom);\n };\n /**\n * Set the opacity of the layer, allowed values range from 0 to 1.\n * @param {number} opacity The opacity of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setOpacity = function (opacity) {\n assert(typeof opacity === 'number', 64); // Layer opacity must be a number\n this.set(LayerProperty.OPACITY, opacity);\n };\n /**\n * Set the visibility of the layer (`true` or `false`).\n * @param {boolean} visible The visibility of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setVisible = function (visible) {\n this.set(LayerProperty.VISIBLE, visible);\n };\n /**\n * Set Z-index of the layer, which is used to order layers before rendering.\n * The default Z-index is 0.\n * @param {number} zindex The z-index of the layer.\n * @observable\n * @api\n */\n BaseLayer.prototype.setZIndex = function (zindex) {\n this.set(LayerProperty.Z_INDEX, zindex);\n };\n /**\n * Clean up.\n */\n BaseLayer.prototype.disposeInternal = function () {\n if (this.state_) {\n this.state_.layer = null;\n this.state_ = null;\n }\n _super.prototype.disposeInternal.call(this);\n };\n return BaseLayer;\n}(BaseObject));\nexport default BaseLayer;\n//# sourceMappingURL=Base.js.map","/**\n * @module ol/functions\n */\nimport { equals as arrayEquals } from './array.js';\n/**\n * Always returns true.\n * @return {boolean} true.\n */\nexport function TRUE() {\n return true;\n}\n/**\n * Always returns false.\n * @return {boolean} false.\n */\nexport function FALSE() {\n return false;\n}\n/**\n * A reusable function, used e.g. as a default for callbacks.\n *\n * @return {void} Nothing.\n */\nexport function VOID() { }\n/**\n * Wrap a function in another function that remembers the last return. If the\n * returned function is called twice in a row with the same arguments and the same\n * this object, it will return the value from the first call in the second call.\n *\n * @param {function(...any): ReturnType} fn The function to memoize.\n * @return {function(...any): ReturnType} The memoized function.\n * @template ReturnType\n */\nexport function memoizeOne(fn) {\n var called = false;\n /** @type {ReturnType} */\n var lastResult;\n /** @type {Array} */\n var lastArgs;\n var lastThis;\n return function () {\n var nextArgs = Array.prototype.slice.call(arguments);\n if (!called || this !== lastThis || !arrayEquals(nextArgs, lastArgs)) {\n called = true;\n lastThis = this;\n lastArgs = nextArgs;\n lastResult = fn.apply(this, arguments);\n }\n return lastResult;\n };\n}\n/**\n * @template T\n * @param {function(): (T | Promise)} getter A function that returns a value or a promise for a value.\n * @return {Promise} A promise for the value.\n */\nexport function toPromise(getter) {\n function promiseGetter() {\n var value;\n try {\n value = getter();\n }\n catch (err) {\n return Promise.reject(err);\n }\n if (value instanceof Promise) {\n return value;\n }\n return Promise.resolve(value);\n }\n return promiseGetter();\n}\n//# sourceMappingURL=functions.js.map","/**\n * @module ol/structs/RBush\n */\nimport RBush_ from 'rbush';\nimport { createOrUpdate, equals } from '../extent.js';\nimport { getUid } from '../util.js';\nimport { isEmpty } from '../obj.js';\n/**\n * @typedef {Object} Entry\n * @property {number} minX MinX.\n * @property {number} minY MinY.\n * @property {number} maxX MaxX.\n * @property {number} maxY MaxY.\n * @property {Object} [value] Value.\n */\n/**\n * @classdesc\n * Wrapper around the RBush by Vladimir Agafonkin.\n * See https://github.com/mourner/rbush.\n *\n * @template T\n */\nvar RBush = /** @class */ (function () {\n /**\n * @param {number} [opt_maxEntries] Max entries.\n */\n function RBush(opt_maxEntries) {\n /**\n * @private\n */\n this.rbush_ = new RBush_(opt_maxEntries);\n /**\n * A mapping between the objects added to this rbush wrapper\n * and the objects that are actually added to the internal rbush.\n * @private\n * @type {Object}\n */\n this.items_ = {};\n }\n /**\n * Insert a value into the RBush.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {T} value Value.\n */\n RBush.prototype.insert = function (extent, value) {\n /** @type {Entry} */\n var item = {\n minX: extent[0],\n minY: extent[1],\n maxX: extent[2],\n maxY: extent[3],\n value: value,\n };\n this.rbush_.insert(item);\n this.items_[getUid(value)] = item;\n };\n /**\n * Bulk-insert values into the RBush.\n * @param {Array} extents Extents.\n * @param {Array} values Values.\n */\n RBush.prototype.load = function (extents, values) {\n var items = new Array(values.length);\n for (var i = 0, l = values.length; i < l; i++) {\n var extent = extents[i];\n var value = values[i];\n /** @type {Entry} */\n var item = {\n minX: extent[0],\n minY: extent[1],\n maxX: extent[2],\n maxY: extent[3],\n value: value,\n };\n items[i] = item;\n this.items_[getUid(value)] = item;\n }\n this.rbush_.load(items);\n };\n /**\n * Remove a value from the RBush.\n * @param {T} value Value.\n * @return {boolean} Removed.\n */\n RBush.prototype.remove = function (value) {\n var uid = getUid(value);\n // get the object in which the value was wrapped when adding to the\n // internal rbush. then use that object to do the removal.\n var item = this.items_[uid];\n delete this.items_[uid];\n return this.rbush_.remove(item) !== null;\n };\n /**\n * Update the extent of a value in the RBush.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {T} value Value.\n */\n RBush.prototype.update = function (extent, value) {\n var item = this.items_[getUid(value)];\n var bbox = [item.minX, item.minY, item.maxX, item.maxY];\n if (!equals(bbox, extent)) {\n this.remove(value);\n this.insert(extent, value);\n }\n };\n /**\n * Return all values in the RBush.\n * @return {Array} All.\n */\n RBush.prototype.getAll = function () {\n var items = this.rbush_.all();\n return items.map(function (item) {\n return item.value;\n });\n };\n /**\n * Return all values in the given extent.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {Array} All in extent.\n */\n RBush.prototype.getInExtent = function (extent) {\n /** @type {Entry} */\n var bbox = {\n minX: extent[0],\n minY: extent[1],\n maxX: extent[2],\n maxY: extent[3],\n };\n var items = this.rbush_.search(bbox);\n return items.map(function (item) {\n return item.value;\n });\n };\n /**\n * Calls a callback function with each value in the tree.\n * If the callback returns a truthy value, this value is returned without\n * checking the rest of the tree.\n * @param {function(T): *} callback Callback.\n * @return {*} Callback return value.\n */\n RBush.prototype.forEach = function (callback) {\n return this.forEach_(this.getAll(), callback);\n };\n /**\n * Calls a callback function with each value in the provided extent.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {function(T): *} callback Callback.\n * @return {*} Callback return value.\n */\n RBush.prototype.forEachInExtent = function (extent, callback) {\n return this.forEach_(this.getInExtent(extent), callback);\n };\n /**\n * @param {Array} values Values.\n * @param {function(T): *} callback Callback.\n * @private\n * @return {*} Callback return value.\n */\n RBush.prototype.forEach_ = function (values, callback) {\n var result;\n for (var i = 0, l = values.length; i < l; i++) {\n result = callback(values[i]);\n if (result) {\n return result;\n }\n }\n return result;\n };\n /**\n * @return {boolean} Is empty.\n */\n RBush.prototype.isEmpty = function () {\n return isEmpty(this.items_);\n };\n /**\n * Remove all values from the RBush.\n */\n RBush.prototype.clear = function () {\n this.rbush_.clear();\n this.items_ = {};\n };\n /**\n * @param {import(\"../extent.js\").Extent} [opt_extent] Extent.\n * @return {import(\"../extent.js\").Extent} Extent.\n */\n RBush.prototype.getExtent = function (opt_extent) {\n var data = this.rbush_.toJSON();\n return createOrUpdate(data.minX, data.minY, data.maxX, data.maxY, opt_extent);\n };\n /**\n * @param {RBush} rbush R-Tree.\n */\n RBush.prototype.concat = function (rbush) {\n this.rbush_.load(rbush.rbush_.all());\n for (var i in rbush.items_) {\n this.items_[i] = rbush.items_[i];\n }\n };\n return RBush;\n}());\nexport default RBush;\n//# sourceMappingURL=RBush.js.map","/**\n * @module ol/source/VectorEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a feature is added to the source.\n * @event module:ol/source/Vector.VectorSourceEvent#addfeature\n * @api\n */\n ADDFEATURE: 'addfeature',\n /**\n * Triggered when a feature is updated.\n * @event module:ol/source/Vector.VectorSourceEvent#changefeature\n * @api\n */\n CHANGEFEATURE: 'changefeature',\n /**\n * Triggered when the clear method is called on the source.\n * @event module:ol/source/Vector.VectorSourceEvent#clear\n * @api\n */\n CLEAR: 'clear',\n /**\n * Triggered when a feature is removed from the source.\n * See {@link module:ol/source/Vector~VectorSource#clear source.clear()} for exceptions.\n * @event module:ol/source/Vector.VectorSourceEvent#removefeature\n * @api\n */\n REMOVEFEATURE: 'removefeature',\n /**\n * Triggered when features starts loading.\n * @event module:ol/source/Vector.VectorSourceEvent#featuresloadstart\n * @api\n */\n FEATURESLOADSTART: 'featuresloadstart',\n /**\n * Triggered when features finishes loading.\n * @event module:ol/source/Vector.VectorSourceEvent#featuresloadend\n * @api\n */\n FEATURESLOADEND: 'featuresloadend',\n /**\n * Triggered if feature loading results in an error.\n * @event module:ol/source/Vector.VectorSourceEvent#featuresloaderror\n * @api\n */\n FEATURESLOADERROR: 'featuresloaderror',\n};\n/**\n * @typedef {'addfeature'|'changefeature'|'clear'|'removefeature'|'featuresloadstart'|'featuresloadend'|'featuresloaderror'} VectorSourceEventTypes\n */\n//# sourceMappingURL=VectorEventType.js.map","/**\n * @module ol/loadingstrategy\n */\nimport { fromUserExtent, fromUserResolution, toUserExtent } from './proj.js';\n/**\n * Strategy function for loading all features with a single request.\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @return {Array} Extents.\n * @api\n */\nexport function all(extent, resolution) {\n return [[-Infinity, -Infinity, Infinity, Infinity]];\n}\n/**\n * Strategy function for loading features based on the view's extent and\n * resolution.\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @return {Array} Extents.\n * @api\n */\nexport function bbox(extent, resolution) {\n return [extent];\n}\n/**\n * Creates a strategy function for loading features based on a tile grid.\n * @param {import(\"./tilegrid/TileGrid.js\").default} tileGrid Tile grid.\n * @return {function(import(\"./extent.js\").Extent, number, import(\"./proj.js\").Projection): Array} Loading strategy.\n * @api\n */\nexport function tile(tileGrid) {\n return (\n /**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {import(\"./proj.js\").Projection} projection Projection.\n * @return {Array} Extents.\n */\n function (extent, resolution, projection) {\n var z = tileGrid.getZForResolution(fromUserResolution(resolution, projection));\n var tileRange = tileGrid.getTileRangeForExtentAndZ(fromUserExtent(extent, projection), z);\n /** @type {Array} */\n var extents = [];\n /** @type {import(\"./tilecoord.js\").TileCoord} */\n var tileCoord = [z, 0, 0];\n for (tileCoord[1] = tileRange.minX; tileCoord[1] <= tileRange.maxX; ++tileCoord[1]) {\n for (tileCoord[2] = tileRange.minY; tileCoord[2] <= tileRange.maxY; ++tileCoord[2]) {\n extents.push(toUserExtent(tileGrid.getTileCoordExtent(tileCoord), projection));\n }\n }\n return extents;\n });\n}\n//# sourceMappingURL=loadingstrategy.js.map","/**\n * @module ol/source/Vector\n */\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport Collection from '../Collection.js';\nimport CollectionEventType from '../CollectionEventType.js';\nimport Event from '../events/Event.js';\nimport EventType from '../events/EventType.js';\nimport ObjectEventType from '../ObjectEventType.js';\nimport RBush from '../structs/RBush.js';\nimport Source from './Source.js';\nimport VectorEventType from './VectorEventType.js';\nimport { TRUE, VOID } from '../functions.js';\nimport { all as allStrategy } from '../loadingstrategy.js';\nimport { assert } from '../asserts.js';\nimport { containsExtent, equals, wrapAndSliceX } from '../extent.js';\nimport { extend } from '../array.js';\nimport { getUid } from '../util.js';\nimport { getValues, isEmpty } from '../obj.js';\nimport { listen, unlistenByKey } from '../events.js';\nimport { xhr } from '../featureloader.js';\n/**\n * A function that takes an {@link module:ol/extent~Extent} and a resolution as arguments, and\n * returns an array of {@link module:ol/extent~Extent} with the extents to load. Usually this\n * is one of the standard {@link module:ol/loadingstrategy} strategies.\n *\n * @typedef {function(import(\"../extent.js\").Extent, number, import(\"../proj/Projection.js\").default): Array} LoadingStrategy\n * @api\n */\n/**\n * @classdesc\n * Events emitted by {@link module:ol/source/Vector~VectorSource} instances are instances of this\n * type.\n * @template {import(\"../geom/Geometry.js\").default} [Geometry=import(\"../geom/Geometry.js\").default]\n */\nvar VectorSourceEvent = /** @class */ (function (_super) {\n __extends(VectorSourceEvent, _super);\n /**\n * @param {string} type Type.\n * @param {import(\"../Feature.js\").default} [opt_feature] Feature.\n * @param {Array>} [opt_features] Features.\n */\n function VectorSourceEvent(type, opt_feature, opt_features) {\n var _this = _super.call(this, type) || this;\n /**\n * The added or removed feature for the `ADDFEATURE` and `REMOVEFEATURE` events, `undefined` otherwise.\n * @type {import(\"../Feature.js\").default|undefined}\n * @api\n */\n _this.feature = opt_feature;\n /**\n * The loaded features for the `FEATURESLOADED` event, `undefined` otherwise.\n * @type {Array>|undefined}\n * @api\n */\n _this.features = opt_features;\n return _this;\n }\n return VectorSourceEvent;\n}(Event));\nexport { VectorSourceEvent };\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} VectorSourceOnSignature\n */\n/**\n * @typedef {Object} Options\n * @property {import(\"./Source.js\").AttributionLike} [attributions] Attributions.\n * @property {Array|Collection} [features]\n * Features. If provided as {@link module:ol/Collection~Collection}, the features in the source\n * and the collection will stay in sync.\n * @property {import(\"../format/Feature.js\").default} [format] The feature format used by the XHR\n * feature loader when `url` is set. Required if `url` is set, otherwise ignored.\n * @property {import(\"../featureloader.js\").FeatureLoader} [loader]\n * The loader function used to load features, from a remote source for example.\n * If this is not set and `url` is set, the source will create and use an XHR\n * feature loader. The `'featuresloadend'` and `'featuresloaderror'` events\n * will only fire if the `success` and `failure` callbacks are used.\n *\n * Example:\n *\n * ```js\n * import {Vector} from 'ol/source';\n * import {GeoJSON} from 'ol/format';\n * import {bbox} from 'ol/loadingstrategy';\n *\n * var vectorSource = new Vector({\n * format: new GeoJSON(),\n * loader: function(extent, resolution, projection, success, failure) {\n * var proj = projection.getCode();\n * var url = 'https://ahocevar.com/geoserver/wfs?service=WFS&' +\n * 'version=1.1.0&request=GetFeature&typename=osm:water_areas&' +\n * 'outputFormat=application/json&srsname=' + proj + '&' +\n * 'bbox=' + extent.join(',') + ',' + proj;\n * var xhr = new XMLHttpRequest();\n * xhr.open('GET', url);\n * var onError = function() {\n * vectorSource.removeLoadedExtent(extent);\n * failure();\n * }\n * xhr.onerror = onError;\n * xhr.onload = function() {\n * if (xhr.status == 200) {\n * var features = vectorSource.getFormat().readFeatures(xhr.responseText);\n * vectorSource.addFeatures(features);\n * success(features);\n * } else {\n * onError();\n * }\n * }\n * xhr.send();\n * },\n * strategy: bbox\n * });\n * ```\n * @property {boolean} [overlaps=true] This source may have overlapping geometries.\n * Setting this to `false` (e.g. for sources with polygons that represent administrative\n * boundaries or TopoJSON sources) allows the renderer to optimise fill and\n * stroke operations.\n * @property {LoadingStrategy} [strategy] The loading strategy to use.\n * By default an {@link module:ol/loadingstrategy.all}\n * strategy is used, a one-off strategy which loads all features at once.\n * @property {string|import(\"../featureloader.js\").FeatureUrlFunction} [url]\n * Setting this option instructs the source to load features using an XHR loader\n * (see {@link module:ol/featureloader.xhr}). Use a `string` and an\n * {@link module:ol/loadingstrategy.all} for a one-off download of all features from\n * the given URL. Use a {@link module:ol/featureloader~FeatureUrlFunction} to generate the url with\n * other loading strategies.\n * Requires `format` to be set as well.\n * When default XHR feature loader is provided, the features will\n * be transformed from the data projection to the view projection\n * during parsing. If your remote data source does not advertise its projection\n * properly, this transformation will be incorrect. For some formats, the\n * default projection (usually EPSG:4326) can be overridden by setting the\n * dataProjection constructor option on the format.\n * Note that if a source contains non-feature data, such as a GeoJSON geometry\n * or a KML NetworkLink, these will be ignored. Use a custom loader to load these.\n * @property {boolean} [useSpatialIndex=true]\n * By default, an RTree is used as spatial index. When features are removed and\n * added frequently, and the total number of features is low, setting this to\n * `false` may improve performance.\n *\n * Note that\n * {@link module:ol/source/Vector~VectorSource#getFeaturesInExtent},\n * {@link module:ol/source/Vector~VectorSource#getClosestFeatureToCoordinate} and\n * {@link module:ol/source/Vector~VectorSource#getExtent} cannot be used when `useSpatialIndex` is\n * set to `false`, and {@link module:ol/source/Vector~VectorSource#forEachFeatureInExtent} will loop\n * through all features.\n *\n * When set to `false`, the features will be maintained in an\n * {@link module:ol/Collection~Collection}, which can be retrieved through\n * {@link module:ol/source/Vector~VectorSource#getFeaturesCollection}.\n * @property {boolean} [wrapX=true] Wrap the world horizontally. For vector editing across the\n * -180° and 180° meridians to work properly, this should be set to `false`. The\n * resulting geometry coordinates will then exceed the world bounds.\n */\n/**\n * @classdesc\n * Provides a source of features for vector layers. Vector features provided\n * by this source are suitable for editing. See {@link module:ol/source/VectorTile~VectorTile} for\n * vector data that is optimized for rendering.\n *\n * @fires VectorSourceEvent\n * @api\n * @template {import(\"../geom/Geometry.js\").default} [Geometry=import(\"../geom/Geometry.js\").default]\n */\nvar VectorSource = /** @class */ (function (_super) {\n __extends(VectorSource, _super);\n /**\n * @param {Options} [opt_options] Vector source options.\n */\n function VectorSource(opt_options) {\n var _this = this;\n var options = opt_options || {};\n _this = _super.call(this, {\n attributions: options.attributions,\n interpolate: true,\n projection: undefined,\n state: 'ready',\n wrapX: options.wrapX !== undefined ? options.wrapX : true,\n }) || this;\n /***\n * @type {VectorSourceOnSignature}\n */\n _this.on;\n /***\n * @type {VectorSourceOnSignature}\n */\n _this.once;\n /***\n * @type {VectorSourceOnSignature}\n */\n _this.un;\n /**\n * @private\n * @type {import(\"../featureloader.js\").FeatureLoader}\n */\n _this.loader_ = VOID;\n /**\n * @private\n * @type {import(\"../format/Feature.js\").default|undefined}\n */\n _this.format_ = options.format;\n /**\n * @private\n * @type {boolean}\n */\n _this.overlaps_ = options.overlaps === undefined ? true : options.overlaps;\n /**\n * @private\n * @type {string|import(\"../featureloader.js\").FeatureUrlFunction|undefined}\n */\n _this.url_ = options.url;\n if (options.loader !== undefined) {\n _this.loader_ = options.loader;\n }\n else if (_this.url_ !== undefined) {\n assert(_this.format_, 7); // `format` must be set when `url` is set\n // create a XHR feature loader for \"url\" and \"format\"\n _this.loader_ = xhr(_this.url_, \n /** @type {import(\"../format/Feature.js\").default} */ (_this.format_));\n }\n /**\n * @private\n * @type {LoadingStrategy}\n */\n _this.strategy_ =\n options.strategy !== undefined ? options.strategy : allStrategy;\n var useSpatialIndex = options.useSpatialIndex !== undefined ? options.useSpatialIndex : true;\n /**\n * @private\n * @type {RBush>}\n */\n _this.featuresRtree_ = useSpatialIndex ? new RBush() : null;\n /**\n * @private\n * @type {RBush<{extent: import(\"../extent.js\").Extent}>}\n */\n _this.loadedExtentsRtree_ = new RBush();\n /**\n * @type {number}\n * @private\n */\n _this.loadingExtentsCount_ = 0;\n /**\n * @private\n * @type {!Object>}\n */\n _this.nullGeometryFeatures_ = {};\n /**\n * A lookup of features by id (the return from feature.getId()).\n * @private\n * @type {!Object>}\n */\n _this.idIndex_ = {};\n /**\n * A lookup of features by uid (using getUid(feature)).\n * @private\n * @type {!Object>}\n */\n _this.uidIndex_ = {};\n /**\n * @private\n * @type {Object>}\n */\n _this.featureChangeKeys_ = {};\n /**\n * @private\n * @type {Collection>|null}\n */\n _this.featuresCollection_ = null;\n var collection, features;\n if (Array.isArray(options.features)) {\n features =\n /** @type {Array>} */ (options.features);\n }\n else if (options.features) {\n collection =\n /** @type {Collection>} */ (options.features);\n features = collection.getArray();\n }\n if (!useSpatialIndex && collection === undefined) {\n collection = new Collection(features);\n }\n if (features !== undefined) {\n _this.addFeaturesInternal(features);\n }\n if (collection !== undefined) {\n _this.bindFeaturesCollection_(collection);\n }\n return _this;\n }\n /**\n * Add a single feature to the source. If you want to add a batch of features\n * at once, call {@link module:ol/source/Vector~VectorSource#addFeatures #addFeatures()}\n * instead. A feature will not be added to the source if feature with\n * the same id is already there. The reason for this behavior is to avoid\n * feature duplication when using bbox or tile loading strategies.\n * Note: this also applies if an {@link module:ol/Collection~Collection} is used for features,\n * meaning that if a feature with a duplicate id is added in the collection, it will\n * be removed from it right away.\n * @param {import(\"../Feature.js\").default} feature Feature to add.\n * @api\n */\n VectorSource.prototype.addFeature = function (feature) {\n this.addFeatureInternal(feature);\n this.changed();\n };\n /**\n * Add a feature without firing a `change` event.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @protected\n */\n VectorSource.prototype.addFeatureInternal = function (feature) {\n var featureKey = getUid(feature);\n if (!this.addToIndex_(featureKey, feature)) {\n if (this.featuresCollection_) {\n this.featuresCollection_.remove(feature);\n }\n return;\n }\n this.setupChangeEvents_(featureKey, feature);\n var geometry = feature.getGeometry();\n if (geometry) {\n var extent = geometry.getExtent();\n if (this.featuresRtree_) {\n this.featuresRtree_.insert(extent, feature);\n }\n }\n else {\n this.nullGeometryFeatures_[featureKey] = feature;\n }\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.ADDFEATURE, feature));\n };\n /**\n * @param {string} featureKey Unique identifier for the feature.\n * @param {import(\"../Feature.js\").default} feature The feature.\n * @private\n */\n VectorSource.prototype.setupChangeEvents_ = function (featureKey, feature) {\n this.featureChangeKeys_[featureKey] = [\n listen(feature, EventType.CHANGE, this.handleFeatureChange_, this),\n listen(feature, ObjectEventType.PROPERTYCHANGE, this.handleFeatureChange_, this),\n ];\n };\n /**\n * @param {string} featureKey Unique identifier for the feature.\n * @param {import(\"../Feature.js\").default} feature The feature.\n * @return {boolean} The feature is \"valid\", in the sense that it is also a\n * candidate for insertion into the Rtree.\n * @private\n */\n VectorSource.prototype.addToIndex_ = function (featureKey, feature) {\n var valid = true;\n var id = feature.getId();\n if (id !== undefined) {\n if (!(id.toString() in this.idIndex_)) {\n this.idIndex_[id.toString()] = feature;\n }\n else {\n valid = false;\n }\n }\n if (valid) {\n assert(!(featureKey in this.uidIndex_), 30); // The passed `feature` was already added to the source\n this.uidIndex_[featureKey] = feature;\n }\n return valid;\n };\n /**\n * Add a batch of features to the source.\n * @param {Array>} features Features to add.\n * @api\n */\n VectorSource.prototype.addFeatures = function (features) {\n this.addFeaturesInternal(features);\n this.changed();\n };\n /**\n * Add features without firing a `change` event.\n * @param {Array>} features Features.\n * @protected\n */\n VectorSource.prototype.addFeaturesInternal = function (features) {\n var extents = [];\n var newFeatures = [];\n var geometryFeatures = [];\n for (var i = 0, length_1 = features.length; i < length_1; i++) {\n var feature = features[i];\n var featureKey = getUid(feature);\n if (this.addToIndex_(featureKey, feature)) {\n newFeatures.push(feature);\n }\n }\n for (var i = 0, length_2 = newFeatures.length; i < length_2; i++) {\n var feature = newFeatures[i];\n var featureKey = getUid(feature);\n this.setupChangeEvents_(featureKey, feature);\n var geometry = feature.getGeometry();\n if (geometry) {\n var extent = geometry.getExtent();\n extents.push(extent);\n geometryFeatures.push(feature);\n }\n else {\n this.nullGeometryFeatures_[featureKey] = feature;\n }\n }\n if (this.featuresRtree_) {\n this.featuresRtree_.load(extents, geometryFeatures);\n }\n if (this.hasListener(VectorEventType.ADDFEATURE)) {\n for (var i = 0, length_3 = newFeatures.length; i < length_3; i++) {\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.ADDFEATURE, newFeatures[i]));\n }\n }\n };\n /**\n * @param {!Collection>} collection Collection.\n * @private\n */\n VectorSource.prototype.bindFeaturesCollection_ = function (collection) {\n var modifyingCollection = false;\n this.addEventListener(VectorEventType.ADDFEATURE, \n /**\n * @param {VectorSourceEvent} evt The vector source event\n */\n function (evt) {\n if (!modifyingCollection) {\n modifyingCollection = true;\n collection.push(evt.feature);\n modifyingCollection = false;\n }\n });\n this.addEventListener(VectorEventType.REMOVEFEATURE, \n /**\n * @param {VectorSourceEvent} evt The vector source event\n */\n function (evt) {\n if (!modifyingCollection) {\n modifyingCollection = true;\n collection.remove(evt.feature);\n modifyingCollection = false;\n }\n });\n collection.addEventListener(CollectionEventType.ADD, \n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt The collection event\n */\n function (evt) {\n if (!modifyingCollection) {\n modifyingCollection = true;\n this.addFeature(\n /** @type {import(\"../Feature.js\").default} */ (evt.element));\n modifyingCollection = false;\n }\n }.bind(this));\n collection.addEventListener(CollectionEventType.REMOVE, \n /**\n * @param {import(\"../Collection.js\").CollectionEvent} evt The collection event\n */\n function (evt) {\n if (!modifyingCollection) {\n modifyingCollection = true;\n this.removeFeature(\n /** @type {import(\"../Feature.js\").default} */ (evt.element));\n modifyingCollection = false;\n }\n }.bind(this));\n this.featuresCollection_ = collection;\n };\n /**\n * Remove all features from the source.\n * @param {boolean} [opt_fast] Skip dispatching of {@link module:ol/source/Vector.VectorSourceEvent#event:removefeature removefeature} events.\n * @api\n */\n VectorSource.prototype.clear = function (opt_fast) {\n if (opt_fast) {\n for (var featureId in this.featureChangeKeys_) {\n var keys = this.featureChangeKeys_[featureId];\n keys.forEach(unlistenByKey);\n }\n if (!this.featuresCollection_) {\n this.featureChangeKeys_ = {};\n this.idIndex_ = {};\n this.uidIndex_ = {};\n }\n }\n else {\n if (this.featuresRtree_) {\n var removeAndIgnoreReturn = function (feature) {\n this.removeFeatureInternal(feature);\n }.bind(this);\n this.featuresRtree_.forEach(removeAndIgnoreReturn);\n for (var id in this.nullGeometryFeatures_) {\n this.removeFeatureInternal(this.nullGeometryFeatures_[id]);\n }\n }\n }\n if (this.featuresCollection_) {\n this.featuresCollection_.clear();\n }\n if (this.featuresRtree_) {\n this.featuresRtree_.clear();\n }\n this.nullGeometryFeatures_ = {};\n var clearEvent = new VectorSourceEvent(VectorEventType.CLEAR);\n this.dispatchEvent(clearEvent);\n this.changed();\n };\n /**\n * Iterate through all features on the source, calling the provided callback\n * with each one. If the callback returns any \"truthy\" value, iteration will\n * stop and the function will return the same value.\n * Note: this function only iterate through the feature that have a defined geometry.\n *\n * @param {function(import(\"../Feature.js\").default): T} callback Called with each feature\n * on the source. Return a truthy value to stop iteration.\n * @return {T|undefined} The return value from the last call to the callback.\n * @template T\n * @api\n */\n VectorSource.prototype.forEachFeature = function (callback) {\n if (this.featuresRtree_) {\n return this.featuresRtree_.forEach(callback);\n }\n else if (this.featuresCollection_) {\n this.featuresCollection_.forEach(callback);\n }\n };\n /**\n * Iterate through all features whose geometries contain the provided\n * coordinate, calling the callback with each feature. If the callback returns\n * a \"truthy\" value, iteration will stop and the function will return the same\n * value.\n *\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {function(import(\"../Feature.js\").default): T} callback Called with each feature\n * whose goemetry contains the provided coordinate.\n * @return {T|undefined} The return value from the last call to the callback.\n * @template T\n */\n VectorSource.prototype.forEachFeatureAtCoordinateDirect = function (coordinate, callback) {\n var extent = [coordinate[0], coordinate[1], coordinate[0], coordinate[1]];\n return this.forEachFeatureInExtent(extent, function (feature) {\n var geometry = feature.getGeometry();\n if (geometry.intersectsCoordinate(coordinate)) {\n return callback(feature);\n }\n else {\n return undefined;\n }\n });\n };\n /**\n * Iterate through all features whose bounding box intersects the provided\n * extent (note that the feature's geometry may not intersect the extent),\n * calling the callback with each feature. If the callback returns a \"truthy\"\n * value, iteration will stop and the function will return the same value.\n *\n * If you are interested in features whose geometry intersects an extent, call\n * the {@link module:ol/source/Vector~VectorSource#forEachFeatureIntersectingExtent #forEachFeatureIntersectingExtent()} method instead.\n *\n * When `useSpatialIndex` is set to false, this method will loop through all\n * features, equivalent to {@link module:ol/source/Vector~VectorSource#forEachFeature #forEachFeature()}.\n *\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {function(import(\"../Feature.js\").default): T} callback Called with each feature\n * whose bounding box intersects the provided extent.\n * @return {T|undefined} The return value from the last call to the callback.\n * @template T\n * @api\n */\n VectorSource.prototype.forEachFeatureInExtent = function (extent, callback) {\n if (this.featuresRtree_) {\n return this.featuresRtree_.forEachInExtent(extent, callback);\n }\n else if (this.featuresCollection_) {\n this.featuresCollection_.forEach(callback);\n }\n };\n /**\n * Iterate through all features whose geometry intersects the provided extent,\n * calling the callback with each feature. If the callback returns a \"truthy\"\n * value, iteration will stop and the function will return the same value.\n *\n * If you only want to test for bounding box intersection, call the\n * {@link module:ol/source/Vector~VectorSource#forEachFeatureInExtent #forEachFeatureInExtent()} method instead.\n *\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {function(import(\"../Feature.js\").default): T} callback Called with each feature\n * whose geometry intersects the provided extent.\n * @return {T|undefined} The return value from the last call to the callback.\n * @template T\n * @api\n */\n VectorSource.prototype.forEachFeatureIntersectingExtent = function (extent, callback) {\n return this.forEachFeatureInExtent(extent, \n /**\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @return {T|undefined} The return value from the last call to the callback.\n */\n function (feature) {\n var geometry = feature.getGeometry();\n if (geometry.intersectsExtent(extent)) {\n var result = callback(feature);\n if (result) {\n return result;\n }\n }\n });\n };\n /**\n * Get the features collection associated with this source. Will be `null`\n * unless the source was configured with `useSpatialIndex` set to `false`, or\n * with an {@link module:ol/Collection~Collection} as `features`.\n * @return {Collection>|null} The collection of features.\n * @api\n */\n VectorSource.prototype.getFeaturesCollection = function () {\n return this.featuresCollection_;\n };\n /**\n * Get a snapshot of the features currently on the source in random order. The returned array\n * is a copy, the features are references to the features in the source.\n * @return {Array>} Features.\n * @api\n */\n VectorSource.prototype.getFeatures = function () {\n var features;\n if (this.featuresCollection_) {\n features = this.featuresCollection_.getArray().slice(0);\n }\n else if (this.featuresRtree_) {\n features = this.featuresRtree_.getAll();\n if (!isEmpty(this.nullGeometryFeatures_)) {\n extend(features, getValues(this.nullGeometryFeatures_));\n }\n }\n return /** @type {Array>} */ (features);\n };\n /**\n * Get all features whose geometry intersects the provided coordinate.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {Array>} Features.\n * @api\n */\n VectorSource.prototype.getFeaturesAtCoordinate = function (coordinate) {\n var features = [];\n this.forEachFeatureAtCoordinateDirect(coordinate, function (feature) {\n features.push(feature);\n });\n return features;\n };\n /**\n * Get all features whose bounding box intersects the provided extent. Note that this returns an array of\n * all features intersecting the given extent in random order (so it may include\n * features whose geometries do not intersect the extent).\n *\n * When `useSpatialIndex` is set to false, this method will return all\n * features.\n *\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {import(\"../proj/Projection.js\").default} [opt_projection] Include features\n * where `extent` exceeds the x-axis bounds of `projection` and wraps around the world.\n * @return {Array>} Features.\n * @api\n */\n VectorSource.prototype.getFeaturesInExtent = function (extent, opt_projection) {\n var _this = this;\n if (this.featuresRtree_) {\n var multiWorld = opt_projection && opt_projection.canWrapX() && this.getWrapX();\n if (!multiWorld) {\n return this.featuresRtree_.getInExtent(extent);\n }\n var extents = wrapAndSliceX(extent, opt_projection);\n return [].concat.apply([], extents.map(function (anExtent) { return _this.featuresRtree_.getInExtent(anExtent); }));\n }\n else if (this.featuresCollection_) {\n return this.featuresCollection_.getArray().slice(0);\n }\n else {\n return [];\n }\n };\n /**\n * Get the closest feature to the provided coordinate.\n *\n * This method is not available when the source is configured with\n * `useSpatialIndex` set to `false`.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {function(import(\"../Feature.js\").default):boolean} [opt_filter] Feature filter function.\n * The filter function will receive one argument, the {@link module:ol/Feature~Feature feature}\n * and it should return a boolean value. By default, no filtering is made.\n * @return {import(\"../Feature.js\").default} Closest feature.\n * @api\n */\n VectorSource.prototype.getClosestFeatureToCoordinate = function (coordinate, opt_filter) {\n // Find the closest feature using branch and bound. We start searching an\n // infinite extent, and find the distance from the first feature found. This\n // becomes the closest feature. We then compute a smaller extent which any\n // closer feature must intersect. We continue searching with this smaller\n // extent, trying to find a closer feature. Every time we find a closer\n // feature, we update the extent being searched so that any even closer\n // feature must intersect it. We continue until we run out of features.\n var x = coordinate[0];\n var y = coordinate[1];\n var closestFeature = null;\n var closestPoint = [NaN, NaN];\n var minSquaredDistance = Infinity;\n var extent = [-Infinity, -Infinity, Infinity, Infinity];\n var filter = opt_filter ? opt_filter : TRUE;\n this.featuresRtree_.forEachInExtent(extent, \n /**\n * @param {import(\"../Feature.js\").default} feature Feature.\n */\n function (feature) {\n if (filter(feature)) {\n var geometry = feature.getGeometry();\n var previousMinSquaredDistance = minSquaredDistance;\n minSquaredDistance = geometry.closestPointXY(x, y, closestPoint, minSquaredDistance);\n if (minSquaredDistance < previousMinSquaredDistance) {\n closestFeature = feature;\n // This is sneaky. Reduce the extent that it is currently being\n // searched while the R-Tree traversal using this same extent object\n // is still in progress. This is safe because the new extent is\n // strictly contained by the old extent.\n var minDistance = Math.sqrt(minSquaredDistance);\n extent[0] = x - minDistance;\n extent[1] = y - minDistance;\n extent[2] = x + minDistance;\n extent[3] = y + minDistance;\n }\n }\n });\n return closestFeature;\n };\n /**\n * Get the extent of the features currently in the source.\n *\n * This method is not available when the source is configured with\n * `useSpatialIndex` set to `false`.\n * @param {import(\"../extent.js\").Extent} [opt_extent] Destination extent. If provided, no new extent\n * will be created. Instead, that extent's coordinates will be overwritten.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n VectorSource.prototype.getExtent = function (opt_extent) {\n return this.featuresRtree_.getExtent(opt_extent);\n };\n /**\n * Get a feature by its identifier (the value returned by feature.getId()).\n * Note that the index treats string and numeric identifiers as the same. So\n * `source.getFeatureById(2)` will return a feature with id `'2'` or `2`.\n *\n * @param {string|number} id Feature identifier.\n * @return {import(\"../Feature.js\").default|null} The feature (or `null` if not found).\n * @api\n */\n VectorSource.prototype.getFeatureById = function (id) {\n var feature = this.idIndex_[id.toString()];\n return feature !== undefined ? feature : null;\n };\n /**\n * Get a feature by its internal unique identifier (using `getUid`).\n *\n * @param {string} uid Feature identifier.\n * @return {import(\"../Feature.js\").default|null} The feature (or `null` if not found).\n */\n VectorSource.prototype.getFeatureByUid = function (uid) {\n var feature = this.uidIndex_[uid];\n return feature !== undefined ? feature : null;\n };\n /**\n * Get the format associated with this source.\n *\n * @return {import(\"../format/Feature.js\").default|undefined} The feature format.\n * @api\n */\n VectorSource.prototype.getFormat = function () {\n return this.format_;\n };\n /**\n * @return {boolean} The source can have overlapping geometries.\n */\n VectorSource.prototype.getOverlaps = function () {\n return this.overlaps_;\n };\n /**\n * Get the url associated with this source.\n *\n * @return {string|import(\"../featureloader.js\").FeatureUrlFunction|undefined} The url.\n * @api\n */\n VectorSource.prototype.getUrl = function () {\n return this.url_;\n };\n /**\n * @param {Event} event Event.\n * @private\n */\n VectorSource.prototype.handleFeatureChange_ = function (event) {\n var feature = /** @type {import(\"../Feature.js\").default} */ (event.target);\n var featureKey = getUid(feature);\n var geometry = feature.getGeometry();\n if (!geometry) {\n if (!(featureKey in this.nullGeometryFeatures_)) {\n if (this.featuresRtree_) {\n this.featuresRtree_.remove(feature);\n }\n this.nullGeometryFeatures_[featureKey] = feature;\n }\n }\n else {\n var extent = geometry.getExtent();\n if (featureKey in this.nullGeometryFeatures_) {\n delete this.nullGeometryFeatures_[featureKey];\n if (this.featuresRtree_) {\n this.featuresRtree_.insert(extent, feature);\n }\n }\n else {\n if (this.featuresRtree_) {\n this.featuresRtree_.update(extent, feature);\n }\n }\n }\n var id = feature.getId();\n if (id !== undefined) {\n var sid = id.toString();\n if (this.idIndex_[sid] !== feature) {\n this.removeFromIdIndex_(feature);\n this.idIndex_[sid] = feature;\n }\n }\n else {\n this.removeFromIdIndex_(feature);\n this.uidIndex_[featureKey] = feature;\n }\n this.changed();\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.CHANGEFEATURE, feature));\n };\n /**\n * Returns true if the feature is contained within the source.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @return {boolean} Has feature.\n * @api\n */\n VectorSource.prototype.hasFeature = function (feature) {\n var id = feature.getId();\n if (id !== undefined) {\n return id in this.idIndex_;\n }\n else {\n return getUid(feature) in this.uidIndex_;\n }\n };\n /**\n * @return {boolean} Is empty.\n */\n VectorSource.prototype.isEmpty = function () {\n if (this.featuresRtree_) {\n return (this.featuresRtree_.isEmpty() && isEmpty(this.nullGeometryFeatures_));\n }\n if (this.featuresCollection_) {\n return this.featuresCollection_.getLength() === 0;\n }\n return true;\n };\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @param {number} resolution Resolution.\n * @param {import(\"../proj/Projection.js\").default} projection Projection.\n */\n VectorSource.prototype.loadFeatures = function (extent, resolution, projection) {\n var loadedExtentsRtree = this.loadedExtentsRtree_;\n var extentsToLoad = this.strategy_(extent, resolution, projection);\n var _loop_1 = function (i, ii) {\n var extentToLoad = extentsToLoad[i];\n var alreadyLoaded = loadedExtentsRtree.forEachInExtent(extentToLoad, \n /**\n * @param {{extent: import(\"../extent.js\").Extent}} object Object.\n * @return {boolean} Contains.\n */\n function (object) {\n return containsExtent(object.extent, extentToLoad);\n });\n if (!alreadyLoaded) {\n ++this_1.loadingExtentsCount_;\n this_1.dispatchEvent(new VectorSourceEvent(VectorEventType.FEATURESLOADSTART));\n this_1.loader_.call(this_1, extentToLoad, resolution, projection, function (features) {\n --this.loadingExtentsCount_;\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.FEATURESLOADEND, undefined, features));\n }.bind(this_1), function () {\n --this.loadingExtentsCount_;\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.FEATURESLOADERROR));\n }.bind(this_1));\n loadedExtentsRtree.insert(extentToLoad, { extent: extentToLoad.slice() });\n }\n };\n var this_1 = this;\n for (var i = 0, ii = extentsToLoad.length; i < ii; ++i) {\n _loop_1(i, ii);\n }\n this.loading =\n this.loader_.length < 4 ? false : this.loadingExtentsCount_ > 0;\n };\n VectorSource.prototype.refresh = function () {\n this.clear(true);\n this.loadedExtentsRtree_.clear();\n _super.prototype.refresh.call(this);\n };\n /**\n * Remove an extent from the list of loaded extents.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n VectorSource.prototype.removeLoadedExtent = function (extent) {\n var loadedExtentsRtree = this.loadedExtentsRtree_;\n var obj;\n loadedExtentsRtree.forEachInExtent(extent, function (object) {\n if (equals(object.extent, extent)) {\n obj = object;\n return true;\n }\n });\n if (obj) {\n loadedExtentsRtree.remove(obj);\n }\n };\n /**\n * Remove a single feature from the source. If you want to remove all features\n * at once, use the {@link module:ol/source/Vector~VectorSource#clear #clear()} method\n * instead.\n * @param {import(\"../Feature.js\").default} feature Feature to remove.\n * @api\n */\n VectorSource.prototype.removeFeature = function (feature) {\n if (!feature) {\n return;\n }\n var featureKey = getUid(feature);\n if (featureKey in this.nullGeometryFeatures_) {\n delete this.nullGeometryFeatures_[featureKey];\n }\n else {\n if (this.featuresRtree_) {\n this.featuresRtree_.remove(feature);\n }\n }\n var result = this.removeFeatureInternal(feature);\n if (result) {\n this.changed();\n }\n };\n /**\n * Remove feature without firing a `change` event.\n * @param {import(\"../Feature.js\").default} feature Feature.\n * @return {import(\"../Feature.js\").default|undefined} The removed feature\n * (or undefined if the feature was not found).\n * @protected\n */\n VectorSource.prototype.removeFeatureInternal = function (feature) {\n var featureKey = getUid(feature);\n var featureChangeKeys = this.featureChangeKeys_[featureKey];\n if (!featureChangeKeys) {\n return;\n }\n featureChangeKeys.forEach(unlistenByKey);\n delete this.featureChangeKeys_[featureKey];\n var id = feature.getId();\n if (id !== undefined) {\n delete this.idIndex_[id.toString()];\n }\n delete this.uidIndex_[featureKey];\n this.dispatchEvent(new VectorSourceEvent(VectorEventType.REMOVEFEATURE, feature));\n return feature;\n };\n /**\n * Remove a feature from the id index. Called internally when the feature id\n * may have changed.\n * @param {import(\"../Feature.js\").default} feature The feature.\n * @return {boolean} Removed the feature from the index.\n * @private\n */\n VectorSource.prototype.removeFromIdIndex_ = function (feature) {\n var removed = false;\n for (var id in this.idIndex_) {\n if (this.idIndex_[id] === feature) {\n delete this.idIndex_[id];\n removed = true;\n break;\n }\n }\n return removed;\n };\n /**\n * Set the new loader of the source. The next render cycle will use the\n * new loader.\n * @param {import(\"../featureloader.js\").FeatureLoader} loader The loader to set.\n * @api\n */\n VectorSource.prototype.setLoader = function (loader) {\n this.loader_ = loader;\n };\n /**\n * Points the source to a new url. The next render cycle will use the new url.\n * @param {string|import(\"../featureloader.js\").FeatureUrlFunction} url Url.\n * @api\n */\n VectorSource.prototype.setUrl = function (url) {\n assert(this.format_, 7); // `format` must be set when `url` is set\n this.url_ = url;\n this.setLoader(xhr(url, this.format_));\n };\n return VectorSource;\n}(Source));\nexport default VectorSource;\n//# sourceMappingURL=Vector.js.map","/**\n * @module ol/MapEventType\n */\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered after a map frame is rendered.\n * @event module:ol/MapEvent~MapEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n /**\n * Triggered when the map starts moving.\n * @event module:ol/MapEvent~MapEvent#movestart\n * @api\n */\n MOVESTART: 'movestart',\n /**\n * Triggered after the map is moved.\n * @event module:ol/MapEvent~MapEvent#moveend\n * @api\n */\n MOVEEND: 'moveend',\n /**\n * Triggered when loading of additional map data (tiles, images, features) starts.\n * @event module:ol/MapEvent~MapEvent#loadstart\n * @api\n */\n LOADSTART: 'loadstart',\n /**\n * Triggered when loading of additional map data has completed.\n * @event module:ol/MapEvent~MapEvent#loadend\n * @api\n */\n LOADEND: 'loadend',\n};\n/***\n * @typedef {'postrender'|'movestart'|'moveend'|'loadstart'|'loadend'} Types\n */\n//# sourceMappingURL=MapEventType.js.map","/**\n * @module ol/geom/flat/length\n */\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Length.\n */\nexport function lineStringLength(flatCoordinates, offset, end, stride) {\n var x1 = flatCoordinates[offset];\n var y1 = flatCoordinates[offset + 1];\n var length = 0;\n for (var i = offset + stride; i < end; i += stride) {\n var x2 = flatCoordinates[i];\n var y2 = flatCoordinates[i + 1];\n length += Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n x1 = x2;\n y1 = y2;\n }\n return length;\n}\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {number} Perimeter.\n */\nexport function linearRingLength(flatCoordinates, offset, end, stride) {\n var perimeter = lineStringLength(flatCoordinates, offset, end, stride);\n var dx = flatCoordinates[end - stride] - flatCoordinates[offset];\n var dy = flatCoordinates[end - stride + 1] - flatCoordinates[offset + 1];\n perimeter += Math.sqrt(dx * dx + dy * dy);\n return perimeter;\n}\n//# sourceMappingURL=length.js.map","/*!\n * CARTO.js https://carto.com/\n * Version: 4.2.0\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"carto\"] = factory();\n\telse\n\t\troot[\"carto\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 150);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (true) {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {}\n\n // Current version.\n _.VERSION = '1.8.3';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n case 2: return function(value, other) {\n return func.call(context, value, other);\n };\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result — either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value)) return _.matcher(value);\n return _.property(value);\n };\n _.iteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, undefinedOnly) {\n return function(obj) {\n var length = arguments.length;\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var property = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = property('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n function createReduce(dir) {\n // Optimized iterator function as using arguments.length\n // in the main function will deoptimize the, see #1991.\n function iterator(obj, iteratee, memo, keys, index, length) {\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n }\n\n return function(obj, iteratee, memo, context) {\n iteratee = optimizeCb(iteratee, context, 4);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n // Determine the initial value if none is provided.\n if (arguments.length < 3) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n return iterator(obj, iteratee, memo, keys, index, length);\n };\n }\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var key;\n if (isArrayLike(obj)) {\n key = _.findIndex(obj, predicate, context);\n } else {\n key = _.findKey(obj, predicate, context);\n }\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function(obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function(value) {\n var func = isFunc ? method : value[method];\n return func == null ? func : func.apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n _.shuffle = function(obj) {\n var set = isArrayLike(obj) ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior) {\n return function(obj, iteratee, context) {\n var result = {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function(value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, startIndex) {\n var output = [], idx = 0;\n for (var i = startIndex || 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n //flatten current level of array or arguments object\n if (!shallow) value = flatten(value, shallow, strict);\n var j = 0, len = value.length;\n output.length += len;\n while (j < len) {\n output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function(array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function() {\n return _.uniq(flatten(arguments, true, true));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function(array) {\n var rest = flatten(arguments, true, true, 1);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function() {\n return _.unzip(arguments);\n };\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions\n function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n }\n\n // Returns the first index on an array-like that passes a predicate test\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions\n function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n }\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function(func, context) {\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var args = slice.call(arguments, 2);\n var bound = function() {\n return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function(func) {\n var boundArgs = slice.call(arguments, 1);\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function(obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function(func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function(){\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function() {\n var last = _.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function() {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n function collectNonEnumProps(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n }\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object\n // In contrast to _.map it returns an object\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {},\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s)\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function(object, oiteratee, context) {\n var result = {}, obj = object, iteratee, keys;\n if (obj == null) return result;\n if (_.isFunction(oiteratee)) {\n keys = _.allKeys(obj);\n iteratee = optimizeCb(oiteratee, context);\n } else {\n keys = flatten(arguments, false, false, 1);\n iteratee = function(value, key, obj) { return key in obj; };\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function(obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(flatten(arguments, false, false, 1), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), and in Safari 8 (#1929).\n if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n _.property = property;\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n return obj == null ? function(){} : function(key) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function(object, property, fallback) {\n var value = object == null ? void 0 : object[property];\n if (value === void 0) {\n value = fallback;\n }\n return _.isFunction(value) ? value.call(object) : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return result(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return '' + this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n return _;\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n}.call(this));\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// Backbone.js 1.2.3\n\n// (c) 2010-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = (typeof self == 'object' && self.self == self && self) ||\n (typeof global == 'object' && global.global == global && global);\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (true) {\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(0), __webpack_require__(17), exports], __WEBPACK_AMD_DEFINE_RESULT__ = (function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else { var _, $; }\n\n}(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.2.3';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return _[method](this[attribute]);\n };\n case 2: return function(value) {\n return _[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return _[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return _[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return _[method].apply(_, args);\n };\n }\n };\n var addUnderscoreMethods = function(Class, methods, attribute) {\n _.each(methods, function(length, method) {\n if (_[method]) Class.prototype[method] = addMethod(length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n return internalOn(this, name, callback, context);\n };\n\n // Guard the `listening` argument from the public API.\n var internalOn = function(obj, name, callback, context, listening) {\n obj._events = eventsApi(onApi, obj._events || {}, name, callback, {\n context: context,\n ctx: obj,\n listening: listening\n });\n\n if (listening) {\n var listeners = obj._listeners || (obj._listeners = {});\n listeners[listening.id] = listening;\n }\n\n return obj;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n var thisId = this._listenId || (this._listenId = _.uniqueId('l'));\n listening = listeningTo[id] = {obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0};\n }\n\n // Bind callbacks on obj, and keep track of them on listening.\n internalOn(obj, name, callback, this, listening);\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({ callback: callback, context: context, ctx: context || ctx, listening: listening });\n }\n return events;\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var i = 0, listening;\n var context = options.context, listeners = options.listeners;\n\n // Delete all events listeners and \"drop\" events.\n if (!name && !callback && !context) {\n var ids = _.keys(listeners);\n for (; i < ids.length; i++) {\n listening = listeners[ids[i]];\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n return;\n }\n\n var names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Replace events if there are any remaining. Otherwise, clean up.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n listening = handler.listening;\n if (listening && --listening.count === 0) {\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n }\n }\n\n // Update tail event if the list has any events. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n if (_.size(events)) return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this));\n return this.on(events, void 0, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.stopListening, this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, cb, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n attrs = _.defaults({}, attrs, _.result(this, 'defaults'));\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n this.id = this.get(this.idAttribute);\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n }\n return _.size(changed) ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else {\n if (!this._validate(attrs, options)) return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update');\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.defaults({validate: true}, options));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = { keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1 };\n\n // Mix in each Underscore method as a proxy to `Model#attributes`.\n addUnderscoreMethods(Model, modelMethods, 'attributes');\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n for (var i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : _.clone(models);\n var removed = this._removeModels(models, options);\n if (!options.silent && removed) this.trigger('update', this, options);\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.defaults({}, options, setOptions);\n if (options.parse && !this._isModel(models)) models = this.parse(models, options);\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && (at == null) && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model;\n for (var i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length != set.length || _.some(this.models, function(model, index) {\n return model !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length) this.trigger('update', this, options);\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id.\n get: function(obj) {\n if (obj == null) return void 0;\n var id = this.modelId(this._isModel(obj) ? obj.attributes : obj);\n return this._byId[obj] || this._byId[id] || this._byId[obj.cid];\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = _.bind(comparator, this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return _.invoke(this.models, 'get', attr);\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(model, resp, callbackOpts) {\n if (wait) collection.add(model, callbackOpts);\n if (success) success.call(callbackOpts.context, model, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function (attrs) {\n return attrs[this.model.prototype.idAttribute || 'id'];\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n var model = new this.model(attrs, options);\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed.length ? removed : false;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function (model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'change') {\n var prevId = this.modelId(model.previousAttributes());\n var id = this.modelId(model.attributes);\n if (prevId !== id) {\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = { forEach: 3, each: 3, map: 3, collect: 3, reduce: 4,\n foldl: 4, inject: 4, reduceRight: 4, foldr: 4, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n addUnderscoreMethods(Collection, collectionMethods, 'models');\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], _.bind(method, this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = _.bind(this.checkUrl, this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var root = path.slice(0, this.root.length - 1) + '/';\n return root === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var root = this.root.slice(0, -1) || '/';\n this.location.replace(root + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function (eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function (eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var root = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n root = root.slice(0, -1) || '/';\n }\n var url = root + fragment;\n\n // Strip the hash and decode for matching.\n fragment = this.decodeFragment(fragment.replace(pathStripper, ''));\n\n if (this.fragment === fragment) return;\n this.fragment = fragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && (fragment !== this.getHash(this.iframe.contentWindow))) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent` constructor function.\n var Surrogate = function(){ this.constructor = child; };\n Surrogate.prototype = parent.prototype;\n child.prototype = new Surrogate;\n\n // Add prototype properties (instance properties) to the subclass,\n // if supplied.\n if (protoProps) _.extend(child.prototype, protoProps);\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n\n}));\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(30)))\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar $ = __webpack_require__(17);\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\n\n/**\n * Base Model for all CartoDB model.\n * DO NOT USE Backbone.Model directly\n */\nvar Model = Backbone.Model.extend({\n\n initialize: function initialize(options) {\n _.bindAll(this, 'fetch', 'save', 'retrigger');\n return Backbone.Model.prototype.initialize.call(this, options);\n },\n /**\n * We are redefining fetch to be able to trigger an event when the ajax call ends, no matter if there's\n * a change in the data or not. Why don't backbone does this by default? ahh, my friend, who knows.\n * @method fetch\n * @param args {Object}\n */\n fetch: function fetch(args) {\n var self = this;\n // var date = new Date();\n this.trigger('loadModelStarted');\n $.when(Backbone.Model.prototype.fetch.call(this, args)).done(function (ev) {\n self.trigger('loadModelCompleted', ev, self);\n // var dateComplete = new Date()\n // console.log('completed in '+(dateComplete - date));\n }).fail(function (ev) {\n self.trigger('loadModelFailed', ev, self);\n });\n },\n /**\n * Changes the attribute used as Id\n * @method setIdAttribute\n * @param attr {String}\n */\n setIdAttribute: function setIdAttribute(attr) {\n this.idAttribute = attr;\n },\n /**\n * Listen for an event on another object and triggers on itself, with the same name or a new one\n * @method retrigger\n * @param ev {String} event who triggers the action\n * @param obj {Object} object where the event happens\n * @param obj {Object} [optional] name of the retriggered event\n * @todo [xabel]: This method is repeated here and in the base view definition. There's should be a way to make it unique\n */\n retrigger: function retrigger(ev, obj, retrigEvent) {\n if (!retrigEvent) {\n retrigEvent = ev;\n }\n var self = this;\n obj.bind && obj.bind(ev, function () {\n self.trigger(retrigEvent);\n }, self);\n },\n\n /**\n * We need to override backbone save method to be able to introduce new kind of triggers that\n * for some reason are not present in the original library. Because you know, it would be nice\n * to be able to differenciate \"a model has been updated\" of \"a model is being saved\".\n * TODO: remove jquery from here\n * @param {object} opt1\n * @param {object} opt2\n * @return {$.Deferred}\n */\n save: function save(opt1, opt2) {\n var self = this;\n if (!opt2 || !opt2.silent) this.trigger('saving');\n var promise = Backbone.Model.prototype.save.apply(this, arguments);\n $.when(promise).done(function () {\n if (!opt2 || !opt2.silent) self.trigger('saved');\n }).fail(function () {\n if (!opt2 || !opt2.silent) self.trigger('errorSaving');\n });\n return promise;\n }\n});\n\nmodule.exports = Model;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar CartoError = __webpack_require__(4);\n\n/**\n * Utility to build a cartoError related to validation errors.\n * @constructor\n *\n * @return {CartoError} A well formed object representing the error.\n */\nfunction CartoValidationError(type, message, opts) {\n return new CartoError({\n origin: 'validation',\n type: type,\n message: message\n }, opts);\n}\n\nmodule.exports = CartoValidationError;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar errorExtender = __webpack_require__(143);\nvar errorTracker = __webpack_require__(138);\n\nvar UNEXPECTED_ERROR = 'unexpected error';\nvar GENERIC_ORIGIN = 'generic';\n\n/**\n * Build a cartoError from a generic error.\n * @constructor\n *\n * @return {CartoError} A well formed object representing the error.\n */\nfunction CartoError(error, opts) {\n opts = opts || {};\n var cartoError = Object.create(Error.prototype);\n cartoError.message = error && error.message || UNEXPECTED_ERROR;\n cartoError.origin = error && error.origin || GENERIC_ORIGIN;\n cartoError.type = error && error.type || '';\n\n if (_isWindshaftError(error)) {\n cartoError = _transformWindshaftError(error, opts.layers, opts.analysis);\n }\n\n if (_isAjaxError(error)) {\n cartoError = _transformAjaxError(error);\n }\n\n // Add extra fields\n var extraFields = errorExtender.getExtraFields(cartoError);\n cartoError.message = extraFields.friendlyMessage;\n cartoError.errorCode = extraFields.errorCode;\n\n // Final properties\n cartoError.name = 'CartoError';\n cartoError.stack = new Error().stack;\n cartoError.originalError = error;\n\n errorTracker.track(cartoError);\n\n return cartoError;\n}\n\n// Windshaft should have been parsed already\nfunction _isWindshaftError(error) {\n return error && error.origin === 'windshaft';\n}\n\nfunction _isAjaxError(error) {\n return error && error.responseText;\n}\n\nfunction _transformWindshaftError(error, layers, analysis) {\n var cartoError = Object.create(Error.prototype);\n cartoError.message = error.message;\n cartoError.origin = error.origin;\n cartoError.type = error.type;\n\n if (error.type === 'layer' && layers) {\n cartoError.layer = layers.findById(error.layerId);\n }\n if (error.type === 'analysis') {\n if (analysis) {\n cartoError.source = analysis;\n cartoError.sourceId = analysis.getId && analysis.getId();\n }\n if (error.analysisId) {\n cartoError.sourceId = error.analysisId;\n }\n }\n\n return cartoError;\n}\n\nfunction _transformAjaxError(error) {\n var cartoError = Object.create(Error.prototype);\n cartoError.message = _handleAjaxResponse(error);\n cartoError.origin = 'ajax';\n cartoError.type = error.statusText;\n\n return cartoError;\n}\n\nfunction _handleAjaxResponse(error) {\n var errorMessage = '';\n\n try {\n var parsedError = JSON.parse(error.responseText);\n errorMessage = parsedError.errors[0];\n } catch (exc) {\n // Swallow parse error\n }\n return errorMessage || UNEXPECTED_ERROR;\n}\n\nmodule.exports = CartoError;\n\n/**\n * Represents an error in the carto library.\n *\n * Some actions like adding a layer to a map are asynchronous and require a server round trip.\n * If some error happens during this communnication with the server, an error with a `CartoError` object\n * will be fired.\n *\n * CartoErrors can be obtained by listening to the client 'error' `client.on('error', callback);`,\n * through any async action or by listening to 'error' events on particular objects (eg: dataviews).\n *\n * Promises are also rejected with a CartoError.\n * @example\n * // Listen when a layer has been added or there has been an error.\n * client.addLayer(layerWithErrors)\n * .then(()=> console.log('Layer added succesfully'))\n * .catch(cartoError => console.error(cartoError.message))\n * @example\n * // Events also will be registered here when the map changes.\n * client.on('success', function () {\n * console.log('Client reloaded');\n * });\n *\n * client.on('error', function (clientError) {\n * console.error(clientError.message);\n * });\n * @example\n * // Listen when there is an error in a dataview\n * dataview.on('error', function (error) {\n * console.error(error.message);\n * });\n *\n * @typedef {object} CartoError\n * @property {string} message - A short error description\n * @property {string} name - The name of the error \"CartoError\"\n * @property {string} origin - Where the error was originated: 'windshaft' | 'ajax' | 'validation'\n * @property {object} originalError - An object containing the internal/original error\n * @property {object} stack - Error stack trace\n * @property {string} type - Error type\n * @property {string} sourceId - Available if the error is related to a source object. Indicates the ID of the source that has a problem.\n * @api\n */\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\n/**\n * Constants module for dataviews\n */\n\n/**\n * Enum for operation values.\n *\n * @enum {string} carto.operation\n * @readonly\n * @memberof carto\n * @api\n */\nvar operation = {\n /** Number of elements */\n COUNT: 'count',\n /** Sum */\n SUM: 'sum',\n /** Average */\n AVG: 'avg',\n /** Maximum */\n MAX: 'max',\n /** Minimum */\n MIN: 'min'\n};\n\nfunction isValidOperation(op) {\n return _.contains(operation, op);\n}\n\n/**\n * Enum for dataview status values.\n *\n * @enum {string} carto.dataview.status\n * @readonly\n * @memberof carto.dataview\n * @api\n */\nvar status = {\n /** Not fetched with the server */\n NOT_LOADED: 'notLoaded',\n /** Fetching with the server */\n LOADING: 'loading',\n /** Fetch completed */\n LOADED: 'loaded',\n /** Error in fetch */\n ERROR: 'error'\n};\n\n/**\n * Enum for dataview time aggregations.\n *\n * @enum {string} carto.dataview.timeAggregation\n * @readonly\n * @memberof carto.dataview\n * @api\n */\nvar timeAggregation = {\n /** Auto */\n AUTO: 'auto',\n /** Millennium */\n MILLENNIUM: 'millennium',\n /** Century */\n CENTURY: 'century',\n /** Decade */\n DECADE: 'decade',\n /** Year */\n YEAR: 'year',\n /** Quarter */\n QUARTER: 'quarter',\n /** Month */\n MONTH: 'month',\n /** Week */\n WEEK: 'week',\n /** Day */\n DAY: 'day',\n /** Hour */\n HOUR: 'hour',\n /** Minute */\n MINUTE: 'minute'\n};\n\nfunction isValidTimeAggregation(agg) {\n return _.contains(timeAggregation, agg);\n}\n\n/**\n * ATTRIBUTION constant\n *\n * © OpenStreetMap contributors, © CARTO\n *\n * @type {string}\n * @constant\n * @memberof carto\n * @api\n */\nvar ATTRIBUTION = '© OpenStreetMap contributors, © CARTO';\n\nmodule.exports = {\n operation: operation,\n status: status,\n timeAggregation: timeAggregation,\n isValidOperation: isValidOperation,\n isValidTimeAggregation: isValidTimeAggregation,\n ATTRIBUTION: ATTRIBUTION\n};\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar CartoValidationError = __webpack_require__(3);\n\n/**\n * Base filter object\n *\n * @constructor\n * @abstract\n * @memberof carto.filter\n * @api\n */\nfunction Base() {}\n\n_.extend(Base.prototype, Backbone.Events);\n\nBase.prototype._getValidationError = function (code) {\n return new CartoValidationError('filter', code);\n};\n\nmodule.exports = Base;\n\n/**\n * Fired when bounds have changed. Handler gets a parameter with the new bounds.\n *\n * @event boundsChanged\n * @type {carto.filter.Bounds}\n * @api\n */\n\n/**\n * Fired when circle filter has changed. Handler gets a parameter with the new circle.\n *\n * @event circleChanged\n * @type {carto.filter.CircleData}\n * @api\n */\n\n/**\n * Fired when polygon filter has changed. Handler gets a parameter with the new polygon.\n *\n * @event polygonChanged\n * @type {carto.filter.PolygonData}\n * @api\n */\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\n\nvar util = {};\n\nutil.isCORSSupported = function () {\n return 'withCredentials' in new XMLHttpRequest();\n};\n\nutil.array2hex = function (byteArr) {\n var encoded = [];\n for (var i = 0; i < byteArr.length; ++i) {\n encoded.push(String.fromCharCode(byteArr[i] + 128));\n }\n return util.btoa(encoded.join(''));\n};\n\nutil.btoa = function (data) {\n if (typeof window['btoa'] === 'function') {\n return util.encodeBase64Native(data);\n }\n\n return util.encodeBase64(data);\n};\n\nutil.encodeBase64Native = function (input) {\n return btoa(input);\n};\n\n// ie7 btoa,\n// from http://phpjs.org/functions/base64_encode/\nutil.encodeBase64 = function (data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits;\n var i = 0;\n var ac = 0;\n var enc = '';\n var tmpArr = [];\n\n if (!data) {\n return data;\n }\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = o1 << 16 | o2 << 8 | o3;\n\n h1 = bits >> 18 & 0x3f;\n h2 = bits >> 12 & 0x3f;\n h3 = bits >> 6 & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmpArr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmpArr.join('');\n\n var r = data.length % 3;\n return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);\n};\n\nutil.uniqueCallbackName = function (str) {\n util._callback_c = util._callback_c || 0;\n ++util._callback_c;\n return util.crc32(str) + '_' + util._callback_c;\n};\n\nutil.crc32 = function (str) {\n var crcTable = util._crcTable || (util._crcTable = util._makeCRCTable());\n var crc = 0 ^ -1;\n\n for (var i = 0, l = str.length; i < l; ++i) {\n crc = crc >>> 8 ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xff];\n }\n\n return (crc ^ -1) >>> 0;\n};\n\nutil._makeCRCTable = function () {\n var c;\n var crcTable = [];\n for (var n = 0; n < 256; ++n) {\n c = n;\n for (var k = 0; k < 8; ++k) {\n c = c & 1 ? 0xedb88320 ^ c >>> 1 : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n};\n\nutil._inferBrowser = function (ua) {\n var browser = {};\n ua = ua || typeof window !== 'undefined' && window.navigator.userAgent || '';\n function detectIE() {\n var msie = ua.indexOf('MSIE ');\n var trident = ua.indexOf('Trident/');\n if (msie > -1 || trident > -1) return true;\n return false;\n }\n\n function getIEVersion() {\n if (!document.compatMode) return 5;\n if (!window.XMLHttpRequest) return 6;\n if (!document.querySelector) return 7;\n if (!document.addEventListener) return 8;\n if (!window.atob) return 9;\n if (document.all) return 10;else return 11;\n }\n\n if (detectIE()) {\n browser.ie = { version: getIEVersion() };\n } else if (ua.indexOf('Edge/') > -1) browser.edge = ua;else if (ua.indexOf('Chrome') > -1) browser.chrome = ua;else if (ua.indexOf('Firefox') > -1) browser.firefox = ua;else if (ua.indexOf('Opera') > -1) browser.opera = ua;else if (ua.indexOf('Safari') > -1) browser.safari = ua;\n return browser;\n};\n\nutil.browser = util._inferBrowser();\n\nutil.isMobileDevice = function () {\n return (/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)\n );\n};\n\nutil.supportsTouch = function () {\n return 'ontouchstart' in window || navigator.msMaxTouchPoints;\n};\n\nvar webGLSupportedAndEnabled = null;\nutil.isWebGLSupported = function () {\n if (webGLSupportedAndEnabled === null) {\n var canvas = document.createElement('canvas');\n webGLSupportedAndEnabled = !!window.WebGLRenderingContext && !!(canvas.getContext('webgl') || canvas.getContext('experimental-webgl'));\n }\n return webGLSupportedAndEnabled;\n};\n\n/**\n * Returns true if the string ends with provided suffix\n */\nutil.endsWith = function (str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n};\n\nutil.checkRequiredOpts = function (actualOpts, requiredOpts, from) {\n _.each(requiredOpts, function (item) {\n if (_.isUndefined(actualOpts[item])) {\n throw new Error(item + ' is required' + (from ? ' to initialize ' + from : ''));\n }\n });\n};\n\n/**\n * Checks that the correct Leaflet version is loaded\n */\nutil.isLeafletLoaded = function () {\n if (!window.L) {\n throw new Error('Leaflet is required');\n }\n if (window.L.version < '1.0.0') {\n throw new Error('Leaflet +1.0 is required');\n }\n};\n\n/**\n * Checks that the correct Google Maps version is loaded\n */\nutil.isGoogleMapsLoaded = function () {\n if (!window.google) {\n throw new Error('Google Maps is required');\n }\n if (!window.google.maps) {\n throw new Error('Google Maps is required');\n }\n if (window.google.maps.version < '3.31.0') {\n throw new Error('Google Maps version should be >= 3.31');\n }\n};\n\nmodule.exports = util;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Types of spatial filters\n */\nvar types = {\n BBOX: 'bbox',\n CIRCLE: 'circle',\n POLYGON: 'polygon'\n};\n\nmodule.exports = types;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar Model = __webpack_require__(2);\nvar util = __webpack_require__(7);\n\nvar REQUIRED_OPTS = ['camshaftReference', 'engine'];\n\nvar STATUS = {\n PENDING: 'pending',\n WAITING: 'waiting',\n RUNNING: 'running',\n FAILED: 'failed',\n READY: 'ready'\n};\n\nvar AnalysisModel = Model.extend({\n\n initialize: function initialize(attrs, opts) {\n opts = opts || {};\n util.checkRequiredOpts(opts, REQUIRED_OPTS, 'AnalysisModel');\n\n this._camshaftReference = opts.camshaftReference;\n this._engine = opts.engine;\n\n this._initBinds();\n\n // A hash that tracks which models (layers / dataviews) have\n // this analysis model as their \"source\"\n this._referencedBy = {};\n },\n\n url: function url() {\n var url = this.get('url');\n if (url) {\n if (this.get('apiKey')) {\n url += '?api_key=' + this.get('apiKey');\n } else if (this.get('authToken')) {\n var authToken = this.get('authToken');\n if (authToken instanceof Array) {\n var tokens = _.map(authToken, function (token) {\n return 'auth_token[]=' + token;\n });\n url += '?' + tokens.join('&');\n } else {\n url += '?auth_token=' + authToken;\n }\n }\n return url;\n }\n },\n\n setOk: function setOk() {\n this.unset('error');\n },\n\n setError: function setError(error) {\n this.set({\n error: error,\n status: STATUS.FAILED\n });\n },\n\n _initBinds: function _initBinds() {\n this.bind('change:type', function () {\n this.unbind(null, null, this);\n this._initBinds();\n this._reload();\n }, this);\n\n _.each(this.getParamNames(), function (paramName) {\n this.bind('change:' + paramName, this._reload, this);\n }, this);\n\n this.bind('change:status', function () {\n // If the status changed from any other status to \"ready\"\n // and this analysis is the \"source\" of any layer or dataview,\n // vis has to be reloaded.\n if (this._hadStatus() && this.isReady() && this.isSourceOfAnyModel()) {\n this._reload();\n }\n }, this);\n },\n\n _hadStatus: function _hadStatus() {\n return this.previous('status');\n },\n\n _reload: function _reload() {\n this._engine.reload({\n error: this._onMapReloadError.bind(this)\n });\n },\n\n _onMapReloadError: function _onMapReloadError() {\n this.set('status', STATUS.FAILED);\n },\n\n remove: function remove() {\n this.trigger('destroy', this);\n this.stopListening();\n },\n\n findAnalysisById: function findAnalysisById(analysisId) {\n if (this.get('id') === analysisId) {\n return this;\n }\n var sources = _.chain(this._getSourceNames()).map(function (sourceName) {\n var source = this.get(sourceName);\n if (source) {\n return source.findAnalysisById(analysisId);\n }\n }, this).compact().value();\n\n return sources[0];\n },\n\n _getSourceNames: function _getSourceNames() {\n return this._camshaftReference.getSourceNamesForAnalysisType(this.get('type'));\n },\n\n isDone: function isDone() {\n return this._hasStatus([STATUS.READY, STATUS.FAILED]);\n },\n\n isLoading: function isLoading() {\n return this._hasStatus([STATUS.PENDING, STATUS.WAITING, STATUS.RUNNING]);\n },\n\n isReady: function isReady() {\n return this._hasStatus(STATUS.READY);\n },\n\n isFailed: function isFailed() {\n return this._hasStatus(STATUS.FAILED);\n },\n\n _hasStatus: function _hasStatus(statuses) {\n if (!_.isArray(statuses)) {\n statuses = [statuses];\n }\n return _.contains(statuses, this._getStatus());\n },\n\n _getStatus: function _getStatus() {\n return this.get('status');\n },\n\n toJSON: function toJSON() {\n var json = _.pick(this.attributes, 'id', 'type');\n json.params = _.pick(this.attributes, this.getParamNames());\n var sourceNames = this._getSourceNames();\n _.each(sourceNames, function (sourceName) {\n var source = {};\n var sourceInfo = this.get(sourceName);\n if (sourceInfo) {\n source[sourceName] = sourceInfo.toJSON();\n _.extend(json.params, source);\n }\n }, this);\n\n return json;\n },\n\n getParamNames: function getParamNames() {\n return this._camshaftReference.getParamNamesForAnalysisType(this.get('type'));\n },\n\n /**\n * Return an Array with the complete node list for this analysis.\n */\n getNodes: function getNodes() {\n // Add current node to the list\n var nodes = [this];\n // Recursively iterate through the inputs ( source nodes have no inputs )\n if (this.get('type') !== 'source') {\n _.forEach(this._getSourceNames(), function (sourceName) {\n var source = this.get(sourceName);\n if (source) {\n nodes = nodes.concat(source.getNodes());\n }\n }, this);\n }\n return nodes;\n },\n\n /**\n * Return a Collection with the complete node list for this analysis.\n */\n getNodesCollection: function getNodesCollection() {\n return new Backbone.Collection(this.getNodes());\n },\n\n /**\n * Compare two analysisModels.\n */\n equals: function equals(analysisModel) {\n if (!(analysisModel instanceof AnalysisModel)) {\n return false;\n }\n // Since all analysis are created using the analysisFactory different ids ensure different nodes.\n return this.get('id') === analysisModel.get('id');\n },\n\n markAsSourceOf: function markAsSourceOf(model) {\n this._referencedBy[model.cid] = true;\n },\n\n isSourceOfAnyModel: function isSourceOfAnyModel() {\n return Object.keys(this._referencedBy).length > 0;\n },\n\n isSourceOf: function isSourceOf(model) {\n return !!this._referencedBy[model.cid];\n },\n\n unmarkAsSourceOf: function unmarkAsSourceOf(model) {\n delete this._referencedBy[model.cid];\n }\n}, {\n STATUS: STATUS\n});\n\nmodule.exports = AnalysisModel;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar status = __webpack_require__(5).status;\nvar SourceBase = __webpack_require__(12);\nvar FilterBase = __webpack_require__(6);\nvar SQLFilterBase = __webpack_require__(11);\nvar SpatialFilterTypes = __webpack_require__(8);\nvar CartoError = __webpack_require__(4);\nvar CartoValidationError = __webpack_require__(3);\n\n/**\n * Base class for dataview objects.\n *\n * Dataviews are a way to extract data from a CARTO account in predefined ways\n * (eg: a list of categories, the result of a formula operation, etc.).\n *\n * **This object should not be used directly**\n *\n * The data used in a dataviews cames from a {@link carto.source.Base|source} that might change\n * due to different reasons (eg: SQL query changed).\n *\n * When dataview data changes the dataview will trigger events to notify subscribers when new data is available.\n *\n * @example\n * // Keep your widget data sync. Remember each dataview has his own data format.\n * dataview.on('dataChanged', newData => {\n * renderWidget(newData);\n * })\n *\n * @constructor\n * @abstract\n * @memberof carto.dataview\n * @fires dataChanged\n * @fires columnChanged\n * @fires statusChanged\n * @fires error\n * @api\n */\nfunction Base() {}\n\n_.extend(Base.prototype, Backbone.Events);\n\n/**\n * Return the current dataview status.\n *\n * @return {carto.dataview.status} Current dataview status\n * @api\n */\nBase.prototype.getStatus = function () {\n return this._status;\n};\n\n/**\n * Return true is the current status is loading.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isLoading = function () {\n return this._status === status.LOADING;\n};\n\n/**\n * Return true is the current status is loaded.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isLoaded = function () {\n return this._status === status.LOADED;\n};\n\n/**\n * Return true is the current status is error.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.hasError = function () {\n return this._status === status.ERROR;\n};\n\n/**\n * Enable the dataview. When enabled, a dataview fetches new data\n * when the map changes (changing map configuration or changing map\n * bounding box).\n *\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.enable = function () {\n return this._setEnabled(true);\n};\n\n/**\n * Disable the dataview. This stops the dataview from fetching new\n * data when there is a map change (like changing map configuration or changing map\n * bounding box).\n *\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.disable = function () {\n return this._setEnabled(false);\n};\n\n/**\n * Return true if the dataview is enabled.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isEnabled = function () {\n return this._enabled;\n};\n\n/**\n * Return the current source where the dataview gets the data from.\n *\n * @return {carto.source.Base} Current source object\n * @api\n */\nBase.prototype.getSource = function () {\n return this._source;\n};\n\n/**\n * Set the dataview column.\n *\n * @param {string} column\n * @fires columnChanged\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.setColumn = function (column) {\n this._checkColumn(column);\n this._column = column;\n if (this._internalModel) {\n this._internalModel.set('column', this._column);\n }\n return this;\n};\n\n/**\n * Return the current dataview column where the dataview is applied.\n *\n * @return {string} Current dataview column\n * @api\n */\nBase.prototype.getColumn = function () {\n return this._column;\n};\n\n/**\n * Add a {@link carto.filter.Base|filter}.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.addFilter = function (filter) {\n this._checkFilter(filter);\n this._addSpatialFilter(filter);\n return this;\n};\n\n/**\n * Remove a {@link carto.filter.Base|filter}.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.removeFilter = function (filter) {\n this._checkFilter(filter);\n this._removeSpatialFilter(filter);\n return this;\n};\n\n/**\n * Check if a {@link carto.filter.Base|filter} exists in the dataview.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.hasFilter = function (filter) {\n this._checkFilter(filter);\n var hasBBoxFilter = filter === this._boundingBoxFilter && this._internalModel && this._internalModel.get('sync_on_bbox_change');\n\n var hasCircleFilter = filter === this._circleFilter && this._internalModel && this._internalModel.get('sync_on_circle_change');\n\n var hasPolygonFilter = filter === this._polygonFilter && this._internalModel && this._internalModel.get('sync_on_polygon_change');\n\n return hasBBoxFilter || hasCircleFilter || hasPolygonFilter;\n};\n\nBase.prototype.getData = function () {\n throw new Error('getData must be implemented by the particular dataview.');\n};\n\n// Protected methods\n\nBase.prototype.DEFAULTS = {};\n\n/**\n * Initialize dataview.\n *\n * @param {carto.source.Base} source - The source where the dataview will fetch the data\n * @param {string} column - The column name to get the data\n * @param {object} options - It depends on the instance\n */\nBase.prototype._initialize = function (source, column, options) {\n options = _.defaults(options || {}, this.DEFAULTS);\n\n this._checkSource(source);\n this._checkColumn(column);\n this._checkOptions(options);\n\n this._source = source;\n this._column = column;\n this._options = options;\n\n this._status = status.NOT_LOADED;\n this._enabled = true;\n this._boundingBoxFilter = null;\n};\n\nBase.prototype._checkSource = function (source) {\n if (!(source instanceof SourceBase)) {\n throw this._getValidationError('sourceRequired');\n }\n};\n\nBase.prototype._checkColumn = function (column) {\n if (_.isUndefined(column)) {\n throw this._getValidationError('columnRequired');\n }\n if (!_.isString(column)) {\n throw this._getValidationError('columnString');\n }\n if (_.isEmpty(column)) {\n throw this._getValidationError('emptyColumn');\n }\n};\n\nBase.prototype._checkOptions = function (options) {\n throw new Error('_checkOptions must be implemented by the particular dataview.');\n};\n\nBase.prototype._checkFilter = function (filter) {\n if (!(filter instanceof FilterBase) || filter instanceof SQLFilterBase) {\n throw this._getValidationError('filterRequired');\n }\n};\n\nBase.prototype._createInternalModel = function (engine) {\n throw new Error('_createInternalModel must be implemented by the particular dataview.');\n};\n\nBase.prototype._setEnabled = function (enabled) {\n this._enabled = enabled;\n if (this._internalModel) {\n this._internalModel.set('enabled', enabled);\n }\n return this;\n};\n\nBase.prototype._listenToInternalModelSharedEvents = function () {\n if (this._internalModel) {\n this.listenTo(this._internalModel, 'change:data', this._onDataChanged);\n this.listenTo(this._internalModel, 'change:column', this._onColumnChanged);\n this.listenTo(this._internalModel, 'loading', this._onStatusLoading);\n this.listenTo(this._internalModel, 'loaded', this._onStatusLoaded);\n this.listenTo(this._internalModel, 'statusError', this._onStatusError);\n }\n};\n\nBase.prototype._onDataChanged = function () {\n this.trigger('dataChanged', this.getData());\n};\n\nBase.prototype._onColumnChanged = function () {\n if (this._internalModel) {\n this._column = this._internalModel.get('column');\n }\n this.trigger('columnChanged', this._column);\n};\n\nBase.prototype._onStatusLoading = function () {\n this._status = status.LOADING;\n this.trigger('statusChanged', this._status);\n};\n\nBase.prototype._onStatusLoaded = function () {\n this._status = status.LOADED;\n this.trigger('statusChanged', this._status);\n};\n\nBase.prototype._onStatusError = function (model, error) {\n this._status = status.ERROR;\n this.trigger('statusChanged', this._status, error);\n this._triggerError(this, error);\n};\n\nBase.prototype._changeProperty = function (key, value, internalKey) {\n var prevValue = this['_' + key];\n this['_' + key] = value;\n if (prevValue === value) {\n return;\n }\n this._triggerChange(key, value);\n if (this._internalModel) {\n this._internalModel.set(internalKey || key, value);\n }\n};\n\nBase.prototype._changeProperties = function (properties) {\n var _this = this;\n\n _.each(properties, function (value, key) {\n var prevValue = _this['_' + key];\n\n if (prevValue !== value) {\n _this['_' + key] = value;\n _this._triggerChange(key, value);\n }\n });\n\n if (this._internalModel) {\n this._internalModel.set(properties);\n }\n};\n\nBase.prototype._triggerChange = function (key, value) {\n this.trigger(key + 'Changed', value);\n};\n\n/**\n * Fire a CartoError event from a internalDataviewError.\n */\nBase.prototype._triggerError = function (model, internalDataviewError) {\n this.trigger('error', new CartoError(internalDataviewError));\n};\n\nBase.prototype._addSpatialFilter = function (spatialFilter) {\n switch (spatialFilter.type) {\n case SpatialFilterTypes.BBOX:\n this._addBoundingBoxFilter(spatialFilter);\n break;\n case SpatialFilterTypes.CIRCLE:\n this._addCircleFilter(spatialFilter);\n break;\n case SpatialFilterTypes.POLYGON:\n this._addPolygonFilter(spatialFilter);\n break;\n default:\n throw new Error('The filter is not a valid spatial filter.');\n }\n};\n\nBase.prototype._removeSpatialFilter = function (spatialFilter) {\n switch (spatialFilter.type) {\n case SpatialFilterTypes.BBOX:\n if (spatialFilter === this._boundingBoxFilter) {\n this._removeBoundingBoxFilter();\n }\n break;\n case SpatialFilterTypes.CIRCLE:\n if (spatialFilter === this._circleFilter) {\n this._removeCircleFilter();\n }\n break;\n case SpatialFilterTypes.POLYGON:\n if (spatialFilter === this._polygonFilter) {\n this._removePolygonFilter();\n }\n break;\n default:\n throw new Error('The filter is not a valid spatial filter.');\n }\n};\n\nBase.prototype._addBoundingBoxFilter = function (bboxFilter) {\n if (bboxFilter === this._boundingBoxFilter) {\n return;\n }\n\n this._boundingBoxFilter = bboxFilter;\n if (this._internalModel) {\n this._internalModel.addBBoxFilter(this._boundingBoxFilter.$getInternalModel());\n this._internalModel.set('sync_on_bbox_change', true);\n }\n};\n\nBase.prototype._removeBoundingBoxFilter = function () {\n this._boundingBoxFilter = null;\n if (this._internalModel) {\n this._internalModel.removeBBoxFilter();\n this._internalModel.set('sync_on_bbox_change', false);\n }\n};\n\nBase.prototype._addCircleFilter = function (circleFilter) {\n if (circleFilter === this._circleFilter) {\n return;\n }\n\n this._circleFilter = circleFilter;\n if (this._internalModel) {\n this._internalModel.addCircleFilter(this._circleFilter.$getInternalModel());\n this._internalModel.set('sync_on_circle_change', true);\n }\n};\n\nBase.prototype._removeCircleFilter = function () {\n this._circleFilter = null;\n if (this._internalModel) {\n this._internalModel.removeCircleFilter();\n this._internalModel.set('sync_on_circle_change', false);\n }\n};\n\nBase.prototype._addPolygonFilter = function (polygonFilter) {\n if (polygonFilter === this._polygonFilter) {\n return;\n }\n\n this._polygonFilter = polygonFilter;\n if (this._internalModel) {\n this._internalModel.addPolygonFilter(this._polygonFilter.$getInternalModel());\n this._internalModel.set('sync_on_polygon_change', true);\n }\n};\n\nBase.prototype._removePolygonFilter = function () {\n this._polygonFilter = null;\n if (this._internalModel) {\n this._internalModel.removePolygonFilter();\n this._internalModel.set('sync_on_polygon_change', false);\n }\n};\n\nBase.prototype._getValidationError = function (code) {\n return new CartoValidationError('dataview', code);\n};\n\n// Internal public methods\n\nBase.prototype.$setEngine = function (engine) {\n this._source.$setEngine(engine);\n if (!this._internalModel) {\n this._createInternalModel(engine);\n this._listenToInternalModelSharedEvents();\n }\n};\n\nBase.prototype.$getInternalModel = function () {\n return this._internalModel;\n};\n\nmodule.exports = Base;\n\n/**\n * Fired when the column name has changed. Handler gets a parameter with the new column name.\n *\n * @event columnChanged\n * @type {string}\n * @api\n */\n\n/**\n * Fired when the status has changed. Handler gets a parameter with the new status.\n *\n * Contains a single argument with the new status.\n *\n * @event statusChanged\n * @type {carto.dataview.status}\n * @api\n */\n\n/**\n * Fired when the data has changed. Handler gets an object with specific data for the type\n * of dataview that triggered the event.\n *\n * @event dataChanged\n * @type {carto.dataview.CategoryData|carto.dataview.FormulaData|carto.dataview.HistogramData|carto.dataview.TimeSeriesData}\n * @api\n */\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _ = __webpack_require__(0);\nvar Base = __webpack_require__(6);\nvar getObjectValue = __webpack_require__(95);\n\nvar ALLOWED_OPTIONS = ['includeNull'];\nvar DEFAULT_JOIN_OPERATOR = 'AND';\n\n/**\n * SQL Filter\n *\n * A SQL filter is the base for all the SQL filters such as the Category Filter or the Range filter\n *\n * @param {string} column - The filtering will be performed against this column\n * @param {object} [options={}]\n * @param {boolean} [options.includeNull] - Include null rows when returning data\n *\n * @class SQLBase\n * @extends carto.filter.Base\n * @memberof carto.filter\n */\n\nvar SQLBase = function (_Base) {\n _inherits(SQLBase, _Base);\n\n function SQLBase(column) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, SQLBase);\n\n var _this = _possibleConstructorReturn(this, (SQLBase.__proto__ || Object.getPrototypeOf(SQLBase)).call(this));\n\n _this._checkColumn(column);\n _this._checkOptions(options);\n\n _this._column = column;\n _this._filters = {};\n _this._options = options;\n return _this;\n }\n\n /**\n * Set any of the filter conditions, overwriting the previous one.\n * @param {string} filterType - The filter type that you want to set\n * @param {string} filterValue - The value of the filter\n */\n\n\n _createClass(SQLBase, [{\n key: 'set',\n value: function set(filterType, filterValue) {\n if (!filterType || !filterValue || !_.isString(filterType)) {\n return;\n }\n\n var newFilter = _defineProperty({}, filterType, filterValue);\n\n this._checkFilters(newFilter);\n this._filters[filterType] = filterValue;\n\n this.trigger('change:filters', newFilter);\n }\n\n /**\n * Set the filter conditions, overriding all the previous ones.\n * @param {object} filters - The object containing all the new filters to apply.\n */\n\n }, {\n key: 'setFilters',\n value: function setFilters(filters) {\n if (!filters || !_.isObject(filters)) {\n return;\n }\n\n this._checkFilters(filters);\n this._filters = filters;\n\n this.trigger('change:filters', filters);\n }\n\n /**\n * Remove all conditions from current filter\n */\n\n }, {\n key: 'resetFilters',\n value: function resetFilters() {\n this.setFilters({});\n }\n }, {\n key: '$getSQL',\n value: function $getSQL() {\n var _this2 = this;\n\n var filters = Object.keys(this._filters);\n var sql = filters.map(function (filterType) {\n return _this2._interpolateFilter(filterType, _this2._filters[filterType]);\n }).filter(function (filter) {\n return Boolean(filter);\n }).join(' ' + DEFAULT_JOIN_OPERATOR + ' ');\n\n if (this._options.includeNull) {\n this._includeNullInQuery(sql);\n }\n\n if (filters.length > 1) {\n return '(' + sql + ')';\n }\n\n return sql;\n }\n }, {\n key: '_checkColumn',\n value: function _checkColumn(column) {\n if (_.isUndefined(column)) {\n throw this._getValidationError('columnRequired');\n }\n\n if (!_.isString(column)) {\n throw this._getValidationError('columnString');\n }\n\n if (_.isEmpty(column)) {\n throw this._getValidationError('emptyColumn');\n }\n }\n }, {\n key: '_checkFilters',\n value: function _checkFilters(filters) {\n var _this3 = this;\n\n Object.keys(filters).forEach(function (filter) {\n var isFilterValid = _.contains(_this3.ALLOWED_FILTERS, filter);\n\n if (!isFilterValid) {\n throw _this3._getValidationError('invalidFilter' + filter);\n }\n\n var parameters = _this3.PARAMETER_SPECIFICATION[filter].parameters;\n var haveCorrectType = parameters.every(function (parameter) {\n var parameterValue = getObjectValue(filters, parameter.name);\n return parameter.allowedTypes.some(function (type) {\n return parameterIsOfType(type, parameterValue);\n });\n });\n\n if (!haveCorrectType) {\n throw _this3._getValidationError('invalidParameterType' + filter);\n }\n });\n }\n }, {\n key: '_checkOptions',\n value: function _checkOptions(options) {\n var _this4 = this;\n\n Object.keys(options).forEach(function (option) {\n var isOptionValid = _.contains(ALLOWED_OPTIONS, option);\n\n if (!isOptionValid) {\n throw _this4._getValidationError('invalidOption' + option);\n }\n });\n }\n }, {\n key: '_convertValueToSQLString',\n value: function _convertValueToSQLString(filterValue) {\n var _this5 = this;\n\n if (_.isDate(filterValue)) {\n return '\\'' + filterValue.toISOString() + '\\'';\n }\n\n if (_.isArray(filterValue)) {\n return filterValue.map(function (value) {\n return _this5._convertValueToSQLString(value);\n }).join(',');\n }\n\n if (_.isObject(filterValue)) {\n Object.keys(filterValue).forEach(function (key) {\n if (key === 'query') {\n return;\n }\n\n filterValue[key] = _this5._convertValueToSQLString(filterValue[key]);\n });\n\n return filterValue;\n }\n\n if (_.isNumber(filterValue)) {\n return filterValue;\n }\n\n return '\\'' + normalizeString(filterValue.toString()) + '\\'';\n }\n }, {\n key: '_interpolateFilter',\n value: function _interpolateFilter(filterType, filterValues) {\n var sqlString = _.template(this.SQL_TEMPLATES[filterType]);\n var value = this._convertValueToSQLString(filterValues);\n\n return sqlString({ column: this._column, value: value });\n }\n }, {\n key: '_includeNullInQuery',\n value: function _includeNullInQuery(sql) {\n var filters = Object.keys(this._filters);\n\n if (filters.length > 1) {\n sql = '(' + sql + ')';\n }\n\n return '(' + sql + ' OR ' + this._column + ' IS NULL)';\n }\n }]);\n\n return SQLBase;\n}(Base);\n\nvar parameterIsOfType = function parameterIsOfType(parameterType, parameterValue) {\n return _['is' + parameterType](parameterValue);\n};\n\nvar normalizeString = function normalizeString(value) {\n return value.replace(/\\n/g, '\\\\n').replace(/\\\"/g, '\\\\\"').replace(/'/g, \"''\");\n};\n\nmodule.exports = SQLBase;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar CartoError = __webpack_require__(4);\nvar FiltersCollection = __webpack_require__(21);\nvar EVENTS = __webpack_require__(14);\n\n/**\n * Base data source object.\n *\n * The methods listed in the {@link carto.source.Base|source.Base} object are available in all source objects.\n *\n * Use a source to reference the data used in a {@link carto.dataview.Base|dataview} or a {@link carto.layer.Base|layer}.\n *\n * {@link carto.source.Base} should not be used directly use {@link carto.source.Dataset} or {@link carto.source.SQL} instead.\n *\n * @constructor\n * @fires error\n * @abstract\n * @memberof carto.source\n * @api\n */\nfunction Base() {\n this._id = Base.$generateId();\n this._hasFiltersApplied = false;\n this._appliedFilters = new FiltersCollection();\n}\n\n_.extend(Base.prototype, Backbone.Events);\n\n/**\n * The instance id will be autogenerated by incrementing this variable.\n */\nBase.$nextId = 0;\n\n/**\n * Static funciton used internally to autogenerate source ids.\n */\nBase.$generateId = function () {\n return 'S' + ++Base.$nextId;\n};\n\n/**\n * Return a unique autogenerated id.\n *\n * @return {string} Unique autogenerated id\n */\nBase.prototype.getId = function () {\n return this._id;\n};\n\nBase.prototype._createInternalModel = function (engine) {\n throw new Error('_createInternalModel must be implemented by the particular source');\n};\n\n/**\n * Fire a CartoError event from a internalError\n */\nBase.prototype._triggerError = function (model, internalError) {\n this.trigger(EVENTS.ERROR, new CartoError(internalError, { analysis: this }));\n};\n\nBase.prototype.$setEngine = function (engine) {\n if (!this._internalModel) {\n this._internalModel = this._createInternalModel(engine);\n this._internalModel.on('change:error', this._triggerError, this);\n }\n};\n\n/**\n * Return the engine form the source internal model\n */\nBase.prototype.$getEngine = function (engine) {\n if (this._internalModel) {\n return this._internalModel._engine;\n }\n};\n\n/**\n * Return the real CARTO.js model used by the source.\n */\nBase.prototype.$getInternalModel = function () {\n return this._internalModel;\n};\n\n/**\n * Get added filters\n *\n * @returns {Array} Added filters\n * @api\n */\nBase.prototype.getFilters = function () {\n return this._appliedFilters.getFilters();\n};\n\n/**\n * Add new filter to the source\n *\n * @param {(carto.filter.Range|carto.filter.Category|carto.filter.AND|carto.filter.OR)} filter\n * @api\n */\nBase.prototype.addFilter = function (filter) {\n this._hasFiltersApplied = true;\n this._appliedFilters.addFilter(filter);\n};\n\n/**\n * Add new filters to the source\n *\n * @param {Array} filters\n * @api\n */\nBase.prototype.addFilters = function (filters) {\n var _this = this;\n\n filters.forEach(function (filter) {\n return _this.addFilter(filter);\n });\n};\n\n/**\n * Remove an existing filter from source\n *\n * @param {(carto.filter.Range|carto.filter.Category|carto.filter.AND|carto.filter.OR)} filter\n * @api\n */\nBase.prototype.removeFilter = function (filter) {\n this._appliedFilters.removeFilter(filter);\n this._hasFiltersApplied = Boolean(this._appliedFilters.count());\n};\n\n/**\n * Remove existing filters from source\n *\n * @param {Array} filters\n * @api\n */\nBase.prototype.removeFilters = function (filters) {\n var _this2 = this;\n\n filters.forEach(function (filter) {\n return _this2.removeFilter(filter);\n });\n};\n\nmodule.exports = Base;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\nvar Backbone = __webpack_require__(1);\nvar Engine = __webpack_require__(44);\n\nvar NON_RESETEABLE_DEFAULT_ATTRS = ['state', 'visible'];\n\nvar LegendModelBase = Backbone.Model.extend({\n defaults: function defaults() {\n return {\n visible: false,\n title: '',\n preHTMLSnippet: '',\n postHTMLSnippet: '',\n state: this.constructor.STATE_LOADING\n };\n },\n\n initialize: function initialize(attrs, deps) {\n if (!deps.engine) throw new Error('engine is required');\n\n deps.engine.on(Engine.Events.RELOAD_STARTED, this._onEngineReloadStarted, this);\n },\n\n _onEngineReloadStarted: function _onEngineReloadStarted() {\n this.set('state', this.constructor.STATE_LOADING);\n },\n\n isLoading: function isLoading() {\n return this.get('state') === this.constructor.STATE_LOADING;\n },\n\n isError: function isError() {\n return this.get('state') === this.constructor.STATE_ERROR;\n },\n\n isSuccess: function isSuccess() {\n return this.get('state') === this.constructor.STATE_SUCCESS;\n },\n\n show: function show() {\n this.set('visible', true);\n },\n\n hide: function hide() {\n this.set('visible', false);\n },\n\n isVisible: function isVisible() {\n return this.get('visible');\n },\n\n update: function update(attrs) {\n this.set(attrs);\n },\n\n getNonResettableAttrs: function getNonResettableAttrs() {\n return NON_RESETEABLE_DEFAULT_ATTRS;\n },\n\n reset: function reset() {\n var defaults = _.omit(this.defaults(), this.getNonResettableAttrs());\n this.set(defaults);\n },\n\n isAvailable: function isAvailable() {\n return false;\n }\n}, {\n STATE_LOADING: 'loading',\n STATE_SUCCESS: 'success',\n STATE_ERROR: 'error'\n});\n\nmodule.exports = LegendModelBase;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Fired when something went wrong on the server side.\n *\n * @event error\n * @type {CartoError}\n * @api\n */\n\n/**\n * Fired when a request to the server completed successfully.\n *\n * @event success\n * @api\n */\n\nmodule.exports = {\n SUCCESS: 'success',\n ERROR: 'error'\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _ = __webpack_require__(0);\n\nvar PROPERTY_KEY = 'prop';\nvar MAPPING_KEY = 'mapping';\n\nvar RANGE_FILTER_TYPE = 'range';\nvar CATEGORY_FILTER_TYPE = 'category';\nvar DEFAULT_FILTER_TYPE = 'default';\n\nvar Rule = function Rule(rule) {\n this._rule = rule;\n};\n\nRule.prototype.matchesAnyProperty = function (props) {\n return this._matches(this._rule[PROPERTY_KEY], props);\n};\n\nRule.prototype.matchesAnyMapping = function (mappings) {\n return this._matches(this._rule[MAPPING_KEY], mappings);\n};\n\nRule.prototype._matches = function (value, acceptedValues) {\n if (_.isString(acceptedValues)) {\n acceptedValues = [acceptedValues];\n }\n return _.contains(acceptedValues, value);\n};\n\nRule.prototype.getBucketsWithRangeFilter = function () {\n return this._getBucketsByFilterType(RANGE_FILTER_TYPE);\n};\n\nRule.prototype.getBucketsWithCategoryFilter = function () {\n return this._getBucketsByFilterType(CATEGORY_FILTER_TYPE);\n};\n\nRule.prototype.getBucketsWithDefaultFilter = function () {\n return this._getBucketsByFilterType(DEFAULT_FILTER_TYPE);\n};\n\nRule.prototype._getBucketsByFilterType = function (filterType) {\n if (this._rule) {\n return _.select(this._rule.buckets, function (bucket) {\n return bucket.filter.type === filterType;\n });\n }\n return [];\n};\n\nRule.prototype.getColumn = function () {\n return this._rule.column;\n};\n\nRule.prototype.getMapping = function () {\n return this._rule.mapping;\n};\n\nRule.prototype.getProperty = function () {\n return this._rule.prop;\n};\n\nRule.prototype.getFilterAvg = function () {\n return this._rule.stats.filter_avg;\n};\n\nmodule.exports = Rule;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar TILED_LAYER_TYPE = 'Tiled';\nvar PLAIN_LAYER_TYPE = 'Plain';\nvar WMS_LAYER_TYPE = 'WMS';\nvar GMAPS_BASE_LAYER_TYPE = 'GMapsBase';\nvar CARTODB_LAYER_TYPE = 'CartoDB';\nvar TORQUE_LAYER_TYPE = 'torque';\n\nvar isLayerOfType = function isLayerOfType(layerModel, layerType) {\n return layerModel.get('type').toLowerCase() === layerType.toLowerCase();\n};\n\nmodule.exports = {\n isTiledLayer: function isTiledLayer(layerModel) {\n return isLayerOfType(layerModel, TILED_LAYER_TYPE);\n },\n\n isPlainLayer: function isPlainLayer(layerModel) {\n return isLayerOfType(layerModel, PLAIN_LAYER_TYPE);\n },\n\n isWMSLayer: function isWMSLayer(layerModel) {\n return isLayerOfType(layerModel, WMS_LAYER_TYPE);\n },\n\n isGoogleMapsBaseLayer: function isGoogleMapsBaseLayer(layerModel) {\n return isLayerOfType(layerModel, GMAPS_BASE_LAYER_TYPE);\n },\n\n isCartoDBLayer: function isCartoDBLayer(layerModel) {\n return isLayerOfType(layerModel, CARTODB_LAYER_TYPE);\n },\n\n isTorqueLayer: function isTorqueLayer(layerModel) {\n return isLayerOfType(layerModel, TORQUE_LAYER_TYPE);\n }\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQuery JavaScript Library v2.1.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-04-28T16:01Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\n\nvar arr = [];\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\tversion = \"2.1.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the function hasn't returned already, we're confident that\n\t\t// |obj| is a plain object, created by {} or constructed with new Object\n\t\treturn true;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf(\"use strict\") === 1 ) {\n\t\t\t\tscript = document.createElement(\"script\");\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t// and removal by using an indirect global eval\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[0] === \"<\" && selector[ selector.length - 1 ] === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\ttruncate = until !== undefined;\n\n\t\twhile ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmatched.push( elem );\n\t\t\t}\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar matched = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tmatched.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn matched;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\twhile ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.unique( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// Flag to know if list is currently firing\n\t\tfiring,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\twindow.removeEventListener( \"load\", completed, false );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// We once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[0], key ) : emptyGet;\n};\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( owner ) {\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\nfunction Data() {\n\t// Support: Android<4,\n\t// Old WebKit does not have Object.preventExtensions/freeze method,\n\t// return new empty object instead with no [[set]] accessor\n\tObject.defineProperty( this.cache = {}, 0, {\n\t\tget: function() {\n\t\t\treturn {};\n\t\t}\n\t});\n\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\nData.accepts = jQuery.acceptData;\n\nData.prototype = {\n\tkey: function( owner ) {\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return the key for a frozen object.\n\t\tif ( !Data.accepts( owner ) ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar descriptor = {},\n\t\t\t// Check if the owner object already has a cache key\n\t\t\tunlock = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !unlock ) {\n\t\t\tunlock = Data.uid++;\n\n\t\t\t// Secure it in a non-enumerable, non-writable property\n\t\t\ttry {\n\t\t\t\tdescriptor[ this.expando ] = { value: unlock };\n\t\t\t\tObject.defineProperties( owner, descriptor );\n\n\t\t\t// Support: Android<4\n\t\t\t// Fallback to a less secure definition\n\t\t\t} catch ( e ) {\n\t\t\t\tdescriptor[ this.expando ] = unlock;\n\t\t\t\tjQuery.extend( owner, descriptor );\n\t\t\t}\n\t\t}\n\n\t\t// Ensure the cache object\n\t\tif ( !this.cache[ unlock ] ) {\n\t\t\tthis.cache[ unlock ] = {};\n\t\t}\n\n\t\treturn unlock;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\t// There may be an unlock assigned to this node,\n\t\t\t// if there is no entry for this \"owner\", create one inline\n\t\t\t// and set the unlock as though an owner entry had always existed\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\t\t\t// Fresh assignments by object are shallow copied\n\t\t\tif ( jQuery.isEmptyObject( cache ) ) {\n\t\t\t\tjQuery.extend( this.cache[ unlock ], data );\n\t\t\t// Otherwise, copy the properties one-by-one to the cache object\n\t\t\t} else {\n\t\t\t\tfor ( prop in data ) {\n\t\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\t// Either a valid cache is found, or will be created.\n\t\t// New caches will be created and the unlock returned,\n\t\t// allowing direct access to the newly created\n\t\t// empty data object. A valid owner object must be provided.\n\t\tvar cache = this.cache[ this.key( owner ) ];\n\n\t\treturn key === undefined ?\n\t\t\tcache : cache[ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t((key && typeof key === \"string\") && value === undefined) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase(key) );\n\t\t}\n\n\t\t// [*]When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.cache[ unlock ] = {};\n\n\t\t} else {\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\treturn !jQuery.isEmptyObject(\n\t\t\tthis.cache[ owner[ this.expando ] ] || {}\n\t\t);\n\t},\n\tdiscard: function( owner ) {\n\t\tif ( owner[ this.expando ] ) {\n\t\t\tdelete this.cache[ owner[ this.expando ] ];\n\t\t}\n\t}\n};\nvar data_priv = new Data();\n\nvar data_user = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdata_user.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend({\n\thasData: function( elem ) {\n\t\treturn data_user.hasData( elem ) || data_priv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn data_user.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdata_user.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to data_priv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn data_priv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdata_priv.remove( elem, name );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = data_user.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !data_priv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata_priv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tdata_user.set( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data,\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = data_user.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = data_user.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each(function() {\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = data_user.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdata_user.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf(\"-\") !== -1 && data !== undefined ) {\n\t\t\t\t\tdata_user.set( this, key, value );\n\t\t\t\t}\n\t\t\t});\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tdata_user.remove( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = data_priv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = data_priv.access( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn data_priv.get( elem, key ) || data_priv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tdata_priv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = data_priv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n})();\nvar strundefined = typeof undefined;\n\n\n\nsupport.focusinBubbles = \"onfocusin\" in window;\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.hasData( elem ) && data_priv.get( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\t\t\tdata_priv.remove( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( data_priv.get( cur, \"events\" ) || {} )[ event.type ] && data_priv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( data_priv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t// Avoid non-left-click bubbling in Firefox (#3861)\n\t\tif ( delegateCount && cur.nodeType && (!event.button || event.type !== \"click\") ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.disabled !== true || event.type !== \"click\" ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) >= 0 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push({ elem: cur, handlers: matches });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: \"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which\".split(\" \"),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: \"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement\".split(\" \"),\n\t\tfilter: function( event, original ) {\n\t\t\tvar eventDoc, doc, body,\n\t\t\t\tbutton = original.button;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: Cordova 2.5 (WebKit) (#13255)\n\t\t// All events should have a target; Cordova deviceready doesn't\n\t\tif ( !event.target ) {\n\t\t\tevent.target = document;\n\t\t}\n\n\t\t// Support: Safari 6.0+, Chrome<28\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\tspecial: {\n\t\tload: {\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && jQuery.nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tsimulate: function( type, elem, event, bubble ) {\n\t\t// Piggyback on a donor event to simulate a different one.\n\t\t// Fake originalEvent to avoid donor's stopPropagation, but if the\n\t\t// simulated event prevents default then we do the same on the donor.\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true,\n\t\t\t\toriginalEvent: {}\n\t\t\t}\n\t\t);\n\t\tif ( bubble ) {\n\t\t\tjQuery.event.trigger( e, null, elem );\n\t\t} else {\n\t\t\tjQuery.event.dispatch.call( elem, e );\n\t\t}\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle, false );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\t// Allow instantiation without the 'new' keyword\n\tif ( !(this instanceof jQuery.Event) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\t\t\t\t// Support: Android<4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && e.preventDefault ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// Support: Chrome 15+\njQuery.each({\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mousenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || (related !== target && !jQuery.contains( target, related )) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n});\n\n// Support: Firefox, Chrome, Safari\n// Create \"bubbling\" focus and blur events\nif ( !support.focusinBubbles ) {\n\tjQuery.each({ focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );\n\t\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = data_priv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdata_priv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = data_priv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdata_priv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdata_priv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t});\n}\n\njQuery.fn.extend({\n\n\ton: function( types, selector, data, fn, /*INTERNAL*/ one ) {\n\t\tvar origFn, type;\n\n\t\t// Types can be a map of types/handlers\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-Object, selector, data )\n\t\t\tif ( typeof selector !== \"string\" ) {\n\t\t\t\t// ( types-Object, data )\n\t\t\t\tdata = data || selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.on( type, selector, data, types[ type ], one );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( data == null && fn == null ) {\n\t\t\t// ( types, fn )\n\t\t\tfn = selector;\n\t\t\tdata = selector = undefined;\n\t\t} else if ( fn == null ) {\n\t\t\tif ( typeof selector === \"string\" ) {\n\t\t\t\t// ( types, selector, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = undefined;\n\t\t\t} else {\n\t\t\t\t// ( types, data, fn )\n\t\t\t\tfn = data;\n\t\t\t\tdata = selector;\n\t\t\t\tselector = undefined;\n\t\t\t}\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t} else if ( !fn ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif ( one === 1 ) {\n\t\t\torigFn = fn;\n\t\t\tfn = function( event ) {\n\t\t\t\t// Can use an empty set, since event contains the info\n\t\t\t\tjQuery().off( event );\n\t\t\t\treturn origFn.apply( this, arguments );\n\t\t\t};\n\t\t\t// Use same guid so caller can remove using origFn\n\t\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.add( this, types, fn, data, selector );\n\t\t});\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn this.on( types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t});\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t});\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[0];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n});\n\n\nvar\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi,\n\trtagName = /<([\\w:]+)/,\n\trhtml = /<|&#?\\w+;/,\n\trnoInnerhtml = /<(?:script|style|link)/i,\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trscriptType = /^$|\\/(?:java|ecma)script/i,\n\trscriptTypeMasked = /^true\\/(.*)/,\n\trcleanScript = /^\\s*\\s*$/g,\n\n\t// We have to close these tags to support XHTML (#13200)\n\twrapMap = {\n\n\t\t// Support: IE9\n\t\toption: [ 1, \"\" ],\n\n\t\tthead: [ 1, \"\", \"
\" ],\n\t\tcol: [ 2, \"\", \"
\" ],\n\t\ttr: [ 2, \"\", \"
\" ],\n\t\ttd: [ 3, \"\", \"
\" ],\n\n\t\t_default: [ 0, \"\", \"\" ]\n\t};\n\n// Support: IE9\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: 1.x compatibility\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName(\"tbody\")[0] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement(\"tbody\") ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute(\"type\");\n\t}\n\n\treturn elem;\n}\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdata_priv.set(\n\t\t\telems[ i ], \"globalEval\", !refElements || data_priv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( data_priv.hasData( src ) ) {\n\t\tpdataOld = data_priv.access( src );\n\t\tpdataCur = data_priv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( data_user.hasData( src ) ) {\n\t\tudataOld = data_user.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdata_user.set( dest, udataCur );\n\t}\n}\n\nfunction getAll( context, tag ) {\n\tvar ret = context.getElementsByTagName ? context.getElementsByTagName( tag || \"*\" ) :\n\t\t\tcontext.querySelectorAll ? context.querySelectorAll( tag || \"*\" ) :\n\t\t\t[];\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], ret ) :\n\t\tret;\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\njQuery.extend({\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tbuildFragment: function( elems, context, scripts, selection ) {\n\t\tvar elem, tmp, tag, wrap, contains, j,\n\t\t\tfragment = context.createDocumentFragment(),\n\t\t\tnodes = [],\n\t\t\ti = 0,\n\t\t\tl = elems.length;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\telem = elems[ i ];\n\n\t\t\tif ( elem || elem === 0 ) {\n\n\t\t\t\t// Add nodes directly\n\t\t\t\tif ( jQuery.type( elem ) === \"object\" ) {\n\t\t\t\t\t// Support: QtWebKit, PhantomJS\n\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t\t// Convert non-html into a text node\n\t\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t\t// Convert html into DOM nodes\n\t\t\t\t} else {\n\t\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement(\"div\") );\n\n\t\t\t\t\t// Deserialize a standard representation\n\t\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\t\ttmp.innerHTML = wrap[ 1 ] + elem.replace( rxhtmlTag, \"<$1>\" ) + wrap[ 2 ];\n\n\t\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\t\tj = wrap[ 0 ];\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: QtWebKit, PhantomJS\n\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t\t// Remember the top-level container\n\t\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\t\ttmp.textContent = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Remove wrapper from fragment\n\t\tfragment.textContent = \"\";\n\n\t\ti = 0;\n\t\twhile ( (elem = nodes[ i++ ]) ) {\n\n\t\t\t// #4087 - If origin and destination elements are the same, and this is\n\t\t\t// that element, do not do anything\n\t\t\tif ( selection && jQuery.inArray( elem, selection ) !== -1 ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t\t// Append to fragment\n\t\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t\t// Preserve script evaluation history\n\t\t\tif ( contains ) {\n\t\t\t\tsetGlobalEval( tmp );\n\t\t\t}\n\n\t\t\t// Capture executables\n\t\t\tif ( scripts ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (elem = tmp[ j++ ]) ) {\n\t\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\t\tscripts.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn fragment;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type, key,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[ i ]) !== undefined; i++ ) {\n\t\t\tif ( jQuery.acceptData( elem ) ) {\n\t\t\t\tkey = elem[ data_priv.expando ];\n\n\t\t\t\tif ( key && (data = data_priv.cache[ key ]) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( data_priv.cache[ key ] ) {\n\t\t\t\t\t\t// Discard any remaining `private` data\n\t\t\t\t\t\tdelete data_priv.cache[ key ];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Discard any remaining `user` data\n\t\t\tdelete data_user.cache[ elem[ data_user.expando ] ];\n\t\t}\n\t}\n});\n\njQuery.fn.extend({\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each(function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t});\n\t},\n\n\tprepend: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t});\n\t},\n\n\tbefore: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t});\n\t},\n\n\tafter: function() {\n\t\treturn this.domManip( arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t});\n\t},\n\n\tremove: function( selector, keepData /* Internal Use Only */ ) {\n\t\tvar elem,\n\t\t\telems = selector ? jQuery.filter( selector, this ) : this,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = elems[i]) != null; i++ ) {\n\t\t\tif ( !keepData && elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem ) );\n\t\t\t}\n\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\tif ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\t\t\tsetGlobalEval( getAll( elem, \"script\" ) );\n\t\t\t\t}\n\t\t\t\telem.parentNode.removeChild( elem );\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; (elem = this[i]) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map(function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t});\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = value.replace( rxhtmlTag, \"<$1>\" );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar arg = arguments[ 0 ];\n\n\t\t// Make the changes, replacing each context element with the new content\n\t\tthis.domManip( arguments, function( elem ) {\n\t\t\targ = this.parentNode;\n\n\t\t\tjQuery.cleanData( getAll( this ) );\n\n\t\t\tif ( arg ) {\n\t\t\t\targ.replaceChild( elem, this );\n\t\t\t}\n\t\t});\n\n\t\t// Force removal if there was no new content (e.g., from empty arguments)\n\t\treturn arg && (arg.length || arg.nodeType) ? this : this.remove();\n\t},\n\n\tdetach: function( selector ) {\n\t\treturn this.remove( selector, true );\n\t},\n\n\tdomManip: function( args, callback ) {\n\n\t\t// Flatten any nested arrays\n\t\targs = concat.apply( [], args );\n\n\t\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tset = this,\n\t\t\tiNoClone = l - 1,\n\t\t\tvalue = args[ 0 ],\n\t\t\tisFunction = jQuery.isFunction( value );\n\n\t\t// We can't cloneNode fragments that contain checked, in WebKit\n\t\tif ( isFunction ||\n\t\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\t\treturn this.each(function( index ) {\n\t\t\t\tvar self = set.eq( index );\n\t\t\t\tif ( isFunction ) {\n\t\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t\t}\n\t\t\t\tself.domManip( args, callback );\n\t\t\t});\n\t\t}\n\n\t\tif ( l ) {\n\t\t\tfragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, this );\n\t\t\tfirst = fragment.firstChild;\n\n\t\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\t\tfragment = first;\n\t\t\t}\n\n\t\t\tif ( first ) {\n\t\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\t\thasScripts = scripts.length;\n\n\t\t\t\t// Use the original fragment for the last item instead of the first because it can end up\n\t\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\tnode = fragment;\n\n\t\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\t\t\t// Support: QtWebKit\n\t\t\t\t\t\t\t// jQuery.merge because push.apply(_, arraylike) throws\n\t\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcallback.call( this[ i ], node, i );\n\t\t\t\t}\n\n\t\t\t\tif ( hasScripts ) {\n\t\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t\t// Reenable scripts\n\t\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t\t!data_priv.access( node, \"globalEval\" ) && jQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\t\tif ( node.src ) {\n\t\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.globalEval( node.textContent.replace( rcleanScript, \"\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n});\n\njQuery.each({\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: QtWebKit\n\t\t\t// .get() because push.apply(_, arraylike) throws\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n});\n\n\nvar iframe,\n\telemdisplay = {};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar style,\n\t\telem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\t// getDefaultComputedStyle might be reliably used only on attached element\n\t\tdisplay = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?\n\n\t\t\t// Use of this method is a temporary fix (more like optimization) until something better comes along,\n\t\t\t// since it was removed from specification and supported only in FF\n\t\t\tstyle.display : jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = (iframe || jQuery( \"