@poor-knight/cesium-utils 0.5.3 → 0.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cesium-utils.cjs +77 -0
- package/dist/cesium-utils.d.ts +353 -0
- package/dist/cesium-utils.js +7058 -0
- package/dist/cesium-utils.umd.cjs +77 -0
- package/package.json +1 -1
- package/dist/assets/index-WAdYEV0d.css +0 -1
- package/dist/assets/index-dJcv6GNb.js +0 -96
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1
- package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1
- package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
- package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
- package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
- package/dist/cesium/Assets/Images/ion-credit.png +0 -0
- package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
- package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
- package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
- package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
- package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
- package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
- package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
- package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
- package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
- package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
- package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
- package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/building.png +0 -0
- package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
- package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
- package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
- package/dist/cesium/Assets/Textures/maki/car.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
- package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
- package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/city.png +0 -0
- package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
- package/dist/cesium/Assets/Textures/maki/college.png +0 -0
- package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
- package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
- package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
- package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
- package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
- package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
- package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
- package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
- package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
- package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
- package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
- package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
- package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
- package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
- package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
- package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
- package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
- package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
- package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
- package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
- package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
- package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
- package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
- package/dist/cesium/Assets/Textures/maki/library.png +0 -0
- package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
- package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
- package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
- package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
- package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
- package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
- package/dist/cesium/Assets/Textures/maki/music.png +0 -0
- package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
- package/dist/cesium/Assets/Textures/maki/park.png +0 -0
- package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
- package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
- package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
- package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
- package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
- package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
- package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/police.png +0 -0
- package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
- package/dist/cesium/Assets/Textures/maki/post.png +0 -0
- package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
- package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
- package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
- package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
- package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/school.png +0 -0
- package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
- package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
- package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
- package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
- package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/square.png +0 -0
- package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/star.png +0 -0
- package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
- package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
- package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
- package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
- package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
- package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
- package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
- package/dist/cesium/Assets/Textures/maki/town.png +0 -0
- package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
- package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
- package/dist/cesium/Assets/Textures/maki/village.png +0 -0
- package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
- package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
- package/dist/cesium/Assets/Textures/maki/water.png +0 -0
- package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
- package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
- package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
- package/dist/cesium/Assets/Textures/pin.svg +0 -1
- package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
- package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
- package/dist/cesium/Assets/approximateTerrainHeights.json +0 -1
- package/dist/cesium/Cesium.js +0 -16274
- package/dist/cesium/ThirdParty/Workers/package.json +0 -1
- package/dist/cesium/ThirdParty/Workers/pako_deflate.min.js +0 -1
- package/dist/cesium/ThirdParty/Workers/pako_inflate.min.js +0 -1
- package/dist/cesium/ThirdParty/Workers/z-worker-pako.js +0 -1
- package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
- package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
- package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +0 -1
- package/dist/cesium/ThirdParty/wasm_splats_bg.wasm +0 -0
- package/dist/cesium/Widgets/Animation/Animation.css +0 -127
- package/dist/cesium/Widgets/Animation/lighter.css +0 -70
- package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -108
- package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +0 -22
- package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -102
- package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +0 -113
- package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +0 -119
- package/dist/cesium/Widgets/CesiumWidget/lighter.css +0 -14
- package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +0 -8
- package/dist/cesium/Widgets/Geocoder/Geocoder.css +0 -70
- package/dist/cesium/Widgets/Geocoder/lighter.css +0 -17
- package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
- package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
- package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
- package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
- package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +0 -120
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
- package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
- package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
- package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
- package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
- package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
- package/dist/cesium/Widgets/InfoBox/InfoBox.css +0 -92
- package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +0 -178
- package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -93
- package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +0 -38
- package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
- package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +0 -38
- package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +0 -56
- package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +0 -20
- package/dist/cesium/Widgets/Timeline/Timeline.css +0 -103
- package/dist/cesium/Widgets/Timeline/lighter.css +0 -23
- package/dist/cesium/Widgets/VRButton/VRButton.css +0 -8
- package/dist/cesium/Widgets/Viewer/Viewer.css +0 -107
- package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +0 -16
- package/dist/cesium/Widgets/lighter.css +0 -237
- package/dist/cesium/Widgets/lighterShared.css +0 -46
- package/dist/cesium/Widgets/shared.css +0 -103
- package/dist/cesium/Widgets/widgets.css +0 -1342
- package/dist/cesium/Workers/chunk-22ASS7YB.js +0 -26
- package/dist/cesium/Workers/chunk-2BFZMXUG.js +0 -26
- package/dist/cesium/Workers/chunk-3BNGKZ2F.js +0 -26
- package/dist/cesium/Workers/chunk-452MW5E6.js +0 -26
- package/dist/cesium/Workers/chunk-45LNPNIM.js +0 -26
- package/dist/cesium/Workers/chunk-5YCKGPZ3.js +0 -26
- package/dist/cesium/Workers/chunk-5ZFOKSDK.js +0 -26
- package/dist/cesium/Workers/chunk-65CN64EP.js +0 -28
- package/dist/cesium/Workers/chunk-6NNCMAGT.js +0 -26
- package/dist/cesium/Workers/chunk-75RT7DNU.js +0 -26
- package/dist/cesium/Workers/chunk-77KFIUJG.js +0 -26
- package/dist/cesium/Workers/chunk-7L2LUDC3.js +0 -28
- package/dist/cesium/Workers/chunk-7UX2ZCQK.js +0 -26
- package/dist/cesium/Workers/chunk-7W3OTLHS.js +0 -26
- package/dist/cesium/Workers/chunk-AAOMPF7M.js +0 -26
- package/dist/cesium/Workers/chunk-BOBXKID6.js +0 -26
- package/dist/cesium/Workers/chunk-BQNAZUCV.js +0 -26
- package/dist/cesium/Workers/chunk-BYU3QM3A.js +0 -26
- package/dist/cesium/Workers/chunk-C7EXJG2O.js +0 -26
- package/dist/cesium/Workers/chunk-FE4HG5RY.js +0 -26
- package/dist/cesium/Workers/chunk-GMDXIP2F.js +0 -26
- package/dist/cesium/Workers/chunk-HSVYYGKG.js +0 -26
- package/dist/cesium/Workers/chunk-IOJRZZG4.js +0 -26
- package/dist/cesium/Workers/chunk-IQ3P7OYE.js +0 -26
- package/dist/cesium/Workers/chunk-K526B6A6.js +0 -26
- package/dist/cesium/Workers/chunk-KA7ZX4BQ.js +0 -26
- package/dist/cesium/Workers/chunk-KYREMICR.js +0 -26
- package/dist/cesium/Workers/chunk-LM5DN6BS.js +0 -26
- package/dist/cesium/Workers/chunk-N3VBCSE5.js +0 -26
- package/dist/cesium/Workers/chunk-NYNUONZK.js +0 -26
- package/dist/cesium/Workers/chunk-O4MLFQKO.js +0 -26
- package/dist/cesium/Workers/chunk-OJD6C7EN.js +0 -26
- package/dist/cesium/Workers/chunk-PFXLBIMV.js +0 -26
- package/dist/cesium/Workers/chunk-PJQOB6JM.js +0 -26
- package/dist/cesium/Workers/chunk-PSBTKXXJ.js +0 -26
- package/dist/cesium/Workers/chunk-PX3QTMVS.js +0 -27
- package/dist/cesium/Workers/chunk-QF5X4OGE.js +0 -26
- package/dist/cesium/Workers/chunk-QF6LI2WV.js +0 -26
- package/dist/cesium/Workers/chunk-QJ75ECAT.js +0 -26
- package/dist/cesium/Workers/chunk-RHHPY6PH.js +0 -26
- package/dist/cesium/Workers/chunk-S3NLG5WM.js +0 -26
- package/dist/cesium/Workers/chunk-SODPE7LL.js +0 -26
- package/dist/cesium/Workers/chunk-TG7CPYPR.js +0 -26
- package/dist/cesium/Workers/chunk-UJOKCDQH.js +0 -26
- package/dist/cesium/Workers/chunk-UQ3ABODK.js +0 -26
- package/dist/cesium/Workers/chunk-VBRVI5XI.js +0 -66
- package/dist/cesium/Workers/chunk-WCO3MWIK.js +0 -26
- package/dist/cesium/Workers/chunk-X52A3GF7.js +0 -27
- package/dist/cesium/Workers/chunk-X76FJHF4.js +0 -26
- package/dist/cesium/Workers/chunk-XFYMZXZK.js +0 -26
- package/dist/cesium/Workers/chunk-XRIISOYZ.js +0 -26
- package/dist/cesium/Workers/chunk-YZ5FJSO3.js +0 -26
- package/dist/cesium/Workers/combineGeometry.js +0 -26
- package/dist/cesium/Workers/createBoxGeometry.js +0 -26
- package/dist/cesium/Workers/createBoxOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createCircleGeometry.js +0 -26
- package/dist/cesium/Workers/createCircleOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +0 -26
- package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createCorridorGeometry.js +0 -26
- package/dist/cesium/Workers/createCorridorOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createCylinderGeometry.js +0 -26
- package/dist/cesium/Workers/createCylinderOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createEllipseGeometry.js +0 -26
- package/dist/cesium/Workers/createEllipseOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createEllipsoidGeometry.js +0 -26
- package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createFrustumGeometry.js +0 -26
- package/dist/cesium/Workers/createFrustumOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createGeometry.js +0 -26
- package/dist/cesium/Workers/createGroundPolylineGeometry.js +0 -26
- package/dist/cesium/Workers/createPlaneGeometry.js +0 -26
- package/dist/cesium/Workers/createPlaneOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createPolygonGeometry.js +0 -26
- package/dist/cesium/Workers/createPolygonOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createPolylineGeometry.js +0 -26
- package/dist/cesium/Workers/createPolylineVolumeGeometry.js +0 -26
- package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createRectangleGeometry.js +0 -26
- package/dist/cesium/Workers/createRectangleOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createSimplePolylineGeometry.js +0 -26
- package/dist/cesium/Workers/createSphereGeometry.js +0 -26
- package/dist/cesium/Workers/createSphereOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/createTaskProcessorWorker.js +0 -26
- package/dist/cesium/Workers/createVectorTileClampedPolylines.js +0 -26
- package/dist/cesium/Workers/createVectorTileGeometries.js +0 -26
- package/dist/cesium/Workers/createVectorTilePoints.js +0 -26
- package/dist/cesium/Workers/createVectorTilePolygons.js +0 -26
- package/dist/cesium/Workers/createVectorTilePolylines.js +0 -26
- package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -26
- package/dist/cesium/Workers/createVerticesFromHeightmap.js +0 -26
- package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -26
- package/dist/cesium/Workers/createWallGeometry.js +0 -26
- package/dist/cesium/Workers/createWallOutlineGeometry.js +0 -26
- package/dist/cesium/Workers/decodeDraco.js +0 -26
- package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +0 -26
- package/dist/cesium/Workers/decodeI3S.js +0 -26
- package/dist/cesium/Workers/gaussianSplatSorter.js +0 -26
- package/dist/cesium/Workers/gaussianSplatTextureGenerator.js +0 -26
- package/dist/cesium/Workers/transcodeKTX2.js +0 -56
- package/dist/cesium/Workers/transferTypedArrayTest.js +0 -26
- package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +0 -26
- package/dist/index.html +0 -17
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
var _e=Object.defineProperty;var Ee=(r,i,s)=>i in r?_e(r,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[i]=s;var Ie=(r,i)=>()=>(i||r((i={exports:{}}).exports,i),i.exports);var Te=(r,i,s)=>Ee(r,typeof i!="symbol"?i+"":i,s);var xe=Ie((exports,module)=>{(function(){const i=document.createElement("link").relList;if(i&&i.supports&&i.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))o(u);new MutationObserver(u=>{for(const a of u)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&o(l)}).observe(document,{childList:!0,subtree:!0});function s(u){const a={};return u.integrity&&(a.integrity=u.integrity),u.referrerPolicy&&(a.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?a.credentials="include":u.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function o(u){if(u.ep)return;u.ep=!0;const a=s(u);fetch(u.href,a)}})();/**
|
|
2
|
-
* @vue/shared v3.5.17
|
|
3
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
|
-
* @license MIT
|
|
5
|
-
**//*! #__NO_SIDE_EFFECTS__ */function makeMap(r){const i=Object.create(null);for(const s of r.split(","))i[s]=1;return s=>s in i}const EMPTY_OBJ={},EMPTY_ARR=[],NOOP=()=>{},NO=()=>!1,isOn=r=>r.charCodeAt(0)===111&&r.charCodeAt(1)===110&&(r.charCodeAt(2)>122||r.charCodeAt(2)<97),isModelListener=r=>r.startsWith("onUpdate:"),extend=Object.assign,remove=(r,i)=>{const s=r.indexOf(i);s>-1&&r.splice(s,1)},hasOwnProperty$8=Object.prototype.hasOwnProperty,hasOwn=(r,i)=>hasOwnProperty$8.call(r,i),isArray$1=Array.isArray,isMap=r=>toTypeString(r)==="[object Map]",isSet=r=>toTypeString(r)==="[object Set]",isFunction$1=r=>typeof r=="function",isString=r=>typeof r=="string",isSymbol=r=>typeof r=="symbol",isObject$1=r=>r!==null&&typeof r=="object",isPromise=r=>(isObject$1(r)||isFunction$1(r))&&isFunction$1(r.then)&&isFunction$1(r.catch),objectToString$1=Object.prototype.toString,toTypeString=r=>objectToString$1.call(r),toRawType=r=>toTypeString(r).slice(8,-1),isPlainObject=r=>toTypeString(r)==="[object Object]",isIntegerKey=r=>isString(r)&&r!=="NaN"&&r[0]!=="-"&&""+parseInt(r,10)===r,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cacheStringFunction=r=>{const i=Object.create(null);return s=>i[s]||(i[s]=r(s))},camelizeRE=/-(\w)/g,camelize=cacheStringFunction(r=>r.replace(camelizeRE,(i,s)=>s?s.toUpperCase():"")),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(r=>r.replace(hyphenateRE,"-$1").toLowerCase()),capitalize=cacheStringFunction(r=>r.charAt(0).toUpperCase()+r.slice(1)),toHandlerKey=cacheStringFunction(r=>r?`on${capitalize(r)}`:""),hasChanged=(r,i)=>!Object.is(r,i),invokeArrayFns=(r,...i)=>{for(let s=0;s<r.length;s++)r[s](...i)},def=(r,i,s,o=!1)=>{Object.defineProperty(r,i,{configurable:!0,enumerable:!1,writable:o,value:s})},looseToNumber=r=>{const i=parseFloat(r);return isNaN(i)?r:i};let _globalThis;const getGlobalThis=()=>_globalThis||(_globalThis=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function normalizeStyle(r){if(isArray$1(r)){const i={};for(let s=0;s<r.length;s++){const o=r[s],u=isString(o)?parseStringStyle(o):normalizeStyle(o);if(u)for(const a in u)i[a]=u[a]}return i}else if(isString(r)||isObject$1(r))return r}const listDelimiterRE=/;(?![^(]*\))/g,propertyDelimiterRE=/:([^]+)/,styleCommentRE=/\/\*[^]*?\*\//g;function parseStringStyle(r){const i={};return r.replace(styleCommentRE,"").split(listDelimiterRE).forEach(s=>{if(s){const o=s.split(propertyDelimiterRE);o.length>1&&(i[o[0].trim()]=o[1].trim())}}),i}function normalizeClass(r){let i="";if(isString(r))i=r;else if(isArray$1(r))for(let s=0;s<r.length;s++){const o=normalizeClass(r[s]);o&&(i+=o+" ")}else if(isObject$1(r))for(const s in r)r[s]&&(i+=s+" ");return i.trim()}const specialBooleanAttrs="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",isSpecialBooleanAttr=makeMap(specialBooleanAttrs);function includeBooleanAttr(r){return!!r||r===""}/**
|
|
6
|
-
* @vue/reactivity v3.5.17
|
|
7
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
8
|
-
* @license MIT
|
|
9
|
-
**/let activeEffectScope;class EffectScope{constructor(i=!1){this.detached=i,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!i&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let i,s;if(this.scopes)for(i=0,s=this.scopes.length;i<s;i++)this.scopes[i].pause();for(i=0,s=this.effects.length;i<s;i++)this.effects[i].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let i,s;if(this.scopes)for(i=0,s=this.scopes.length;i<s;i++)this.scopes[i].resume();for(i=0,s=this.effects.length;i<s;i++)this.effects[i].resume()}}run(i){if(this._active){const s=activeEffectScope;try{return activeEffectScope=this,i()}finally{activeEffectScope=s}}}on(){++this._on===1&&(this.prevScope=activeEffectScope,activeEffectScope=this)}off(){this._on>0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(i){if(this._active){this._active=!1;let s,o;for(s=0,o=this.effects.length;s<o;s++)this.effects[s].stop();for(this.effects.length=0,s=0,o=this.cleanups.length;s<o;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){for(s=0,o=this.scopes.length;s<o;s++)this.scopes[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!i){const u=this.parent.scopes.pop();u&&u!==this&&(this.parent.scopes[this.index]=u,u.index=this.index)}this.parent=void 0}}}function getCurrentScope(){return activeEffectScope}let activeSub;const pausedQueueEffects=new WeakSet;class ReactiveEffect{constructor(i){this.fn=i,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,activeEffectScope&&activeEffectScope.active&&activeEffectScope.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,pausedQueueEffects.has(this)&&(pausedQueueEffects.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||batch(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,cleanupEffect(this),prepareDeps(this);const i=activeSub,s=shouldTrack;activeSub=this,shouldTrack=!0;try{return this.fn()}finally{cleanupDeps(this),activeSub=i,shouldTrack=s,this.flags&=-3}}stop(){if(this.flags&1){for(let i=this.deps;i;i=i.nextDep)removeSub(i);this.deps=this.depsTail=void 0,cleanupEffect(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?pausedQueueEffects.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){isDirty(this)&&this.run()}get dirty(){return isDirty(this)}}let batchDepth=0,batchedSub,batchedComputed;function batch(r,i=!1){if(r.flags|=8,i){r.next=batchedComputed,batchedComputed=r;return}r.next=batchedSub,batchedSub=r}function startBatch(){batchDepth++}function endBatch(){if(--batchDepth>0)return;if(batchedComputed){let i=batchedComputed;for(batchedComputed=void 0;i;){const s=i.next;i.next=void 0,i.flags&=-9,i=s}}let r;for(;batchedSub;){let i=batchedSub;for(batchedSub=void 0;i;){const s=i.next;if(i.next=void 0,i.flags&=-9,i.flags&1)try{i.trigger()}catch(o){r||(r=o)}i=s}}if(r)throw r}function prepareDeps(r){for(let i=r.deps;i;i=i.nextDep)i.version=-1,i.prevActiveLink=i.dep.activeLink,i.dep.activeLink=i}function cleanupDeps(r){let i,s=r.depsTail,o=s;for(;o;){const u=o.prevDep;o.version===-1?(o===s&&(s=u),removeSub(o),removeDep(o)):i=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=u}r.deps=i,r.depsTail=s}function isDirty(r){for(let i=r.deps;i;i=i.nextDep)if(i.dep.version!==i.version||i.dep.computed&&(refreshComputed(i.dep.computed)||i.dep.version!==i.version))return!0;return!!r._dirty}function refreshComputed(r){if(r.flags&4&&!(r.flags&16)||(r.flags&=-17,r.globalVersion===globalVersion)||(r.globalVersion=globalVersion,!r.isSSR&&r.flags&128&&(!r.deps&&!r._dirty||!isDirty(r))))return;r.flags|=2;const i=r.dep,s=activeSub,o=shouldTrack;activeSub=r,shouldTrack=!0;try{prepareDeps(r);const u=r.fn(r._value);(i.version===0||hasChanged(u,r._value))&&(r.flags|=128,r._value=u,i.version++)}catch(u){throw i.version++,u}finally{activeSub=s,shouldTrack=o,cleanupDeps(r),r.flags&=-3}}function removeSub(r,i=!1){const{dep:s,prevSub:o,nextSub:u}=r;if(o&&(o.nextSub=u,r.prevSub=void 0),u&&(u.prevSub=o,r.nextSub=void 0),s.subs===r&&(s.subs=o,!o&&s.computed)){s.computed.flags&=-5;for(let a=s.computed.deps;a;a=a.nextDep)removeSub(a,!0)}!i&&!--s.sc&&s.map&&s.map.delete(s.key)}function removeDep(r){const{prevDep:i,nextDep:s}=r;i&&(i.nextDep=s,r.prevDep=void 0),s&&(s.prevDep=i,r.nextDep=void 0)}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const r=trackStack.pop();shouldTrack=r===void 0?!0:r}function cleanupEffect(r){const{cleanup:i}=r;if(r.cleanup=void 0,i){const s=activeSub;activeSub=void 0;try{i()}finally{activeSub=s}}}let globalVersion=0;class Link{constructor(i,s){this.sub=i,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(i){this.computed=i,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(i){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==activeSub)s=this.activeLink=new Link(activeSub,this),activeSub.deps?(s.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=s,activeSub.depsTail=s):activeSub.deps=activeSub.depsTail=s,addSub(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const o=s.nextDep;o.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=o),s.prevDep=activeSub.depsTail,s.nextDep=void 0,activeSub.depsTail.nextDep=s,activeSub.depsTail=s,activeSub.deps===s&&(activeSub.deps=o)}return s}trigger(i){this.version++,globalVersion++,this.notify(i)}notify(i){startBatch();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{endBatch()}}}function addSub(r){if(r.dep.sc++,r.sub.flags&4){const i=r.dep.computed;if(i&&!r.dep.subs){i.flags|=20;for(let o=i.deps;o;o=o.nextDep)addSub(o)}const s=r.dep.subs;s!==r&&(r.prevSub=s,s&&(s.nextSub=r)),r.dep.subs=r}}const targetMap=new WeakMap,ITERATE_KEY=Symbol(""),MAP_KEY_ITERATE_KEY=Symbol(""),ARRAY_ITERATE_KEY=Symbol("");function track(r,i,s){if(shouldTrack&&activeSub){let o=targetMap.get(r);o||targetMap.set(r,o=new Map);let u=o.get(s);u||(o.set(s,u=new Dep),u.map=o,u.key=s),u.track()}}function trigger(r,i,s,o,u,a){const l=targetMap.get(r);if(!l){globalVersion++;return}const c=h=>{h&&h.trigger()};if(startBatch(),i==="clear")l.forEach(c);else{const h=isArray$1(r),d=h&&isIntegerKey(s);if(h&&s==="length"){const m=Number(o);l.forEach((y,T)=>{(T==="length"||T===ARRAY_ITERATE_KEY||!isSymbol(T)&&T>=m)&&c(y)})}else switch((s!==void 0||l.has(void 0))&&c(l.get(s)),d&&c(l.get(ARRAY_ITERATE_KEY)),i){case"add":h?d&&c(l.get("length")):(c(l.get(ITERATE_KEY)),isMap(r)&&c(l.get(MAP_KEY_ITERATE_KEY)));break;case"delete":h||(c(l.get(ITERATE_KEY)),isMap(r)&&c(l.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap(r)&&c(l.get(ITERATE_KEY));break}}endBatch()}function reactiveReadArray(r){const i=toRaw(r);return i===r?i:(track(i,"iterate",ARRAY_ITERATE_KEY),isShallow(r)?i:i.map(toReactive))}function shallowReadArray(r){return track(r=toRaw(r),"iterate",ARRAY_ITERATE_KEY),r}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator(this,Symbol.iterator,toReactive)},concat(...r){return reactiveReadArray(this).concat(...r.map(i=>isArray$1(i)?reactiveReadArray(i):i))},entries(){return iterator(this,"entries",r=>(r[1]=toReactive(r[1]),r))},every(r,i){return apply$1(this,"every",r,i,void 0,arguments)},filter(r,i){return apply$1(this,"filter",r,i,s=>s.map(toReactive),arguments)},find(r,i){return apply$1(this,"find",r,i,toReactive,arguments)},findIndex(r,i){return apply$1(this,"findIndex",r,i,void 0,arguments)},findLast(r,i){return apply$1(this,"findLast",r,i,toReactive,arguments)},findLastIndex(r,i){return apply$1(this,"findLastIndex",r,i,void 0,arguments)},forEach(r,i){return apply$1(this,"forEach",r,i,void 0,arguments)},includes(...r){return searchProxy(this,"includes",r)},indexOf(...r){return searchProxy(this,"indexOf",r)},join(r){return reactiveReadArray(this).join(r)},lastIndexOf(...r){return searchProxy(this,"lastIndexOf",r)},map(r,i){return apply$1(this,"map",r,i,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...r){return noTracking(this,"push",r)},reduce(r,...i){return reduce(this,"reduce",r,i)},reduceRight(r,...i){return reduce(this,"reduceRight",r,i)},shift(){return noTracking(this,"shift")},some(r,i){return apply$1(this,"some",r,i,void 0,arguments)},splice(...r){return noTracking(this,"splice",r)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(r){return reactiveReadArray(this).toSorted(r)},toSpliced(...r){return reactiveReadArray(this).toSpliced(...r)},unshift(...r){return noTracking(this,"unshift",r)},values(){return iterator(this,"values",toReactive)}};function iterator(r,i,s){const o=shallowReadArray(r),u=o[i]();return o!==r&&!isShallow(r)&&(u._next=u.next,u.next=()=>{const a=u._next();return a.value&&(a.value=s(a.value)),a}),u}const arrayProto$1=Array.prototype;function apply$1(r,i,s,o,u,a){const l=shallowReadArray(r),c=l!==r&&!isShallow(r),h=l[i];if(h!==arrayProto$1[i]){const y=h.apply(r,a);return c?toReactive(y):y}let d=s;l!==r&&(c?d=function(y,T){return s.call(this,toReactive(y),T,r)}:s.length>2&&(d=function(y,T){return s.call(this,y,T,r)}));const m=h.call(l,d,o);return c&&u?u(m):m}function reduce(r,i,s,o){const u=shallowReadArray(r);let a=s;return u!==r&&(isShallow(r)?s.length>3&&(a=function(l,c,h){return s.call(this,l,c,h,r)}):a=function(l,c,h){return s.call(this,l,toReactive(c),h,r)}),u[i](a,...o)}function searchProxy(r,i,s){const o=toRaw(r);track(o,"iterate",ARRAY_ITERATE_KEY);const u=o[i](...s);return(u===-1||u===!1)&&isProxy(s[0])?(s[0]=toRaw(s[0]),o[i](...s)):u}function noTracking(r,i,s=[]){pauseTracking(),startBatch();const o=toRaw(r)[i].apply(r,s);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(r=>r!=="arguments"&&r!=="caller").map(r=>Symbol[r]).filter(isSymbol));function hasOwnProperty$7(r){isSymbol(r)||(r=String(r));const i=toRaw(this);return track(i,"has",r),i.hasOwnProperty(r)}class BaseReactiveHandler{constructor(i=!1,s=!1){this._isReadonly=i,this._isShallow=s}get(i,s,o){if(s==="__v_skip")return i.__v_skip;const u=this._isReadonly,a=this._isShallow;if(s==="__v_isReactive")return!u;if(s==="__v_isReadonly")return u;if(s==="__v_isShallow")return a;if(s==="__v_raw")return o===(u?a?shallowReadonlyMap:readonlyMap:a?shallowReactiveMap:reactiveMap).get(i)||Object.getPrototypeOf(i)===Object.getPrototypeOf(o)?i:void 0;const l=isArray$1(i);if(!u){let h;if(l&&(h=arrayInstrumentations[s]))return h;if(s==="hasOwnProperty")return hasOwnProperty$7}const c=Reflect.get(i,s,isRef(i)?i:o);return(isSymbol(s)?builtInSymbols.has(s):isNonTrackableKeys(s))||(u||track(i,"get",s),a)?c:isRef(c)?l&&isIntegerKey(s)?c:c.value:isObject$1(c)?u?readonly(c):reactive(c):c}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(i=!1){super(!1,i)}set(i,s,o,u){let a=i[s];if(!this._isShallow){const h=isReadonly(a);if(!isShallow(o)&&!isReadonly(o)&&(a=toRaw(a),o=toRaw(o)),!isArray$1(i)&&isRef(a)&&!isRef(o))return h?!1:(a.value=o,!0)}const l=isArray$1(i)&&isIntegerKey(s)?Number(s)<i.length:hasOwn(i,s),c=Reflect.set(i,s,o,isRef(i)?i:u);return i===toRaw(u)&&(l?hasChanged(o,a)&&trigger(i,"set",s,o):trigger(i,"add",s,o)),c}deleteProperty(i,s){const o=hasOwn(i,s);i[s];const u=Reflect.deleteProperty(i,s);return u&&o&&trigger(i,"delete",s,void 0),u}has(i,s){const o=Reflect.has(i,s);return(!isSymbol(s)||!builtInSymbols.has(s))&&track(i,"has",s),o}ownKeys(i){return track(i,"iterate",isArray$1(i)?"length":ITERATE_KEY),Reflect.ownKeys(i)}}class ReadonlyReactiveHandler extends BaseReactiveHandler{constructor(i=!1){super(!0,i)}set(i,s){return!0}deleteProperty(i,s){return!0}}const mutableHandlers=new MutableReactiveHandler,readonlyHandlers=new ReadonlyReactiveHandler,shallowReactiveHandlers=new MutableReactiveHandler(!0),shallowReadonlyHandlers=new ReadonlyReactiveHandler(!0),toShallow=r=>r,getProto=r=>Reflect.getPrototypeOf(r);function createIterableMethod(r,i,s){return function(...o){const u=this.__v_raw,a=toRaw(u),l=isMap(a),c=r==="entries"||r===Symbol.iterator&&l,h=r==="keys"&&l,d=u[r](...o),m=s?toShallow:i?toReadonly:toReactive;return!i&&track(a,"iterate",h?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:y,done:T}=d.next();return T?{value:y,done:T}:{value:c?[m(y[0]),m(y[1])]:m(y),done:T}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(r){return function(...i){return r==="delete"?!1:r==="clear"?void 0:this}}function createInstrumentations(r,i){const s={get(u){const a=this.__v_raw,l=toRaw(a),c=toRaw(u);r||(hasChanged(u,c)&&track(l,"get",u),track(l,"get",c));const{has:h}=getProto(l),d=i?toShallow:r?toReadonly:toReactive;if(h.call(l,u))return d(a.get(u));if(h.call(l,c))return d(a.get(c));a!==l&&a.get(u)},get size(){const u=this.__v_raw;return!r&&track(toRaw(u),"iterate",ITERATE_KEY),Reflect.get(u,"size",u)},has(u){const a=this.__v_raw,l=toRaw(a),c=toRaw(u);return r||(hasChanged(u,c)&&track(l,"has",u),track(l,"has",c)),u===c?a.has(u):a.has(u)||a.has(c)},forEach(u,a){const l=this,c=l.__v_raw,h=toRaw(c),d=i?toShallow:r?toReadonly:toReactive;return!r&&track(h,"iterate",ITERATE_KEY),c.forEach((m,y)=>u.call(a,d(m),d(y),l))}};return extend(s,r?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(u){!i&&!isShallow(u)&&!isReadonly(u)&&(u=toRaw(u));const a=toRaw(this);return getProto(a).has.call(a,u)||(a.add(u),trigger(a,"add",u,u)),this},set(u,a){!i&&!isShallow(a)&&!isReadonly(a)&&(a=toRaw(a));const l=toRaw(this),{has:c,get:h}=getProto(l);let d=c.call(l,u);d||(u=toRaw(u),d=c.call(l,u));const m=h.call(l,u);return l.set(u,a),d?hasChanged(a,m)&&trigger(l,"set",u,a):trigger(l,"add",u,a),this},delete(u){const a=toRaw(this),{has:l,get:c}=getProto(a);let h=l.call(a,u);h||(u=toRaw(u),h=l.call(a,u)),c&&c.call(a,u);const d=a.delete(u);return h&&trigger(a,"delete",u,void 0),d},clear(){const u=toRaw(this),a=u.size!==0,l=u.clear();return a&&trigger(u,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(u=>{s[u]=createIterableMethod(u,r,i)}),s}function createInstrumentationGetter(r,i){const s=createInstrumentations(r,i);return(o,u,a)=>u==="__v_isReactive"?!r:u==="__v_isReadonly"?r:u==="__v_raw"?o:Reflect.get(hasOwn(s,u)&&u in o?s:o,u,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(r){switch(r){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(r){return r.__v_skip||!Object.isExtensible(r)?0:targetTypeMap(toRawType(r))}function reactive(r){return isReadonly(r)?r:createReactiveObject(r,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(r){return createReactiveObject(r,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(r){return createReactiveObject(r,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(r){return createReactiveObject(r,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(r,i,s,o,u){if(!isObject$1(r)||r.__v_raw&&!(i&&r.__v_isReactive))return r;const a=getTargetType(r);if(a===0)return r;const l=u.get(r);if(l)return l;const c=new Proxy(r,a===2?o:s);return u.set(r,c),c}function isReactive(r){return isReadonly(r)?isReactive(r.__v_raw):!!(r&&r.__v_isReactive)}function isReadonly(r){return!!(r&&r.__v_isReadonly)}function isShallow(r){return!!(r&&r.__v_isShallow)}function isProxy(r){return r?!!r.__v_raw:!1}function toRaw(r){const i=r&&r.__v_raw;return i?toRaw(i):r}function markRaw(r){return!hasOwn(r,"__v_skip")&&Object.isExtensible(r)&&def(r,"__v_skip",!0),r}const toReactive=r=>isObject$1(r)?reactive(r):r,toReadonly=r=>isObject$1(r)?readonly(r):r;function isRef(r){return r?r.__v_isRef===!0:!1}function shallowRef(r){return createRef(r,!0)}function createRef(r,i){return isRef(r)?r:new RefImpl(r,i)}class RefImpl{constructor(i,s){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=s?i:toRaw(i),this._value=s?i:toReactive(i),this.__v_isShallow=s}get value(){return this.dep.track(),this._value}set value(i){const s=this._rawValue,o=this.__v_isShallow||isShallow(i)||isReadonly(i);i=o?i:toRaw(i),hasChanged(i,s)&&(this._rawValue=i,this._value=o?i:toReactive(i),this.dep.trigger())}}function unref(r){return isRef(r)?r.value:r}const shallowUnwrapHandlers={get:(r,i,s)=>i==="__v_raw"?r:unref(Reflect.get(r,i,s)),set:(r,i,s,o)=>{const u=r[i];return isRef(u)&&!isRef(s)?(u.value=s,!0):Reflect.set(r,i,s,o)}};function proxyRefs(r){return isReactive(r)?r:new Proxy(r,shallowUnwrapHandlers)}class ComputedRefImpl{constructor(i,s,o){this.fn=i,this.setter=s,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const i=this.dep.track();return refreshComputed(this),i&&(i.version=this.dep.version),this._value}set value(i){this.setter&&this.setter(i)}}function computed$1(r,i,s=!1){let o,u;return isFunction$1(r)?o=r:(o=r.get,u=r.set),new ComputedRefImpl(o,u,s)}const INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function onWatcherCleanup(r,i=!1,s=activeWatcher){if(s){let o=cleanupMap.get(s);o||cleanupMap.set(s,o=[]),o.push(r)}}function watch$1(r,i,s=EMPTY_OBJ){const{immediate:o,deep:u,once:a,scheduler:l,augmentJob:c,call:h}=s,d=S=>u?S:isShallow(S)||u===!1||u===0?traverse(S,1):traverse(S);let m,y,T,g,v=!1,O=!1;if(isRef(r)?(y=()=>r.value,v=isShallow(r)):isReactive(r)?(y=()=>d(r),v=!0):isArray$1(r)?(O=!0,v=r.some(S=>isReactive(S)||isShallow(S)),y=()=>r.map(S=>{if(isRef(S))return S.value;if(isReactive(S))return d(S);if(isFunction$1(S))return h?h(S,2):S()})):isFunction$1(r)?i?y=h?()=>h(r,2):r:y=()=>{if(T){pauseTracking();try{T()}finally{resetTracking()}}const S=activeWatcher;activeWatcher=m;try{return h?h(r,3,[g]):r(g)}finally{activeWatcher=S}}:y=NOOP,i&&u){const S=y,x=u===!0?1/0:u;y=()=>traverse(S(),x)}const P=getCurrentScope(),_=()=>{m.stop(),P&&P.active&&remove(P.effects,m)};if(a&&i){const S=i;i=(...x)=>{S(...x),_()}}let C=O?new Array(r.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const E=S=>{if(!(!(m.flags&1)||!m.dirty&&!S))if(i){const x=m.run();if(u||v||(O?x.some((R,G)=>hasChanged(R,C[G])):hasChanged(x,C))){T&&T();const R=activeWatcher;activeWatcher=m;try{const G=[x,C===INITIAL_WATCHER_VALUE?void 0:O&&C[0]===INITIAL_WATCHER_VALUE?[]:C,g];C=x,h?h(i,3,G):i(...G)}finally{activeWatcher=R}}}else m.run()};return c&&c(E),m=new ReactiveEffect(y),m.scheduler=l?()=>l(E,!1):E,g=S=>onWatcherCleanup(S,!1,m),T=m.onStop=()=>{const S=cleanupMap.get(m);if(S){if(h)h(S,4);else for(const x of S)x();cleanupMap.delete(m)}},i?o?E(!0):C=m.run():l?l(E.bind(null,!0),!0):m.run(),_.pause=m.pause.bind(m),_.resume=m.resume.bind(m),_.stop=_,_}function traverse(r,i=1/0,s){if(i<=0||!isObject$1(r)||r.__v_skip||(s=s||new Set,s.has(r)))return r;if(s.add(r),i--,isRef(r))traverse(r.value,i,s);else if(isArray$1(r))for(let o=0;o<r.length;o++)traverse(r[o],i,s);else if(isSet(r)||isMap(r))r.forEach(o=>{traverse(o,i,s)});else if(isPlainObject(r)){for(const o in r)traverse(r[o],i,s);for(const o of Object.getOwnPropertySymbols(r))Object.prototype.propertyIsEnumerable.call(r,o)&&traverse(r[o],i,s)}return r}/**
|
|
10
|
-
* @vue/runtime-core v3.5.17
|
|
11
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
12
|
-
* @license MIT
|
|
13
|
-
**/const stack=[];let isWarning=!1;function warn$1(r,...i){if(isWarning)return;isWarning=!0,pauseTracking();const s=stack.length?stack[stack.length-1].component:null,o=s&&s.appContext.config.warnHandler,u=getComponentTrace();if(o)callWithErrorHandling(o,s,11,[r+i.map(a=>{var l,c;return(c=(l=a.toString)==null?void 0:l.call(a))!=null?c:JSON.stringify(a)}).join(""),s&&s.proxy,u.map(({vnode:a})=>`at <${formatComponentName(s,a.type)}>`).join(`
|
|
14
|
-
`),u]);else{const a=[`[Vue warn]: ${r}`,...i];u.length&&a.push(`
|
|
15
|
-
`,...formatTrace(u)),console.warn(...a)}resetTracking(),isWarning=!1}function getComponentTrace(){let r=stack[stack.length-1];if(!r)return[];const i=[];for(;r;){const s=i[0];s&&s.vnode===r?s.recurseCount++:i.push({vnode:r,recurseCount:0});const o=r.component&&r.component.parent;r=o&&o.vnode}return i}function formatTrace(r){const i=[];return r.forEach((s,o)=>{i.push(...o===0?[]:[`
|
|
16
|
-
`],...formatTraceEntry(s))}),i}function formatTraceEntry({vnode:r,recurseCount:i}){const s=i>0?`... (${i} recursive calls)`:"",o=r.component?r.component.parent==null:!1,u=` at <${formatComponentName(r.component,r.type,o)}`,a=">"+s;return r.props?[u,...formatProps(r.props),a]:[u+a]}function formatProps(r){const i=[],s=Object.keys(r);return s.slice(0,3).forEach(o=>{i.push(...formatProp(o,r[o]))}),s.length>3&&i.push(" ..."),i}function formatProp(r,i,s){return isString(i)?(i=JSON.stringify(i),s?i:[`${r}=${i}`]):typeof i=="number"||typeof i=="boolean"||i==null?s?i:[`${r}=${i}`]:isRef(i)?(i=formatProp(r,toRaw(i.value),!0),s?i:[`${r}=Ref<`,i,">"]):isFunction$1(i)?[`${r}=fn${i.name?`<${i.name}>`:""}`]:(i=toRaw(i),s?i:[`${r}=`,i])}function callWithErrorHandling(r,i,s,o){try{return o?r(...o):r()}catch(u){handleError(u,i,s)}}function callWithAsyncErrorHandling(r,i,s,o){if(isFunction$1(r)){const u=callWithErrorHandling(r,i,s,o);return u&&isPromise(u)&&u.catch(a=>{handleError(a,i,s)}),u}if(isArray$1(r)){const u=[];for(let a=0;a<r.length;a++)u.push(callWithAsyncErrorHandling(r[a],i,s,o));return u}}function handleError(r,i,s,o=!0){const u=i?i.vnode:null,{errorHandler:a,throwUnhandledErrorInProduction:l}=i&&i.appContext.config||EMPTY_OBJ;if(i){let c=i.parent;const h=i.proxy,d=`https://vuejs.org/error-reference/#runtime-${s}`;for(;c;){const m=c.ec;if(m){for(let y=0;y<m.length;y++)if(m[y](r,h,d)===!1)return}c=c.parent}if(a){pauseTracking(),callWithErrorHandling(a,null,10,[r,h,d]),resetTracking();return}}logError(r,s,u,o,l)}function logError(r,i,s,o=!0,u=!1){if(u)throw r;console.error(r)}const queue=[];let flushIndex=-1;const pendingPostFlushCbs=[];let activePostFlushCbs=null,postFlushIndex=0;const resolvedPromise=Promise.resolve();let currentFlushPromise=null;function nextTick(r){const i=currentFlushPromise||resolvedPromise;return r?i.then(this?r.bind(this):r):i}function findInsertionIndex(r){let i=flushIndex+1,s=queue.length;for(;i<s;){const o=i+s>>>1,u=queue[o],a=getId(u);a<r||a===r&&u.flags&2?i=o+1:s=o}return i}function queueJob(r){if(!(r.flags&1)){const i=getId(r),s=queue[queue.length-1];!s||!(r.flags&2)&&i>=getId(s)?queue.push(r):queue.splice(findInsertionIndex(i),0,r),r.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(r){isArray$1(r)?pendingPostFlushCbs.push(...r):activePostFlushCbs&&r.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,r):r.flags&1||(pendingPostFlushCbs.push(r),r.flags|=1),queueFlush()}function flushPreFlushCbs(r,i,s=flushIndex+1){for(;s<queue.length;s++){const o=queue[s];if(o&&o.flags&2){if(r&&o.id!==r.uid)continue;queue.splice(s,1),s--,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function flushPostFlushCbs(r){if(pendingPostFlushCbs.length){const i=[...new Set(pendingPostFlushCbs)].sort((s,o)=>getId(s)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...i);return}for(activePostFlushCbs=i,postFlushIndex=0;postFlushIndex<activePostFlushCbs.length;postFlushIndex++){const s=activePostFlushCbs[postFlushIndex];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}activePostFlushCbs=null,postFlushIndex=0}}const getId=r=>r.id==null?r.flags&2?-1:1/0:r.id;function flushJobs(r){try{for(flushIndex=0;flushIndex<queue.length;flushIndex++){const i=queue[flushIndex];i&&!(i.flags&8)&&(i.flags&4&&(i.flags&=-2),callWithErrorHandling(i,i.i,i.i?15:14),i.flags&4||(i.flags&=-2))}}finally{for(;flushIndex<queue.length;flushIndex++){const i=queue[flushIndex];i&&(i.flags&=-2)}flushIndex=-1,queue.length=0,flushPostFlushCbs(),currentFlushPromise=null,(queue.length||pendingPostFlushCbs.length)&&flushJobs()}}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(r){const i=currentRenderingInstance;return currentRenderingInstance=r,currentScopeId=r&&r.type.__scopeId||null,i}function withCtx(r,i=currentRenderingInstance,s){if(!i||r._n)return r;const o=(...u)=>{o._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(i);let l;try{l=r(...u)}finally{setCurrentRenderingInstance(a),o._d&&setBlockTracking(1)}return l};return o._n=!0,o._c=!0,o._d=!0,o}function invokeDirectiveHook(r,i,s,o){const u=r.dirs,a=i&&i.dirs;for(let l=0;l<u.length;l++){const c=u[l];a&&(c.oldValue=a[l].value);let h=c.dir[o];h&&(pauseTracking(),callWithAsyncErrorHandling(h,s,8,[r.el,c,r,i]),resetTracking())}}const TeleportEndKey=Symbol("_vte"),isTeleport=r=>r.__isTeleport;function setTransitionHooks(r,i){r.shapeFlag&6&&r.component?(r.transition=i,setTransitionHooks(r.component.subTree,i)):r.shapeFlag&128?(r.ssContent.transition=i.clone(r.ssContent),r.ssFallback.transition=i.clone(r.ssFallback)):r.transition=i}/*! #__NO_SIDE_EFFECTS__ */function defineComponent(r,i){return isFunction$1(r)?extend({name:r.name},i,{setup:r}):r}function markAsyncBoundary(r){r.ids=[r.ids[0]+r.ids[2]+++"-",0,0]}function useTemplateRef(r){const i=getCurrentInstance(),s=shallowRef(null);if(i){const u=i.refs===EMPTY_OBJ?i.refs={}:i.refs;Object.defineProperty(u,r,{enumerable:!0,get:()=>s.value,set:a=>s.value=a})}return s}function setRef(r,i,s,o,u=!1){if(isArray$1(r)){r.forEach((v,O)=>setRef(v,i&&(isArray$1(i)?i[O]:i),s,o,u));return}if(isAsyncWrapper(o)&&!u){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(r,i,s,o.component.subTree);return}const a=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,l=u?null:a,{i:c,r:h}=r,d=i&&i.r,m=c.refs===EMPTY_OBJ?c.refs={}:c.refs,y=c.setupState,T=toRaw(y),g=y===EMPTY_OBJ?()=>!1:v=>hasOwn(T,v);if(d!=null&&d!==h&&(isString(d)?(m[d]=null,g(d)&&(y[d]=null)):isRef(d)&&(d.value=null)),isFunction$1(h))callWithErrorHandling(h,c,12,[l,m]);else{const v=isString(h),O=isRef(h);if(v||O){const P=()=>{if(r.f){const _=v?g(h)?y[h]:m[h]:h.value;u?isArray$1(_)&&remove(_,a):isArray$1(_)?_.includes(a)||_.push(a):v?(m[h]=[a],g(h)&&(y[h]=m[h])):(h.value=[a],r.k&&(m[r.k]=h.value))}else v?(m[h]=l,g(h)&&(y[h]=l)):O&&(h.value=l,r.k&&(m[r.k]=l))};l?(P.id=-1,queuePostRenderEffect(P,s)):P()}}}getGlobalThis().requestIdleCallback;getGlobalThis().cancelIdleCallback;const isAsyncWrapper=r=>!!r.type.__asyncLoader,isKeepAlive=r=>r.type.__isKeepAlive;function onActivated(r,i){registerKeepAliveHook(r,"a",i)}function onDeactivated(r,i){registerKeepAliveHook(r,"da",i)}function registerKeepAliveHook(r,i,s=currentInstance){const o=r.__wdc||(r.__wdc=()=>{let u=s;for(;u;){if(u.isDeactivated)return;u=u.parent}return r()});if(injectHook(i,o,s),s){let u=s.parent;for(;u&&u.parent;)isKeepAlive(u.parent.vnode)&&injectToKeepAliveRoot(o,i,s,u),u=u.parent}}function injectToKeepAliveRoot(r,i,s,o){const u=injectHook(i,r,o,!0);onUnmounted(()=>{remove(o[i],u)},s)}function injectHook(r,i,s=currentInstance,o=!1){if(s){const u=s[r]||(s[r]=[]),a=i.__weh||(i.__weh=(...l)=>{pauseTracking();const c=setCurrentInstance(s),h=callWithAsyncErrorHandling(i,s,r,l);return c(),resetTracking(),h});return o?u.unshift(a):u.push(a),a}}const createHook=r=>(i,s=currentInstance)=>{(!isInSSRComponentSetup||r==="sp")&&injectHook(r,(...o)=>i(...o),s)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(r,i=currentInstance){injectHook("ec",r,i)}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc"),getPublicInstance=r=>r?isStatefulComponent(r)?getComponentPublicInstance(r):getPublicInstance(r.parent):null,publicPropertiesMap=extend(Object.create(null),{$:r=>r,$el:r=>r.vnode.el,$data:r=>r.data,$props:r=>r.props,$attrs:r=>r.attrs,$slots:r=>r.slots,$refs:r=>r.refs,$parent:r=>getPublicInstance(r.parent),$root:r=>getPublicInstance(r.root),$host:r=>r.ce,$emit:r=>r.emit,$options:r=>resolveMergedOptions(r),$forceUpdate:r=>r.f||(r.f=()=>{queueJob(r.update)}),$nextTick:r=>r.n||(r.n=nextTick.bind(r.proxy)),$watch:r=>instanceWatch.bind(r)}),hasSetupBinding=(r,i)=>r!==EMPTY_OBJ&&!r.__isScriptSetup&&hasOwn(r,i),PublicInstanceProxyHandlers={get({_:r},i){if(i==="__v_skip")return!0;const{ctx:s,setupState:o,data:u,props:a,accessCache:l,type:c,appContext:h}=r;let d;if(i[0]!=="$"){const g=l[i];if(g!==void 0)switch(g){case 1:return o[i];case 2:return u[i];case 4:return s[i];case 3:return a[i]}else{if(hasSetupBinding(o,i))return l[i]=1,o[i];if(u!==EMPTY_OBJ&&hasOwn(u,i))return l[i]=2,u[i];if((d=r.propsOptions[0])&&hasOwn(d,i))return l[i]=3,a[i];if(s!==EMPTY_OBJ&&hasOwn(s,i))return l[i]=4,s[i];shouldCacheAccess&&(l[i]=0)}}const m=publicPropertiesMap[i];let y,T;if(m)return i==="$attrs"&&track(r.attrs,"get",""),m(r);if((y=c.__cssModules)&&(y=y[i]))return y;if(s!==EMPTY_OBJ&&hasOwn(s,i))return l[i]=4,s[i];if(T=h.config.globalProperties,hasOwn(T,i))return T[i]},set({_:r},i,s){const{data:o,setupState:u,ctx:a}=r;return hasSetupBinding(u,i)?(u[i]=s,!0):o!==EMPTY_OBJ&&hasOwn(o,i)?(o[i]=s,!0):hasOwn(r.props,i)||i[0]==="$"&&i.slice(1)in r?!1:(a[i]=s,!0)},has({_:{data:r,setupState:i,accessCache:s,ctx:o,appContext:u,propsOptions:a}},l){let c;return!!s[l]||r!==EMPTY_OBJ&&hasOwn(r,l)||hasSetupBinding(i,l)||(c=a[0])&&hasOwn(c,l)||hasOwn(o,l)||hasOwn(publicPropertiesMap,l)||hasOwn(u.config.globalProperties,l)},defineProperty(r,i,s){return s.get!=null?r._.accessCache[i]=0:hasOwn(s,"value")&&this.set(r,i,s.value,null),Reflect.defineProperty(r,i,s)}};function normalizePropsOrEmits(r){return isArray$1(r)?r.reduce((i,s)=>(i[s]=null,i),{}):r}let shouldCacheAccess=!0;function applyOptions(r){const i=resolveMergedOptions(r),s=r.proxy,o=r.ctx;shouldCacheAccess=!1,i.beforeCreate&&callHook(i.beforeCreate,r,"bc");const{data:u,computed:a,methods:l,watch:c,provide:h,inject:d,created:m,beforeMount:y,mounted:T,beforeUpdate:g,updated:v,activated:O,deactivated:P,beforeDestroy:_,beforeUnmount:C,destroyed:E,unmounted:S,render:x,renderTracked:R,renderTriggered:G,errorCaptured:H,serverPrefetch:D,expose:Z,inheritAttrs:$,components:z,directives:ee,filters:J}=i;if(d&&resolveInjections(d,o,null),l)for(const te in l){const X=l[te];isFunction$1(X)&&(o[te]=X.bind(s))}if(u){const te=u.call(s,s);isObject$1(te)&&(r.data=reactive(te))}if(shouldCacheAccess=!0,a)for(const te in a){const X=a[te],ae=isFunction$1(X)?X.bind(s,s):isFunction$1(X.get)?X.get.bind(s,s):NOOP,ne=!isFunction$1(X)&&isFunction$1(X.set)?X.set.bind(s):NOOP,le=computed({get:ae,set:ne});Object.defineProperty(o,te,{enumerable:!0,configurable:!0,get:()=>le.value,set:ue=>le.value=ue})}if(c)for(const te in c)createWatcher(c[te],o,s,te);if(h){const te=isFunction$1(h)?h.call(s):h;Reflect.ownKeys(te).forEach(X=>{provide(X,te[X])})}m&&callHook(m,r,"c");function se(te,X){isArray$1(X)?X.forEach(ae=>te(ae.bind(s))):X&&te(X.bind(s))}if(se(onBeforeMount,y),se(onMounted,T),se(onBeforeUpdate,g),se(onUpdated,v),se(onActivated,O),se(onDeactivated,P),se(onErrorCaptured,H),se(onRenderTracked,R),se(onRenderTriggered,G),se(onBeforeUnmount,C),se(onUnmounted,S),se(onServerPrefetch,D),isArray$1(Z))if(Z.length){const te=r.exposed||(r.exposed={});Z.forEach(X=>{Object.defineProperty(te,X,{get:()=>s[X],set:ae=>s[X]=ae})})}else r.exposed||(r.exposed={});x&&r.render===NOOP&&(r.render=x),$!=null&&(r.inheritAttrs=$),z&&(r.components=z),ee&&(r.directives=ee),D&&markAsyncBoundary(r)}function resolveInjections(r,i,s=NOOP){isArray$1(r)&&(r=normalizeInject(r));for(const o in r){const u=r[o];let a;isObject$1(u)?"default"in u?a=inject(u.from||o,u.default,!0):a=inject(u.from||o):a=inject(u),isRef(a)?Object.defineProperty(i,o,{enumerable:!0,configurable:!0,get:()=>a.value,set:l=>a.value=l}):i[o]=a}}function callHook(r,i,s){callWithAsyncErrorHandling(isArray$1(r)?r.map(o=>o.bind(i.proxy)):r.bind(i.proxy),i,s)}function createWatcher(r,i,s,o){let u=o.includes(".")?createPathGetter(s,o):()=>s[o];if(isString(r)){const a=i[r];isFunction$1(a)&&watch(u,a)}else if(isFunction$1(r))watch(u,r.bind(s));else if(isObject$1(r))if(isArray$1(r))r.forEach(a=>createWatcher(a,i,s,o));else{const a=isFunction$1(r.handler)?r.handler.bind(s):i[r.handler];isFunction$1(a)&&watch(u,a,r)}}function resolveMergedOptions(r){const i=r.type,{mixins:s,extends:o}=i,{mixins:u,optionsCache:a,config:{optionMergeStrategies:l}}=r.appContext,c=a.get(i);let h;return c?h=c:!u.length&&!s&&!o?h=i:(h={},u.length&&u.forEach(d=>mergeOptions(h,d,l,!0)),mergeOptions(h,i,l)),isObject$1(i)&&a.set(i,h),h}function mergeOptions(r,i,s,o=!1){const{mixins:u,extends:a}=i;a&&mergeOptions(r,a,s,!0),u&&u.forEach(l=>mergeOptions(r,l,s,!0));for(const l in i)if(!(o&&l==="expose")){const c=internalOptionMergeStrats[l]||s&&s[l];r[l]=c?c(r[l],i[l]):i[l]}return r}const internalOptionMergeStrats={data:mergeDataFn,props:mergeEmitsOrPropsOptions,emits:mergeEmitsOrPropsOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray,created:mergeAsArray,beforeMount:mergeAsArray,mounted:mergeAsArray,beforeUpdate:mergeAsArray,updated:mergeAsArray,beforeDestroy:mergeAsArray,beforeUnmount:mergeAsArray,destroyed:mergeAsArray,unmounted:mergeAsArray,activated:mergeAsArray,deactivated:mergeAsArray,errorCaptured:mergeAsArray,serverPrefetch:mergeAsArray,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(r,i){return i?r?function(){return extend(isFunction$1(r)?r.call(this,this):r,isFunction$1(i)?i.call(this,this):i)}:i:r}function mergeInject(r,i){return mergeObjectOptions(normalizeInject(r),normalizeInject(i))}function normalizeInject(r){if(isArray$1(r)){const i={};for(let s=0;s<r.length;s++)i[r[s]]=r[s];return i}return r}function mergeAsArray(r,i){return r?[...new Set([].concat(r,i))]:i}function mergeObjectOptions(r,i){return r?extend(Object.create(null),r,i):i}function mergeEmitsOrPropsOptions(r,i){return r?isArray$1(r)&&isArray$1(i)?[...new Set([...r,...i])]:extend(Object.create(null),normalizePropsOrEmits(r),normalizePropsOrEmits(i??{})):i}function mergeWatchOptions(r,i){if(!r)return i;if(!i)return r;const s=extend(Object.create(null),r);for(const o in i)s[o]=mergeAsArray(r[o],i[o]);return s}function createAppContext(){return{app:null,config:{isNativeTag:NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let uid$1=0;function createAppAPI(r,i){return function(o,u=null){isFunction$1(o)||(o=extend({},o)),u!=null&&!isObject$1(u)&&(u=null);const a=createAppContext(),l=new WeakSet,c=[];let h=!1;const d=a.app={_uid:uid$1++,_component:o,_props:u,_container:null,_context:a,_instance:null,version,get config(){return a.config},set config(m){},use(m,...y){return l.has(m)||(m&&isFunction$1(m.install)?(l.add(m),m.install(d,...y)):isFunction$1(m)&&(l.add(m),m(d,...y))),d},mixin(m){return a.mixins.includes(m)||a.mixins.push(m),d},component(m,y){return y?(a.components[m]=y,d):a.components[m]},directive(m,y){return y?(a.directives[m]=y,d):a.directives[m]},mount(m,y,T){if(!h){const g=d._ceVNode||createVNode(o,u);return g.appContext=a,T===!0?T="svg":T===!1&&(T=void 0),r(g,m,T),h=!0,d._container=m,m.__vue_app__=d,getComponentPublicInstance(g.component)}},onUnmount(m){c.push(m)},unmount(){h&&(callWithAsyncErrorHandling(c,d._instance,16),r(null,d._container),delete d._container.__vue_app__)},provide(m,y){return a.provides[m]=y,d},runWithContext(m){const y=currentApp;currentApp=d;try{return m()}finally{currentApp=y}}};return d}}let currentApp=null;function provide(r,i){if(currentInstance){let s=currentInstance.provides;const o=currentInstance.parent&¤tInstance.parent.provides;o===s&&(s=currentInstance.provides=Object.create(o)),s[r]=i}}function inject(r,i,s=!1){const o=currentInstance||currentRenderingInstance;if(o||currentApp){let u=currentApp?currentApp._context.provides:o?o.parent==null||o.ce?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:void 0;if(u&&r in u)return u[r];if(arguments.length>1)return s&&isFunction$1(i)?i.call(o&&o.proxy):i}}const internalObjectProto={},createInternalObject=()=>Object.create(internalObjectProto),isInternalObject=r=>Object.getPrototypeOf(r)===internalObjectProto;function initProps(r,i,s,o=!1){const u={},a=createInternalObject();r.propsDefaults=Object.create(null),setFullProps(r,i,u,a);for(const l in r.propsOptions[0])l in u||(u[l]=void 0);s?r.props=o?u:shallowReactive(u):r.type.props?r.props=u:r.props=a,r.attrs=a}function updateProps(r,i,s,o){const{props:u,attrs:a,vnode:{patchFlag:l}}=r,c=toRaw(u),[h]=r.propsOptions;let d=!1;if((o||l>0)&&!(l&16)){if(l&8){const m=r.vnode.dynamicProps;for(let y=0;y<m.length;y++){let T=m[y];if(isEmitListener(r.emitsOptions,T))continue;const g=i[T];if(h)if(hasOwn(a,T))g!==a[T]&&(a[T]=g,d=!0);else{const v=camelize(T);u[v]=resolvePropValue(h,c,v,g,r,!1)}else g!==a[T]&&(a[T]=g,d=!0)}}}else{setFullProps(r,i,u,a)&&(d=!0);let m;for(const y in c)(!i||!hasOwn(i,y)&&((m=hyphenate(y))===y||!hasOwn(i,m)))&&(h?s&&(s[y]!==void 0||s[m]!==void 0)&&(u[y]=resolvePropValue(h,c,y,void 0,r,!0)):delete u[y]);if(a!==c)for(const y in a)(!i||!hasOwn(i,y))&&(delete a[y],d=!0)}d&&trigger(r.attrs,"set","")}function setFullProps(r,i,s,o){const[u,a]=r.propsOptions;let l=!1,c;if(i)for(let h in i){if(isReservedProp(h))continue;const d=i[h];let m;u&&hasOwn(u,m=camelize(h))?!a||!a.includes(m)?s[m]=d:(c||(c={}))[m]=d:isEmitListener(r.emitsOptions,h)||(!(h in o)||d!==o[h])&&(o[h]=d,l=!0)}if(a){const h=toRaw(s),d=c||EMPTY_OBJ;for(let m=0;m<a.length;m++){const y=a[m];s[y]=resolvePropValue(u,h,y,d[y],r,!hasOwn(d,y))}}return l}function resolvePropValue(r,i,s,o,u,a){const l=r[s];if(l!=null){const c=hasOwn(l,"default");if(c&&o===void 0){const h=l.default;if(l.type!==Function&&!l.skipFactory&&isFunction$1(h)){const{propsDefaults:d}=u;if(s in d)o=d[s];else{const m=setCurrentInstance(u);o=d[s]=h.call(null,i),m()}}else o=h;u.ce&&u.ce._setProp(s,o)}l[0]&&(a&&!c?o=!1:l[1]&&(o===""||o===hyphenate(s))&&(o=!0))}return o}const mixinPropsCache=new WeakMap;function normalizePropsOptions(r,i,s=!1){const o=s?mixinPropsCache:i.propsCache,u=o.get(r);if(u)return u;const a=r.props,l={},c=[];let h=!1;if(!isFunction$1(r)){const m=y=>{h=!0;const[T,g]=normalizePropsOptions(y,i,!0);extend(l,T),g&&c.push(...g)};!s&&i.mixins.length&&i.mixins.forEach(m),r.extends&&m(r.extends),r.mixins&&r.mixins.forEach(m)}if(!a&&!h)return isObject$1(r)&&o.set(r,EMPTY_ARR),EMPTY_ARR;if(isArray$1(a))for(let m=0;m<a.length;m++){const y=camelize(a[m]);validatePropName(y)&&(l[y]=EMPTY_OBJ)}else if(a)for(const m in a){const y=camelize(m);if(validatePropName(y)){const T=a[m],g=l[y]=isArray$1(T)||isFunction$1(T)?{type:T}:extend({},T),v=g.type;let O=!1,P=!0;if(isArray$1(v))for(let _=0;_<v.length;++_){const C=v[_],E=isFunction$1(C)&&C.name;if(E==="Boolean"){O=!0;break}else E==="String"&&(P=!1)}else O=isFunction$1(v)&&v.name==="Boolean";g[0]=O,g[1]=P,(O||hasOwn(g,"default"))&&c.push(y)}}const d=[l,c];return isObject$1(r)&&o.set(r,d),d}function validatePropName(r){return r[0]!=="$"&&!isReservedProp(r)}const isInternalKey=r=>r[0]==="_"||r==="$stable",normalizeSlotValue=r=>isArray$1(r)?r.map(normalizeVNode):[normalizeVNode(r)],normalizeSlot=(r,i,s)=>{if(i._n)return i;const o=withCtx((...u)=>normalizeSlotValue(i(...u)),s);return o._c=!1,o},normalizeObjectSlots=(r,i,s)=>{const o=r._ctx;for(const u in r){if(isInternalKey(u))continue;const a=r[u];if(isFunction$1(a))i[u]=normalizeSlot(u,a,o);else if(a!=null){const l=normalizeSlotValue(a);i[u]=()=>l}}},normalizeVNodeSlots=(r,i)=>{const s=normalizeSlotValue(i);r.slots.default=()=>s},assignSlots=(r,i,s)=>{for(const o in i)(s||!isInternalKey(o))&&(r[o]=i[o])},initSlots=(r,i,s)=>{const o=r.slots=createInternalObject();if(r.vnode.shapeFlag&32){const u=i.__;u&&def(o,"__",u,!0);const a=i._;a?(assignSlots(o,i,s),s&&def(o,"_",a,!0)):normalizeObjectSlots(i,o)}else i&&normalizeVNodeSlots(r,i)},updateSlots=(r,i,s)=>{const{vnode:o,slots:u}=r;let a=!0,l=EMPTY_OBJ;if(o.shapeFlag&32){const c=i._;c?s&&c===1?a=!1:assignSlots(u,i,s):(a=!i.$stable,normalizeObjectSlots(i,u)),l=i}else i&&(normalizeVNodeSlots(r,i),l={default:1});if(a)for(const c in u)!isInternalKey(c)&&l[c]==null&&delete u[c]},queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(r){return baseCreateRenderer(r)}function baseCreateRenderer(r,i){const s=getGlobalThis();s.__VUE__=!0;const{insert:o,remove:u,patchProp:a,createElement:l,createText:c,createComment:h,setText:d,setElementText:m,parentNode:y,nextSibling:T,setScopeId:g=NOOP,insertStaticContent:v}=r,O=(b,w,I,N=null,F=null,A=null,U=void 0,j=null,L=!!w.dynamicChildren)=>{if(b===w)return;b&&!isSameVNodeType(b,w)&&(N=Ce(b),ue(b,F,A,!0),b=null),w.patchFlag===-2&&(L=!1,w.dynamicChildren=null);const{type:k,ref:W,shapeFlag:V}=w;switch(k){case Text:P(b,w,I,N);break;case Comment:_(b,w,I,N);break;case Static:b==null&&C(w,I,N,U);break;case Fragment:z(b,w,I,N,F,A,U,j,L);break;default:V&1?x(b,w,I,N,F,A,U,j,L):V&6?ee(b,w,I,N,F,A,U,j,L):(V&64||V&128)&&k.process(b,w,I,N,F,A,U,j,L,M)}W!=null&&F?setRef(W,b&&b.ref,A,w||b,!w):W==null&&b&&b.ref!=null&&setRef(b.ref,null,A,b,!0)},P=(b,w,I,N)=>{if(b==null)o(w.el=c(w.children),I,N);else{const F=w.el=b.el;w.children!==b.children&&d(F,w.children)}},_=(b,w,I,N)=>{b==null?o(w.el=h(w.children||""),I,N):w.el=b.el},C=(b,w,I,N)=>{[b.el,b.anchor]=v(b.children,w,I,N,b.el,b.anchor)},E=({el:b,anchor:w},I,N)=>{let F;for(;b&&b!==w;)F=T(b),o(b,I,N),b=F;o(w,I,N)},S=({el:b,anchor:w})=>{let I;for(;b&&b!==w;)I=T(b),u(b),b=I;u(w)},x=(b,w,I,N,F,A,U,j,L)=>{w.type==="svg"?U="svg":w.type==="math"&&(U="mathml"),b==null?R(w,I,N,F,A,U,j,L):D(b,w,F,A,U,j,L)},R=(b,w,I,N,F,A,U,j)=>{let L,k;const{props:W,shapeFlag:V,transition:Y,dirs:K}=b;if(L=b.el=l(b.type,A,W&&W.is,W),V&8?m(L,b.children):V&16&&H(b.children,L,null,N,F,resolveChildrenNamespace(b,A),U,j),K&&invokeDirectiveHook(b,null,N,"created"),G(L,b,b.scopeId,U,N),W){for(const ie in W)ie!=="value"&&!isReservedProp(ie)&&a(L,ie,null,W[ie],A,N);"value"in W&&a(L,"value",null,W.value,A),(k=W.onVnodeBeforeMount)&&invokeVNodeHook(k,N,b)}K&&invokeDirectiveHook(b,null,N,"beforeMount");const Q=needTransition(F,Y);Q&&Y.beforeEnter(L),o(L,w,I),((k=W&&W.onVnodeMounted)||Q||K)&&queuePostRenderEffect(()=>{k&&invokeVNodeHook(k,N,b),Q&&Y.enter(L),K&&invokeDirectiveHook(b,null,N,"mounted")},F)},G=(b,w,I,N,F)=>{if(I&&g(b,I),N)for(let A=0;A<N.length;A++)g(b,N[A]);if(F){let A=F.subTree;if(w===A||isSuspense(A.type)&&(A.ssContent===w||A.ssFallback===w)){const U=F.vnode;G(b,U,U.scopeId,U.slotScopeIds,F.parent)}}},H=(b,w,I,N,F,A,U,j,L=0)=>{for(let k=L;k<b.length;k++){const W=b[k]=j?cloneIfMounted(b[k]):normalizeVNode(b[k]);O(null,W,w,I,N,F,A,U,j)}},D=(b,w,I,N,F,A,U)=>{const j=w.el=b.el;let{patchFlag:L,dynamicChildren:k,dirs:W}=w;L|=b.patchFlag&16;const V=b.props||EMPTY_OBJ,Y=w.props||EMPTY_OBJ;let K;if(I&&toggleRecurse(I,!1),(K=Y.onVnodeBeforeUpdate)&&invokeVNodeHook(K,I,w,b),W&&invokeDirectiveHook(w,b,I,"beforeUpdate"),I&&toggleRecurse(I,!0),(V.innerHTML&&Y.innerHTML==null||V.textContent&&Y.textContent==null)&&m(j,""),k?Z(b.dynamicChildren,k,j,I,N,resolveChildrenNamespace(w,F),A):U||X(b,w,j,null,I,N,resolveChildrenNamespace(w,F),A,!1),L>0){if(L&16)$(j,V,Y,I,F);else if(L&2&&V.class!==Y.class&&a(j,"class",null,Y.class,F),L&4&&a(j,"style",V.style,Y.style,F),L&8){const Q=w.dynamicProps;for(let ie=0;ie<Q.length;ie++){const re=Q[ie],ce=V[re],pe=Y[re];(pe!==ce||re==="value")&&a(j,re,ce,pe,F,I)}}L&1&&b.children!==w.children&&m(j,w.children)}else!U&&k==null&&$(j,V,Y,I,F);((K=Y.onVnodeUpdated)||W)&&queuePostRenderEffect(()=>{K&&invokeVNodeHook(K,I,w,b),W&&invokeDirectiveHook(w,b,I,"updated")},N)},Z=(b,w,I,N,F,A,U)=>{for(let j=0;j<w.length;j++){const L=b[j],k=w[j],W=L.el&&(L.type===Fragment||!isSameVNodeType(L,k)||L.shapeFlag&198)?y(L.el):I;O(L,k,W,null,N,F,A,U,!0)}},$=(b,w,I,N,F)=>{if(w!==I){if(w!==EMPTY_OBJ)for(const A in w)!isReservedProp(A)&&!(A in I)&&a(b,A,w[A],null,F,N);for(const A in I){if(isReservedProp(A))continue;const U=I[A],j=w[A];U!==j&&A!=="value"&&a(b,A,j,U,F,N)}"value"in I&&a(b,"value",w.value,I.value,F)}},z=(b,w,I,N,F,A,U,j,L)=>{const k=w.el=b?b.el:c(""),W=w.anchor=b?b.anchor:c("");let{patchFlag:V,dynamicChildren:Y,slotScopeIds:K}=w;K&&(j=j?j.concat(K):K),b==null?(o(k,I,N),o(W,I,N),H(w.children||[],I,W,F,A,U,j,L)):V>0&&V&64&&Y&&b.dynamicChildren?(Z(b.dynamicChildren,Y,I,F,A,U,j),(w.key!=null||F&&w===F.subTree)&&traverseStaticChildren(b,w,!0)):X(b,w,I,W,F,A,U,j,L)},ee=(b,w,I,N,F,A,U,j,L)=>{w.slotScopeIds=j,b==null?w.shapeFlag&512?F.ctx.activate(w,I,N,U,L):J(w,I,N,F,A,U,L):fe(b,w,L)},J=(b,w,I,N,F,A,U)=>{const j=b.component=createComponentInstance(b,N,F);if(isKeepAlive(b)&&(j.ctx.renderer=M),setupComponent(j,!1,U),j.asyncDep){if(F&&F.registerDep(j,se,U),!b.el){const L=j.subTree=createVNode(Comment);_(null,L,w,I)}}else se(j,b,w,I,F,A,U)},fe=(b,w,I)=>{const N=w.component=b.component;if(shouldUpdateComponent(b,w,I))if(N.asyncDep&&!N.asyncResolved){te(N,w,I);return}else N.next=w,N.update();else w.el=b.el,N.vnode=w},se=(b,w,I,N,F,A,U)=>{const j=()=>{if(b.isMounted){let{next:V,bu:Y,u:K,parent:Q,vnode:ie}=b;{const ge=locateNonHydratedAsyncRoot(b);if(ge){V&&(V.el=ie.el,te(b,V,U)),ge.asyncDep.then(()=>{b.isUnmounted||j()});return}}let re=V,ce;toggleRecurse(b,!1),V?(V.el=ie.el,te(b,V,U)):V=ie,Y&&invokeArrayFns(Y),(ce=V.props&&V.props.onVnodeBeforeUpdate)&&invokeVNodeHook(ce,Q,V,ie),toggleRecurse(b,!0);const pe=renderComponentRoot(b),me=b.subTree;b.subTree=pe,O(me,pe,y(me.el),Ce(me),b,F,A),V.el=pe.el,re===null&&updateHOCHostEl(b,pe.el),K&&queuePostRenderEffect(K,F),(ce=V.props&&V.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(ce,Q,V,ie),F)}else{let V;const{el:Y,props:K}=w,{bm:Q,m:ie,parent:re,root:ce,type:pe}=b,me=isAsyncWrapper(w);toggleRecurse(b,!1),Q&&invokeArrayFns(Q),!me&&(V=K&&K.onVnodeBeforeMount)&&invokeVNodeHook(V,re,w),toggleRecurse(b,!0);{ce.ce&&ce.ce._def.shadowRoot!==!1&&ce.ce._injectChildStyle(pe);const ge=b.subTree=renderComponentRoot(b);O(null,ge,I,N,b,F,A),w.el=ge.el}if(ie&&queuePostRenderEffect(ie,F),!me&&(V=K&&K.onVnodeMounted)){const ge=w;queuePostRenderEffect(()=>invokeVNodeHook(V,re,ge),F)}(w.shapeFlag&256||re&&isAsyncWrapper(re.vnode)&&re.vnode.shapeFlag&256)&&b.a&&queuePostRenderEffect(b.a,F),b.isMounted=!0,w=I=N=null}};b.scope.on();const L=b.effect=new ReactiveEffect(j);b.scope.off();const k=b.update=L.run.bind(L),W=b.job=L.runIfDirty.bind(L);W.i=b,W.id=b.uid,L.scheduler=()=>queueJob(W),toggleRecurse(b,!0),k()},te=(b,w,I)=>{w.component=b;const N=b.vnode.props;b.vnode=w,b.next=null,updateProps(b,w.props,N,I),updateSlots(b,w.children,I),pauseTracking(),flushPreFlushCbs(b),resetTracking()},X=(b,w,I,N,F,A,U,j,L=!1)=>{const k=b&&b.children,W=b?b.shapeFlag:0,V=w.children,{patchFlag:Y,shapeFlag:K}=w;if(Y>0){if(Y&128){ne(k,V,I,N,F,A,U,j,L);return}else if(Y&256){ae(k,V,I,N,F,A,U,j,L);return}}K&8?(W&16&&be(k,F,A),V!==k&&m(I,V)):W&16?K&16?ne(k,V,I,N,F,A,U,j,L):be(k,F,A,!0):(W&8&&m(I,""),K&16&&H(V,I,N,F,A,U,j,L))},ae=(b,w,I,N,F,A,U,j,L)=>{b=b||EMPTY_ARR,w=w||EMPTY_ARR;const k=b.length,W=w.length,V=Math.min(k,W);let Y;for(Y=0;Y<V;Y++){const K=w[Y]=L?cloneIfMounted(w[Y]):normalizeVNode(w[Y]);O(b[Y],K,I,null,F,A,U,j,L)}k>W?be(b,F,A,!0,!1,V):H(w,I,N,F,A,U,j,L,V)},ne=(b,w,I,N,F,A,U,j,L)=>{let k=0;const W=w.length;let V=b.length-1,Y=W-1;for(;k<=V&&k<=Y;){const K=b[k],Q=w[k]=L?cloneIfMounted(w[k]):normalizeVNode(w[k]);if(isSameVNodeType(K,Q))O(K,Q,I,null,F,A,U,j,L);else break;k++}for(;k<=V&&k<=Y;){const K=b[V],Q=w[Y]=L?cloneIfMounted(w[Y]):normalizeVNode(w[Y]);if(isSameVNodeType(K,Q))O(K,Q,I,null,F,A,U,j,L);else break;V--,Y--}if(k>V){if(k<=Y){const K=Y+1,Q=K<W?w[K].el:N;for(;k<=Y;)O(null,w[k]=L?cloneIfMounted(w[k]):normalizeVNode(w[k]),I,Q,F,A,U,j,L),k++}}else if(k>Y)for(;k<=V;)ue(b[k],F,A,!0),k++;else{const K=k,Q=k,ie=new Map;for(k=Q;k<=Y;k++){const de=w[k]=L?cloneIfMounted(w[k]):normalizeVNode(w[k]);de.key!=null&&ie.set(de.key,k)}let re,ce=0;const pe=Y-Q+1;let me=!1,ge=0;const we=new Array(pe);for(k=0;k<pe;k++)we[k]=0;for(k=K;k<=V;k++){const de=b[k];if(ce>=pe){ue(de,F,A,!0);continue}let ye;if(de.key!=null)ye=ie.get(de.key);else for(re=Q;re<=Y;re++)if(we[re-Q]===0&&isSameVNodeType(de,w[re])){ye=re;break}ye===void 0?ue(de,F,A,!0):(we[ye-Q]=k+1,ye>=ge?ge=ye:me=!0,O(de,w[ye],I,null,F,A,U,j,L),ce++)}const Se=me?getSequence(we):EMPTY_ARR;for(re=Se.length-1,k=pe-1;k>=0;k--){const de=Q+k,ye=w[de],Pe=de+1<W?w[de+1].el:N;we[k]===0?O(null,ye,I,Pe,F,A,U,j,L):me&&(re<0||k!==Se[re]?le(ye,I,Pe,2):re--)}}},le=(b,w,I,N,F=null)=>{const{el:A,type:U,transition:j,children:L,shapeFlag:k}=b;if(k&6){le(b.component.subTree,w,I,N);return}if(k&128){b.suspense.move(w,I,N);return}if(k&64){U.move(b,w,I,M);return}if(U===Fragment){o(A,w,I);for(let V=0;V<L.length;V++)le(L[V],w,I,N);o(b.anchor,w,I);return}if(U===Static){E(b,w,I);return}if(N!==2&&k&1&&j)if(N===0)j.beforeEnter(A),o(A,w,I),queuePostRenderEffect(()=>j.enter(A),F);else{const{leave:V,delayLeave:Y,afterLeave:K}=j,Q=()=>{b.ctx.isUnmounted?u(A):o(A,w,I)},ie=()=>{V(A,()=>{Q(),K&&K()})};Y?Y(A,Q,ie):ie()}else o(A,w,I)},ue=(b,w,I,N=!1,F=!1)=>{const{type:A,props:U,ref:j,children:L,dynamicChildren:k,shapeFlag:W,patchFlag:V,dirs:Y,cacheIndex:K}=b;if(V===-2&&(F=!1),j!=null&&(pauseTracking(),setRef(j,null,I,b,!0),resetTracking()),K!=null&&(w.renderCache[K]=void 0),W&256){w.ctx.deactivate(b);return}const Q=W&1&&Y,ie=!isAsyncWrapper(b);let re;if(ie&&(re=U&&U.onVnodeBeforeUnmount)&&invokeVNodeHook(re,w,b),W&6)Oe(b.component,I,N);else{if(W&128){b.suspense.unmount(I,N);return}Q&&invokeDirectiveHook(b,null,w,"beforeUnmount"),W&64?b.type.remove(b,w,I,M,N):k&&!k.hasOnce&&(A!==Fragment||V>0&&V&64)?be(k,w,I,!1,!0):(A===Fragment&&V&384||!F&&W&16)&&be(L,w,I),N&&ve(b)}(ie&&(re=U&&U.onVnodeUnmounted)||Q)&&queuePostRenderEffect(()=>{re&&invokeVNodeHook(re,w,b),Q&&invokeDirectiveHook(b,null,w,"unmounted")},I)},ve=b=>{const{type:w,el:I,anchor:N,transition:F}=b;if(w===Fragment){he(I,N);return}if(w===Static){S(b);return}const A=()=>{u(I),F&&!F.persisted&&F.afterLeave&&F.afterLeave()};if(b.shapeFlag&1&&F&&!F.persisted){const{leave:U,delayLeave:j}=F,L=()=>U(I,A);j?j(b.el,A,L):L()}else A()},he=(b,w)=>{let I;for(;b!==w;)I=T(b),u(b),b=I;u(w)},Oe=(b,w,I)=>{const{bum:N,scope:F,job:A,subTree:U,um:j,m:L,a:k,parent:W,slots:{__:V}}=b;invalidateMount(L),invalidateMount(k),N&&invokeArrayFns(N),W&&isArray$1(V)&&V.forEach(Y=>{W.renderCache[Y]=void 0}),F.stop(),A&&(A.flags|=8,ue(U,b,w,I)),j&&queuePostRenderEffect(j,w),queuePostRenderEffect(()=>{b.isUnmounted=!0},w),w&&w.pendingBranch&&!w.isUnmounted&&b.asyncDep&&!b.asyncResolved&&b.suspenseId===w.pendingId&&(w.deps--,w.deps===0&&w.resolve())},be=(b,w,I,N=!1,F=!1,A=0)=>{for(let U=A;U<b.length;U++)ue(b[U],w,I,N,F)},Ce=b=>{if(b.shapeFlag&6)return Ce(b.component.subTree);if(b.shapeFlag&128)return b.suspense.next();const w=T(b.anchor||b.el),I=w&&w[TeleportEndKey];return I?T(I):w};let oe=!1;const B=(b,w,I)=>{b==null?w._vnode&&ue(w._vnode,null,null,!0):O(w._vnode||null,b,w,null,null,null,I),w._vnode=b,oe||(oe=!0,flushPreFlushCbs(),flushPostFlushCbs(),oe=!1)},M={p:O,um:ue,m:le,r:ve,mt:J,mc:H,pc:X,pbc:Z,n:Ce,o:r};return{render:B,hydrate:void 0,createApp:createAppAPI(B)}}function resolveChildrenNamespace({type:r,props:i},s){return s==="svg"&&r==="foreignObject"||s==="mathml"&&r==="annotation-xml"&&i&&i.encoding&&i.encoding.includes("html")?void 0:s}function toggleRecurse({effect:r,job:i},s){s?(r.flags|=32,i.flags|=4):(r.flags&=-33,i.flags&=-5)}function needTransition(r,i){return(!r||r&&!r.pendingBranch)&&i&&!i.persisted}function traverseStaticChildren(r,i,s=!1){const o=r.children,u=i.children;if(isArray$1(o)&&isArray$1(u))for(let a=0;a<o.length;a++){const l=o[a];let c=u[a];c.shapeFlag&1&&!c.dynamicChildren&&((c.patchFlag<=0||c.patchFlag===32)&&(c=u[a]=cloneIfMounted(u[a]),c.el=l.el),!s&&c.patchFlag!==-2&&traverseStaticChildren(l,c)),c.type===Text&&(c.el=l.el),c.type===Comment&&!c.el&&(c.el=l.el)}}function getSequence(r){const i=r.slice(),s=[0];let o,u,a,l,c;const h=r.length;for(o=0;o<h;o++){const d=r[o];if(d!==0){if(u=s[s.length-1],r[u]<d){i[o]=u,s.push(o);continue}for(a=0,l=s.length-1;a<l;)c=a+l>>1,r[s[c]]<d?a=c+1:l=c;d<r[s[a]]&&(a>0&&(i[o]=s[a-1]),s[a]=o)}}for(a=s.length,l=s[a-1];a-- >0;)s[a]=l,l=i[l];return s}function locateNonHydratedAsyncRoot(r){const i=r.subTree.component;if(i)return i.asyncDep&&!i.asyncResolved?i:locateNonHydratedAsyncRoot(i)}function invalidateMount(r){if(r)for(let i=0;i<r.length;i++)r[i].flags|=8}const ssrContextKey=Symbol.for("v-scx"),useSSRContext=()=>inject(ssrContextKey);function watch(r,i,s){return doWatch(r,i,s)}function doWatch(r,i,s=EMPTY_OBJ){const{immediate:o,deep:u,flush:a,once:l}=s,c=extend({},s),h=i&&o||!i&&a!=="post";let d;if(isInSSRComponentSetup){if(a==="sync"){const g=useSSRContext();d=g.__watcherHandles||(g.__watcherHandles=[])}else if(!h){const g=()=>{};return g.stop=NOOP,g.resume=NOOP,g.pause=NOOP,g}}const m=currentInstance;c.call=(g,v,O)=>callWithAsyncErrorHandling(g,m,v,O);let y=!1;a==="post"?c.scheduler=g=>{queuePostRenderEffect(g,m&&m.suspense)}:a!=="sync"&&(y=!0,c.scheduler=(g,v)=>{v?g():queueJob(g)}),c.augmentJob=g=>{i&&(g.flags|=4),y&&(g.flags|=2,m&&(g.id=m.uid,g.i=m))};const T=watch$1(r,i,c);return isInSSRComponentSetup&&(d?d.push(T):h&&T()),T}function instanceWatch(r,i,s){const o=this.proxy,u=isString(r)?r.includes(".")?createPathGetter(o,r):()=>o[r]:r.bind(o,o);let a;isFunction$1(i)?a=i:(a=i.handler,s=i);const l=setCurrentInstance(this),c=doWatch(u,a.bind(o),s);return l(),c}function createPathGetter(r,i){const s=i.split(".");return()=>{let o=r;for(let u=0;u<s.length&&o;u++)o=o[s[u]];return o}}const getModelModifiers=(r,i)=>i==="modelValue"||i==="model-value"?r.modelModifiers:r[`${i}Modifiers`]||r[`${camelize(i)}Modifiers`]||r[`${hyphenate(i)}Modifiers`];function emit(r,i,...s){if(r.isUnmounted)return;const o=r.vnode.props||EMPTY_OBJ;let u=s;const a=i.startsWith("update:"),l=a&&getModelModifiers(o,i.slice(7));l&&(l.trim&&(u=s.map(m=>isString(m)?m.trim():m)),l.number&&(u=s.map(looseToNumber)));let c,h=o[c=toHandlerKey(i)]||o[c=toHandlerKey(camelize(i))];!h&&a&&(h=o[c=toHandlerKey(hyphenate(i))]),h&&callWithAsyncErrorHandling(h,r,6,u);const d=o[c+"Once"];if(d){if(!r.emitted)r.emitted={};else if(r.emitted[c])return;r.emitted[c]=!0,callWithAsyncErrorHandling(d,r,6,u)}}function normalizeEmitsOptions(r,i,s=!1){const o=i.emitsCache,u=o.get(r);if(u!==void 0)return u;const a=r.emits;let l={},c=!1;if(!isFunction$1(r)){const h=d=>{const m=normalizeEmitsOptions(d,i,!0);m&&(c=!0,extend(l,m))};!s&&i.mixins.length&&i.mixins.forEach(h),r.extends&&h(r.extends),r.mixins&&r.mixins.forEach(h)}return!a&&!c?(isObject$1(r)&&o.set(r,null),null):(isArray$1(a)?a.forEach(h=>l[h]=null):extend(l,a),isObject$1(r)&&o.set(r,l),l)}function isEmitListener(r,i){return!r||!isOn(i)?!1:(i=i.slice(2).replace(/Once$/,""),hasOwn(r,i[0].toLowerCase()+i.slice(1))||hasOwn(r,hyphenate(i))||hasOwn(r,i))}function markAttrsAccessed(){}function renderComponentRoot(r){const{type:i,vnode:s,proxy:o,withProxy:u,propsOptions:[a],slots:l,attrs:c,emit:h,render:d,renderCache:m,props:y,data:T,setupState:g,ctx:v,inheritAttrs:O}=r,P=setCurrentRenderingInstance(r);let _,C;try{if(s.shapeFlag&4){const S=u||o,x=S;_=normalizeVNode(d.call(x,S,m,y,g,T,v)),C=c}else{const S=i;_=normalizeVNode(S.length>1?S(y,{attrs:c,slots:l,emit:h}):S(y,null)),C=i.props?c:getFunctionalFallthrough(c)}}catch(S){blockStack.length=0,handleError(S,r,1),_=createVNode(Comment)}let E=_;if(C&&O!==!1){const S=Object.keys(C),{shapeFlag:x}=E;S.length&&x&7&&(a&&S.some(isModelListener)&&(C=filterModelListeners(C,a)),E=cloneVNode(E,C,!1,!0))}return s.dirs&&(E=cloneVNode(E,null,!1,!0),E.dirs=E.dirs?E.dirs.concat(s.dirs):s.dirs),s.transition&&setTransitionHooks(E,s.transition),_=E,setCurrentRenderingInstance(P),_}const getFunctionalFallthrough=r=>{let i;for(const s in r)(s==="class"||s==="style"||isOn(s))&&((i||(i={}))[s]=r[s]);return i},filterModelListeners=(r,i)=>{const s={};for(const o in r)(!isModelListener(o)||!(o.slice(9)in i))&&(s[o]=r[o]);return s};function shouldUpdateComponent(r,i,s){const{props:o,children:u,component:a}=r,{props:l,children:c,patchFlag:h}=i,d=a.emitsOptions;if(i.dirs||i.transition)return!0;if(s&&h>=0){if(h&1024)return!0;if(h&16)return o?hasPropsChanged(o,l,d):!!l;if(h&8){const m=i.dynamicProps;for(let y=0;y<m.length;y++){const T=m[y];if(l[T]!==o[T]&&!isEmitListener(d,T))return!0}}}else return(u||c)&&(!c||!c.$stable)?!0:o===l?!1:o?l?hasPropsChanged(o,l,d):!0:!!l;return!1}function hasPropsChanged(r,i,s){const o=Object.keys(i);if(o.length!==Object.keys(r).length)return!0;for(let u=0;u<o.length;u++){const a=o[u];if(i[a]!==r[a]&&!isEmitListener(s,a))return!0}return!1}function updateHOCHostEl({vnode:r,parent:i},s){for(;i;){const o=i.subTree;if(o.suspense&&o.suspense.activeBranch===r&&(o.el=r.el),o===r)(r=i.vnode).el=s,i=i.parent;else break}}const isSuspense=r=>r.__isSuspense;function queueEffectWithSuspense(r,i){i&&i.pendingBranch?isArray$1(r)?i.effects.push(...r):i.effects.push(r):queuePostFlushCb(r)}const Fragment=Symbol.for("v-fgt"),Text=Symbol.for("v-txt"),Comment=Symbol.for("v-cmt"),Static=Symbol.for("v-stc"),blockStack=[];let currentBlock=null;function openBlock(r=!1){blockStack.push(currentBlock=r?null:[])}function closeBlock(){blockStack.pop(),currentBlock=blockStack[blockStack.length-1]||null}let isBlockTreeEnabled=1;function setBlockTracking(r,i=!1){isBlockTreeEnabled+=r,r<0&¤tBlock&&i&&(currentBlock.hasOnce=!0)}function setupBlock(r){return r.dynamicChildren=isBlockTreeEnabled>0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&¤tBlock&¤tBlock.push(r),r}function createElementBlock(r,i,s,o,u,a){return setupBlock(createBaseVNode(r,i,s,o,u,a,!0))}function createBlock(r,i,s,o,u){return setupBlock(createVNode(r,i,s,o,u,!0))}function isVNode(r){return r?r.__v_isVNode===!0:!1}function isSameVNodeType(r,i){return r.type===i.type&&r.key===i.key}const normalizeKey=({key:r})=>r??null,normalizeRef=({ref:r,ref_key:i,ref_for:s})=>(typeof r=="number"&&(r=""+r),r!=null?isString(r)||isRef(r)||isFunction$1(r)?{i:currentRenderingInstance,r,k:i,f:!!s}:r:null);function createBaseVNode(r,i=null,s=null,o=0,u=null,a=r===Fragment?0:1,l=!1,c=!1){const h={__v_isVNode:!0,__v_skip:!0,type:r,props:i,key:i&&normalizeKey(i),ref:i&&normalizeRef(i),scopeId:currentScopeId,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:o,dynamicProps:u,dynamicChildren:null,appContext:null,ctx:currentRenderingInstance};return c?(normalizeChildren(h,s),a&128&&r.normalize(h)):s&&(h.shapeFlag|=isString(s)?8:16),isBlockTreeEnabled>0&&!l&¤tBlock&&(h.patchFlag>0||a&6)&&h.patchFlag!==32&¤tBlock.push(h),h}const createVNode=_createVNode;function _createVNode(r,i=null,s=null,o=0,u=null,a=!1){if((!r||r===NULL_DYNAMIC_COMPONENT)&&(r=Comment),isVNode(r)){const c=cloneVNode(r,i,!0);return s&&normalizeChildren(c,s),isBlockTreeEnabled>0&&!a&¤tBlock&&(c.shapeFlag&6?currentBlock[currentBlock.indexOf(r)]=c:currentBlock.push(c)),c.patchFlag=-2,c}if(isClassComponent(r)&&(r=r.__vccOpts),i){i=guardReactiveProps(i);let{class:c,style:h}=i;c&&!isString(c)&&(i.class=normalizeClass(c)),isObject$1(h)&&(isProxy(h)&&!isArray$1(h)&&(h=extend({},h)),i.style=normalizeStyle(h))}const l=isString(r)?1:isSuspense(r)?128:isTeleport(r)?64:isObject$1(r)?4:isFunction$1(r)?2:0;return createBaseVNode(r,i,s,o,u,l,a,!0)}function guardReactiveProps(r){return r?isProxy(r)||isInternalObject(r)?extend({},r):r:null}function cloneVNode(r,i,s=!1,o=!1){const{props:u,ref:a,patchFlag:l,children:c,transition:h}=r,d=i?mergeProps(u||{},i):u,m={__v_isVNode:!0,__v_skip:!0,type:r.type,props:d,key:d&&normalizeKey(d),ref:i&&i.ref?s&&a?isArray$1(a)?a.concat(normalizeRef(i)):[a,normalizeRef(i)]:normalizeRef(i):a,scopeId:r.scopeId,slotScopeIds:r.slotScopeIds,children:c,target:r.target,targetStart:r.targetStart,targetAnchor:r.targetAnchor,staticCount:r.staticCount,shapeFlag:r.shapeFlag,patchFlag:i&&r.type!==Fragment?l===-1?16:l|16:l,dynamicProps:r.dynamicProps,dynamicChildren:r.dynamicChildren,appContext:r.appContext,dirs:r.dirs,transition:h,component:r.component,suspense:r.suspense,ssContent:r.ssContent&&cloneVNode(r.ssContent),ssFallback:r.ssFallback&&cloneVNode(r.ssFallback),el:r.el,anchor:r.anchor,ctx:r.ctx,ce:r.ce};return h&&o&&setTransitionHooks(m,h.clone(m)),m}function createTextVNode(r=" ",i=0){return createVNode(Text,null,r,i)}function normalizeVNode(r){return r==null||typeof r=="boolean"?createVNode(Comment):isArray$1(r)?createVNode(Fragment,null,r.slice()):isVNode(r)?cloneIfMounted(r):createVNode(Text,null,String(r))}function cloneIfMounted(r){return r.el===null&&r.patchFlag!==-1||r.memo?r:cloneVNode(r)}function normalizeChildren(r,i){let s=0;const{shapeFlag:o}=r;if(i==null)i=null;else if(isArray$1(i))s=16;else if(typeof i=="object")if(o&65){const u=i.default;u&&(u._c&&(u._d=!1),normalizeChildren(r,u()),u._c&&(u._d=!0));return}else{s=32;const u=i._;!u&&!isInternalObject(i)?i._ctx=currentRenderingInstance:u===3&¤tRenderingInstance&&(currentRenderingInstance.slots._===1?i._=1:(i._=2,r.patchFlag|=1024))}else isFunction$1(i)?(i={default:i,_ctx:currentRenderingInstance},s=32):(i=String(i),o&64?(s=16,i=[createTextVNode(i)]):s=8);r.children=i,r.shapeFlag|=s}function mergeProps(...r){const i={};for(let s=0;s<r.length;s++){const o=r[s];for(const u in o)if(u==="class")i.class!==o.class&&(i.class=normalizeClass([i.class,o.class]));else if(u==="style")i.style=normalizeStyle([i.style,o.style]);else if(isOn(u)){const a=i[u],l=o[u];l&&a!==l&&!(isArray$1(a)&&a.includes(l))&&(i[u]=a?[].concat(a,l):l)}else u!==""&&(i[u]=o[u])}return i}function invokeVNodeHook(r,i,s,o=null){callWithAsyncErrorHandling(r,i,7,[s,o])}const emptyAppContext=createAppContext();let uid=0;function createComponentInstance(r,i,s){const o=r.type,u=(i?i.appContext:r.appContext)||emptyAppContext,a={uid:uid++,vnode:r,type:o,parent:i,appContext:u,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new EffectScope(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:i?i.provides:Object.create(u.provides),ids:i?i.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:normalizePropsOptions(o,u),emitsOptions:normalizeEmitsOptions(o,u),emit:null,emitted:null,propsDefaults:EMPTY_OBJ,inheritAttrs:o.inheritAttrs,ctx:EMPTY_OBJ,data:EMPTY_OBJ,props:EMPTY_OBJ,attrs:EMPTY_OBJ,slots:EMPTY_OBJ,refs:EMPTY_OBJ,setupState:EMPTY_OBJ,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=i?i.root:a,a.emit=emit.bind(null,a),r.ce&&r.ce(a),a}let currentInstance=null;const getCurrentInstance=()=>currentInstance||currentRenderingInstance;let internalSetCurrentInstance,setInSSRSetupState;{const r=getGlobalThis(),i=(s,o)=>{let u;return(u=r[s])||(u=r[s]=[]),u.push(o),a=>{u.length>1?u.forEach(l=>l(a)):u[0](a)}};internalSetCurrentInstance=i("__VUE_INSTANCE_SETTERS__",s=>currentInstance=s),setInSSRSetupState=i("__VUE_SSR_SETTERS__",s=>isInSSRComponentSetup=s)}const setCurrentInstance=r=>{const i=currentInstance;return internalSetCurrentInstance(r),r.scope.on(),()=>{r.scope.off(),internalSetCurrentInstance(i)}},unsetCurrentInstance=()=>{currentInstance&¤tInstance.scope.off(),internalSetCurrentInstance(null)};function isStatefulComponent(r){return r.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(r,i=!1,s=!1){i&&setInSSRSetupState(i);const{props:o,children:u}=r.vnode,a=isStatefulComponent(r);initProps(r,o,a,i),initSlots(r,u,s||i);const l=a?setupStatefulComponent(r,i):void 0;return i&&setInSSRSetupState(!1),l}function setupStatefulComponent(r,i){const s=r.type;r.accessCache=Object.create(null),r.proxy=new Proxy(r.ctx,PublicInstanceProxyHandlers);const{setup:o}=s;if(o){pauseTracking();const u=r.setupContext=o.length>1?createSetupContext(r):null,a=setCurrentInstance(r),l=callWithErrorHandling(o,r,0,[r.props,u]),c=isPromise(l);if(resetTracking(),a(),(c||r.sp)&&!isAsyncWrapper(r)&&markAsyncBoundary(r),c){if(l.then(unsetCurrentInstance,unsetCurrentInstance),i)return l.then(h=>{handleSetupResult(r,h)}).catch(h=>{handleError(h,r,0)});r.asyncDep=l}else handleSetupResult(r,l)}else finishComponentSetup(r)}function handleSetupResult(r,i,s){isFunction$1(i)?r.type.__ssrInlineRender?r.ssrRender=i:r.render=i:isObject$1(i)&&(r.setupState=proxyRefs(i)),finishComponentSetup(r)}function finishComponentSetup(r,i,s){const o=r.type;r.render||(r.render=o.render||NOOP);{const u=setCurrentInstance(r);pauseTracking();try{applyOptions(r)}finally{resetTracking(),u()}}}const attrsProxyHandlers={get(r,i){return track(r,"get",""),r[i]}};function createSetupContext(r){const i=s=>{r.exposed=s||{}};return{attrs:new Proxy(r.attrs,attrsProxyHandlers),slots:r.slots,emit:r.emit,expose:i}}function getComponentPublicInstance(r){return r.exposed?r.exposeProxy||(r.exposeProxy=new Proxy(proxyRefs(markRaw(r.exposed)),{get(i,s){if(s in i)return i[s];if(s in publicPropertiesMap)return publicPropertiesMap[s](r)},has(i,s){return s in i||s in publicPropertiesMap}})):r.proxy}const classifyRE=/(?:^|[-_])(\w)/g,classify=r=>r.replace(classifyRE,i=>i.toUpperCase()).replace(/[-_]/g,"");function getComponentName(r,i=!0){return isFunction$1(r)?r.displayName||r.name:r.name||i&&r.__name}function formatComponentName(r,i,s=!1){let o=getComponentName(i);if(!o&&i.__file){const u=i.__file.match(/([^/\\]+)\.\w+$/);u&&(o=u[1])}if(!o&&r&&r.parent){const u=a=>{for(const l in a)if(a[l]===i)return l};o=u(r.components||r.parent.type.components)||u(r.appContext.components)}return o?classify(o):s?"App":"Anonymous"}function isClassComponent(r){return isFunction$1(r)&&"__vccOpts"in r}const computed=(r,i)=>computed$1(r,i,isInSSRComponentSetup),version="3.5.17";/**
|
|
17
|
-
* @vue/runtime-dom v3.5.17
|
|
18
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
19
|
-
* @license MIT
|
|
20
|
-
**/let policy;const tt=typeof window<"u"&&window.trustedTypes;if(tt)try{policy=tt.createPolicy("vue",{createHTML:r=>r})}catch{}const unsafeToTrustedHTML=policy?r=>policy.createHTML(r):r=>r,svgNS="http://www.w3.org/2000/svg",mathmlNS="http://www.w3.org/1998/Math/MathML",doc=typeof document<"u"?document:null,templateContainer=doc&&doc.createElement("template"),nodeOps={insert:(r,i,s)=>{i.insertBefore(r,s||null)},remove:r=>{const i=r.parentNode;i&&i.removeChild(r)},createElement:(r,i,s,o)=>{const u=i==="svg"?doc.createElementNS(svgNS,r):i==="mathml"?doc.createElementNS(mathmlNS,r):s?doc.createElement(r,{is:s}):doc.createElement(r);return r==="select"&&o&&o.multiple!=null&&u.setAttribute("multiple",o.multiple),u},createText:r=>doc.createTextNode(r),createComment:r=>doc.createComment(r),setText:(r,i)=>{r.nodeValue=i},setElementText:(r,i)=>{r.textContent=i},parentNode:r=>r.parentNode,nextSibling:r=>r.nextSibling,querySelector:r=>doc.querySelector(r),setScopeId(r,i){r.setAttribute(i,"")},insertStaticContent(r,i,s,o,u,a){const l=s?s.previousSibling:i.lastChild;if(u&&(u===a||u.nextSibling))for(;i.insertBefore(u.cloneNode(!0),s),!(u===a||!(u=u.nextSibling)););else{templateContainer.innerHTML=unsafeToTrustedHTML(o==="svg"?`<svg>${r}</svg>`:o==="mathml"?`<math>${r}</math>`:r);const c=templateContainer.content;if(o==="svg"||o==="mathml"){const h=c.firstChild;for(;h.firstChild;)c.appendChild(h.firstChild);c.removeChild(h)}i.insertBefore(c,s)}return[l?l.nextSibling:i.firstChild,s?s.previousSibling:i.lastChild]}},vtcKey=Symbol("_vtc");function patchClass(r,i,s){const o=r[vtcKey];o&&(i=(i?[i,...o]:[...o]).join(" ")),i==null?r.removeAttribute("class"):s?r.setAttribute("class",i):r.className=i}const vShowOriginalDisplay=Symbol("_vod"),vShowHidden=Symbol("_vsh"),CSS_VAR_TEXT=Symbol(""),displayRE=/(^|;)\s*display\s*:/;function patchStyle(r,i,s){const o=r.style,u=isString(s);let a=!1;if(s&&!u){if(i)if(isString(i))for(const l of i.split(";")){const c=l.slice(0,l.indexOf(":")).trim();s[c]==null&&setStyle(o,c,"")}else for(const l in i)s[l]==null&&setStyle(o,l,"");for(const l in s)l==="display"&&(a=!0),setStyle(o,l,s[l])}else if(u){if(i!==s){const l=o[CSS_VAR_TEXT];l&&(s+=";"+l),o.cssText=s,a=displayRE.test(s)}}else i&&r.removeAttribute("style");vShowOriginalDisplay in r&&(r[vShowOriginalDisplay]=a?o.display:"",r[vShowHidden]&&(o.display="none"))}const importantRE=/\s*!important$/;function setStyle(r,i,s){if(isArray$1(s))s.forEach(o=>setStyle(r,i,o));else if(s==null&&(s=""),i.startsWith("--"))r.setProperty(i,s);else{const o=autoPrefix(r,i);importantRE.test(s)?r.setProperty(hyphenate(o),s.replace(importantRE,""),"important"):r[o]=s}}const prefixes=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(r,i){const s=prefixCache[i];if(s)return s;let o=camelize(i);if(o!=="filter"&&o in r)return prefixCache[i]=o;o=capitalize(o);for(let u=0;u<prefixes.length;u++){const a=prefixes[u]+o;if(a in r)return prefixCache[i]=a}return i}const xlinkNS="http://www.w3.org/1999/xlink";function patchAttr(r,i,s,o,u,a=isSpecialBooleanAttr(i)){o&&i.startsWith("xlink:")?s==null?r.removeAttributeNS(xlinkNS,i.slice(6,i.length)):r.setAttributeNS(xlinkNS,i,s):s==null||a&&!includeBooleanAttr(s)?r.removeAttribute(i):r.setAttribute(i,a?"":isSymbol(s)?String(s):s)}function patchDOMProp(r,i,s,o,u){if(i==="innerHTML"||i==="textContent"){s!=null&&(r[i]=i==="innerHTML"?unsafeToTrustedHTML(s):s);return}const a=r.tagName;if(i==="value"&&a!=="PROGRESS"&&!a.includes("-")){const c=a==="OPTION"?r.getAttribute("value")||"":r.value,h=s==null?r.type==="checkbox"?"on":"":String(s);(c!==h||!("_value"in r))&&(r.value=h),s==null&&r.removeAttribute(i),r._value=s;return}let l=!1;if(s===""||s==null){const c=typeof r[i];c==="boolean"?s=includeBooleanAttr(s):s==null&&c==="string"?(s="",l=!0):c==="number"&&(s=0,l=!0)}try{r[i]=s}catch{}l&&r.removeAttribute(u||i)}function addEventListener(r,i,s,o){r.addEventListener(i,s,o)}function removeEventListener(r,i,s,o){r.removeEventListener(i,s,o)}const veiKey=Symbol("_vei");function patchEvent(r,i,s,o,u=null){const a=r[veiKey]||(r[veiKey]={}),l=a[i];if(o&&l)l.value=o;else{const[c,h]=parseName(i);if(o){const d=a[i]=createInvoker(o,u);addEventListener(r,c,d,h)}else l&&(removeEventListener(r,c,l,h),a[i]=void 0)}}const optionsModifierRE=/(?:Once|Passive|Capture)$/;function parseName(r){let i;if(optionsModifierRE.test(r)){i={};let o;for(;o=r.match(optionsModifierRE);)r=r.slice(0,r.length-o[0].length),i[o[0].toLowerCase()]=!0}return[r[2]===":"?r.slice(3):hyphenate(r.slice(2)),i]}let cachedNow=0;const p=Promise.resolve(),getNow=()=>cachedNow||(p.then(()=>cachedNow=0),cachedNow=Date.now());function createInvoker(r,i){const s=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=s.attached)return;callWithAsyncErrorHandling(patchStopImmediatePropagation(o,s.value),i,5,[o])};return s.value=r,s.attached=getNow(),s}function patchStopImmediatePropagation(r,i){if(isArray$1(i)){const s=r.stopImmediatePropagation;return r.stopImmediatePropagation=()=>{s.call(r),r._stopped=!0},i.map(o=>u=>!u._stopped&&o&&o(u))}else return i}const isNativeOn=r=>r.charCodeAt(0)===111&&r.charCodeAt(1)===110&&r.charCodeAt(2)>96&&r.charCodeAt(2)<123,patchProp=(r,i,s,o,u,a)=>{const l=u==="svg";i==="class"?patchClass(r,o,l):i==="style"?patchStyle(r,s,o):isOn(i)?isModelListener(i)||patchEvent(r,i,s,o,a):(i[0]==="."?(i=i.slice(1),!0):i[0]==="^"?(i=i.slice(1),!1):shouldSetAsProp(r,i,o,l))?(patchDOMProp(r,i,o),!r.tagName.includes("-")&&(i==="value"||i==="checked"||i==="selected")&&patchAttr(r,i,o,l,a,i!=="value")):r._isVueCE&&(/[A-Z]/.test(i)||!isString(o))?patchDOMProp(r,camelize(i),o,a,i):(i==="true-value"?r._trueValue=o:i==="false-value"&&(r._falseValue=o),patchAttr(r,i,o,l))};function shouldSetAsProp(r,i,s,o){if(o)return!!(i==="innerHTML"||i==="textContent"||i in r&&isNativeOn(i)&&isFunction$1(s));if(i==="spellcheck"||i==="draggable"||i==="translate"||i==="autocorrect"||i==="form"||i==="list"&&r.tagName==="INPUT"||i==="type"&&r.tagName==="TEXTAREA")return!1;if(i==="width"||i==="height"){const u=r.tagName;if(u==="IMG"||u==="VIDEO"||u==="CANVAS"||u==="SOURCE")return!1}return isNativeOn(i)&&isString(s)?!1:i in r}const rendererOptions=extend({patchProp},nodeOps);let renderer;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}const createApp=(...r)=>{const i=ensureRenderer().createApp(...r),{mount:s}=i;return i.mount=o=>{const u=normalizeContainer(o);if(!u)return;const a=i._component;!isFunction$1(a)&&!a.render&&!a.template&&(a.template=u.innerHTML),u.nodeType===1&&(u.textContent="");const l=s(u,!1,resolveRootNamespace(u));return u instanceof Element&&(u.removeAttribute("v-cloak"),u.setAttribute("data-v-app","")),l},i};function resolveRootNamespace(r){if(r instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&r instanceof MathMLElement)return"mathml"}function normalizeContainer(r){return isString(r)?document.querySelector(r):r}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},inflate$2={};const adler32$1=(r,i,s,o)=>{let u=r&65535|0,a=r>>>16&65535|0,l=0;for(;s!==0;){l=s>2e3?2e3:s,s-=l;do u=u+i[o++]|0,a=a+u|0;while(--l);u%=65521,a%=65521}return u|a<<16|0};var adler32_1=adler32$1;const makeTable=()=>{let r,i=[];for(var s=0;s<256;s++){r=s;for(var o=0;o<8;o++)r=r&1?3988292384^r>>>1:r>>>1;i[s]=r}return i},crcTable=new Uint32Array(makeTable()),crc32$1=(r,i,s,o)=>{const u=crcTable,a=o+s;r^=-1;for(let l=o;l<a;l++)r=r>>>8^u[(r^i[l])&255];return r^-1};var crc32_1=crc32$1;const BAD$1=16209,TYPE$1=16191;var inffast=function(i,s){let o,u,a,l,c,h,d,m,y,T,g,v,O,P,_,C,E,S,x,R,G,H,D,Z;const $=i.state;o=i.next_in,D=i.input,u=o+(i.avail_in-5),a=i.next_out,Z=i.output,l=a-(s-i.avail_out),c=a+(i.avail_out-257),h=$.dmax,d=$.wsize,m=$.whave,y=$.wnext,T=$.window,g=$.hold,v=$.bits,O=$.lencode,P=$.distcode,_=(1<<$.lenbits)-1,C=(1<<$.distbits)-1;e:do{v<15&&(g+=D[o++]<<v,v+=8,g+=D[o++]<<v,v+=8),E=O[g&_];t:for(;;){if(S=E>>>24,g>>>=S,v-=S,S=E>>>16&255,S===0)Z[a++]=E&65535;else if(S&16){x=E&65535,S&=15,S&&(v<S&&(g+=D[o++]<<v,v+=8),x+=g&(1<<S)-1,g>>>=S,v-=S),v<15&&(g+=D[o++]<<v,v+=8,g+=D[o++]<<v,v+=8),E=P[g&C];r:for(;;){if(S=E>>>24,g>>>=S,v-=S,S=E>>>16&255,S&16){if(R=E&65535,S&=15,v<S&&(g+=D[o++]<<v,v+=8,v<S&&(g+=D[o++]<<v,v+=8)),R+=g&(1<<S)-1,R>h){i.msg="invalid distance too far back",$.mode=BAD$1;break e}if(g>>>=S,v-=S,S=a-l,R>S){if(S=R-S,S>m&&$.sane){i.msg="invalid distance too far back",$.mode=BAD$1;break e}if(G=0,H=T,y===0){if(G+=d-S,S<x){x-=S;do Z[a++]=T[G++];while(--S);G=a-R,H=Z}}else if(y<S){if(G+=d+y-S,S-=y,S<x){x-=S;do Z[a++]=T[G++];while(--S);if(G=0,y<x){S=y,x-=S;do Z[a++]=T[G++];while(--S);G=a-R,H=Z}}}else if(G+=y-S,S<x){x-=S;do Z[a++]=T[G++];while(--S);G=a-R,H=Z}for(;x>2;)Z[a++]=H[G++],Z[a++]=H[G++],Z[a++]=H[G++],x-=3;x&&(Z[a++]=H[G++],x>1&&(Z[a++]=H[G++]))}else{G=a-R;do Z[a++]=Z[G++],Z[a++]=Z[G++],Z[a++]=Z[G++],x-=3;while(x>2);x&&(Z[a++]=Z[G++],x>1&&(Z[a++]=Z[G++]))}}else if((S&64)===0){E=P[(E&65535)+(g&(1<<S)-1)];continue r}else{i.msg="invalid distance code",$.mode=BAD$1;break e}break}}else if((S&64)===0){E=O[(E&65535)+(g&(1<<S)-1)];continue t}else if(S&32){$.mode=TYPE$1;break e}else{i.msg="invalid literal/length code",$.mode=BAD$1;break e}break}}while(o<u&&a<c);x=v>>3,o-=x,v-=x<<3,g&=(1<<v)-1,i.next_in=o,i.next_out=a,i.avail_in=o<u?5+(u-o):5-(o-u),i.avail_out=a<c?257+(c-a):257-(a-c),$.hold=g,$.bits=v};const MAXBITS=15,ENOUGH_LENS$1=852,ENOUGH_DISTS$1=592,CODES$1=0,LENS$1=1,DISTS$1=2,lbase=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),lext=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),dbase=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),dext=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),inflate_table$1=(r,i,s,o,u,a,l,c)=>{const h=c.bits;let d=0,m=0,y=0,T=0,g=0,v=0,O=0,P=0,_=0,C=0,E,S,x,R,G,H=null,D;const Z=new Uint16Array(MAXBITS+1),$=new Uint16Array(MAXBITS+1);let z=null,ee,J,fe;for(d=0;d<=MAXBITS;d++)Z[d]=0;for(m=0;m<o;m++)Z[i[s+m]]++;for(g=h,T=MAXBITS;T>=1&&Z[T]===0;T--);if(g>T&&(g=T),T===0)return u[a++]=1<<24|64<<16|0,u[a++]=1<<24|64<<16|0,c.bits=1,0;for(y=1;y<T&&Z[y]===0;y++);for(g<y&&(g=y),P=1,d=1;d<=MAXBITS;d++)if(P<<=1,P-=Z[d],P<0)return-1;if(P>0&&(r===CODES$1||T!==1))return-1;for($[1]=0,d=1;d<MAXBITS;d++)$[d+1]=$[d]+Z[d];for(m=0;m<o;m++)i[s+m]!==0&&(l[$[i[s+m]]++]=m);if(r===CODES$1?(H=z=l,D=20):r===LENS$1?(H=lbase,z=lext,D=257):(H=dbase,z=dext,D=0),C=0,m=0,d=y,G=a,v=g,O=0,x=-1,_=1<<g,R=_-1,r===LENS$1&&_>ENOUGH_LENS$1||r===DISTS$1&&_>ENOUGH_DISTS$1)return 1;for(;;){ee=d-O,l[m]+1<D?(J=0,fe=l[m]):l[m]>=D?(J=z[l[m]-D],fe=H[l[m]-D]):(J=96,fe=0),E=1<<d-O,S=1<<v,y=S;do S-=E,u[G+(C>>O)+S]=ee<<24|J<<16|fe|0;while(S!==0);for(E=1<<d-1;C&E;)E>>=1;if(E!==0?(C&=E-1,C+=E):C=0,m++,--Z[d]===0){if(d===T)break;d=i[s+l[m]]}if(d>g&&(C&R)!==x){for(O===0&&(O=g),G+=y,v=d-O,P=1<<v;v+O<T&&(P-=Z[v+O],!(P<=0));)v++,P<<=1;if(_+=1<<v,r===LENS$1&&_>ENOUGH_LENS$1||r===DISTS$1&&_>ENOUGH_DISTS$1)return 1;x=C&R,u[x]=g<<24|v<<16|G-a|0}}return C!==0&&(u[G+C]=d-O<<24|64<<16|0),c.bits=g,0};var inftrees=inflate_table$1,constants={Z_NO_FLUSH:0,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFLATED:8};const adler32=adler32_1,crc32=crc32_1,inflate_fast=inffast,inflate_table=inftrees,CODES=0,LENS=1,DISTS=2,{Z_FINISH:Z_FINISH$1,Z_BLOCK,Z_TREES,Z_OK:Z_OK$1,Z_STREAM_END:Z_STREAM_END$1,Z_NEED_DICT:Z_NEED_DICT$1,Z_STREAM_ERROR:Z_STREAM_ERROR$1,Z_DATA_ERROR:Z_DATA_ERROR$1,Z_MEM_ERROR:Z_MEM_ERROR$1,Z_BUF_ERROR,Z_DEFLATED}=constants,HEAD=16180,FLAGS=16181,TIME=16182,OS=16183,EXLEN=16184,EXTRA=16185,NAME=16186,COMMENT=16187,HCRC=16188,DICTID=16189,DICT=16190,TYPE=16191,TYPEDO=16192,STORED=16193,COPY_=16194,COPY=16195,TABLE=16196,LENLENS=16197,CODELENS=16198,LEN_=16199,LEN=16200,LENEXT=16201,DIST=16202,DISTEXT=16203,MATCH=16204,LIT=16205,CHECK=16206,LENGTH=16207,DONE=16208,BAD=16209,MEM=16210,SYNC=16211,ENOUGH_LENS=852,ENOUGH_DISTS=592,MAX_WBITS=15,DEF_WBITS=MAX_WBITS,zswap32=r=>(r>>>24&255)+(r>>>8&65280)+((r&65280)<<8)+((r&255)<<24);function InflateState(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const inflateStateCheck=r=>{if(!r)return 1;const i=r.state;return!i||i.strm!==r||i.mode<HEAD||i.mode>SYNC?1:0},inflateResetKeep=r=>{if(inflateStateCheck(r))return Z_STREAM_ERROR$1;const i=r.state;return r.total_in=r.total_out=i.total=0,r.msg="",i.wrap&&(r.adler=i.wrap&1),i.mode=HEAD,i.last=0,i.havedict=0,i.flags=-1,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(ENOUGH_LENS),i.distcode=i.distdyn=new Int32Array(ENOUGH_DISTS),i.sane=1,i.back=-1,Z_OK$1},inflateReset=r=>{if(inflateStateCheck(r))return Z_STREAM_ERROR$1;const i=r.state;return i.wsize=0,i.whave=0,i.wnext=0,inflateResetKeep(r)},inflateReset2=(r,i)=>{let s;if(inflateStateCheck(r))return Z_STREAM_ERROR$1;const o=r.state;return i<0?(s=0,i=-i):(s=(i>>4)+5,i<48&&(i&=15)),i&&(i<8||i>15)?Z_STREAM_ERROR$1:(o.window!==null&&o.wbits!==i&&(o.window=null),o.wrap=s,o.wbits=i,inflateReset(r))},inflateInit2=(r,i)=>{if(!r)return Z_STREAM_ERROR$1;const s=new InflateState;r.state=s,s.strm=r,s.window=null,s.mode=HEAD;const o=inflateReset2(r,i);return o!==Z_OK$1&&(r.state=null),o},inflateInit=r=>inflateInit2(r,DEF_WBITS);let virgin=!0,lenfix,distfix;const fixedtables=r=>{if(virgin){lenfix=new Int32Array(512),distfix=new Int32Array(32);let i=0;for(;i<144;)r.lens[i++]=8;for(;i<256;)r.lens[i++]=9;for(;i<280;)r.lens[i++]=7;for(;i<288;)r.lens[i++]=8;for(inflate_table(LENS,r.lens,0,288,lenfix,0,r.work,{bits:9}),i=0;i<32;)r.lens[i++]=5;inflate_table(DISTS,r.lens,0,32,distfix,0,r.work,{bits:5}),virgin=!1}r.lencode=lenfix,r.lenbits=9,r.distcode=distfix,r.distbits=5},updatewindow=(r,i,s,o)=>{let u;const a=r.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),o>=a.wsize?(a.window.set(i.subarray(s-a.wsize,s),0),a.wnext=0,a.whave=a.wsize):(u=a.wsize-a.wnext,u>o&&(u=o),a.window.set(i.subarray(s-o,s-o+u),a.wnext),o-=u,o?(a.window.set(i.subarray(s-o,s),0),a.wnext=o,a.whave=a.wsize):(a.wnext+=u,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=u))),0},inflate$1=(r,i)=>{let s,o,u,a,l,c,h,d,m,y,T,g,v,O,P=0,_,C,E,S,x,R,G,H;const D=new Uint8Array(4);let Z,$;const z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(inflateStateCheck(r)||!r.output||!r.input&&r.avail_in!==0)return Z_STREAM_ERROR$1;s=r.state,s.mode===TYPE&&(s.mode=TYPEDO),l=r.next_out,u=r.output,h=r.avail_out,a=r.next_in,o=r.input,c=r.avail_in,d=s.hold,m=s.bits,y=c,T=h,H=Z_OK$1;e:for(;;)switch(s.mode){case HEAD:if(s.wrap===0){s.mode=TYPEDO;break}for(;m<16;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if(s.wrap&2&&d===35615){s.wbits===0&&(s.wbits=15),s.check=0,D[0]=d&255,D[1]=d>>>8&255,s.check=crc32(s.check,D,2,0),d=0,m=0,s.mode=FLAGS;break}if(s.head&&(s.head.done=!1),!(s.wrap&1)||(((d&255)<<8)+(d>>8))%31){r.msg="incorrect header check",s.mode=BAD;break}if((d&15)!==Z_DEFLATED){r.msg="unknown compression method",s.mode=BAD;break}if(d>>>=4,m-=4,G=(d&15)+8,s.wbits===0&&(s.wbits=G),G>15||G>s.wbits){r.msg="invalid window size",s.mode=BAD;break}s.dmax=1<<s.wbits,s.flags=0,r.adler=s.check=1,s.mode=d&512?DICTID:TYPE,d=0,m=0;break;case FLAGS:for(;m<16;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if(s.flags=d,(s.flags&255)!==Z_DEFLATED){r.msg="unknown compression method",s.mode=BAD;break}if(s.flags&57344){r.msg="unknown header flags set",s.mode=BAD;break}s.head&&(s.head.text=d>>8&1),s.flags&512&&s.wrap&4&&(D[0]=d&255,D[1]=d>>>8&255,s.check=crc32(s.check,D,2,0)),d=0,m=0,s.mode=TIME;case TIME:for(;m<32;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}s.head&&(s.head.time=d),s.flags&512&&s.wrap&4&&(D[0]=d&255,D[1]=d>>>8&255,D[2]=d>>>16&255,D[3]=d>>>24&255,s.check=crc32(s.check,D,4,0)),d=0,m=0,s.mode=OS;case OS:for(;m<16;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}s.head&&(s.head.xflags=d&255,s.head.os=d>>8),s.flags&512&&s.wrap&4&&(D[0]=d&255,D[1]=d>>>8&255,s.check=crc32(s.check,D,2,0)),d=0,m=0,s.mode=EXLEN;case EXLEN:if(s.flags&1024){for(;m<16;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}s.length=d,s.head&&(s.head.extra_len=d),s.flags&512&&s.wrap&4&&(D[0]=d&255,D[1]=d>>>8&255,s.check=crc32(s.check,D,2,0)),d=0,m=0}else s.head&&(s.head.extra=null);s.mode=EXTRA;case EXTRA:if(s.flags&1024&&(g=s.length,g>c&&(g=c),g&&(s.head&&(G=s.head.extra_len-s.length,s.head.extra||(s.head.extra=new Uint8Array(s.head.extra_len)),s.head.extra.set(o.subarray(a,a+g),G)),s.flags&512&&s.wrap&4&&(s.check=crc32(s.check,o,g,a)),c-=g,a+=g,s.length-=g),s.length))break e;s.length=0,s.mode=NAME;case NAME:if(s.flags&2048){if(c===0)break e;g=0;do G=o[a+g++],s.head&&G&&s.length<65536&&(s.head.name+=String.fromCharCode(G));while(G&&g<c);if(s.flags&512&&s.wrap&4&&(s.check=crc32(s.check,o,g,a)),c-=g,a+=g,G)break e}else s.head&&(s.head.name=null);s.length=0,s.mode=COMMENT;case COMMENT:if(s.flags&4096){if(c===0)break e;g=0;do G=o[a+g++],s.head&&G&&s.length<65536&&(s.head.comment+=String.fromCharCode(G));while(G&&g<c);if(s.flags&512&&s.wrap&4&&(s.check=crc32(s.check,o,g,a)),c-=g,a+=g,G)break e}else s.head&&(s.head.comment=null);s.mode=HCRC;case HCRC:if(s.flags&512){for(;m<16;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if(s.wrap&4&&d!==(s.check&65535)){r.msg="header crc mismatch",s.mode=BAD;break}d=0,m=0}s.head&&(s.head.hcrc=s.flags>>9&1,s.head.done=!0),r.adler=s.check=0,s.mode=TYPE;break;case DICTID:for(;m<32;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}r.adler=s.check=zswap32(d),d=0,m=0,s.mode=DICT;case DICT:if(s.havedict===0)return r.next_out=l,r.avail_out=h,r.next_in=a,r.avail_in=c,s.hold=d,s.bits=m,Z_NEED_DICT$1;r.adler=s.check=1,s.mode=TYPE;case TYPE:if(i===Z_BLOCK||i===Z_TREES)break e;case TYPEDO:if(s.last){d>>>=m&7,m-=m&7,s.mode=CHECK;break}for(;m<3;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}switch(s.last=d&1,d>>>=1,m-=1,d&3){case 0:s.mode=STORED;break;case 1:if(fixedtables(s),s.mode=LEN_,i===Z_TREES){d>>>=2,m-=2;break e}break;case 2:s.mode=TABLE;break;case 3:r.msg="invalid block type",s.mode=BAD}d>>>=2,m-=2;break;case STORED:for(d>>>=m&7,m-=m&7;m<32;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if((d&65535)!==(d>>>16^65535)){r.msg="invalid stored block lengths",s.mode=BAD;break}if(s.length=d&65535,d=0,m=0,s.mode=COPY_,i===Z_TREES)break e;case COPY_:s.mode=COPY;case COPY:if(g=s.length,g){if(g>c&&(g=c),g>h&&(g=h),g===0)break e;u.set(o.subarray(a,a+g),l),c-=g,a+=g,h-=g,l+=g,s.length-=g;break}s.mode=TYPE;break;case TABLE:for(;m<14;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if(s.nlen=(d&31)+257,d>>>=5,m-=5,s.ndist=(d&31)+1,d>>>=5,m-=5,s.ncode=(d&15)+4,d>>>=4,m-=4,s.nlen>286||s.ndist>30){r.msg="too many length or distance symbols",s.mode=BAD;break}s.have=0,s.mode=LENLENS;case LENLENS:for(;s.have<s.ncode;){for(;m<3;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}s.lens[z[s.have++]]=d&7,d>>>=3,m-=3}for(;s.have<19;)s.lens[z[s.have++]]=0;if(s.lencode=s.lendyn,s.lenbits=7,Z={bits:s.lenbits},H=inflate_table(CODES,s.lens,0,19,s.lencode,0,s.work,Z),s.lenbits=Z.bits,H){r.msg="invalid code lengths set",s.mode=BAD;break}s.have=0,s.mode=CODELENS;case CODELENS:for(;s.have<s.nlen+s.ndist;){for(;P=s.lencode[d&(1<<s.lenbits)-1],_=P>>>24,C=P>>>16&255,E=P&65535,!(_<=m);){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if(E<16)d>>>=_,m-=_,s.lens[s.have++]=E;else{if(E===16){for($=_+2;m<$;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if(d>>>=_,m-=_,s.have===0){r.msg="invalid bit length repeat",s.mode=BAD;break}G=s.lens[s.have-1],g=3+(d&3),d>>>=2,m-=2}else if(E===17){for($=_+3;m<$;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}d>>>=_,m-=_,G=0,g=3+(d&7),d>>>=3,m-=3}else{for($=_+7;m<$;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}d>>>=_,m-=_,G=0,g=11+(d&127),d>>>=7,m-=7}if(s.have+g>s.nlen+s.ndist){r.msg="invalid bit length repeat",s.mode=BAD;break}for(;g--;)s.lens[s.have++]=G}}if(s.mode===BAD)break;if(s.lens[256]===0){r.msg="invalid code -- missing end-of-block",s.mode=BAD;break}if(s.lenbits=9,Z={bits:s.lenbits},H=inflate_table(LENS,s.lens,0,s.nlen,s.lencode,0,s.work,Z),s.lenbits=Z.bits,H){r.msg="invalid literal/lengths set",s.mode=BAD;break}if(s.distbits=6,s.distcode=s.distdyn,Z={bits:s.distbits},H=inflate_table(DISTS,s.lens,s.nlen,s.ndist,s.distcode,0,s.work,Z),s.distbits=Z.bits,H){r.msg="invalid distances set",s.mode=BAD;break}if(s.mode=LEN_,i===Z_TREES)break e;case LEN_:s.mode=LEN;case LEN:if(c>=6&&h>=258){r.next_out=l,r.avail_out=h,r.next_in=a,r.avail_in=c,s.hold=d,s.bits=m,inflate_fast(r,T),l=r.next_out,u=r.output,h=r.avail_out,a=r.next_in,o=r.input,c=r.avail_in,d=s.hold,m=s.bits,s.mode===TYPE&&(s.back=-1);break}for(s.back=0;P=s.lencode[d&(1<<s.lenbits)-1],_=P>>>24,C=P>>>16&255,E=P&65535,!(_<=m);){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if(C&&(C&240)===0){for(S=_,x=C,R=E;P=s.lencode[R+((d&(1<<S+x)-1)>>S)],_=P>>>24,C=P>>>16&255,E=P&65535,!(S+_<=m);){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}d>>>=S,m-=S,s.back+=S}if(d>>>=_,m-=_,s.back+=_,s.length=E,C===0){s.mode=LIT;break}if(C&32){s.back=-1,s.mode=TYPE;break}if(C&64){r.msg="invalid literal/length code",s.mode=BAD;break}s.extra=C&15,s.mode=LENEXT;case LENEXT:if(s.extra){for($=s.extra;m<$;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}s.length+=d&(1<<s.extra)-1,d>>>=s.extra,m-=s.extra,s.back+=s.extra}s.was=s.length,s.mode=DIST;case DIST:for(;P=s.distcode[d&(1<<s.distbits)-1],_=P>>>24,C=P>>>16&255,E=P&65535,!(_<=m);){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if((C&240)===0){for(S=_,x=C,R=E;P=s.distcode[R+((d&(1<<S+x)-1)>>S)],_=P>>>24,C=P>>>16&255,E=P&65535,!(S+_<=m);){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}d>>>=S,m-=S,s.back+=S}if(d>>>=_,m-=_,s.back+=_,C&64){r.msg="invalid distance code",s.mode=BAD;break}s.offset=E,s.extra=C&15,s.mode=DISTEXT;case DISTEXT:if(s.extra){for($=s.extra;m<$;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}s.offset+=d&(1<<s.extra)-1,d>>>=s.extra,m-=s.extra,s.back+=s.extra}if(s.offset>s.dmax){r.msg="invalid distance too far back",s.mode=BAD;break}s.mode=MATCH;case MATCH:if(h===0)break e;if(g=T-h,s.offset>g){if(g=s.offset-g,g>s.whave&&s.sane){r.msg="invalid distance too far back",s.mode=BAD;break}g>s.wnext?(g-=s.wnext,v=s.wsize-g):v=s.wnext-g,g>s.length&&(g=s.length),O=s.window}else O=u,v=l-s.offset,g=s.length;g>h&&(g=h),h-=g,s.length-=g;do u[l++]=O[v++];while(--g);s.length===0&&(s.mode=LEN);break;case LIT:if(h===0)break e;u[l++]=s.length,h--,s.mode=LEN;break;case CHECK:if(s.wrap){for(;m<32;){if(c===0)break e;c--,d|=o[a++]<<m,m+=8}if(T-=h,r.total_out+=T,s.total+=T,s.wrap&4&&T&&(r.adler=s.check=s.flags?crc32(s.check,u,T,l-T):adler32(s.check,u,T,l-T)),T=h,s.wrap&4&&(s.flags?d:zswap32(d))!==s.check){r.msg="incorrect data check",s.mode=BAD;break}d=0,m=0}s.mode=LENGTH;case LENGTH:if(s.wrap&&s.flags){for(;m<32;){if(c===0)break e;c--,d+=o[a++]<<m,m+=8}if(s.wrap&4&&d!==(s.total&4294967295)){r.msg="incorrect length check",s.mode=BAD;break}d=0,m=0}s.mode=DONE;case DONE:H=Z_STREAM_END$1;break e;case BAD:H=Z_DATA_ERROR$1;break e;case MEM:return Z_MEM_ERROR$1;case SYNC:default:return Z_STREAM_ERROR$1}return r.next_out=l,r.avail_out=h,r.next_in=a,r.avail_in=c,s.hold=d,s.bits=m,(s.wsize||T!==r.avail_out&&s.mode<BAD&&(s.mode<CHECK||i!==Z_FINISH$1))&&updatewindow(r,r.output,r.next_out,T-r.avail_out),y-=r.avail_in,T-=r.avail_out,r.total_in+=y,r.total_out+=T,s.total+=T,s.wrap&4&&T&&(r.adler=s.check=s.flags?crc32(s.check,u,T,r.next_out-T):adler32(s.check,u,T,r.next_out-T)),r.data_type=s.bits+(s.last?64:0)+(s.mode===TYPE?128:0)+(s.mode===LEN_||s.mode===COPY_?256:0),(y===0&&T===0||i===Z_FINISH$1)&&H===Z_OK$1&&(H=Z_BUF_ERROR),H},inflateEnd=r=>{if(inflateStateCheck(r))return Z_STREAM_ERROR$1;let i=r.state;return i.window&&(i.window=null),r.state=null,Z_OK$1},inflateGetHeader=(r,i)=>{if(inflateStateCheck(r))return Z_STREAM_ERROR$1;const s=r.state;return(s.wrap&2)===0?Z_STREAM_ERROR$1:(s.head=i,i.done=!1,Z_OK$1)},inflateSetDictionary=(r,i)=>{const s=i.length;let o,u,a;return inflateStateCheck(r)||(o=r.state,o.wrap!==0&&o.mode!==DICT)?Z_STREAM_ERROR$1:o.mode===DICT&&(u=1,u=adler32(u,i,s,0),u!==o.check)?Z_DATA_ERROR$1:(a=updatewindow(r,i,s,s),a?(o.mode=MEM,Z_MEM_ERROR$1):(o.havedict=1,Z_OK$1))};inflate$2.inflateReset=inflateReset;inflate$2.inflateReset2=inflateReset2;inflate$2.inflateResetKeep=inflateResetKeep;inflate$2.inflateInit=inflateInit;inflate$2.inflateInit2=inflateInit2;inflate$2.inflate=inflate$1;inflate$2.inflateEnd=inflateEnd;inflate$2.inflateGetHeader=inflateGetHeader;inflate$2.inflateSetDictionary=inflateSetDictionary;inflate$2.inflateInfo="pako inflate (from Nodeca project)";var common$1={};const _has=(r,i)=>Object.prototype.hasOwnProperty.call(r,i);common$1.assign=function(r){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const s=i.shift();if(s){if(typeof s!="object")throw new TypeError(s+"must be non-object");for(const o in s)_has(s,o)&&(r[o]=s[o])}}return r};common$1.flattenChunks=r=>{let i=0;for(let o=0,u=r.length;o<u;o++)i+=r[o].length;const s=new Uint8Array(i);for(let o=0,u=0,a=r.length;o<a;o++){let l=r[o];s.set(l,u),u+=l.length}return s};var strings$1={};let STR_APPLY_UIA_OK=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{STR_APPLY_UIA_OK=!1}const _utf8len=new Uint8Array(256);for(let r=0;r<256;r++)_utf8len[r]=r>=252?6:r>=248?5:r>=240?4:r>=224?3:r>=192?2:1;_utf8len[254]=_utf8len[254]=1;strings$1.string2buf=r=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(r);let i,s,o,u,a,l=r.length,c=0;for(u=0;u<l;u++)s=r.charCodeAt(u),(s&64512)===55296&&u+1<l&&(o=r.charCodeAt(u+1),(o&64512)===56320&&(s=65536+(s-55296<<10)+(o-56320),u++)),c+=s<128?1:s<2048?2:s<65536?3:4;for(i=new Uint8Array(c),a=0,u=0;a<c;u++)s=r.charCodeAt(u),(s&64512)===55296&&u+1<l&&(o=r.charCodeAt(u+1),(o&64512)===56320&&(s=65536+(s-55296<<10)+(o-56320),u++)),s<128?i[a++]=s:s<2048?(i[a++]=192|s>>>6,i[a++]=128|s&63):s<65536?(i[a++]=224|s>>>12,i[a++]=128|s>>>6&63,i[a++]=128|s&63):(i[a++]=240|s>>>18,i[a++]=128|s>>>12&63,i[a++]=128|s>>>6&63,i[a++]=128|s&63);return i};const buf2binstring=(r,i)=>{if(i<65534&&r.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,r.length===i?r:r.subarray(0,i));let s="";for(let o=0;o<i;o++)s+=String.fromCharCode(r[o]);return s};strings$1.buf2string=(r,i)=>{const s=i||r.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(r.subarray(0,i));let o,u;const a=new Array(s*2);for(u=0,o=0;o<s;){let l=r[o++];if(l<128){a[u++]=l;continue}let c=_utf8len[l];if(c>4){a[u++]=65533,o+=c-1;continue}for(l&=c===2?31:c===3?15:7;c>1&&o<s;)l=l<<6|r[o++]&63,c--;if(c>1){a[u++]=65533;continue}l<65536?a[u++]=l:(l-=65536,a[u++]=55296|l>>10&1023,a[u++]=56320|l&1023)}return buf2binstring(a,u)};strings$1.utf8border=(r,i)=>{i=i||r.length,i>r.length&&(i=r.length);let s=i-1;for(;s>=0&&(r[s]&192)===128;)s--;return s<0||s===0?i:s+_utf8len[r[s]]>i?s:i};var messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function ZStream$1(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream$1;function GZheader$1(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var gzheader=GZheader$1;const zlib_inflate=inflate$2,utils=common$1,strings=strings$1,msg=messages,ZStream=zstream,GZheader=gzheader,toString=Object.prototype.toString,{Z_NO_FLUSH,Z_FINISH,Z_OK,Z_STREAM_END,Z_NEED_DICT,Z_STREAM_ERROR,Z_DATA_ERROR,Z_MEM_ERROR}=constants;function Inflate(r){this.options=utils.assign({chunkSize:1024*64,windowBits:15,to:""},r||{});const i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,i.windowBits===0&&(i.windowBits=-15)),i.windowBits>=0&&i.windowBits<16&&!(r&&r.windowBits)&&(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&(i.windowBits&15)===0&&(i.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ZStream,this.strm.avail_out=0;let s=zlib_inflate.inflateInit2(this.strm,i.windowBits);if(s!==Z_OK)throw new Error(msg[s]);if(this.header=new GZheader,zlib_inflate.inflateGetHeader(this.strm,this.header),i.dictionary&&(typeof i.dictionary=="string"?i.dictionary=strings.string2buf(i.dictionary):toString.call(i.dictionary)==="[object ArrayBuffer]"&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(s=zlib_inflate.inflateSetDictionary(this.strm,i.dictionary),s!==Z_OK)))throw new Error(msg[s])}Inflate.prototype.push=function(r,i){const s=this.strm,o=this.options.chunkSize,u=this.options.dictionary;let a,l,c;if(this.ended)return!1;for(i===~~i?l=i:l=i===!0?Z_FINISH:Z_NO_FLUSH,toString.call(r)==="[object ArrayBuffer]"?s.input=new Uint8Array(r):s.input=r,s.next_in=0,s.avail_in=s.input.length;;){for(s.avail_out===0&&(s.output=new Uint8Array(o),s.next_out=0,s.avail_out=o),a=zlib_inflate.inflate(s,l),a===Z_NEED_DICT&&u&&(a=zlib_inflate.inflateSetDictionary(s,u),a===Z_OK?a=zlib_inflate.inflate(s,l):a===Z_DATA_ERROR&&(a=Z_NEED_DICT));s.avail_in>0&&a===Z_STREAM_END&&s.state.wrap>0&&r[s.next_in]!==0;)zlib_inflate.inflateReset(s),a=zlib_inflate.inflate(s,l);switch(a){case Z_STREAM_ERROR:case Z_DATA_ERROR:case Z_NEED_DICT:case Z_MEM_ERROR:return this.onEnd(a),this.ended=!0,!1}if(c=s.avail_out,s.next_out&&(s.avail_out===0||a===Z_STREAM_END))if(this.options.to==="string"){let h=strings.utf8border(s.output,s.next_out),d=s.next_out-h,m=strings.buf2string(s.output,h);s.next_out=d,s.avail_out=o-d,d&&s.output.set(s.output.subarray(h,h+d),0),this.onData(m)}else this.onData(s.output.length===s.next_out?s.output:s.output.subarray(0,s.next_out));if(!(a===Z_OK&&c===0)){if(a===Z_STREAM_END)return a=zlib_inflate.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(s.avail_in===0)break}}return!0};Inflate.prototype.onData=function(r){this.chunks.push(r)};Inflate.prototype.onEnd=function(r){r===Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=utils.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg};function inflate(r,i){const s=new Inflate(i);if(s.push(r),s.err)throw s.msg||msg[s.err];return s.result}var inflate_2=inflate;function f(r,i,s,o,u,a){let l=r.tileXYToRectangle(s,o,u);return Cesium.defined(Cesium.Rectangle.intersection(l,i,a))}class GeoTerrainProvider{constructor(i){if(i=i??{},!Cesium.defined(i.url))throw new Cesium.DeveloperError("options.url is required.");this._dataType=i.dataType??"int",this._tileType=i.tileType??"heightmap",this._url=i.url,this._maxTerrainLevel=i.dataType??"int",this._subdomains=i.subdomains,this._token=i.token,this.init(i)}get credit(){return this._credit}get errorEvent(){return this._errorEvent}get hasVertexNormals(){return!1}get hasWaterMask(){return!1}get tilingScheme(){if(!this.ready)throw new Cesium.DeveloperError("requestTileGeometry must not be called before ready returns true.");return this._tilingScheme}get ready(){return this._ready}init(i){this._ready=!1,this._errorEvent=new Cesium.Event,this._terrainDataStructure={heightScale:.001,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0};const s=i.credit;typeof s=="string"&&(this._credit=new Cesium.Credit(s)),this._rectangles=[];const o=i.ellipsoid??Cesium.Ellipsoid.WGS84;this._tilingScheme=new Cesium.GeographicTilingScheme({ellipsoid:o}),this._heightmapWidth=64,this._heightmapHeight=64,this._levelZeroMaximumGeometricError=Cesium.TerrainProvider.getEstimatedLevelZeroGeometricErrorForAHeightmap(o,Math.min(this._heightmapWidth,this._heightmapHeight),this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._ready=!0,this._topLevel=i.topLevel??5,this._bottomLevel=i.bottomLevel??25}requestTileGeometry(i,s,o,u){if(!this.ready)throw new Cesium.DeveloperError("requestTileGeometry must not be called before ready returns true.");if(o>=this._bottomLevel)return Promise.reject(`${o}该级别不发送请求!`);if(o<this._topLevel)return Promise.resolve(new Cesium.HeightmapTerrainData({buffer:this.getVHeightBuffer(),width:this._heightmapWidth,height:this._heightmapHeight,childTileMask:this.getChildTileMask(i,s,o),structure:this._terrainDataStructure}));let a="",l=this._url;Array.isArray(this._subdomains)&&this._subdomains.length&&(a=this._subdomains[(i+s)%this._subdomains.length],l=l.replace("{s}",a)),l=l.replace("{token}",this._token).replace("{x}",i).replace("{y}",s).replace("{z}",o+1);const c=Cesium.Resource.fetchArrayBuffer({url:l,request:u});if(c)return c.then(h=>h.byteLength<1e3?Promise.reject("无效数据"):inflate_2(h)).then(h=>{const d=new Cesium.HeightmapTerrainData({buffer:this.transformBuffer(h),width:this._heightmapWidth,height:this._heightmapHeight,childTileMask:this.getChildTileMask(i,s,o),structure:this._terrainDataStructure});return d._skirtHeight=6e3,d})}getLevelMaximumGeometricError(i){if(!this.ready)throw new Cesium.DeveloperError("requestTileGeometry must not be called before ready returns true.");return this._levelZeroMaximumGeometricError/(1<<i)}getTileDataAvailable(i,s,o){if(o<25)return!0}transformBuffer(i){let s=2;this._dataType==="int"?s=2:this._dataType==="float"&&(s=4);let o=i;if(o.length!==22500*s)return null;let u,a,l,c,h=new ArrayBuffer(s),d=new DataView(h),m=this._heightmapWidth,y=this._heightmapHeight,T=new Uint8Array(m*y*4);for(let g=0;g<y;g++)for(let v=0;v<m;v++){l=parseInt(149*g/(y-1)),c=parseInt(149*v/(m-1)),a=s*(150*l+c),s===4?(d.setInt8(0,o[a]),d.setInt8(1,o[a+1]),d.setInt8(2,o[a+2]),d.setInt8(3,o[a+3]),u=d.getFloat32(0,!0)):u=o[a]+256*o[a+1],(1e4<u||u<-2e3)&&(u=0);let O=(u+1e3)/.001,P=4*(g*m+v);T[P]=O/65536,T[1+P]=(O-256*T[P]*256)/256,T[2+P]=O-256*T[P]*256-256*T[1+P],T[3+P]=255}return T}getVHeightBuffer(){let i=this._vHeightBuffer;if(!Cesium.defined(i)){i=new Uint8ClampedArray(this._heightmapWidth*this._heightmapHeight*4);for(let s=0;s<this._heightmapWidth*this._heightmapHeight*4;)i[s++]=15,i[s++]=66,i[s++]=64,i[s++]=255;this._vHeightBuffer=i}return i}getChildTileMask(i,s,o){let u=new Cesium.Rectangle,a=this._tilingScheme,l=this._rectangles,c=a.tileXYToRectangle(i,s,o),h=0;for(let d=0;d<l.length&&h!==15;++d){let m=l[d];if(!(m.maxLevel<=o)){let y=m.rectangle,T=Cesium.Rectangle.intersection(y,c,u);Cesium.defined(T)&&(f(a,y,2*i,2*s,o+1,u)&&(h|=4),f(a,y,2*i+1,2*s,o+1,u)&&(h|=8),f(a,y,2*i,2*s+1,o+1,u)&&(h|=1),f(a,y,2*i+1,2*s+1,o+1,u)&&(h|=2))}}return h}}var src={exports:{}},indexLight={exports:{}},indexMinimal={},minimal={},aspromise,hasRequiredAspromise;function requireAspromise(){if(hasRequiredAspromise)return aspromise;hasRequiredAspromise=1,aspromise=r;function r(i,s){for(var o=new Array(arguments.length-1),u=0,a=2,l=!0;a<arguments.length;)o[u++]=arguments[a++];return new Promise(function(h,d){o[u]=function(y){if(l)if(l=!1,y)d(y);else{for(var T=new Array(arguments.length-1),g=0;g<T.length;)T[g++]=arguments[g];h.apply(null,T)}};try{i.apply(s||null,o)}catch(m){l&&(l=!1,d(m))}})}return aspromise}var base64$1={},hasRequiredBase64;function requireBase64(){return hasRequiredBase64||(hasRequiredBase64=1,function(r){var i=r;i.length=function(c){var h=c.length;if(!h)return 0;for(var d=0;--h%4>1&&c.charAt(h)==="=";)++d;return Math.ceil(c.length*3)/4-d};for(var s=new Array(64),o=new Array(123),u=0;u<64;)o[s[u]=u<26?u+65:u<52?u+71:u<62?u-4:u-59|43]=u++;i.encode=function(c,h,d){for(var m=null,y=[],T=0,g=0,v;h<d;){var O=c[h++];switch(g){case 0:y[T++]=s[O>>2],v=(O&3)<<4,g=1;break;case 1:y[T++]=s[v|O>>4],v=(O&15)<<2,g=2;break;case 2:y[T++]=s[v|O>>6],y[T++]=s[O&63],g=0;break}T>8191&&((m||(m=[])).push(String.fromCharCode.apply(String,y)),T=0)}return g&&(y[T++]=s[v],y[T++]=61,g===1&&(y[T++]=61)),m?(T&&m.push(String.fromCharCode.apply(String,y.slice(0,T))),m.join("")):String.fromCharCode.apply(String,y.slice(0,T))};var a="invalid encoding";i.decode=function(c,h,d){for(var m=d,y=0,T,g=0;g<c.length;){var v=c.charCodeAt(g++);if(v===61&&y>1)break;if((v=o[v])===void 0)throw Error(a);switch(y){case 0:T=v,y=1;break;case 1:h[d++]=T<<2|(v&48)>>4,T=v,y=2;break;case 2:h[d++]=(T&15)<<4|(v&60)>>2,T=v,y=3;break;case 3:h[d++]=(T&3)<<6|v,y=0;break}}if(y===1)throw Error(a);return d-m},i.test=function(c){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(c)}}(base64$1)),base64$1}var eventemitter,hasRequiredEventemitter;function requireEventemitter(){if(hasRequiredEventemitter)return eventemitter;hasRequiredEventemitter=1,eventemitter=r;function r(){this._listeners={}}return r.prototype.on=function(s,o,u){return(this._listeners[s]||(this._listeners[s]=[])).push({fn:o,ctx:u||this}),this},r.prototype.off=function(s,o){if(s===void 0)this._listeners={};else if(o===void 0)this._listeners[s]=[];else for(var u=this._listeners[s],a=0;a<u.length;)u[a].fn===o?u.splice(a,1):++a;return this},r.prototype.emit=function(s){var o=this._listeners[s];if(o){for(var u=[],a=1;a<arguments.length;)u.push(arguments[a++]);for(a=0;a<o.length;)o[a].fn.apply(o[a++].ctx,u)}return this},eventemitter}var float,hasRequiredFloat;function requireFloat(){if(hasRequiredFloat)return float;hasRequiredFloat=1,float=r(r);function r(a){return typeof Float32Array<"u"?function(){var l=new Float32Array([-0]),c=new Uint8Array(l.buffer),h=c[3]===128;function d(g,v,O){l[0]=g,v[O]=c[0],v[O+1]=c[1],v[O+2]=c[2],v[O+3]=c[3]}function m(g,v,O){l[0]=g,v[O]=c[3],v[O+1]=c[2],v[O+2]=c[1],v[O+3]=c[0]}a.writeFloatLE=h?d:m,a.writeFloatBE=h?m:d;function y(g,v){return c[0]=g[v],c[1]=g[v+1],c[2]=g[v+2],c[3]=g[v+3],l[0]}function T(g,v){return c[3]=g[v],c[2]=g[v+1],c[1]=g[v+2],c[0]=g[v+3],l[0]}a.readFloatLE=h?y:T,a.readFloatBE=h?T:y}():function(){function l(h,d,m,y){var T=d<0?1:0;if(T&&(d=-d),d===0)h(1/d>0?0:2147483648,m,y);else if(isNaN(d))h(2143289344,m,y);else if(d>34028234663852886e22)h((T<<31|2139095040)>>>0,m,y);else if(d<11754943508222875e-54)h((T<<31|Math.round(d/1401298464324817e-60))>>>0,m,y);else{var g=Math.floor(Math.log(d)/Math.LN2),v=Math.round(d*Math.pow(2,-g)*8388608)&8388607;h((T<<31|g+127<<23|v)>>>0,m,y)}}a.writeFloatLE=l.bind(null,i),a.writeFloatBE=l.bind(null,s);function c(h,d,m){var y=h(d,m),T=(y>>31)*2+1,g=y>>>23&255,v=y&8388607;return g===255?v?NaN:T*(1/0):g===0?T*1401298464324817e-60*v:T*Math.pow(2,g-150)*(v+8388608)}a.readFloatLE=c.bind(null,o),a.readFloatBE=c.bind(null,u)}(),typeof Float64Array<"u"?function(){var l=new Float64Array([-0]),c=new Uint8Array(l.buffer),h=c[7]===128;function d(g,v,O){l[0]=g,v[O]=c[0],v[O+1]=c[1],v[O+2]=c[2],v[O+3]=c[3],v[O+4]=c[4],v[O+5]=c[5],v[O+6]=c[6],v[O+7]=c[7]}function m(g,v,O){l[0]=g,v[O]=c[7],v[O+1]=c[6],v[O+2]=c[5],v[O+3]=c[4],v[O+4]=c[3],v[O+5]=c[2],v[O+6]=c[1],v[O+7]=c[0]}a.writeDoubleLE=h?d:m,a.writeDoubleBE=h?m:d;function y(g,v){return c[0]=g[v],c[1]=g[v+1],c[2]=g[v+2],c[3]=g[v+3],c[4]=g[v+4],c[5]=g[v+5],c[6]=g[v+6],c[7]=g[v+7],l[0]}function T(g,v){return c[7]=g[v],c[6]=g[v+1],c[5]=g[v+2],c[4]=g[v+3],c[3]=g[v+4],c[2]=g[v+5],c[1]=g[v+6],c[0]=g[v+7],l[0]}a.readDoubleLE=h?y:T,a.readDoubleBE=h?T:y}():function(){function l(h,d,m,y,T,g){var v=y<0?1:0;if(v&&(y=-y),y===0)h(0,T,g+d),h(1/y>0?0:2147483648,T,g+m);else if(isNaN(y))h(0,T,g+d),h(2146959360,T,g+m);else if(y>17976931348623157e292)h(0,T,g+d),h((v<<31|2146435072)>>>0,T,g+m);else{var O;if(y<22250738585072014e-324)O=y/5e-324,h(O>>>0,T,g+d),h((v<<31|O/4294967296)>>>0,T,g+m);else{var P=Math.floor(Math.log(y)/Math.LN2);P===1024&&(P=1023),O=y*Math.pow(2,-P),h(O*4503599627370496>>>0,T,g+d),h((v<<31|P+1023<<20|O*1048576&1048575)>>>0,T,g+m)}}}a.writeDoubleLE=l.bind(null,i,0,4),a.writeDoubleBE=l.bind(null,s,4,0);function c(h,d,m,y,T){var g=h(y,T+d),v=h(y,T+m),O=(v>>31)*2+1,P=v>>>20&2047,_=4294967296*(v&1048575)+g;return P===2047?_?NaN:O*(1/0):P===0?O*5e-324*_:O*Math.pow(2,P-1075)*(_+4503599627370496)}a.readDoubleLE=c.bind(null,o,0,4),a.readDoubleBE=c.bind(null,u,4,0)}(),a}function i(a,l,c){l[c]=a&255,l[c+1]=a>>>8&255,l[c+2]=a>>>16&255,l[c+3]=a>>>24}function s(a,l,c){l[c]=a>>>24,l[c+1]=a>>>16&255,l[c+2]=a>>>8&255,l[c+3]=a&255}function o(a,l){return(a[l]|a[l+1]<<8|a[l+2]<<16|a[l+3]<<24)>>>0}function u(a,l){return(a[l]<<24|a[l+1]<<16|a[l+2]<<8|a[l+3])>>>0}return float}var inquire_1,hasRequiredInquire;function requireInquire(){if(hasRequiredInquire)return inquire_1;hasRequiredInquire=1,inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(r){}return null}return inquire_1}var utf8$2={},hasRequiredUtf8;function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(r){var i=r;i.length=function(o){for(var u=0,a=0,l=0;l<o.length;++l)a=o.charCodeAt(l),a<128?u+=1:a<2048?u+=2:(a&64512)===55296&&(o.charCodeAt(l+1)&64512)===56320?(++l,u+=4):u+=3;return u},i.read=function(o,u,a){var l=a-u;if(l<1)return"";for(var c=null,h=[],d=0,m;u<a;)m=o[u++],m<128?h[d++]=m:m>191&&m<224?h[d++]=(m&31)<<6|o[u++]&63:m>239&&m<365?(m=((m&7)<<18|(o[u++]&63)<<12|(o[u++]&63)<<6|o[u++]&63)-65536,h[d++]=55296+(m>>10),h[d++]=56320+(m&1023)):h[d++]=(m&15)<<12|(o[u++]&63)<<6|o[u++]&63,d>8191&&((c||(c=[])).push(String.fromCharCode.apply(String,h)),d=0);return c?(d&&c.push(String.fromCharCode.apply(String,h.slice(0,d))),c.join("")):String.fromCharCode.apply(String,h.slice(0,d))},i.write=function(o,u,a){for(var l=a,c,h,d=0;d<o.length;++d)c=o.charCodeAt(d),c<128?u[a++]=c:c<2048?(u[a++]=c>>6|192,u[a++]=c&63|128):(c&64512)===55296&&((h=o.charCodeAt(d+1))&64512)===56320?(c=65536+((c&1023)<<10)+(h&1023),++d,u[a++]=c>>18|240,u[a++]=c>>12&63|128,u[a++]=c>>6&63|128,u[a++]=c&63|128):(u[a++]=c>>12|224,u[a++]=c>>6&63|128,u[a++]=c&63|128);return a-l}}(utf8$2)),utf8$2}var pool_1,hasRequiredPool;function requirePool(){if(hasRequiredPool)return pool_1;hasRequiredPool=1,pool_1=r;function r(i,s,o){var u=o||8192,a=u>>>1,l=null,c=u;return function(d){if(d<1||d>a)return i(d);c+d>u&&(l=i(u),c=0);var m=s.call(l,c,c+=d);return c&7&&(c=(c|7)+1),m}}return pool_1}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=i;var r=requireMinimal();function i(a,l){this.lo=a>>>0,this.hi=l>>>0}var s=i.zero=new i(0,0);s.toNumber=function(){return 0},s.zzEncode=s.zzDecode=function(){return this},s.length=function(){return 1};var o=i.zeroHash="\0\0\0\0\0\0\0\0";i.fromNumber=function(l){if(l===0)return s;var c=l<0;c&&(l=-l);var h=l>>>0,d=(l-h)/4294967296>>>0;return c&&(d=~d>>>0,h=~h>>>0,++h>4294967295&&(h=0,++d>4294967295&&(d=0))),new i(h,d)},i.from=function(l){if(typeof l=="number")return i.fromNumber(l);if(r.isString(l))if(r.Long)l=r.Long.fromString(l);else return i.fromNumber(parseInt(l,10));return l.low||l.high?new i(l.low>>>0,l.high>>>0):s},i.prototype.toNumber=function(l){if(!l&&this.hi>>>31){var c=~this.lo+1>>>0,h=~this.hi>>>0;return c||(h=h+1>>>0),-(c+h*4294967296)}return this.lo+this.hi*4294967296},i.prototype.toLong=function(l){return r.Long?new r.Long(this.lo|0,this.hi|0,!!l):{low:this.lo|0,high:this.hi|0,unsigned:!!l}};var u=String.prototype.charCodeAt;return i.fromHash=function(l){return l===o?s:new i((u.call(l,0)|u.call(l,1)<<8|u.call(l,2)<<16|u.call(l,3)<<24)>>>0,(u.call(l,4)|u.call(l,5)<<8|u.call(l,6)<<16|u.call(l,7)<<24)>>>0)},i.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},i.prototype.zzEncode=function(){var l=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^l)>>>0,this.lo=(this.lo<<1^l)>>>0,this},i.prototype.zzDecode=function(){var l=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^l)>>>0,this.hi=(this.hi>>>1^l)>>>0,this},i.prototype.length=function(){var l=this.lo,c=(this.lo>>>28|this.hi<<4)>>>0,h=this.hi>>>24;return h===0?c===0?l<16384?l<128?1:2:l<2097152?3:4:c<16384?c<128?5:6:c<2097152?7:8:h<128?9:10},longbits}var hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(r){var i=r;i.asPromise=requireAspromise(),i.base64=requireBase64(),i.EventEmitter=requireEventemitter(),i.float=requireFloat(),i.inquire=requireInquire(),i.utf8=requireUtf8(),i.pool=requirePool(),i.LongBits=requireLongbits(),i.isNode=!!(typeof commonjsGlobal<"u"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),i.global=i.isNode&&commonjsGlobal||typeof window<"u"&&window||typeof self<"u"&&self||commonjsGlobal,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,l){var c=a[l];return c!=null&&a.hasOwnProperty(l)?typeof c!="object"||(Array.isArray(c)?c.length:Object.keys(c).length)>0:!1},i.Buffer=function(){try{var u=i.inquire("buffer").Buffer;return u.prototype.utf8Write?u:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,l){var c=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(c.lo,c.hi,l):c.toNumber(!!l)};function s(u,a,l){for(var c=Object.keys(a),h=0;h<c.length;++h)(u[c[h]]===void 0||!l)&&(u[c[h]]=a[c[h]]);return u}i.merge=s,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function o(u){function a(l,c){if(!(this instanceof a))return new a(l,c);Object.defineProperty(this,"message",{get:function(){return l}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),c&&s(this,c)}return a.prototype=Object.create(Error.prototype,{constructor:{value:a,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return u},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),a}i.newError=o,i.ProtocolError=o("ProtocolError"),i.oneOfGetter=function(a){for(var l={},c=0;c<a.length;++c)l[a[c]]=1;return function(){for(var h=Object.keys(this),d=h.length-1;d>-1;--d)if(l[h[d]]===1&&this[h[d]]!==void 0&&this[h[d]]!==null)return h[d]}},i.oneOfSetter=function(a){return function(l){for(var c=0;c<a.length;++c)a[c]!==l&&delete this[a[c]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var u=i.Buffer;if(!u){i._Buffer_from=i._Buffer_allocUnsafe=null;return}i._Buffer_from=u.from!==Uint8Array.from&&u.from||function(l,c){return new u(l,c)},i._Buffer_allocUnsafe=u.allocUnsafe||function(l){return new u(l)}}}(minimal)),minimal}var writer=Writer$1,util$7=requireMinimal(),BufferWriter$1,LongBits$1=util$7.LongBits,base64=util$7.base64,utf8$1=util$7.utf8;function Op(r,i,s){this.fn=r,this.len=i,this.next=void 0,this.val=s}function noop(){}function State(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function Writer$1(){this.len=0,this.head=new Op(noop,0,0),this.tail=this.head,this.states=null}var create$1=function r(){return util$7.Buffer?function(){return(Writer$1.create=function(){return new BufferWriter$1})()}:function(){return new Writer$1}};Writer$1.create=create$1();Writer$1.alloc=function r(i){return new util$7.Array(i)};util$7.Array!==Array&&(Writer$1.alloc=util$7.pool(Writer$1.alloc,util$7.Array.prototype.subarray));Writer$1.prototype._push=function r(i,s,o){return this.tail=this.tail.next=new Op(i,s,o),this.len+=s,this};function writeByte(r,i,s){i[s]=r&255}function writeVarint32(r,i,s){for(;r>127;)i[s++]=r&127|128,r>>>=7;i[s]=r}function VarintOp(r,i){this.len=r,this.next=void 0,this.val=i}VarintOp.prototype=Object.create(Op.prototype);VarintOp.prototype.fn=writeVarint32;Writer$1.prototype.uint32=function r(i){return this.len+=(this.tail=this.tail.next=new VarintOp((i=i>>>0)<128?1:i<16384?2:i<2097152?3:i<268435456?4:5,i)).len,this};Writer$1.prototype.int32=function r(i){return i<0?this._push(writeVarint64,10,LongBits$1.fromNumber(i)):this.uint32(i)};Writer$1.prototype.sint32=function r(i){return this.uint32((i<<1^i>>31)>>>0)};function writeVarint64(r,i,s){for(;r.hi;)i[s++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)i[s++]=r.lo&127|128,r.lo=r.lo>>>7;i[s++]=r.lo}Writer$1.prototype.uint64=function r(i){var s=LongBits$1.from(i);return this._push(writeVarint64,s.length(),s)};Writer$1.prototype.int64=Writer$1.prototype.uint64;Writer$1.prototype.sint64=function r(i){var s=LongBits$1.from(i).zzEncode();return this._push(writeVarint64,s.length(),s)};Writer$1.prototype.bool=function r(i){return this._push(writeByte,1,i?1:0)};function writeFixed32(r,i,s){i[s]=r&255,i[s+1]=r>>>8&255,i[s+2]=r>>>16&255,i[s+3]=r>>>24}Writer$1.prototype.fixed32=function r(i){return this._push(writeFixed32,4,i>>>0)};Writer$1.prototype.sfixed32=Writer$1.prototype.fixed32;Writer$1.prototype.fixed64=function r(i){var s=LongBits$1.from(i);return this._push(writeFixed32,4,s.lo)._push(writeFixed32,4,s.hi)};Writer$1.prototype.sfixed64=Writer$1.prototype.fixed64;Writer$1.prototype.float=function r(i){return this._push(util$7.float.writeFloatLE,4,i)};Writer$1.prototype.double=function r(i){return this._push(util$7.float.writeDoubleLE,8,i)};var writeBytes=util$7.Array.prototype.set?function r(i,s,o){s.set(i,o)}:function r(i,s,o){for(var u=0;u<i.length;++u)s[o+u]=i[u]};Writer$1.prototype.bytes=function r(i){var s=i.length>>>0;if(!s)return this._push(writeByte,1,0);if(util$7.isString(i)){var o=Writer$1.alloc(s=base64.length(i));base64.decode(i,o,0),i=o}return this.uint32(s)._push(writeBytes,s,i)};Writer$1.prototype.string=function r(i){var s=utf8$1.length(i);return s?this.uint32(s)._push(utf8$1.write,s,i):this._push(writeByte,1,0)};Writer$1.prototype.fork=function r(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this};Writer$1.prototype.reset=function r(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this};Writer$1.prototype.ldelim=function r(){var i=this.head,s=this.tail,o=this.len;return this.reset().uint32(o),o&&(this.tail.next=i.next,this.tail=s,this.len+=o),this};Writer$1.prototype.finish=function r(){for(var i=this.head.next,s=this.constructor.alloc(this.len),o=0;i;)i.fn(i.val,s,o),o+=i.len,i=i.next;return s};Writer$1._configure=function(r){BufferWriter$1=r,Writer$1.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer=writer;(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util$6=requireMinimal();function BufferWriter(){Writer.call(this)}BufferWriter._configure=function(){BufferWriter.alloc=util$6._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$6.Buffer&&util$6.Buffer.prototype instanceof Uint8Array&&util$6.Buffer.prototype.set.name==="set"?function(i,s,o){s.set(i,o)}:function(i,s,o){if(i.copy)i.copy(s,o,0,i.length);else for(var u=0;u<i.length;)s[o++]=i[u++]}};BufferWriter.prototype.bytes=function r(i){util$6.isString(i)&&(i=util$6._Buffer_from(i,"base64"));var s=i.length>>>0;return this.uint32(s),s&&this._push(BufferWriter.writeBytesBuffer,s,i),this};function writeStringBuffer(r,i,s){r.length<40?util$6.utf8.write(r,i,s):i.utf8Write?i.utf8Write(r,s):i.write(r,s)}BufferWriter.prototype.string=function r(i){var s=util$6.Buffer.byteLength(i);return this.uint32(s),s&&this._push(writeStringBuffer,s,i),this};BufferWriter._configure();var reader=Reader$1,util$5=requireMinimal(),BufferReader$1,LongBits=util$5.LongBits,utf8=util$5.utf8;function indexOutOfRange(r,i){return RangeError("index out of range: "+r.pos+" + "+(i||1)+" > "+r.len)}function Reader$1(r){this.buf=r,this.pos=0,this.len=r.length}var create_array=typeof Uint8Array<"u"?function r(i){if(i instanceof Uint8Array||Array.isArray(i))return new Reader$1(i);throw Error("illegal buffer")}:function r(i){if(Array.isArray(i))return new Reader$1(i);throw Error("illegal buffer")},create=function r(){return util$5.Buffer?function(s){return(Reader$1.create=function(u){return util$5.Buffer.isBuffer(u)?new BufferReader$1(u):create_array(u)})(s)}:create_array};Reader$1.create=create();Reader$1.prototype._slice=util$5.Array.prototype.subarray||util$5.Array.prototype.slice;Reader$1.prototype.uint32=function r(){var i=4294967295;return function(){if(i=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(i=(i|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(i=(i|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(i=(i|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(i=(i|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return i;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return i}}();Reader$1.prototype.int32=function r(){return this.uint32()|0};Reader$1.prototype.sint32=function r(){var i=this.uint32();return i>>>1^-(i&1)|0};function readLongVarint(){var r=new LongBits(0,0),i=0;if(this.len-this.pos>4){for(;i<4;++i)if(r.lo=(r.lo|(this.buf[this.pos]&127)<<i*7)>>>0,this.buf[this.pos++]<128)return r;if(r.lo=(r.lo|(this.buf[this.pos]&127)<<28)>>>0,r.hi=(r.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return r;i=0}else{for(;i<3;++i){if(this.pos>=this.len)throw indexOutOfRange(this);if(r.lo=(r.lo|(this.buf[this.pos]&127)<<i*7)>>>0,this.buf[this.pos++]<128)return r}return r.lo=(r.lo|(this.buf[this.pos++]&127)<<i*7)>>>0,r}if(this.len-this.pos>4){for(;i<5;++i)if(r.hi=(r.hi|(this.buf[this.pos]&127)<<i*7+3)>>>0,this.buf[this.pos++]<128)return r}else for(;i<5;++i){if(this.pos>=this.len)throw indexOutOfRange(this);if(r.hi=(r.hi|(this.buf[this.pos]&127)<<i*7+3)>>>0,this.buf[this.pos++]<128)return r}throw Error("invalid varint encoding")}Reader$1.prototype.bool=function r(){return this.uint32()!==0};function readFixed32_end(r,i){return(r[i-4]|r[i-3]<<8|r[i-2]<<16|r[i-1]<<24)>>>0}Reader$1.prototype.fixed32=function r(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)};Reader$1.prototype.sfixed32=function r(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)|0};function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$1.prototype.float=function r(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var i=util$5.float.readFloatLE(this.buf,this.pos);return this.pos+=4,i};Reader$1.prototype.double=function r(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var i=util$5.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,i};Reader$1.prototype.bytes=function r(){var i=this.uint32(),s=this.pos,o=this.pos+i;if(o>this.len)throw indexOutOfRange(this,i);if(this.pos+=i,Array.isArray(this.buf))return this.buf.slice(s,o);if(s===o){var u=util$5.Buffer;return u?u.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,s,o)};Reader$1.prototype.string=function r(){var i=this.bytes();return utf8.read(i,0,i.length)};Reader$1.prototype.skip=function r(i){if(typeof i=="number"){if(this.pos+i>this.len)throw indexOutOfRange(this,i);this.pos+=i}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(this.buf[this.pos++]&128);return this};Reader$1.prototype.skipType=function(r){switch(r){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(r=this.uint32()&7)!==4;)this.skipType(r);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+r+" at offset "+this.pos)}return this};Reader$1._configure=function(r){BufferReader$1=r,Reader$1.create=create(),BufferReader$1._configure();var i=util$5.Long?"toLong":"toNumber";util$5.merge(Reader$1.prototype,{int64:function(){return readLongVarint.call(this)[i](!1)},uint64:function(){return readLongVarint.call(this)[i](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[i](!1)},fixed64:function(){return readFixed64.call(this)[i](!0)},sfixed64:function(){return readFixed64.call(this)[i](!1)}})};var reader_buffer=BufferReader,Reader=reader;(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util$4=requireMinimal();function BufferReader(r){Reader.call(this,r)}BufferReader._configure=function(){util$4.Buffer&&(BufferReader.prototype._slice=util$4.Buffer.prototype.slice)};BufferReader.prototype.string=function r(){var i=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+i,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+i,this.len))};BufferReader._configure();var rpc={},service$1=Service$1,util$3=requireMinimal();(Service$1.prototype=Object.create(util$3.EventEmitter.prototype)).constructor=Service$1;function Service$1(r,i,s){if(typeof r!="function")throw TypeError("rpcImpl must be a function");util$3.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!i,this.responseDelimited=!!s}Service$1.prototype.rpcCall=function r(i,s,o,u,a){if(!u)throw TypeError("request must be specified");var l=this;if(!a)return util$3.asPromise(r,l,i,s,o,u);if(!l.rpcImpl){setTimeout(function(){a(Error("already ended"))},0);return}try{return l.rpcImpl(i,s[l.requestDelimited?"encodeDelimited":"encode"](u).finish(),function(h,d){if(h)return l.emit("error",h,i),a(h);if(d===null){l.end(!0);return}if(!(d instanceof o))try{d=o[l.responseDelimited?"decodeDelimited":"decode"](d)}catch(m){return l.emit("error",m,i),a(m)}return l.emit("data",d,i),a(null,d)})}catch(c){l.emit("error",c,i),setTimeout(function(){a(c)},0);return}};Service$1.prototype.end=function r(i){return this.rpcImpl&&(i||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this};(function(r){var i=r;i.Service=service$1})(rpc);var roots={};(function(r){var i=r;i.build="minimal",i.Writer=writer,i.BufferWriter=writer_buffer,i.Reader=reader,i.BufferReader=reader_buffer,i.util=requireMinimal(),i.rpc=rpc,i.roots=roots,i.configure=s;function s(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}s()})(indexMinimal);var util$2={exports:{}},codegen_1=codegen;function codegen(r,i){typeof r=="string"&&(i=r,r=void 0);var s=[];function o(a){if(typeof a!="string"){var l=u();if(codegen.verbose&&console.warn("codegen: "+l),l="return "+l,a){for(var c=Object.keys(a),h=new Array(c.length+1),d=new Array(c.length),m=0;m<c.length;)h[m]=c[m],d[m]=a[c[m++]];return h[m]=l,Function.apply(null,h).apply(null,d)}return Function(l)()}for(var y=new Array(arguments.length-1),T=0;T<y.length;)y[T]=arguments[++T];if(T=0,a=a.replace(/%([%dfijs])/g,function(v,O){var P=y[T++];switch(O){case"d":case"f":return String(Number(P));case"i":return String(Math.floor(P));case"j":return JSON.stringify(P);case"s":return String(P)}return"%"}),T!==y.length)throw Error("parameter count mismatch");return s.push(a),o}function u(a){return"function "+(a||i||"")+"("+(r&&r.join(",")||"")+`){
|
|
21
|
-
`+s.join(`
|
|
22
|
-
`)+`
|
|
23
|
-
}`}return o.toString=u,o}codegen.verbose=!1;var fetch_1=fetch$1,asPromise=requireAspromise(),inquire=requireInquire(),fs=inquire("fs");function fetch$1(r,i,s){return typeof i=="function"?(s=i,i={}):i||(i={}),s?!i.xhr&&fs&&fs.readFile?fs.readFile(r,function(u,a){return u&&typeof XMLHttpRequest<"u"?fetch$1.xhr(r,i,s):u?s(u):s(null,i.binary?a:a.toString("utf8"))}):fetch$1.xhr(r,i,s):asPromise(fetch$1,this,r,i)}fetch$1.xhr=function r(i,s,o){var u=new XMLHttpRequest;u.onreadystatechange=function(){if(u.readyState===4){if(u.status!==0&&u.status!==200)return o(Error("status "+u.status));if(s.binary){var l=u.response;if(!l){l=[];for(var c=0;c<u.responseText.length;++c)l.push(u.responseText.charCodeAt(c)&255)}return o(null,typeof Uint8Array<"u"?new Uint8Array(l):l)}return o(null,u.responseText)}},s.binary&&("overrideMimeType"in u&&u.overrideMimeType("text/plain; charset=x-user-defined"),u.responseType="arraybuffer"),u.open("GET",i),u.send()};var path={};(function(r){var i=r,s=i.isAbsolute=function(a){return/^(?:\/|\w+:)/.test(a)},o=i.normalize=function(a){a=a.replace(/\\/g,"/").replace(/\/{2,}/g,"/");var l=a.split("/"),c=s(a),h="";c&&(h=l.shift()+"/");for(var d=0;d<l.length;)l[d]===".."?d>0&&l[d-1]!==".."?l.splice(--d,2):c?l.splice(d,1):++d:l[d]==="."?l.splice(d,1):++d;return h+l.join("/")};i.resolve=function(a,l,c){return c||(l=o(l)),s(l)?l:(c||(a=o(a)),(a=a.replace(/(?:\/|^)[^/]+$/,"")).length?o(a+"/"+l):l)}})(path);var types$1={},hasRequiredTypes;function requireTypes(){return hasRequiredTypes||(hasRequiredTypes=1,function(r){var i=r,s=requireUtil(),o=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function u(a,l){var c=0,h={};for(l|=0;c<a.length;)h[o[c+l]]=a[c++];return h}i.basic=u([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),i.defaults=u([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",s.emptyArray,null]),i.long=u([0,0,0,1,1],7),i.mapKey=u([0,0,0,5,5,0,0,0,1,1,0,2],2),i.packed=u([1,5,0,0,0,5,5,0,0,0,1,1,0])}(types$1)),types$1}var field,hasRequiredField;function requireField(){if(hasRequiredField)return field;hasRequiredField=1,field=l;var r=requireObject();((l.prototype=Object.create(r.prototype)).constructor=l).className="Field";var i=require_enum(),s=requireTypes(),o=requireUtil(),u,a=/^required|optional|repeated$/;l.fromJSON=function(h,d){return new l(h,d.id,d.type,d.rule,d.extend,d.options,d.comment)};function l(c,h,d,m,y,T,g){if(o.isObject(m)?(g=y,T=m,m=y=void 0):o.isObject(y)&&(g=T,T=y,y=void 0),r.call(this,c,T),!o.isInteger(h)||h<0)throw TypeError("id must be a non-negative integer");if(!o.isString(d))throw TypeError("type must be a string");if(m!==void 0&&!a.test(m=m.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(y!==void 0&&!o.isString(y))throw TypeError("extend must be a string");m==="proto3_optional"&&(m="optional"),this.rule=m&&m!=="optional"?m:void 0,this.type=d,this.id=h,this.extend=y||void 0,this.required=m==="required",this.optional=!this.required,this.repeated=m==="repeated",this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=o.Long?s.long[d]!==void 0:!1,this.bytes=d==="bytes",this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=g}return Object.defineProperty(l.prototype,"packed",{get:function(){return this._packed===null&&(this._packed=this.getOption("packed")!==!1),this._packed}}),l.prototype.setOption=function(h,d,m){return h==="packed"&&(this._packed=null),r.prototype.setOption.call(this,h,d,m)},l.prototype.toJSON=function(h){var d=h?!!h.keepComments:!1;return o.toObject(["rule",this.rule!=="optional"&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",d?this.comment:void 0])},l.prototype.resolve=function(){if(this.resolved)return this;if((this.typeDefault=s.defaults[this.type])===void 0?(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof u?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]):this.options&&this.options.proto3_optional&&(this.typeDefault=null),this.options&&this.options.default!=null&&(this.typeDefault=this.options.default,this.resolvedType instanceof i&&typeof this.typeDefault=="string"&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&((this.options.packed===!0||this.options.packed!==void 0&&this.resolvedType&&!(this.resolvedType instanceof i))&&delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=o.Long.fromNumber(this.typeDefault,this.type.charAt(0)==="u"),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&typeof this.typeDefault=="string"){var h;o.base64.test(this.typeDefault)?o.base64.decode(this.typeDefault,h=o.newBuffer(o.base64.length(this.typeDefault)),0):o.utf8.write(this.typeDefault,h=o.newBuffer(o.utf8.length(this.typeDefault)),0),this.typeDefault=h}return this.map?this.defaultValue=o.emptyObject:this.repeated?this.defaultValue=o.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof u&&(this.parent.ctor.prototype[this.name]=this.defaultValue),r.prototype.resolve.call(this)},l.d=function(h,d,m,y){return typeof d=="function"?d=o.decorateType(d).name:d&&typeof d=="object"&&(d=o.decorateEnum(d).name),function(g,v){o.decorateType(g.constructor).add(new l(v,h,d,m,{default:y}))}},l._configure=function(h){u=h},field}var oneof,hasRequiredOneof;function requireOneof(){if(hasRequiredOneof)return oneof;hasRequiredOneof=1,oneof=o;var r=requireObject();((o.prototype=Object.create(r.prototype)).constructor=o).className="OneOf";var i=requireField(),s=requireUtil();function o(a,l,c,h){if(Array.isArray(l)||(c=l,l=void 0),r.call(this,a,c),!(l===void 0||Array.isArray(l)))throw TypeError("fieldNames must be an Array");this.oneof=l||[],this.fieldsArray=[],this.comment=h}o.fromJSON=function(l,c){return new o(l,c.oneof,c.options,c.comment)},o.prototype.toJSON=function(l){var c=l?!!l.keepComments:!1;return s.toObject(["options",this.options,"oneof",this.oneof,"comment",c?this.comment:void 0])};function u(a){if(a.parent)for(var l=0;l<a.fieldsArray.length;++l)a.fieldsArray[l].parent||a.parent.add(a.fieldsArray[l])}return o.prototype.add=function(l){if(!(l instanceof i))throw TypeError("field must be a Field");return l.parent&&l.parent!==this.parent&&l.parent.remove(l),this.oneof.push(l.name),this.fieldsArray.push(l),l.partOf=this,u(this),this},o.prototype.remove=function(l){if(!(l instanceof i))throw TypeError("field must be a Field");var c=this.fieldsArray.indexOf(l);if(c<0)throw Error(l+" is not a member of "+this);return this.fieldsArray.splice(c,1),c=this.oneof.indexOf(l.name),c>-1&&this.oneof.splice(c,1),l.partOf=null,this},o.prototype.onAdd=function(l){r.prototype.onAdd.call(this,l);for(var c=this,h=0;h<this.oneof.length;++h){var d=l.get(this.oneof[h]);d&&!d.partOf&&(d.partOf=c,c.fieldsArray.push(d))}u(this)},o.prototype.onRemove=function(l){for(var c=0,h;c<this.fieldsArray.length;++c)(h=this.fieldsArray[c]).parent&&h.parent.remove(h);r.prototype.onRemove.call(this,l)},o.d=function(){for(var l=new Array(arguments.length),c=0;c<arguments.length;)l[c]=arguments[c++];return function(d,m){s.decorateType(d.constructor).add(new o(m,l)),Object.defineProperty(d,m,{get:s.oneOfGetter(l),set:s.oneOfSetter(l)})}},oneof}var namespace,hasRequiredNamespace;function requireNamespace(){if(hasRequiredNamespace)return namespace;hasRequiredNamespace=1,namespace=h;var r=requireObject();((h.prototype=Object.create(r.prototype)).constructor=h).className="Namespace";var i=requireField(),s=requireUtil(),o=requireOneof(),u,a,l;h.fromJSON=function(y,T){return new h(y,T.options).addJSON(T.nested)};function c(m,y){if(m&&m.length){for(var T={},g=0;g<m.length;++g)T[m[g].name]=m[g].toJSON(y);return T}}h.arrayToJSON=c,h.isReservedId=function(y,T){if(y){for(var g=0;g<y.length;++g)if(typeof y[g]!="string"&&y[g][0]<=T&&y[g][1]>T)return!0}return!1},h.isReservedName=function(y,T){if(y){for(var g=0;g<y.length;++g)if(y[g]===T)return!0}return!1};function h(m,y){r.call(this,m,y),this.nested=void 0,this._nestedArray=null}function d(m){return m._nestedArray=null,m}return Object.defineProperty(h.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=s.toArray(this.nested))}}),h.prototype.toJSON=function(y){return s.toObject(["options",this.options,"nested",c(this.nestedArray,y)])},h.prototype.addJSON=function(y){var T=this;if(y)for(var g=Object.keys(y),v=0,O;v<g.length;++v)O=y[g[v]],T.add((O.fields!==void 0?u.fromJSON:O.values!==void 0?l.fromJSON:O.methods!==void 0?a.fromJSON:O.id!==void 0?i.fromJSON:h.fromJSON)(g[v],O));return this},h.prototype.get=function(y){return this.nested&&this.nested[y]||null},h.prototype.getEnum=function(y){if(this.nested&&this.nested[y]instanceof l)return this.nested[y].values;throw Error("no such enum: "+y)},h.prototype.add=function(y){if(!(y instanceof i&&y.extend!==void 0||y instanceof u||y instanceof o||y instanceof l||y instanceof a||y instanceof h))throw TypeError("object must be a valid nested object");if(!this.nested)this.nested={};else{var T=this.get(y.name);if(T)if(T instanceof h&&y instanceof h&&!(T instanceof u||T instanceof a)){for(var g=T.nestedArray,v=0;v<g.length;++v)y.add(g[v]);this.remove(T),this.nested||(this.nested={}),y.setOptions(T.options,!0)}else throw Error("duplicate name '"+y.name+"' in "+this)}return this.nested[y.name]=y,y.onAdd(this),d(this)},h.prototype.remove=function(y){if(!(y instanceof r))throw TypeError("object must be a ReflectionObject");if(y.parent!==this)throw Error(y+" is not a member of "+this);return delete this.nested[y.name],Object.keys(this.nested).length||(this.nested=void 0),y.onRemove(this),d(this)},h.prototype.define=function(y,T){if(s.isString(y))y=y.split(".");else if(!Array.isArray(y))throw TypeError("illegal path");if(y&&y.length&&y[0]==="")throw Error("path must be relative");for(var g=this;y.length>0;){var v=y.shift();if(g.nested&&g.nested[v]){if(g=g.nested[v],!(g instanceof h))throw Error("path conflicts with non-namespace objects")}else g.add(g=new h(v))}return T&&g.addJSON(T),g},h.prototype.resolveAll=function(){for(var y=this.nestedArray,T=0;T<y.length;)y[T]instanceof h?y[T++].resolveAll():y[T++].resolve();return this.resolve()},h.prototype.lookup=function(y,T,g){if(typeof T=="boolean"?(g=T,T=void 0):T&&!Array.isArray(T)&&(T=[T]),s.isString(y)&&y.length){if(y===".")return this.root;y=y.split(".")}else if(!y.length)return this;if(y[0]==="")return this.root.lookup(y.slice(1),T);var v=this.get(y[0]);if(v){if(y.length===1){if(!T||T.indexOf(v.constructor)>-1)return v}else if(v instanceof h&&(v=v.lookup(y.slice(1),T,!0)))return v}else for(var O=0;O<this.nestedArray.length;++O)if(this._nestedArray[O]instanceof h&&(v=this._nestedArray[O].lookup(y,T,!0)))return v;return this.parent===null||g?null:this.parent.lookup(y,T)},h.prototype.lookupType=function(y){var T=this.lookup(y,[u]);if(!T)throw Error("no such type: "+y);return T},h.prototype.lookupEnum=function(y){var T=this.lookup(y,[l]);if(!T)throw Error("no such Enum '"+y+"' in "+this);return T},h.prototype.lookupTypeOrEnum=function(y){var T=this.lookup(y,[u,l]);if(!T)throw Error("no such Type or Enum '"+y+"' in "+this);return T},h.prototype.lookupService=function(y){var T=this.lookup(y,[a]);if(!T)throw Error("no such Service '"+y+"' in "+this);return T},h._configure=function(m,y,T){u=m,a=y,l=T},namespace}var mapfield,hasRequiredMapfield;function requireMapfield(){if(hasRequiredMapfield)return mapfield;hasRequiredMapfield=1,mapfield=o;var r=requireField();((o.prototype=Object.create(r.prototype)).constructor=o).className="MapField";var i=requireTypes(),s=requireUtil();function o(u,a,l,c,h,d){if(r.call(this,u,a,c,void 0,void 0,h,d),!s.isString(l))throw TypeError("keyType must be a string");this.keyType=l,this.resolvedKeyType=null,this.map=!0}return o.fromJSON=function(a,l){return new o(a,l.id,l.keyType,l.type,l.options,l.comment)},o.prototype.toJSON=function(a){var l=a?!!a.keepComments:!1;return s.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",l?this.comment:void 0])},o.prototype.resolve=function(){if(this.resolved)return this;if(i.mapKey[this.keyType]===void 0)throw Error("invalid key type: "+this.keyType);return r.prototype.resolve.call(this)},o.d=function(a,l,c){return typeof c=="function"?c=s.decorateType(c).name:c&&typeof c=="object"&&(c=s.decorateEnum(c).name),function(d,m){s.decorateType(d.constructor).add(new o(m,a,l,c))}},mapfield}var method,hasRequiredMethod;function requireMethod(){if(hasRequiredMethod)return method;hasRequiredMethod=1,method=s;var r=requireObject();((s.prototype=Object.create(r.prototype)).constructor=s).className="Method";var i=requireUtil();function s(o,u,a,l,c,h,d,m,y){if(i.isObject(c)?(d=c,c=h=void 0):i.isObject(h)&&(d=h,h=void 0),!(u===void 0||i.isString(u)))throw TypeError("type must be a string");if(!i.isString(a))throw TypeError("requestType must be a string");if(!i.isString(l))throw TypeError("responseType must be a string");r.call(this,o,d),this.type=u||"rpc",this.requestType=a,this.requestStream=c?!0:void 0,this.responseType=l,this.responseStream=h?!0:void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=m,this.parsedOptions=y}return s.fromJSON=function(u,a){return new s(u,a.type,a.requestType,a.responseType,a.requestStream,a.responseStream,a.options,a.comment,a.parsedOptions)},s.prototype.toJSON=function(u){var a=u?!!u.keepComments:!1;return i.toObject(["type",this.type!=="rpc"&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",a?this.comment:void 0,"parsedOptions",this.parsedOptions])},s.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),r.prototype.resolve.call(this))},method}var service,hasRequiredService;function requireService(){if(hasRequiredService)return service;hasRequiredService=1,service=u;var r=requireNamespace();((u.prototype=Object.create(r.prototype)).constructor=u).className="Service";var i=requireMethod(),s=requireUtil(),o=rpc;function u(l,c){r.call(this,l,c),this.methods={},this._methodsArray=null}u.fromJSON=function(c,h){var d=new u(c,h.options);if(h.methods)for(var m=Object.keys(h.methods),y=0;y<m.length;++y)d.add(i.fromJSON(m[y],h.methods[m[y]]));return h.nested&&d.addJSON(h.nested),d.comment=h.comment,d},u.prototype.toJSON=function(c){var h=r.prototype.toJSON.call(this,c),d=c?!!c.keepComments:!1;return s.toObject(["options",h&&h.options||void 0,"methods",r.arrayToJSON(this.methodsArray,c)||{},"nested",h&&h.nested||void 0,"comment",d?this.comment:void 0])},Object.defineProperty(u.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=s.toArray(this.methods))}});function a(l){return l._methodsArray=null,l}return u.prototype.get=function(c){return this.methods[c]||r.prototype.get.call(this,c)},u.prototype.resolveAll=function(){for(var c=this.methodsArray,h=0;h<c.length;++h)c[h].resolve();return r.prototype.resolve.call(this)},u.prototype.add=function(c){if(this.get(c.name))throw Error("duplicate name '"+c.name+"' in "+this);return c instanceof i?(this.methods[c.name]=c,c.parent=this,a(this)):r.prototype.add.call(this,c)},u.prototype.remove=function(c){if(c instanceof i){if(this.methods[c.name]!==c)throw Error(c+" is not a member of "+this);return delete this.methods[c.name],c.parent=null,a(this)}return r.prototype.remove.call(this,c)},u.prototype.create=function(c,h,d){for(var m=new o.Service(c,h,d),y=0,T;y<this.methodsArray.length;++y){var g=s.lcFirst((T=this._methodsArray[y]).resolve().name).replace(/[^$\w_]/g,"");m[g]=s.codegen(["r","c"],s.isReserved(g)?g+"_":g)("return this.rpcCall(m,q,s,r,c)")({m:T,q:T.resolvedRequestType.ctor,s:T.resolvedResponseType.ctor})}return m},service}var message=Message,util$1=requireMinimal();function Message(r){if(r)for(var i=Object.keys(r),s=0;s<i.length;++s)this[i[s]]=r[i[s]]}Message.create=function r(i){return this.$type.create(i)};Message.encode=function r(i,s){return this.$type.encode(i,s)};Message.encodeDelimited=function r(i,s){return this.$type.encodeDelimited(i,s)};Message.decode=function r(i){return this.$type.decode(i)};Message.decodeDelimited=function r(i){return this.$type.decodeDelimited(i)};Message.verify=function r(i){return this.$type.verify(i)};Message.fromObject=function r(i){return this.$type.fromObject(i)};Message.toObject=function r(i,s){return this.$type.toObject(i,s)};Message.prototype.toJSON=function r(){return this.$type.toObject(this,util$1.toJSONOptions)};var decoder_1,hasRequiredDecoder;function requireDecoder(){if(hasRequiredDecoder)return decoder_1;hasRequiredDecoder=1,decoder_1=u;var r=require_enum(),i=requireTypes(),s=requireUtil();function o(a){return"missing required '"+a.name+"'"}function u(a){var l=s.codegen(["r","l"],a.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(a.fieldsArray.filter(function(T){return T.map}).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");a.group&&l("if((t&7)===4)")("break"),l("switch(t>>>3){");for(var c=0;c<a.fieldsArray.length;++c){var h=a._fieldsArray[c].resolve(),d=h.resolvedType instanceof r?"int32":h.type,m="m"+s.safeProp(h.name);l("case %i: {",h.id),h.map?(l("if(%s===util.emptyObject)",m)("%s={}",m)("var c2 = r.uint32()+r.pos"),i.defaults[h.keyType]!==void 0?l("k=%j",i.defaults[h.keyType]):l("k=null"),i.defaults[d]!==void 0?l("value=%j",i.defaults[d]):l("value=null"),l("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",h.keyType)("case 2:"),i.basic[d]===void 0?l("value=types[%i].decode(r,r.uint32())",c):l("value=r.%s()",d),l("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),i.long[h.keyType]!==void 0?l('%s[typeof k==="object"?util.longToHash(k):k]=value',m):l("%s[k]=value",m)):h.repeated?(l("if(!(%s&&%s.length))",m,m)("%s=[]",m),i.packed[d]!==void 0&&l("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",m,d)("}else"),i.basic[d]===void 0?l(h.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",m,c):l("%s.push(r.%s())",m,d)):i.basic[d]===void 0?l(h.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",m,c):l("%s=r.%s()",m,d),l("break")("}")}for(l("default:")("r.skipType(t&7)")("break")("}")("}"),c=0;c<a._fieldsArray.length;++c){var y=a._fieldsArray[c];y.required&&l("if(!m.hasOwnProperty(%j))",y.name)("throw util.ProtocolError(%j,{instance:m})",o(y))}return l("return m")}return decoder_1}var verifier_1,hasRequiredVerifier;function requireVerifier(){if(hasRequiredVerifier)return verifier_1;hasRequiredVerifier=1,verifier_1=a;var r=require_enum(),i=requireUtil();function s(l,c){return l.name+": "+c+(l.repeated&&c!=="array"?"[]":l.map&&c!=="object"?"{k:"+l.keyType+"}":"")+" expected"}function o(l,c,h,d){if(c.resolvedType)if(c.resolvedType instanceof r){l("switch(%s){",d)("default:")("return%j",s(c,"enum value"));for(var m=Object.keys(c.resolvedType.values),y=0;y<m.length;++y)l("case %i:",c.resolvedType.values[m[y]]);l("break")("}")}else l("{")("var e=types[%i].verify(%s);",h,d)("if(e)")("return%j+e",c.name+".")("}");else switch(c.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":l("if(!util.isInteger(%s))",d)("return%j",s(c,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":l("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",d,d,d,d)("return%j",s(c,"integer|Long"));break;case"float":case"double":l('if(typeof %s!=="number")',d)("return%j",s(c,"number"));break;case"bool":l('if(typeof %s!=="boolean")',d)("return%j",s(c,"boolean"));break;case"string":l("if(!util.isString(%s))",d)("return%j",s(c,"string"));break;case"bytes":l('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',d,d,d)("return%j",s(c,"buffer"));break}return l}function u(l,c,h){switch(c.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":l("if(!util.key32Re.test(%s))",h)("return%j",s(c,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":l("if(!util.key64Re.test(%s))",h)("return%j",s(c,"integer|Long key"));break;case"bool":l("if(!util.key2Re.test(%s))",h)("return%j",s(c,"boolean key"));break}return l}function a(l){var c=i.codegen(["m"],l.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),h=l.oneofsArray,d={};h.length&&c("var p={}");for(var m=0;m<l.fieldsArray.length;++m){var y=l._fieldsArray[m].resolve(),T="m"+i.safeProp(y.name);if(y.optional&&c("if(%s!=null&&m.hasOwnProperty(%j)){",T,y.name),y.map)c("if(!util.isObject(%s))",T)("return%j",s(y,"object"))("var k=Object.keys(%s)",T)("for(var i=0;i<k.length;++i){"),u(c,y,"k[i]"),o(c,y,m,T+"[k[i]]")("}");else if(y.repeated)c("if(!Array.isArray(%s))",T)("return%j",s(y,"array"))("for(var i=0;i<%s.length;++i){",T),o(c,y,m,T+"[i]")("}");else{if(y.partOf){var g=i.safeProp(y.partOf.name);d[y.partOf.name]===1&&c("if(p%s===1)",g)("return%j",y.partOf.name+": multiple values"),d[y.partOf.name]=1,c("p%s=1",g)}o(c,y,m,T)}y.optional&&c("}")}return c("return null")}return verifier_1}var converter={},hasRequiredConverter;function requireConverter(){return hasRequiredConverter||(hasRequiredConverter=1,function(r){var i=r,s=require_enum(),o=requireUtil();function u(l,c,h,d){var m=!1;if(c.resolvedType)if(c.resolvedType instanceof s){l("switch(d%s){",d);for(var y=c.resolvedType.values,T=Object.keys(y),g=0;g<T.length;++g)y[T[g]]===c.typeDefault&&!m&&(l("default:")('if(typeof(d%s)==="number"){m%s=d%s;break}',d,d,d),c.repeated||l("break"),m=!0),l("case%j:",T[g])("case %i:",y[T[g]])("m%s=%j",d,y[T[g]])("break");l("}")}else l('if(typeof d%s!=="object")',d)("throw TypeError(%j)",c.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",d,h,d);else{var v=!1;switch(c.type){case"double":case"float":l("m%s=Number(d%s)",d,d);break;case"uint32":case"fixed32":l("m%s=d%s>>>0",d,d);break;case"int32":case"sint32":case"sfixed32":l("m%s=d%s|0",d,d);break;case"uint64":v=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":l("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",d,d,v)('else if(typeof d%s==="string")',d)("m%s=parseInt(d%s,10)",d,d)('else if(typeof d%s==="number")',d)("m%s=d%s",d,d)('else if(typeof d%s==="object")',d)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",d,d,d,v?"true":"");break;case"bytes":l('if(typeof d%s==="string")',d)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",d,d,d)("else if(d%s.length >= 0)",d)("m%s=d%s",d,d);break;case"string":l("m%s=String(d%s)",d,d);break;case"bool":l("m%s=Boolean(d%s)",d,d);break}}return l}i.fromObject=function(c){var h=c.fieldsArray,d=o.codegen(["d"],c.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!h.length)return d("return new this.ctor");d("var m=new this.ctor");for(var m=0;m<h.length;++m){var y=h[m].resolve(),T=o.safeProp(y.name);y.map?(d("if(d%s){",T)('if(typeof d%s!=="object")',T)("throw TypeError(%j)",y.fullName+": object expected")("m%s={}",T)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",T),u(d,y,m,T+"[ks[i]]")("}")("}")):y.repeated?(d("if(d%s){",T)("if(!Array.isArray(d%s))",T)("throw TypeError(%j)",y.fullName+": array expected")("m%s=[]",T)("for(var i=0;i<d%s.length;++i){",T),u(d,y,m,T+"[i]")("}")("}")):(y.resolvedType instanceof s||d("if(d%s!=null){",T),u(d,y,m,T),y.resolvedType instanceof s||d("}"))}return d("return m")};function a(l,c,h,d){if(c.resolvedType)c.resolvedType instanceof s?l("d%s=o.enums===String?(types[%i].values[m%s]===undefined?m%s:types[%i].values[m%s]):m%s",d,h,d,d,h,d,d):l("d%s=types[%i].toObject(m%s,o)",d,h,d);else{var m=!1;switch(c.type){case"double":case"float":l("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",d,d,d,d);break;case"uint64":m=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":l('if(typeof m%s==="number")',d)("d%s=o.longs===String?String(m%s):m%s",d,d,d)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",d,d,d,d,m?"true":"",d);break;case"bytes":l("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",d,d,d,d,d);break;default:l("d%s=m%s",d,d);break}}return l}i.toObject=function(c){var h=c.fieldsArray.slice().sort(o.compareFieldsById);if(!h.length)return o.codegen()("return {}");for(var d=o.codegen(["m","o"],c.name+"$toObject")("if(!o)")("o={}")("var d={}"),m=[],y=[],T=[],g=0;g<h.length;++g)h[g].partOf||(h[g].resolve().repeated?m:h[g].map?y:T).push(h[g]);if(m.length){for(d("if(o.arrays||o.defaults){"),g=0;g<m.length;++g)d("d%s=[]",o.safeProp(m[g].name));d("}")}if(y.length){for(d("if(o.objects||o.defaults){"),g=0;g<y.length;++g)d("d%s={}",o.safeProp(y[g].name));d("}")}if(T.length){for(d("if(o.defaults){"),g=0;g<T.length;++g){var v=T[g],O=o.safeProp(v.name);if(v.resolvedType instanceof s)d("d%s=o.enums===String?%j:%j",O,v.resolvedType.valuesById[v.typeDefault],v.typeDefault);else if(v.long)d("if(util.Long){")("var n=new util.Long(%i,%i,%j)",v.typeDefault.low,v.typeDefault.high,v.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",O)("}else")("d%s=o.longs===String?%j:%i",O,v.typeDefault.toString(),v.typeDefault.toNumber());else if(v.bytes){var P="["+Array.prototype.slice.call(v.typeDefault).join(",")+"]";d("if(o.bytes===String)d%s=%j",O,String.fromCharCode.apply(String,v.typeDefault))("else{")("d%s=%s",O,P)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",O,O)("}")}else d("d%s=%j",O,v.typeDefault)}d("}")}var _=!1;for(g=0;g<h.length;++g){var v=h[g],C=c._fieldsArray.indexOf(v),O=o.safeProp(v.name);v.map?(_||(_=!0,d("var ks2")),d("if(m%s&&(ks2=Object.keys(m%s)).length){",O,O)("d%s={}",O)("for(var j=0;j<ks2.length;++j){"),a(d,v,C,O+"[ks2[j]]")("}")):v.repeated?(d("if(m%s&&m%s.length){",O,O)("d%s=[]",O)("for(var j=0;j<m%s.length;++j){",O),a(d,v,C,O+"[j]")("}")):(d("if(m%s!=null&&m.hasOwnProperty(%j)){",O,v.name),a(d,v,C,O),v.partOf&&d("if(o.oneofs)")("d%s=%j",o.safeProp(v.partOf.name),v.name)),d("}")}return d("return d")}}(converter)),converter}var wrappers={};(function(r){var i=r,s=message;i[".google.protobuf.Any"]={fromObject:function(o){if(o&&o["@type"]){var u=o["@type"].substring(o["@type"].lastIndexOf("/")+1),a=this.lookup(u);if(a){var l=o["@type"].charAt(0)==="."?o["@type"].slice(1):o["@type"];return l.indexOf("/")===-1&&(l="/"+l),this.create({type_url:l,value:a.encode(a.fromObject(o)).finish()})}}return this.fromObject(o)},toObject:function(o,u){var a="type.googleapis.com/",l="",c="";if(u&&u.json&&o.type_url&&o.value){c=o.type_url.substring(o.type_url.lastIndexOf("/")+1),l=o.type_url.substring(0,o.type_url.lastIndexOf("/")+1);var h=this.lookup(c);h&&(o=h.decode(o.value))}if(!(o instanceof this.ctor)&&o instanceof s){var d=o.$type.toObject(o,u),m=o.$type.fullName[0]==="."?o.$type.fullName.slice(1):o.$type.fullName;return l===""&&(l=a),c=l+m,d["@type"]=c,d}return this.toObject(o,u)}}})(wrappers);var type,hasRequiredType;function requireType(){if(hasRequiredType)return type;hasRequiredType=1,type=O;var r=requireNamespace();((O.prototype=Object.create(r.prototype)).constructor=O).className="Type";var i=require_enum(),s=requireOneof(),o=requireField(),u=requireMapfield(),a=requireService(),l=message,c=reader,h=writer,d=requireUtil(),m=requireEncoder(),y=requireDecoder(),T=requireVerifier(),g=requireConverter(),v=wrappers;function O(_,C){r.call(this,_,C),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}Object.defineProperties(O.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var _=Object.keys(this.fields),C=0;C<_.length;++C){var E=this.fields[_[C]],S=E.id;if(this._fieldsById[S])throw Error("duplicate id "+S+" in "+this);this._fieldsById[S]=E}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=d.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=d.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=O.generateConstructor(this)())},set:function(_){var C=_.prototype;C instanceof l||((_.prototype=new l).constructor=_,d.merge(_.prototype,C)),_.$type=_.prototype.$type=this,d.merge(_,l,!0),this._ctor=_;for(var E=0;E<this.fieldsArray.length;++E)this._fieldsArray[E].resolve();var S={};for(E=0;E<this.oneofsArray.length;++E)S[this._oneofsArray[E].resolve().name]={get:d.oneOfGetter(this._oneofsArray[E].oneof),set:d.oneOfSetter(this._oneofsArray[E].oneof)};E&&Object.defineProperties(_.prototype,S)}}}),O.generateConstructor=function(C){for(var E=d.codegen(["p"],C.name),S=0,x;S<C.fieldsArray.length;++S)(x=C._fieldsArray[S]).map?E("this%s={}",d.safeProp(x.name)):x.repeated&&E("this%s=[]",d.safeProp(x.name));return E("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")};function P(_){return _._fieldsById=_._fieldsArray=_._oneofsArray=null,delete _.encode,delete _.decode,delete _.verify,_}return O.fromJSON=function(C,E){var S=new O(C,E.options);S.extensions=E.extensions,S.reserved=E.reserved;for(var x=Object.keys(E.fields),R=0;R<x.length;++R)S.add((typeof E.fields[x[R]].keyType<"u"?u.fromJSON:o.fromJSON)(x[R],E.fields[x[R]]));if(E.oneofs)for(x=Object.keys(E.oneofs),R=0;R<x.length;++R)S.add(s.fromJSON(x[R],E.oneofs[x[R]]));if(E.nested)for(x=Object.keys(E.nested),R=0;R<x.length;++R){var G=E.nested[x[R]];S.add((G.id!==void 0?o.fromJSON:G.fields!==void 0?O.fromJSON:G.values!==void 0?i.fromJSON:G.methods!==void 0?a.fromJSON:r.fromJSON)(x[R],G))}return E.extensions&&E.extensions.length&&(S.extensions=E.extensions),E.reserved&&E.reserved.length&&(S.reserved=E.reserved),E.group&&(S.group=!0),E.comment&&(S.comment=E.comment),S},O.prototype.toJSON=function(C){var E=r.prototype.toJSON.call(this,C),S=C?!!C.keepComments:!1;return d.toObject(["options",E&&E.options||void 0,"oneofs",r.arrayToJSON(this.oneofsArray,C),"fields",r.arrayToJSON(this.fieldsArray.filter(function(x){return!x.declaringField}),C)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",E&&E.nested||void 0,"comment",S?this.comment:void 0])},O.prototype.resolveAll=function(){for(var C=this.fieldsArray,E=0;E<C.length;)C[E++].resolve();var S=this.oneofsArray;for(E=0;E<S.length;)S[E++].resolve();return r.prototype.resolveAll.call(this)},O.prototype.get=function(C){return this.fields[C]||this.oneofs&&this.oneofs[C]||this.nested&&this.nested[C]||null},O.prototype.add=function(C){if(this.get(C.name))throw Error("duplicate name '"+C.name+"' in "+this);if(C instanceof o&&C.extend===void 0){if(this._fieldsById?this._fieldsById[C.id]:this.fieldsById[C.id])throw Error("duplicate id "+C.id+" in "+this);if(this.isReservedId(C.id))throw Error("id "+C.id+" is reserved in "+this);if(this.isReservedName(C.name))throw Error("name '"+C.name+"' is reserved in "+this);return C.parent&&C.parent.remove(C),this.fields[C.name]=C,C.message=this,C.onAdd(this),P(this)}return C instanceof s?(this.oneofs||(this.oneofs={}),this.oneofs[C.name]=C,C.onAdd(this),P(this)):r.prototype.add.call(this,C)},O.prototype.remove=function(C){if(C instanceof o&&C.extend===void 0){if(!this.fields||this.fields[C.name]!==C)throw Error(C+" is not a member of "+this);return delete this.fields[C.name],C.parent=null,C.onRemove(this),P(this)}if(C instanceof s){if(!this.oneofs||this.oneofs[C.name]!==C)throw Error(C+" is not a member of "+this);return delete this.oneofs[C.name],C.parent=null,C.onRemove(this),P(this)}return r.prototype.remove.call(this,C)},O.prototype.isReservedId=function(C){return r.isReservedId(this.reserved,C)},O.prototype.isReservedName=function(C){return r.isReservedName(this.reserved,C)},O.prototype.create=function(C){return new this.ctor(C)},O.prototype.setup=function(){for(var C=this.fullName,E=[],S=0;S<this.fieldsArray.length;++S)E.push(this._fieldsArray[S].resolve().resolvedType);this.encode=m(this)({Writer:h,types:E,util:d}),this.decode=y(this)({Reader:c,types:E,util:d}),this.verify=T(this)({types:E,util:d}),this.fromObject=g.fromObject(this)({types:E,util:d}),this.toObject=g.toObject(this)({types:E,util:d});var x=v[C];if(x){var R=Object.create(this);R.fromObject=this.fromObject,this.fromObject=x.fromObject.bind(R),R.toObject=this.toObject,this.toObject=x.toObject.bind(R)}return this},O.prototype.encode=function(C,E){return this.setup().encode(C,E)},O.prototype.encodeDelimited=function(C,E){return this.encode(C,E&&E.len?E.fork():E).ldelim()},O.prototype.decode=function(C,E){return this.setup().decode(C,E)},O.prototype.decodeDelimited=function(C){return C instanceof c||(C=c.create(C)),this.decode(C,C.uint32())},O.prototype.verify=function(C){return this.setup().verify(C)},O.prototype.fromObject=function(C){return this.setup().fromObject(C)},O.prototype.toObject=function(C,E){return this.setup().toObject(C,E)},O.d=function(C){return function(S){d.decorateType(S,C)}},type}var root$1,hasRequiredRoot;function requireRoot(){if(hasRequiredRoot)return root$1;hasRequiredRoot=1,root$1=h;var r=requireNamespace();((h.prototype=Object.create(r.prototype)).constructor=h).className="Root";var i=requireField(),s=require_enum(),o=requireOneof(),u=requireUtil(),a,l,c;function h(T){r.call(this,"",T),this.deferred=[],this.files=[]}h.fromJSON=function(g,v){return v||(v=new h),g.options&&v.setOptions(g.options),v.addJSON(g.nested)},h.prototype.resolvePath=u.path.resolve,h.prototype.fetch=u.fetch;function d(){}h.prototype.load=function T(g,v,O){typeof v=="function"&&(O=v,v=void 0);var P=this;if(!O)return u.asPromise(T,P,g,v);var _=O===d;function C(D,Z){if(O){if(_)throw D;var $=O;O=null,$(D,Z)}}function E(D){var Z=D.lastIndexOf("google/protobuf/");if(Z>-1){var $=D.substring(Z);if($ in c)return $}return null}function S(D,Z){try{if(u.isString(Z)&&Z.charAt(0)==="{"&&(Z=JSON.parse(Z)),!u.isString(Z))P.setOptions(Z.options).addJSON(Z.nested);else{l.filename=D;var $=l(Z,P,v),z,ee=0;if($.imports)for(;ee<$.imports.length;++ee)(z=E($.imports[ee])||P.resolvePath(D,$.imports[ee]))&&x(z);if($.weakImports)for(ee=0;ee<$.weakImports.length;++ee)(z=E($.weakImports[ee])||P.resolvePath(D,$.weakImports[ee]))&&x(z,!0)}}catch(J){C(J)}!_&&!R&&C(null,P)}function x(D,Z){if(D=E(D)||D,!(P.files.indexOf(D)>-1)){if(P.files.push(D),D in c){_?S(D,c[D]):(++R,setTimeout(function(){--R,S(D,c[D])}));return}if(_){var $;try{$=u.fs.readFileSync(D).toString("utf8")}catch(z){Z||C(z);return}S(D,$)}else++R,P.fetch(D,function(z,ee){if(--R,!!O){if(z){Z?R||C(null,P):C(z);return}S(D,ee)}})}}var R=0;u.isString(g)&&(g=[g]);for(var G=0,H;G<g.length;++G)(H=P.resolvePath("",g[G]))&&x(H);if(_)return P;R||C(null,P)},h.prototype.loadSync=function(g,v){if(!u.isNode)throw Error("not supported");return this.load(g,v,d)},h.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(g){return"'extend "+g.extend+"' in "+g.parent.fullName}).join(", "));return r.prototype.resolveAll.call(this)};var m=/^[A-Z]/;function y(T,g){var v=g.parent.lookup(g.extend);if(v){var O=new i(g.fullName,g.id,g.type,g.rule,void 0,g.options);return v.get(O.name)||(O.declaringField=g,g.extensionField=O,v.add(O)),!0}return!1}return h.prototype._handleAdd=function(g){if(g instanceof i)g.extend!==void 0&&!g.extensionField&&(y(this,g)||this.deferred.push(g));else if(g instanceof s)m.test(g.name)&&(g.parent[g.name]=g.values);else if(!(g instanceof o)){if(g instanceof a)for(var v=0;v<this.deferred.length;)y(this,this.deferred[v])?this.deferred.splice(v,1):++v;for(var O=0;O<g.nestedArray.length;++O)this._handleAdd(g._nestedArray[O]);m.test(g.name)&&(g.parent[g.name]=g)}},h.prototype._handleRemove=function(g){if(g instanceof i){if(g.extend!==void 0)if(g.extensionField)g.extensionField.parent.remove(g.extensionField),g.extensionField=null;else{var v=this.deferred.indexOf(g);v>-1&&this.deferred.splice(v,1)}}else if(g instanceof s)m.test(g.name)&&delete g.parent[g.name];else if(g instanceof r){for(var O=0;O<g.nestedArray.length;++O)this._handleRemove(g._nestedArray[O]);m.test(g.name)&&delete g.parent[g.name]}},h._configure=function(T,g,v){a=T,l=g,c=v},root$1}var hasRequiredUtil;function requireUtil(){if(hasRequiredUtil)return util$2.exports;hasRequiredUtil=1;var r=util$2.exports=requireMinimal(),i=roots,s,o;r.codegen=codegen_1,r.fetch=fetch_1,r.path=path,r.fs=r.inquire("fs"),r.toArray=function(d){if(d){for(var m=Object.keys(d),y=new Array(m.length),T=0;T<m.length;)y[T]=d[m[T++]];return y}return[]},r.toObject=function(d){for(var m={},y=0;y<d.length;){var T=d[y++],g=d[y++];g!==void 0&&(m[T]=g)}return m};var u=/\\/g,a=/"/g;r.isReserved=function(d){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(d)},r.safeProp=function(d){return!/^[$\w_]+$/.test(d)||r.isReserved(d)?'["'+d.replace(u,"\\\\").replace(a,'\\"')+'"]':"."+d},r.ucFirst=function(d){return d.charAt(0).toUpperCase()+d.substring(1)};var l=/_([a-z])/g;r.camelCase=function(d){return d.substring(0,1)+d.substring(1).replace(l,function(m,y){return y.toUpperCase()})},r.compareFieldsById=function(d,m){return d.id-m.id},r.decorateType=function(d,m){if(d.$type)return m&&d.$type.name!==m&&(r.decorateRoot.remove(d.$type),d.$type.name=m,r.decorateRoot.add(d.$type)),d.$type;s||(s=requireType());var y=new s(m||d.name);return r.decorateRoot.add(y),y.ctor=d,Object.defineProperty(d,"$type",{value:y,enumerable:!1}),Object.defineProperty(d.prototype,"$type",{value:y,enumerable:!1}),y};var c=0;return r.decorateEnum=function(d){if(d.$type)return d.$type;o||(o=require_enum());var m=new o("Enum"+c++,d);return r.decorateRoot.add(m),Object.defineProperty(d,"$type",{value:m,enumerable:!1}),m},r.setProperty=function(d,m,y){function T(g,v,O){var P=v.shift();if(P==="__proto__"||P==="prototype")return g;if(v.length>0)g[P]=T(g[P]||{},v,O);else{var _=g[P];_&&(O=[].concat(_).concat(O)),g[P]=O}return g}if(typeof d!="object")throw TypeError("dst must be an object");if(!m)throw TypeError("path must be specified");return m=m.split("."),T(d,m,y)},Object.defineProperty(r,"decorateRoot",{get:function(){return i.decorated||(i.decorated=new(requireRoot()))}}),util$2.exports}var object,hasRequiredObject;function requireObject(){if(hasRequiredObject)return object;hasRequiredObject=1,object=s,s.className="ReflectionObject";var r=requireUtil(),i;function s(o,u){if(!r.isString(o))throw TypeError("name must be a string");if(u&&!r.isObject(u))throw TypeError("options must be an object");this.options=u,this.parsedOptions=null,this.name=o,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}return Object.defineProperties(s.prototype,{root:{get:function(){for(var o=this;o.parent!==null;)o=o.parent;return o}},fullName:{get:function(){for(var o=[this.name],u=this.parent;u;)o.unshift(u.name),u=u.parent;return o.join(".")}}}),s.prototype.toJSON=function(){throw Error()},s.prototype.onAdd=function(u){this.parent&&this.parent!==u&&this.parent.remove(this),this.parent=u,this.resolved=!1;var a=u.root;a instanceof i&&a._handleAdd(this)},s.prototype.onRemove=function(u){var a=u.root;a instanceof i&&a._handleRemove(this),this.parent=null,this.resolved=!1},s.prototype.resolve=function(){return this.resolved?this:(this.root instanceof i&&(this.resolved=!0),this)},s.prototype.getOption=function(u){if(this.options)return this.options[u]},s.prototype.setOption=function(u,a,l){return(!l||!this.options||this.options[u]===void 0)&&((this.options||(this.options={}))[u]=a),this},s.prototype.setParsedOption=function(u,a,l){this.parsedOptions||(this.parsedOptions=[]);var c=this.parsedOptions;if(l){var h=c.find(function(y){return Object.prototype.hasOwnProperty.call(y,u)});if(h){var d=h[u];r.setProperty(d,l,a)}else h={},h[u]=r.setProperty({},l,a),c.push(h)}else{var m={};m[u]=a,c.push(m)}return this},s.prototype.setOptions=function(u,a){if(u)for(var l=Object.keys(u),c=0;c<l.length;++c)this.setOption(l[c],u[l[c]],a);return this},s.prototype.toString=function(){var u=this.constructor.className,a=this.fullName;return a.length?u+" "+a:u},s._configure=function(o){i=o},object}var _enum,hasRequired_enum;function require_enum(){if(hasRequired_enum)return _enum;hasRequired_enum=1,_enum=o;var r=requireObject();((o.prototype=Object.create(r.prototype)).constructor=o).className="Enum";var i=requireNamespace(),s=requireUtil();function o(u,a,l,c,h,d){if(r.call(this,u,l),a&&typeof a!="object")throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=c,this.comments=h||{},this.valuesOptions=d,this.reserved=void 0,a)for(var m=Object.keys(a),y=0;y<m.length;++y)typeof a[m[y]]=="number"&&(this.valuesById[this.values[m[y]]=a[m[y]]]=m[y])}return o.fromJSON=function(a,l){var c=new o(a,l.values,l.options,l.comment,l.comments);return c.reserved=l.reserved,c},o.prototype.toJSON=function(a){var l=a?!!a.keepComments:!1;return s.toObject(["options",this.options,"valuesOptions",this.valuesOptions,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",l?this.comment:void 0,"comments",l?this.comments:void 0])},o.prototype.add=function(a,l,c,h){if(!s.isString(a))throw TypeError("name must be a string");if(!s.isInteger(l))throw TypeError("id must be an integer");if(this.values[a]!==void 0)throw Error("duplicate name '"+a+"' in "+this);if(this.isReservedId(l))throw Error("id "+l+" is reserved in "+this);if(this.isReservedName(a))throw Error("name '"+a+"' is reserved in "+this);if(this.valuesById[l]!==void 0){if(!(this.options&&this.options.allow_alias))throw Error("duplicate id "+l+" in "+this);this.values[a]=l}else this.valuesById[this.values[a]=l]=a;return h&&(this.valuesOptions===void 0&&(this.valuesOptions={}),this.valuesOptions[a]=h||null),this.comments[a]=c||null,this},o.prototype.remove=function(a){if(!s.isString(a))throw TypeError("name must be a string");var l=this.values[a];if(l==null)throw Error("name '"+a+"' does not exist in "+this);return delete this.valuesById[l],delete this.values[a],delete this.comments[a],this.valuesOptions&&delete this.valuesOptions[a],this},o.prototype.isReservedId=function(a){return i.isReservedId(this.reserved,a)},o.prototype.isReservedName=function(a){return i.isReservedName(this.reserved,a)},_enum}var encoder_1,hasRequiredEncoder;function requireEncoder(){if(hasRequiredEncoder)return encoder_1;hasRequiredEncoder=1,encoder_1=u;var r=require_enum(),i=requireTypes(),s=requireUtil();function o(a,l,c,h){return l.resolvedType.group?a("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",c,h,(l.id<<3|3)>>>0,(l.id<<3|4)>>>0):a("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",c,h,(l.id<<3|2)>>>0)}function u(a){for(var l=s.codegen(["m","w"],a.name+"$encode")("if(!w)")("w=Writer.create()"),c,h,d=a.fieldsArray.slice().sort(s.compareFieldsById),c=0;c<d.length;++c){var m=d[c].resolve(),y=a._fieldsArray.indexOf(m),T=m.resolvedType instanceof r?"int32":m.type,g=i.basic[T];h="m"+s.safeProp(m.name),m.map?(l("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",h,m.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",h)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(m.id<<3|2)>>>0,8|i.mapKey[m.keyType],m.keyType),g===void 0?l("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",y,h):l(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|g,T,h),l("}")("}")):m.repeated?(l("if(%s!=null&&%s.length){",h,h),m.packed&&i.packed[T]!==void 0?l("w.uint32(%i).fork()",(m.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",h)("w.%s(%s[i])",T,h)("w.ldelim()"):(l("for(var i=0;i<%s.length;++i)",h),g===void 0?o(l,m,y,h+"[i]"):l("w.uint32(%i).%s(%s[i])",(m.id<<3|g)>>>0,T,h)),l("}")):(m.optional&&l("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",h,m.name),g===void 0?o(l,m,y,h):l("w.uint32(%i).%s(%s)",(m.id<<3|g)>>>0,T,h))}return l("return w")}return encoder_1}var protobuf$1=indexLight.exports=indexMinimal;protobuf$1.build="light";function load(r,i,s){return typeof i=="function"?(s=i,i=new protobuf$1.Root):i||(i=new protobuf$1.Root),i.load(r,s)}protobuf$1.load=load;function loadSync(r,i){return i||(i=new protobuf$1.Root),i.loadSync(r)}protobuf$1.loadSync=loadSync;protobuf$1.encoder=requireEncoder();protobuf$1.decoder=requireDecoder();protobuf$1.verifier=requireVerifier();protobuf$1.converter=requireConverter();protobuf$1.ReflectionObject=requireObject();protobuf$1.Namespace=requireNamespace();protobuf$1.Root=requireRoot();protobuf$1.Enum=require_enum();protobuf$1.Type=requireType();protobuf$1.Field=requireField();protobuf$1.OneOf=requireOneof();protobuf$1.MapField=requireMapfield();protobuf$1.Service=requireService();protobuf$1.Method=requireMethod();protobuf$1.Message=message;protobuf$1.wrappers=wrappers;protobuf$1.types=requireTypes();protobuf$1.util=requireUtil();protobuf$1.ReflectionObject._configure(protobuf$1.Root);protobuf$1.Namespace._configure(protobuf$1.Type,protobuf$1.Service,protobuf$1.Enum);protobuf$1.Root._configure(protobuf$1.Type);protobuf$1.Field._configure(protobuf$1.Type);var indexLightExports=indexLight.exports,tokenize_1=tokenize$1,delimRe=/[\s{}=;:[\],'"()<>]/g,stringDoubleRe=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,stringSingleRe=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,setCommentRe=/^ *[*/]+ */,setCommentAltRe=/^\s*\*?\/*/,setCommentSplitRe=/\n/g,whitespaceRe=/\s/,unescapeRe=/\\(.?)/g,unescapeMap={0:"\0",r:"\r",n:`
|
|
24
|
-
`,t:" "};function unescape(r){return r.replace(unescapeRe,function(i,s){switch(s){case"\\":case"":return s;default:return unescapeMap[s]||""}})}tokenize$1.unescape=unescape;function tokenize$1(r,i){r=r.toString();var s=0,o=r.length,u=1,a=0,l={},c=[],h=null;function d(S){return Error("illegal "+S+" (line "+u+")")}function m(){var S=h==="'"?stringSingleRe:stringDoubleRe;S.lastIndex=s-1;var x=S.exec(r);if(!x)throw d("string");return s=S.lastIndex,P(h),h=null,unescape(x[1])}function y(S){return r.charAt(S)}function T(S,x,R){var G={type:r.charAt(S++),lineEmpty:!1,leading:R},H;i?H=2:H=3;var D=S-H,Z;do if(--D<0||(Z=r.charAt(D))===`
|
|
25
|
-
`){G.lineEmpty=!0;break}while(Z===" "||Z===" ");for(var $=r.substring(S,x).split(setCommentSplitRe),z=0;z<$.length;++z)$[z]=$[z].replace(i?setCommentAltRe:setCommentRe,"").trim();G.text=$.join(`
|
|
26
|
-
`).trim(),l[u]=G,a=u}function g(S){var x=v(S),R=r.substring(S,x),G=/^\s*\/\//.test(R);return G}function v(S){for(var x=S;x<o&&y(x)!==`
|
|
27
|
-
`;)x++;return x}function O(){if(c.length>0)return c.shift();if(h)return m();var S,x,R,G,H,D=s===0;do{if(s===o)return null;for(S=!1;whitespaceRe.test(R=y(s));)if(R===`
|
|
28
|
-
`&&(D=!0,++u),++s===o)return null;if(y(s)==="/"){if(++s===o)throw d("comment");if(y(s)==="/")if(i){if(G=s,H=!1,g(s-1)){H=!0;do if(s=v(s),s===o||(s++,!D))break;while(g(s))}else s=Math.min(o,v(s)+1);H&&(T(G,s,D),D=!0),u++,S=!0}else{for(H=y(G=s+1)==="/";y(++s)!==`
|
|
29
|
-
`;)if(s===o)return null;++s,H&&(T(G,s-1,D),D=!0),++u,S=!0}else if((R=y(s))==="*"){G=s+1,H=i||y(G)==="*";do{if(R===`
|
|
30
|
-
`&&++u,++s===o)throw d("comment");x=R,R=y(s)}while(x!=="*"||R!=="/");++s,H&&(T(G,s-2,D),D=!0),S=!0}else return"/"}}while(S);var Z=s;delimRe.lastIndex=0;var $=delimRe.test(y(Z++));if(!$)for(;Z<o&&!delimRe.test(y(Z));)++Z;var z=r.substring(s,s=Z);return(z==='"'||z==="'")&&(h=z),z}function P(S){c.push(S)}function _(){if(!c.length){var S=O();if(S===null)return null;P(S)}return c[0]}function C(S,x){var R=_(),G=R===S;if(G)return O(),!0;if(!x)throw d("token '"+R+"', '"+S+"' expected");return!1}function E(S){var x=null,R;return S===void 0?(R=l[u-1],delete l[u-1],R&&(i||R.type==="*"||R.lineEmpty)&&(x=R.leading?R.text:null)):(a<S&&_(),R=l[S],delete l[S],R&&!R.lineEmpty&&(i||R.type==="/")&&(x=R.leading?null:R.text)),x}return Object.defineProperty({next:O,peek:_,push:P,skip:C,cmnt:E},"line",{get:function(){return u}})}var parse_1=parse;parse.filename=null;parse.defaults={keepCase:!1};var tokenize=tokenize_1,Root=requireRoot(),Type=requireType(),Field=requireField(),MapField=requireMapfield(),OneOf=requireOneof(),Enum=require_enum(),Service=requireService(),Method=requireMethod(),types=requireTypes(),util=requireUtil(),base10Re=/^[1-9][0-9]*$/,base10NegRe=/^-?[1-9][0-9]*$/,base16Re=/^0[x][0-9a-fA-F]+$/,base16NegRe=/^-?0[x][0-9a-fA-F]+$/,base8Re=/^0[0-7]+$/,base8NegRe=/^-?0[0-7]+$/,numberRe=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,nameRe=/^[a-zA-Z_][a-zA-Z_0-9]*$/,typeRefRe=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,fqTypeRefRe=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;function parse(r,i,s){i instanceof Root||(s=i,i=new Root),s||(s=parse.defaults);var o=s.preferTrailingComment||!1,u=tokenize(r,s.alternateCommentMode||!1),a=u.next,l=u.push,c=u.peek,h=u.skip,d=u.cmnt,m=!0,y,T,g,v,O=!1,P=i,_=s.keepCase?function(B){return B}:util.camelCase;function C(B,M,q){var b=parse.filename;return q||(parse.filename=null),Error("illegal "+(M||"token")+" '"+B+"' ("+(b?b+", ":"")+"line "+u.line+")")}function E(){var B=[],M;do{if((M=a())!=='"'&&M!=="'")throw C(M);B.push(a()),h(M),M=c()}while(M==='"'||M==="'");return B.join("")}function S(){var B=a();switch(B){case"'":case'"':return l(B),E();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return R(B,!0)}catch{if(typeRefRe.test(B))return B;throw C(B,"value")}}function x(B,M){var q,b;do M&&((q=c())==='"'||q==="'")?B.push(E()):B.push([b=G(a()),h("to",!0)?G(a()):b]);while(h(",",!0));var w={options:void 0};w.setOption=function(I,N){this.options===void 0&&(this.options={}),this.options[I]=N},z(w,function(N){if(N==="option")ne(w,N),h(";");else throw C(N)},function(){he(w)})}function R(B,M){var q=1;switch(B.charAt(0)==="-"&&(q=-1,B=B.substring(1)),B){case"inf":case"INF":case"Inf":return q*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(base10Re.test(B))return q*parseInt(B,10);if(base16Re.test(B))return q*parseInt(B,16);if(base8Re.test(B))return q*parseInt(B,8);if(numberRe.test(B))return q*parseFloat(B);throw C(B,"number",M)}function G(B,M){switch(B){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!M&&B.charAt(0)==="-")throw C(B,"id");if(base10NegRe.test(B))return parseInt(B,10);if(base16NegRe.test(B))return parseInt(B,16);if(base8NegRe.test(B))return parseInt(B,8);throw C(B,"id")}function H(){if(y!==void 0)throw C("package");if(y=a(),!typeRefRe.test(y))throw C(y,"name");P=P.define(y),h(";")}function D(){var B=c(),M;switch(B){case"weak":M=g||(g=[]),a();break;case"public":a();default:M=T||(T=[]);break}B=E(),h(";"),M.push(B)}function Z(){if(h("="),v=E(),O=v==="proto3",!O&&v!=="proto2")throw C(v,"syntax");i.setOption("syntax",v),h(";")}function $(B,M){switch(M){case"option":return ne(B,M),h(";"),!0;case"message":return ee(B,M),!0;case"enum":return X(B,M),!0;case"service":return Oe(B,M),!0;case"extend":return Ce(B,M),!0}return!1}function z(B,M,q){var b=u.line;if(B&&(typeof B.comment!="string"&&(B.comment=d()),B.filename=parse.filename),h("{",!0)){for(var w;(w=a())!=="}";)M(w);h(";",!0)}else q&&q(),h(";"),B&&(typeof B.comment!="string"||o)&&(B.comment=d(b)||B.comment)}function ee(B,M){if(!nameRe.test(M=a()))throw C(M,"type name");var q=new Type(M);z(q,function(w){if(!$(q,w))switch(w){case"map":se(q);break;case"required":case"repeated":J(q,w);break;case"optional":O?J(q,"proto3_optional"):J(q,"optional");break;case"oneof":te(q,w);break;case"extensions":x(q.extensions||(q.extensions=[]));break;case"reserved":x(q.reserved||(q.reserved=[]),!0);break;default:if(!O||!typeRefRe.test(w))throw C(w);l(w),J(q,"optional");break}}),B.add(q)}function J(B,M,q){var b=a();if(b==="group"){fe(B,M);return}for(;b.endsWith(".")||c().startsWith(".");)b+=a();if(!typeRefRe.test(b))throw C(b,"type");var w=a();if(!nameRe.test(w))throw C(w,"name");w=_(w),h("=");var I=new Field(w,G(a()),b,M,q);if(z(I,function(A){if(A==="option")ne(I,A),h(";");else throw C(A)},function(){he(I)}),M==="proto3_optional"){var N=new OneOf("_"+w);I.setOption("proto3_optional",!0),N.add(I),B.add(N)}else B.add(I);!O&&I.repeated&&(types.packed[b]!==void 0||types.basic[b]===void 0)&&I.setOption("packed",!1,!0)}function fe(B,M){var q=a();if(!nameRe.test(q))throw C(q,"name");var b=util.lcFirst(q);q===b&&(q=util.ucFirst(q)),h("=");var w=G(a()),I=new Type(q);I.group=!0;var N=new Field(b,w,q,M);N.filename=parse.filename,z(I,function(A){switch(A){case"option":ne(I,A),h(";");break;case"required":case"repeated":J(I,A);break;case"optional":O?J(I,"proto3_optional"):J(I,"optional");break;case"message":ee(I,A);break;case"enum":X(I,A);break;default:throw C(A)}}),B.add(I).add(N)}function se(B){h("<");var M=a();if(types.mapKey[M]===void 0)throw C(M,"type");h(",");var q=a();if(!typeRefRe.test(q))throw C(q,"type");h(">");var b=a();if(!nameRe.test(b))throw C(b,"name");h("=");var w=new MapField(_(b),G(a()),M,q);z(w,function(N){if(N==="option")ne(w,N),h(";");else throw C(N)},function(){he(w)}),B.add(w)}function te(B,M){if(!nameRe.test(M=a()))throw C(M,"name");var q=new OneOf(_(M));z(q,function(w){w==="option"?(ne(q,w),h(";")):(l(w),J(q,"optional"))}),B.add(q)}function X(B,M){if(!nameRe.test(M=a()))throw C(M,"name");var q=new Enum(M);z(q,function(w){switch(w){case"option":ne(q,w),h(";");break;case"reserved":x(q.reserved||(q.reserved=[]),!0);break;default:ae(q,w)}}),B.add(q)}function ae(B,M){if(!nameRe.test(M))throw C(M,"name");h("=");var q=G(a(),!0),b={options:void 0};b.setOption=function(w,I){this.options===void 0&&(this.options={}),this.options[w]=I},z(b,function(I){if(I==="option")ne(b,I),h(";");else throw C(I)},function(){he(b)}),B.add(M,q,b.comment,b.options)}function ne(B,M){var q=h("(",!0);if(!typeRefRe.test(M=a()))throw C(M,"name");var b=M,w=b,I;q&&(h(")"),b="("+b+")",w=b,M=c(),fqTypeRefRe.test(M)&&(I=M.slice(1),b+=M,a())),h("=");var N=le(B,b);ve(B,w,N,I)}function le(B,M){if(h("{",!0)){for(var q={};!h("}",!0);){if(!nameRe.test(oe=a()))throw C(oe,"name");if(oe===null)throw C(oe,"end of input");var b,w=oe;if(h(":",!0),c()==="{")b=le(B,M+"."+oe);else if(c()==="["){b=[];var I;if(h("[",!0)){do I=S(),b.push(I);while(h(",",!0));h("]"),typeof I<"u"&&ue(B,M+"."+oe,I)}}else b=S(),ue(B,M+"."+oe,b);var N=q[w];N&&(b=[].concat(N).concat(b)),q[w]=b,h(",",!0),h(";",!0)}return q}var F=S();return ue(B,M,F),F}function ue(B,M,q){B.setOption&&B.setOption(M,q)}function ve(B,M,q,b){B.setParsedOption&&B.setParsedOption(M,q,b)}function he(B){if(h("[",!0)){do ne(B,"option");while(h(",",!0));h("]")}return B}function Oe(B,M){if(!nameRe.test(M=a()))throw C(M,"service name");var q=new Service(M);z(q,function(w){if(!$(q,w))if(w==="rpc")be(q,w);else throw C(w)}),B.add(q)}function be(B,M){var q=d(),b=M;if(!nameRe.test(M=a()))throw C(M,"name");var w=M,I,N,F,A;if(h("("),h("stream",!0)&&(N=!0),!typeRefRe.test(M=a())||(I=M,h(")"),h("returns"),h("("),h("stream",!0)&&(A=!0),!typeRefRe.test(M=a())))throw C(M);F=M,h(")");var U=new Method(w,b,I,F,N,A);U.comment=q,z(U,function(L){if(L==="option")ne(U,L),h(";");else throw C(L)}),B.add(U)}function Ce(B,M){if(!typeRefRe.test(M=a()))throw C(M,"reference");var q=M;z(null,function(w){switch(w){case"required":case"repeated":J(B,w,q);break;case"optional":O?J(B,"proto3_optional",q):J(B,"optional",q);break;default:if(!O||!typeRefRe.test(w))throw C(w);l(w),J(B,"optional",q);break}})}for(var oe;(oe=a())!==null;)switch(oe){case"package":if(!m)throw C(oe);H();break;case"import":if(!m)throw C(oe);D();break;case"syntax":if(!m)throw C(oe);Z();break;case"option":ne(P,oe),h(";");break;default:if($(P,oe)){m=!1;continue}throw C(oe)}return parse.filename=null,{package:y,imports:T,weakImports:g,syntax:v,root:i}}var common_1=common,commonRe=/\/|\./;function common(r,i){commonRe.test(r)||(r="google/protobuf/"+r+".proto",i={nested:{google:{nested:{protobuf:{nested:i}}}}}),common[r]=i}common("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}});var timeType;common("duration",{Duration:timeType={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}});common("timestamp",{Timestamp:timeType});common("empty",{Empty:{fields:{}}});common("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}});common("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}});common("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}});common.get=function r(i){return common[i]||null};var protobuf=src.exports=indexLightExports;protobuf.build="full";protobuf.tokenize=tokenize_1;protobuf.parse=parse_1;protobuf.common=common_1;protobuf.Root._configure(protobuf.Type,protobuf.parse,protobuf.common);var srcExports=src.exports,protobufjs=srcExports;function loadProto(r){return protobufjs.parse(r)}loadProto("option optimize_for = LITE_RUNTIME;package GEOPOI;enum enumGeometryType {ePoint = 0;eMultiLineString = 1;ePolygon = 2;} ;message PBPOI{required uint64 OID = 1;required string Name =2;repeated double Coordinates =3 [packed=true];required enumGeometryType GeometryType = 4;optional int32 Interate = 5;optional int32 SymbolID = 10 [default = 0];optional double DisplayHeight = 11 [default = 32];optional uint32 ShiningColor=12 [default =0];optional uint32 FontNameIndex=13 [default =0];optional int32 FontSize=14 [default =18];optional uint32 FontColor=15 [default =0];};message StringTable {repeated string s = 1;}message PBPOITile{required int64 Version = 1;required int64 TileKey = 2;required StringTable StringTable = 3;repeated PBPOI POIS = 4;};").root.lookup("GEOPOI.PBPOITile");loadProto("option optimize_for = LITE_RUNTIME;package GEOPOI;enum enumGeometryType {ePoint = 0;eMultiLineString = 1;ePolygon = 2;};enum enumZCoordType {eCloseGround = 0;eCloseSeaSurface = 1;eRelativelyGround = 2;eAbsolute = 3;};message PBPOI{required uint64 OID = 1;required string Name =2;repeated double Coordinates =3 [packed=true];required enumGeometryType GeometryType = 4;optional int32 Interate = 5;optional int32 SymbolID = 10 [default = 0];optional double DisplayHeight = 11 [default = 32];optional uint32 ShiningColor=12 [default =0];optional uint32 FontNameIndex=13 [default =0];optional int32 FontSize=14 [default =18];optional uint32 FontColor=15 [default =0];optional enumZCoordType ZCoordType = 16 [default = eAbsolute];};message StringTable {repeated string s = 1;}message PBPOITile{required int64 Version = 1;required int64 TileKey = 2;required StringTable StringTable = 3;repeated PBPOI POIS = 4;};").root.lookup("GEOPOI.PBPOITile");loadProto("option optimize_for = LITE_RUNTIME;package GEOPOI;enum enumGeometryType {ePoint = 0;eMultiLineString = 1;ePolygon = 2;};enum enumZCoordType {eCloseGround = 0;eCloseSeaSurface = 1;eRelativelyGround = 2;eAbsolute = 3;};message PBPOI{required uint64 OID = 1;required string Name =2;repeated double Coordinates =3 [packed=true];required enumGeometryType GeometryType = 4;optional int32 Priority = 5;repeated int32 Interates =6 [packed=true];optional int32 SymbolID = 10 [default = 0];optional double DisplayHeight = 11 [default = 32];optional uint32 ShiningColor=12 [default =0];optional uint32 FontNameIndex=13 [default =0];optional int32 FontSize=14 [default =18];optional uint32 FontColor=15 [default =0];optional enumZCoordType ZCoordType = 16 [default = eAbsolute];optional int32 FontStyle=17;optional int32 ShiningSize=18;};message StringTable {repeated string s = 1;}message PBPOITile{required int64 Version = 1;required int64 TileKey = 2;required StringTable StringTable = 3;repeated PBPOI POIS = 4;};").root.lookup("GEOPOI.PBPOITile");Cesium.Color.WHITE,Cesium.Color.BLACK,Cesium.LabelStyle.FILL_AND_OUTLINE,Cesium.Color.RED,new Cesium.Cartesian2(10,10),Cesium.HorizontalOrigin.CENTER,Cesium.VerticalOrigin.TOP,Cesium.Cartesian3.ZERO,new Cesium.Cartesian2(0,8);Cesium.HorizontalOrigin.CENTER,Cesium.VerticalOrigin.CENTER,Cesium.Cartesian3.ZERO,Cesium.Cartesian2.ZERO,Cesium.Cartesian3.ZERO,Cesium.Color.WHITE;var index={GeoTerrainProvider};class CustomWebMapTileServiceImageryProvider extends Cesium.WebMapTileServiceImageryProvider{constructor(i){super(i),this.options=i}requestImage(i,s,o,u){this.options.subdomains&&u&&u.url&&(u.url=u.url.replace("{s}",this.pickSubdomain(i,s,o,this.options.subdomains)));const a=super.requestImage(i,s,o,u);return a&&a.then(l=>{var c,h;return((h=(c=this.options).requestInterceptor)==null?void 0:h.call(c,l))??l})}pickSubdomain(i,s,o,u){const a=Math.abs(i*73856093^s*19349663^o*83492791)%u.length;return u[a]}}function createTdtProvider(r,i){const{token:s,...o}=i;return new CustomWebMapTileServiceImageryProvider({url:`https://t{s}.tianditu.gov.cn/${r}_w/wmts?tk=${s}`,subdomains:["0","1","2","3","4","5","6","7"],layer:r,style:"default",format:"tiles",tileMatrixSetID:"w",maximumLevel:18,credit:new Cesium.Credit("TianDiTu"),...o})}function createTdtTerrain(r){const i=["0","1","2","3","4","5","6","7"];return new index.GeoTerrainProvider({url:"https://t{s}.tianditu.gov.cn/mapservice/swdx?T=elv_c&x={x}&y={y}&l={z}&tk={token}",subdomains:i,token:r.token})}var freeGlobal=typeof global=="object"&&global&&global.Object===Object&&global,freeSelf=typeof self=="object"&&self&&self.Object===Object&&self,root=freeGlobal||freeSelf||Function("return this")(),Symbol$1=root.Symbol,objectProto$8=Object.prototype,hasOwnProperty$6=objectProto$8.hasOwnProperty,nativeObjectToString$1=objectProto$8.toString,symToStringTag$1=Symbol$1?Symbol$1.toStringTag:void 0;function getRawTag(r){var i=hasOwnProperty$6.call(r,symToStringTag$1),s=r[symToStringTag$1];try{r[symToStringTag$1]=void 0;var o=!0}catch{}var u=nativeObjectToString$1.call(r);return o&&(i?r[symToStringTag$1]=s:delete r[symToStringTag$1]),u}var objectProto$7=Object.prototype,nativeObjectToString=objectProto$7.toString;function objectToString(r){return nativeObjectToString.call(r)}var nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$1?Symbol$1.toStringTag:void 0;function baseGetTag(r){return r==null?r===void 0?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(r)?getRawTag(r):objectToString(r)}function isObjectLike(r){return r!=null&&typeof r=="object"}var isArray=Array.isArray;function isObject(r){var i=typeof r;return r!=null&&(i=="object"||i=="function")}function identity(r){return r}var asyncTag="[object AsyncFunction]",funcTag$1="[object Function]",genTag="[object GeneratorFunction]",proxyTag="[object Proxy]";function isFunction(r){if(!isObject(r))return!1;var i=baseGetTag(r);return i==funcTag$1||i==genTag||i==asyncTag||i==proxyTag}var coreJsData=root["__core-js_shared__"],maskSrcKey=function(){var r=/[^.]+$/.exec(coreJsData&&coreJsData.keys&&coreJsData.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function isMasked(r){return!!maskSrcKey&&maskSrcKey in r}var funcProto$1=Function.prototype,funcToString$1=funcProto$1.toString;function toSource(r){if(r!=null){try{return funcToString$1.call(r)}catch{}try{return r+""}catch{}}return""}var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reIsHostCtor=/^\[object .+?Constructor\]$/,funcProto=Function.prototype,objectProto$6=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$5=objectProto$6.hasOwnProperty,reIsNative=RegExp("^"+funcToString.call(hasOwnProperty$5).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function baseIsNative(r){if(!isObject(r)||isMasked(r))return!1;var i=isFunction(r)?reIsNative:reIsHostCtor;return i.test(toSource(r))}function getValue(r,i){return r==null?void 0:r[i]}function getNative(r,i){var s=getValue(r,i);return baseIsNative(s)?s:void 0}function apply(r,i,s){switch(s.length){case 0:return r.call(i);case 1:return r.call(i,s[0]);case 2:return r.call(i,s[0],s[1]);case 3:return r.call(i,s[0],s[1],s[2])}return r.apply(i,s)}var HOT_COUNT=800,HOT_SPAN=16,nativeNow=Date.now;function shortOut(r){var i=0,s=0;return function(){var o=nativeNow(),u=HOT_SPAN-(o-s);if(s=o,u>0){if(++i>=HOT_COUNT)return arguments[0]}else i=0;return r.apply(void 0,arguments)}}function constant(r){return function(){return r}}var defineProperty=function(){try{var r=getNative(Object,"defineProperty");return r({},"",{}),r}catch{}}(),baseSetToString=defineProperty?function(r,i){return defineProperty(r,"toString",{configurable:!0,enumerable:!1,value:constant(i),writable:!0})}:identity,setToString=shortOut(baseSetToString),MAX_SAFE_INTEGER$1=9007199254740991,reIsUint=/^(?:0|[1-9]\d*)$/;function isIndex(r,i){var s=typeof r;return i=i??MAX_SAFE_INTEGER$1,!!i&&(s=="number"||s!="symbol"&&reIsUint.test(r))&&r>-1&&r%1==0&&r<i}function eq(r,i){return r===i||r!==r&&i!==i}var nativeMax=Math.max;function overRest(r,i,s){return i=nativeMax(i===void 0?r.length-1:i,0),function(){for(var o=arguments,u=-1,a=nativeMax(o.length-i,0),l=Array(a);++u<a;)l[u]=o[i+u];u=-1;for(var c=Array(i+1);++u<i;)c[u]=o[u];return c[i]=s(l),apply(r,this,c)}}function baseRest(r,i){return setToString(overRest(r,i,identity),r+"")}var MAX_SAFE_INTEGER=9007199254740991;function isLength(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=MAX_SAFE_INTEGER}function isArrayLike(r){return r!=null&&isLength(r.length)&&!isFunction(r)}function isIterateeCall(r,i,s){if(!isObject(s))return!1;var o=typeof i;return(o=="number"?isArrayLike(s)&&isIndex(i,s.length):o=="string"&&i in s)?eq(s[i],r):!1}var objectProto$5=Object.prototype;function isPrototype(r){var i=r&&r.constructor,s=typeof i=="function"&&i.prototype||objectProto$5;return r===s}function baseTimes(r,i){for(var s=-1,o=Array(r);++s<r;)o[s]=i(s);return o}var argsTag$1="[object Arguments]";function baseIsArguments(r){return isObjectLike(r)&&baseGetTag(r)==argsTag$1}var objectProto$4=Object.prototype,hasOwnProperty$4=objectProto$4.hasOwnProperty,propertyIsEnumerable=objectProto$4.propertyIsEnumerable,isArguments=baseIsArguments(function(){return arguments}())?baseIsArguments:function(r){return isObjectLike(r)&&hasOwnProperty$4.call(r,"callee")&&!propertyIsEnumerable.call(r,"callee")};function stubFalse(){return!1}var freeExports$1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule$1=freeExports$1&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports$1=freeModule$1&&freeModule$1.exports===freeExports$1,Buffer=moduleExports$1?root.Buffer:void 0,nativeIsBuffer=Buffer?Buffer.isBuffer:void 0,isBuffer=nativeIsBuffer||stubFalse,argsTag="[object Arguments]",arrayTag="[object Array]",boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",funcTag="[object Function]",mapTag="[object Map]",numberTag="[object Number]",objectTag="[object Object]",regexpTag="[object RegExp]",setTag="[object Set]",stringTag="[object String]",weakMapTag="[object WeakMap]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag]=typedArrayTags[float64Tag]=typedArrayTags[int8Tag]=typedArrayTags[int16Tag]=typedArrayTags[int32Tag]=typedArrayTags[uint8Tag]=typedArrayTags[uint8ClampedTag]=typedArrayTags[uint16Tag]=typedArrayTags[uint32Tag]=!0;typedArrayTags[argsTag]=typedArrayTags[arrayTag]=typedArrayTags[arrayBufferTag]=typedArrayTags[boolTag]=typedArrayTags[dataViewTag]=typedArrayTags[dateTag]=typedArrayTags[errorTag]=typedArrayTags[funcTag]=typedArrayTags[mapTag]=typedArrayTags[numberTag]=typedArrayTags[objectTag]=typedArrayTags[regexpTag]=typedArrayTags[setTag]=typedArrayTags[stringTag]=typedArrayTags[weakMapTag]=!1;function baseIsTypedArray(r){return isObjectLike(r)&&isLength(r.length)&&!!typedArrayTags[baseGetTag(r)]}function baseUnary(r){return function(i){return r(i)}}var freeExports=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,freeProcess=moduleExports&&freeGlobal.process,nodeUtil=function(){try{var r=freeModule&&freeModule.require&&freeModule.require("util").types;return r||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch{}}(),nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,isTypedArray=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray;function arrayLikeKeys(r,i){var s=isArray(r),o=!s&&isArguments(r),u=!s&&!o&&isBuffer(r),a=!s&&!o&&!u&&isTypedArray(r),l=s||o||u||a,c=l?baseTimes(r.length,String):[],h=c.length;for(var d in r)l&&(d=="length"||u&&(d=="offset"||d=="parent")||a&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||isIndex(d,h))||c.push(d);return c}function nativeKeysIn(r){var i=[];if(r!=null)for(var s in Object(r))i.push(s);return i}var objectProto$3=Object.prototype,hasOwnProperty$3=objectProto$3.hasOwnProperty;function baseKeysIn(r){if(!isObject(r))return nativeKeysIn(r);var i=isPrototype(r),s=[];for(var o in r)o=="constructor"&&(i||!hasOwnProperty$3.call(r,o))||s.push(o);return s}function keysIn(r){return isArrayLike(r)?arrayLikeKeys(r):baseKeysIn(r)}var nativeCreate=getNative(Object,"create");function hashClear(){this.__data__=nativeCreate?nativeCreate(null):{},this.size=0}function hashDelete(r){var i=this.has(r)&&delete this.__data__[r];return this.size-=i?1:0,i}var HASH_UNDEFINED$1="__lodash_hash_undefined__",objectProto$2=Object.prototype,hasOwnProperty$2=objectProto$2.hasOwnProperty;function hashGet(r){var i=this.__data__;if(nativeCreate){var s=i[r];return s===HASH_UNDEFINED$1?void 0:s}return hasOwnProperty$2.call(i,r)?i[r]:void 0}var objectProto$1=Object.prototype,hasOwnProperty$1=objectProto$1.hasOwnProperty;function hashHas(r){var i=this.__data__;return nativeCreate?i[r]!==void 0:hasOwnProperty$1.call(i,r)}var HASH_UNDEFINED="__lodash_hash_undefined__";function hashSet(r,i){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=nativeCreate&&i===void 0?HASH_UNDEFINED:i,this}function Hash(r){var i=-1,s=r==null?0:r.length;for(this.clear();++i<s;){var o=r[i];this.set(o[0],o[1])}}Hash.prototype.clear=hashClear;Hash.prototype.delete=hashDelete;Hash.prototype.get=hashGet;Hash.prototype.has=hashHas;Hash.prototype.set=hashSet;function listCacheClear(){this.__data__=[],this.size=0}function assocIndexOf(r,i){for(var s=r.length;s--;)if(eq(r[s][0],i))return s;return-1}var arrayProto=Array.prototype,splice=arrayProto.splice;function listCacheDelete(r){var i=this.__data__,s=assocIndexOf(i,r);if(s<0)return!1;var o=i.length-1;return s==o?i.pop():splice.call(i,s,1),--this.size,!0}function listCacheGet(r){var i=this.__data__,s=assocIndexOf(i,r);return s<0?void 0:i[s][1]}function listCacheHas(r){return assocIndexOf(this.__data__,r)>-1}function listCacheSet(r,i){var s=this.__data__,o=assocIndexOf(s,r);return o<0?(++this.size,s.push([r,i])):s[o][1]=i,this}function ListCache(r){var i=-1,s=r==null?0:r.length;for(this.clear();++i<s;){var o=r[i];this.set(o[0],o[1])}}ListCache.prototype.clear=listCacheClear;ListCache.prototype.delete=listCacheDelete;ListCache.prototype.get=listCacheGet;ListCache.prototype.has=listCacheHas;ListCache.prototype.set=listCacheSet;var Map$1=getNative(root,"Map");function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Map$1||ListCache),string:new Hash}}function isKeyable(r){var i=typeof r;return i=="string"||i=="number"||i=="symbol"||i=="boolean"?r!=="__proto__":r===null}function getMapData(r,i){var s=r.__data__;return isKeyable(i)?s[typeof i=="string"?"string":"hash"]:s.map}function mapCacheDelete(r){var i=getMapData(this,r).delete(r);return this.size-=i?1:0,i}function mapCacheGet(r){return getMapData(this,r).get(r)}function mapCacheHas(r){return getMapData(this,r).has(r)}function mapCacheSet(r,i){var s=getMapData(this,r),o=s.size;return s.set(r,i),this.size+=s.size==o?0:1,this}function MapCache(r){var i=-1,s=r==null?0:r.length;for(this.clear();++i<s;){var o=r[i];this.set(o[0],o[1])}}MapCache.prototype.clear=mapCacheClear;MapCache.prototype.delete=mapCacheDelete;MapCache.prototype.get=mapCacheGet;MapCache.prototype.has=mapCacheHas;MapCache.prototype.set=mapCacheSet;var FUNC_ERROR_TEXT="Expected a function";function memoize(r,i){if(typeof r!="function"||i!=null&&typeof i!="function")throw new TypeError(FUNC_ERROR_TEXT);var s=function(){var o=arguments,u=i?i.apply(this,o):o[0],a=s.cache;if(a.has(u))return a.get(u);var l=r.apply(this,o);return s.cache=a.set(u,l)||a,l};return s.cache=new(memoize.Cache||MapCache),s}memoize.Cache=MapCache;var objectProto=Object.prototype,hasOwnProperty=objectProto.hasOwnProperty,defaults=baseRest(function(r,i){r=Object(r);var s=-1,o=i.length,u=o>2?i[2]:void 0;for(u&&isIterateeCall(i[0],i[1],u)&&(o=1);++s<o;)for(var a=i[s],l=keysIn(a),c=-1,h=l.length;++c<h;){var d=l[c],m=r[d];(m===void 0||eq(m,objectProto[d])&&!hasOwnProperty.call(r,d))&&(r[d]=a[d])}return r});function getDefaultExportFromCjs(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var eventemitter3={exports:{}},hasRequiredEventemitter3;function requireEventemitter3(){return hasRequiredEventemitter3||(hasRequiredEventemitter3=1,function(r){var i=Object.prototype.hasOwnProperty,s="~";function o(){}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(s=!1));function u(h,d,m){this.fn=h,this.context=d,this.once=m||!1}function a(h,d,m,y,T){if(typeof m!="function")throw new TypeError("The listener must be a function");var g=new u(m,y||h,T),v=s?s+d:d;return h._events[v]?h._events[v].fn?h._events[v]=[h._events[v],g]:h._events[v].push(g):(h._events[v]=g,h._eventsCount++),h}function l(h,d){--h._eventsCount===0?h._events=new o:delete h._events[d]}function c(){this._events=new o,this._eventsCount=0}c.prototype.eventNames=function(){var d=[],m,y;if(this._eventsCount===0)return d;for(y in m=this._events)i.call(m,y)&&d.push(s?y.slice(1):y);return Object.getOwnPropertySymbols?d.concat(Object.getOwnPropertySymbols(m)):d},c.prototype.listeners=function(d){var m=s?s+d:d,y=this._events[m];if(!y)return[];if(y.fn)return[y.fn];for(var T=0,g=y.length,v=new Array(g);T<g;T++)v[T]=y[T].fn;return v},c.prototype.listenerCount=function(d){var m=s?s+d:d,y=this._events[m];return y?y.fn?1:y.length:0},c.prototype.emit=function(d,m,y,T,g,v){var O=s?s+d:d;if(!this._events[O])return!1;var P=this._events[O],_=arguments.length,C,E;if(P.fn){switch(P.once&&this.removeListener(d,P.fn,void 0,!0),_){case 1:return P.fn.call(P.context),!0;case 2:return P.fn.call(P.context,m),!0;case 3:return P.fn.call(P.context,m,y),!0;case 4:return P.fn.call(P.context,m,y,T),!0;case 5:return P.fn.call(P.context,m,y,T,g),!0;case 6:return P.fn.call(P.context,m,y,T,g,v),!0}for(E=1,C=new Array(_-1);E<_;E++)C[E-1]=arguments[E];P.fn.apply(P.context,C)}else{var S=P.length,x;for(E=0;E<S;E++)switch(P[E].once&&this.removeListener(d,P[E].fn,void 0,!0),_){case 1:P[E].fn.call(P[E].context);break;case 2:P[E].fn.call(P[E].context,m);break;case 3:P[E].fn.call(P[E].context,m,y);break;case 4:P[E].fn.call(P[E].context,m,y,T);break;default:if(!C)for(x=1,C=new Array(_-1);x<_;x++)C[x-1]=arguments[x];P[E].fn.apply(P[E].context,C)}}return!0},c.prototype.on=function(d,m,y){return a(this,d,m,y,!1)},c.prototype.once=function(d,m,y){return a(this,d,m,y,!0)},c.prototype.removeListener=function(d,m,y,T){var g=s?s+d:d;if(!this._events[g])return this;if(!m)return l(this,g),this;var v=this._events[g];if(v.fn)v.fn===m&&(!T||v.once)&&(!y||v.context===y)&&l(this,g);else{for(var O=0,P=[],_=v.length;O<_;O++)(v[O].fn!==m||T&&!v[O].once||y&&v[O].context!==y)&&P.push(v[O]);P.length?this._events[g]=P.length===1?P[0]:P:l(this,g)}return this},c.prototype.removeAllListeners=function(d){var m;return d?(m=s?s+d:d,this._events[m]&&l(this,m)):(this._events=new o,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=s,c.EventEmitter=c,r.exports=c}(eventemitter3)),eventemitter3.exports}var eventemitter3Exports=requireEventemitter3();const EventEmitter=getDefaultExportFromCjs(eventemitter3Exports),createShipIconUrl=memoize((r,i)=>{const s=`<?xml version="1.0" encoding="UTF-8"?>
|
|
31
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 50 300">
|
|
32
|
-
<defs>
|
|
33
|
-
<style>
|
|
34
|
-
#svg_1,
|
|
35
|
-
#img_1 {
|
|
36
|
-
display: ${i?"block":"none"};
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.cls-1 {
|
|
40
|
-
fill: ${r};
|
|
41
|
-
stroke: #000;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.cls-1,
|
|
45
|
-
.cls-2 {
|
|
46
|
-
stroke-width: 5px;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.cls-2 {
|
|
50
|
-
fill: #efe9e6;
|
|
51
|
-
stroke: #050200;
|
|
52
|
-
}
|
|
53
|
-
</style>
|
|
54
|
-
</defs>
|
|
55
|
-
<g>
|
|
56
|
-
<path id="svg_1" data-name="svg 1" class="cls-2" d="M26.12,114.78v70.9"/>
|
|
57
|
-
<path id="svg_4" data-name="svg 4" class="cls-1" d="M 26 139 L 47 211 H 3 Z"/>
|
|
58
|
-
</g>
|
|
59
|
-
<image id="img_1" width="124" height="146" transform="translate(-.23 214.17) scale(.42 .77)" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHwAAACSCAMAAACwjl5+AAAAq1BMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Nr6iZAAAAOXRSTlMABRshFgkSZg5qJmFdWlEqOXBFPYVJQYB1VXtNLpc1mzKguZCKtJONxc69yaukwa/SqN/k1trs6fBhRQqRAAAVcElEQVR42rSX3ZKaQBCFgxoIICh/ggjiIMPPMAOy6yZ5/yfLaTBVSa5istu1Vepe+M3p7jkHPz1Vmqav99umYLxsh7bvO6oeb8ZR1XUS7TaftU8fVdqX9cWpGBt5WeJvKbwbOJvyujEPlv5RcLBXZyesc1lyMSk5qWmS0zQxNQrGVF2Fpv9hdOg+2HFzZZwPQjFWFAxV4FUNJd5VcWr4u4+hgx0YcVgVchRtOSmW50wpVoA+lS0vWB6mifkxdE2H7jSOazaVfYtJo91yHKVSUmLq/Yihp2Zi09a9N1rb7Hxi07oN/dAOgnMwB4F9E3jtW1Y1oWea2yhbve/Oa583WWR4SRLnGHAPVkd3bblpA70XvcjDKjVs24ku70rX9NU5OgIeV9ect0L03a3rbve3l5e3+6273Vp0opVVmnrG1jkFl9UX7R3HfY5c2zCTOLxKNHzobzdCv3779voK/ls3tOi+ihPPcI5uFGRrXdPeZ8t16+y7zpbgVcHFWLb9fUZ/RX0D/e2txew5zxPTcNzIP+xBR+vfgb2x9oeTe3Rs04sLXuKmDWg5sb+jFnqH9ZejrL3t1o0Oh+CcrWG1/4v//GW1OwfR6XRybC+5SrBLPnTd/YXYC/3l7XYfJB+VVA3aHgX7/fli/TddA3ud7Q++758cI6kUVwo3rOu7t9/ht46rETe/iA3Az5cs261X+hfQ/4Otb9a7bB/sA9+1zbCYGIOx4FID/voV9AWOje8GxSaY3jW1XYzcsnbWf9E1DfNeW1l2yc6B75hxDjNVk6Q4Rdtp3x4zv3dt23Oy+bquUvsUZNYatdro/9p5DT3XV+vdzoL2w8mAvxQ5myYOV8Nd+3Xbcc/FMMi8YHVThcnWP6PpKEj/RzqxN6sVFFhZcLLTpr5emWLY9bKEdOz7y+sr7jnYHdlsK1id502cpiboFmRvdP0f6doM36yAt86nbRI2VZNDOhKNC4E2d2RwZHFd3w/0SNGWeQh/T5LEcP3LekZ/Ibj2D2zAddIOtu2lYVhBe46m0zMM3LSH+Du5a48dIIsR7djEYZh6nrk9+hnoQKOI/jx7hsNiItwyBFrYNLUSw5xipRiIjuoQK2I+Ec7FwjROPdNAugSXtb6wn4VrgC/0DXTD29BL0l4AywXAC7z7CUemcVGWguepl3j2duu4fgDtRNeonkE/lGPbd/uDC1f3AE/DRopyxLy7dhF+R6Ht6Hvfl0LAfiaKdANsN6KVJ7r2DF2b8UQn9vlwOm4Nw/C8JG0Y59O86X1PaAQKbJ0cBp96gYONYxFTpB+jU3QILkR/Dg70DH9Yq++6jjNrjwspmSxFf7+haNdfUbTvd3y80aOVUqpOwJ7DBelikckR+pmpL2xY6yXwoyiCr9tmWk9TAe0DdRua6ZajwId8/KsT6EtRFNdk60L3/nwm+Op5kyO2DmslX/UPCJWtnTQKXy1H3kPmA/2VCnyoB73lUsLd89A8Rj5kZxdKF1y4ZzeOdK8g/LzfI9NcxGmY44uVlAIr/gb0w9oX+uvcezFNKr9em9RwoTzbWZa1pnQh+rPuBjgOf4H4E1KlZvm1UArCO8DB/hmpRCc4nuQ4Q9erKgQdcEITXMfGPwfXdfJVJCP2PXI8/FBpmpwxJfr+Tzgpn1O1E6ou6iqGzxgu7fqKavOUv2soEo4Cn/bdTMMqrBAbBcdzKsFfCL7Uo+1ksy2vq2sTpgmM5rTPMPCNjlou+xMTJ2PdIFHpott4ao3jqq7rSQyI0+7nri/o5b6BDZdVOCS5u2c6PugbkDHzv/fYh79QAZ4FEaVKnMLZYTJi5PQksaw7isiERra1A5KN5yEOCrZpH/39brUE27PwxdjBPm3JW6EdMx/LceJwmY7w4FMRmVynF/T8yuU1TuPEtJEt7gGp/uj5X8G1GQ42iYe7BtHR9lApsrKZypFN40hhPofKfanbPO4WB5OTlKpKEsC3DmJ1pgP+t/SHsxKc2DB22zChHXTGR8YmGCzEi2E+AaoHeBAlShZMqUnm1HWyWPr1cAH9eTjYtGwzfKbHteSqUIyNUDhyjgBdCmDORym5hAnR6a7JD8bMdrtJKIii/lBZCMQQsHxEQggUXJqsmPd/OfeZIU2rxeSk1ja6upnLvXPm0ABfqxj1iS6ct0fpOIDQ3uC+cMIJKkkSAa/705HWDv4Zgio8nl1wL6eTZupubJlgu3bA0ZWaNsDlbDP9sboRa/5FprJarWzh04GiTecj5tHBv8wyckt0Pp+apuPrZizCpAKeZdkaczH6h4fgXrvYu6cNtszCK6Q1/FDq5kEU5tEiqnfB5lu4Z25L02l2n4qAZd+4s321Lf8Q29CwMZX1EzJHS4u+bUbVrsPG0r6Urk++JK2yzImHQz67RxW2uvtObCK6PEaX689uChxhKnEclJrZR4iXw0FPYcD5TT+6Lnrrogh5YlXGKc8Lmbo5G97mvnofjjyoEFN2+/06+8YEJ1uxof30rCcxR5i+3w/88b2uC7FHgzL0CWspA2ZImQuazQX8vdLd0MzPFJP0NKTOEa29Of903O2g3Q4bH37YJ1lLqscE26ed1hx9fIiuG+4hCfr3vTW4moYJfOpPz4fzQVg1GboM+qVPhCXe8As7n/qcVae5z3TB5VHe6e7nFODQZeWbKgiZmens0Nvz8/kMG5j3N17+SU2OrPgsHRscsKBwJuiKvAoctKc2dN/QoIMXOzJXofIi7y/MaKwtGEO/Fnj4uvvsx77mctMgthFadNj3fdU9xa2cLbfH0WgvKaWzg4YO02BT/RRb6N8vEl3vHrzdtTkXnOItMa3GogPsx+HQ1eBWZipBWgrfXI5dd4MjB+tjLv2n0HooW4fKa9WqqlZbp4NG9+GIdZeTJ8AjZRU04BgaXg/XG/5afte56RddYUfpZJwoxluY4DP56mehpUX0Sz6kyexlKlGs2nHIMqeB9vRXAot2OnQTWORs3tfD4I5e2BdYi+DfkMxFLc7pd3KKtjv50DwliWNb+GKkb41tQ3tFhne+yw4b7x+s74+0pDqIY+D4Grlprdj0EPyTxaS1DI1VS7TwYdE3Yz70Y4950Nqcj37wQkY+2DlracPjwMEsbZzYQJa1Qb9/1JBn00yGZo4WRUE5jH0OPJ86NhSbTjrc5GD907EbcuoGXoTxSpFNDwTdV4Hfvedycj32Yxag+iROopLZcSjUZ0Z8FS/Fy9TdX8Q35uqytImrHApUh8lWeRGH2O08tIn+/7Rwc1MuQDc9LAaVYpN7O/Zj00rdG7USzkdaymu1pLrEWjhoegpriVHWptrvZ1NzU6q3QaIWWD5VjCOeMUym/o3sHYpmbyivQC/pM+7p+68I+J3cdM2mhEMCosNDSysKAuVgMYwA4Xr7NwLLIjFIhKWuFWOLKh00C4xyN4cvsy0e4qWyU1Y9DtRcVXtZ5uPEWtLr0/cFTNR8wFVqWYsezkBnt10T4zLd46HsTNJ93yZ0GO6eF0XrKOs0Igi9VRDNSoMIC8yhp6lKp8tpiF07nI69bOpeuKwcsfRKxrBT8Ah2M9T6gWmUzIrn11UBIQnzZ1PUqXw45KTgLZudx9WP17z6LtvhEnCbI7RyobFr20o1lxJcyf7p9k0V63+XrHs/lGYIQVUB/6aJYrb0pbB8tXLJn0Kps0bmaUSGOfSnpVIYLf8vxRJeZvCpz21vBDENmoXPCE0sOVpwNhU+26k2fEZ/MQI/hDLyhgOs81PUeCUBSh3fdf1a/qerq6m8n4pU73LWVnJVjI3KYQuOFuCiW2uvYMeWF9IQX2HRgdfsPE1ntre1tP7y/c/bhQ65OsGAs6BI1kJgtNo/O1taiofQxd4Cjz2lhVE5NSPdhQPNXiql+l+VqJig85+g55hqECixbdXib8a2AP9kcNnpHBCrxCeZnACk85tPjOSu/G/5u712ZT5IRaitANyU3YwN9hKcNbfWVjEECR5YZJhyFT6QBwaX+qu1VGRfDaa+ha7Dhhtg6RzzrRz9m8VV6P+p3C1NdmrTl+VTevsweW35yDQziwTxSjR9F84yFaIP9GEs3eJilsHPdqSXJU8XXAFRbRUj3/Jh+z1gAwlMQRPGJayD21cS39SPXUN7LVQ4+zBWDbL0eaKQsS2uO3ZqVi5t9LAZdjGbWk3h4+glvwOX7LoovRS9AK4Jdk7K/PHf8y1VDpuB+WnDK3vaasPTqyFD1yZutOg39nt0ZdlmoCH671pEF3wvo8TVvyxMFNZc9Zh5nZk2Gh9lFMU8GwycdYOP/6BFN75fXK8l97wWRBw27rdccjmp+xwhP9lpkbThV2KXYEGXHDf96OkP4+a6szQQRdEfairpFBFDTcUQEo2+/xu61tkTS6Fetn6lBXTN5cy5zCgufh34p27bOkyfK+fohnTYRRdOoORnN5kSnuPDu2ewd+F0PHUas3cwh3QFaW/iX5T3f7oGf8S1u/1bS/2adWa43E1nksSYR7iXILx8Oz5TvkXDt2/uqgLvGVRfXdt7/GDV0t8/SweOzbZjdZ1Og98r1GWviYTnC6x064Wh4gphlZVbS311MvEruefTfqd51io/MGce7i0Ty43NwE02swuvoQHu9r4xzSxKk3XpWKnyF5fx70uupknnGXIDovsDTB/Fg5GFbu8kFLKFSweejUc1Ch/aR3jmwq67L3+V9uE+rSncZD6Ac79a+rgVmX6/34VDF89yc8InR4zGwx7oC4mR+SE56d9k3mFJ7fokj2kDxk5QNa5BF76TTwg3jXHa8XE0Vq+80HTYHCAziobWwQYMJV72dNCrQTfm4lzbYFybZ+GVzqwx/TWTEO6g42DIAJbRcWPQ+w4LFjC2B1XQRf2pz9OItRy0UwZ+qjp5xmUZ1xJUw94NqJ5fnum5g8WkSXSDhdCK1eqqEW2rFxT156qph5EX6M4PDmYxrlGpWq6Sxa5BVXzYqtipEYksFGq612nC0mGP5CR4PFODrtzNmydvptH9CMfMiTpelzrgw3GsYe2159lxxdJPcA0sTvxybBQNOqrGkuFQfEY4/vygCgS+pWZ1aY1RW4AP0JfL5ZjTRU4Hjeid/oez01P9ZSfhDuOg/bbRFdPG6xxil6X3eo9swHmxQLPewPzoOqMoHK95A25k2YVXYe755afbjQYw824/1nnJOHnfzrIDN/ggr6pe0v3raNcZeMWsm8CdrJEJqS9hTfQa1O6nG9+52QXymUqchwoOlBDLHPiKW3u+ws9tmC7O/WAG6T9Qo+eUyXiv/UJZth0HDtrA4gQycybpYxm5Zjyj4GuyHezcBR34PPF95szI4MpcznzugL/Bf+3Dy9RpWgJv4Ow/Rg2f4/XcNUd1t3lUl+OAU7W1iPVpiV7wFIE7cDsOXDk8NfNnklc00OXFblDyYQZbnTdPSTwtGMmZq+u2wmopcJw3l6QTzwVqon0F9TvsY1UN5iKyMbulexYux67c5Fb5zgR8gL60jBYnXCfqVPv8VhnXNvDs8Ecaxt2lBsyqwSboMPRX8peuCXHx2qWHMxz1pi6Dsz/Htb5Jp1Ui+lNEjarnfR8O+Ii1mRfQC913aK3x8ygr9PUTF8nIiLvpfcUiWWyOu31Ga5EeduC2q8MxOGyHIbQHzbKUXjgFklj3pSqLvagW1VdqQ2N0EBoR1YVQeRSAIu/Aiaj8hq2n0XuSQ2Yoa7UfBKU2/6P89OD14E4UYKaIBK68AfRYOnqFI+H0G7hrl8gK/GqIMnonLVKHVZv7UjmlwUcHXrs5n+534XFvgGVv4CoWD5uVhuYkQNNQkMG9b8l/1WA0KfjHFAzXrLQ4rxQsXU/RPLtwZO7GgBv2XoeZmVrhDP4/6H6crhvVTCQqrpzWgsWgFj1vdVfZ4FYpv4Abpa9T7bMVX1/7r55rm1DLMprmNp/jY8D3roe+iWmyM+NGn9g70dk0TBturfr0b3h9rax+qHNsTDeuHXxmPfS9Q0zheliC/2ypOrlWm3xNqfTXGY/JuZuDCk4vgJfnNK5I3+m51vbbuwNH87G7DfiY23/J2Y4TEs6ZIqpSDTzqA/9ywPAWquh4d3S6LCg+02nP9PtrR/UB8r5Ni9k31wv/WgYJx3/tnen+HvVEFo9xNbrKoY+JFgxjuoPGyJt4u/UdRTvbom9G2romVOMNHeVUdSeqgbeBTn1K1asxNIctrQYBTQ/aPijVmqk3fxj4rG9zsg0rMLi+Bhbhyi+kWCWymUVXWgw8KXuPpj4oHxXEh8dJeLLAZMwOaHZfs/e8F1j8gi/Q4bNBUhbfvTy9iDIUzCaKLlu53yrVxcoaT20eOPQ/wUHzacFJZJOemstSrhfLla/ykmRO5b3+cbXG/AEnbfYWcws8brQv9RUOVDKqrhvbNHd3aPA6RuRiPeqm1Obdas+cHahEszgXu2aPxb97hqvesFoT+kP4LlHgs6i7P6voU3R/VL6WhBW8fx7vVlMuXMnewHuIDzzeBrye1mTW7n94kh/428uTgJaZSdezKkcdePQCh42EO+mhO10eeRiMuckRVcnHVXDymg9sr/+pwcn7qmfdepdNWFsbI3w1d3ukv/v6qzoz2lEQBqJoVjQx/P8Hb6/nwoUyK9Xwskd3LYVynNrOxKgoxM3Q6MjZRrM6n5NgvIsjz2oP3u+CMkSuXcffebSnDvQEOtOh0iw5drqT1Yfks9yT4kdgpAmHTkwzw1zLWq/GPyVvWszAO9nMum6hxZSJQ32gXV3hkKkTjTaYzOrI//hJUXKGU+DyoUnVcS+OGe2ZW0PXWO906Y94rXMdY5YABCbu4YZtPqSlPsmx64Xvplz1LO3rrHOjfG/jDq5JGBs0OeCQBtF71SyhNyxf8kwdeOQa4zlDLjC+gcGWK2Ts28jL0JPhCzn2sO/ozmveHLrlOktNQx573Mrw+pMcptd48guaPelIl985n7aOWTGKGmq58jvR42HmeO8fwQBG61bMeuSxJ8NC5I4g8sm4lYamx829vb04/eR33KOc/L6VW0YES0Rn4JY1C/3FstgqeZCcVe3BLmXB5U11GlLXwsxYy5c9Hio3S57gb1DVz/lAd83s2J0ipEaOC3lZW4TlhG8Q5B2khLvZIa/+2GbrLkNdy7Ez89SIL8C9+7yRk0137n7DEXrsPE2a4XD+FjcLXchdE3sv75lug50pZnaf2rPbBfIvwA2jcoh9iZ//PGjxKPu4HHe3yc7cWfPU9+9hlRfZpSZyIH4gkGGezDecu9kGsSt+eGeoScy4R+Ry93v+oWfNozrDEIaiHXRD7DXkDONmzdY7oGbuAxPH/wEwphW49aD/MlAP40uv1I7bCf2a+KP+wF2p1f3pdBHHJfycnf43/AJwK37vPZnSygAAAABJRU5ErkJggg=="/>
|
|
60
|
-
</svg>`;return URL.createObjectURL(new Blob([s],{type:"image/svg+xml"}))},(r,i)=>`${r},${i}`),createShipIconV2=memoize(r=>{const i=r.designBeam,s=r.designLength,o=r.aisFromBow!=null&&r.aisFromCenter!=null?{x:r.aisFromCenter,y:r.designLength-r.aisFromBow}:{x:0,y:s/2},u=`${i/2+o.x} ${o.y}`,a=`${-i/2+o.x} ${o.y}`,l=`${o.x} ${o.y}`,c=`${o.x} ${-s+o.y}`,h=Math.floor(s*4/5),d=Math.floor((s-h)*2/3),m=`M${l}
|
|
61
|
-
C${u} ${u} ${i/2+o.x} ${o.y-3}
|
|
62
|
-
V${-h+o.y}
|
|
63
|
-
C${i/2+o.x} ${o.y-h-d} ${2+o.x} ${-s+o.y} ${c}
|
|
64
|
-
C${-2+o.x} ${-s+o.y} ${-i/2+o.x} ${o.y-h-d} ${-i/2+o.x} ${-h+o.y}
|
|
65
|
-
V${-3+o.y}
|
|
66
|
-
C${a} ${a} ${l}`,y=Math.max(Math.abs(i/2+o.x),Math.abs(-i/2+o.x)),T=Math.max(Math.abs(-s+o.y+(r.isMoving?-5:0)),Math.abs(o.y+(r.isMoving?146/124*i:0))),g=[-y*1.2,-T,2*y*1.2,2*T],v={x:2*1.2*y/i,y:2*T/s},O=`<?xml version="1.0" encoding="UTF-8"?>
|
|
67
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="${g.join(" ")}">
|
|
68
|
-
<defs>
|
|
69
|
-
<style>
|
|
70
|
-
#svg_1,
|
|
71
|
-
#img_1 {
|
|
72
|
-
display: ${r.isMoving?"block":"none"};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.cls-1 {
|
|
76
|
-
fill: ${r.color};
|
|
77
|
-
stroke: #000;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
.cls-1,
|
|
81
|
-
.cls-2 {
|
|
82
|
-
stroke-width: 1px;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.cls-2 {
|
|
86
|
-
fill: #efe9e6;
|
|
87
|
-
stroke: #050200;
|
|
88
|
-
}
|
|
89
|
-
</style>
|
|
90
|
-
</defs>
|
|
91
|
-
<g>
|
|
92
|
-
<path id="svg_1" data-name="svg 1" class="cls-2" d="M${c}v-5"/>
|
|
93
|
-
<path id="svg_4" data-name="svg 4" class="cls-1" d="${m}"/>
|
|
94
|
-
</g>
|
|
95
|
-
<image id="img_1" width="${i}" height="${146/124*i}" transform="translate(${-i/2+o.x} ${o.y})" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHwAAACSCAMAAACwjl5+AAAAq1BMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Nr6iZAAAAOXRSTlMABRshFgkSZg5qJmFdWlEqOXBFPYVJQYB1VXtNLpc1mzKguZCKtJONxc69yaukwa/SqN/k1trs6fBhRQqRAAAVcElEQVR42rSX3ZKaQBCFgxoIICh/ggjiIMPPMAOy6yZ5/yfLaTBVSa5istu1Vepe+M3p7jkHPz1Vmqav99umYLxsh7bvO6oeb8ZR1XUS7TaftU8fVdqX9cWpGBt5WeJvKbwbOJvyujEPlv5RcLBXZyesc1lyMSk5qWmS0zQxNQrGVF2Fpv9hdOg+2HFzZZwPQjFWFAxV4FUNJd5VcWr4u4+hgx0YcVgVchRtOSmW50wpVoA+lS0vWB6mifkxdE2H7jSOazaVfYtJo91yHKVSUmLq/Yihp2Zi09a9N1rb7Hxi07oN/dAOgnMwB4F9E3jtW1Y1oWea2yhbve/Oa583WWR4SRLnGHAPVkd3bblpA70XvcjDKjVs24ku70rX9NU5OgIeV9ect0L03a3rbve3l5e3+6273Vp0opVVmnrG1jkFl9UX7R3HfY5c2zCTOLxKNHzobzdCv3779voK/ls3tOi+ihPPcI5uFGRrXdPeZ8t16+y7zpbgVcHFWLb9fUZ/RX0D/e2txew5zxPTcNzIP+xBR+vfgb2x9oeTe3Rs04sLXuKmDWg5sb+jFnqH9ZejrL3t1o0Oh+CcrWG1/4v//GW1OwfR6XRybC+5SrBLPnTd/YXYC/3l7XYfJB+VVA3aHgX7/fli/TddA3ud7Q++758cI6kUVwo3rOu7t9/ht46rETe/iA3Az5cs261X+hfQ/4Otb9a7bB/sA9+1zbCYGIOx4FID/voV9AWOje8GxSaY3jW1XYzcsnbWf9E1DfNeW1l2yc6B75hxDjNVk6Q4Rdtp3x4zv3dt23Oy+bquUvsUZNYatdro/9p5DT3XV+vdzoL2w8mAvxQ5myYOV8Nd+3Xbcc/FMMi8YHVThcnWP6PpKEj/RzqxN6sVFFhZcLLTpr5emWLY9bKEdOz7y+sr7jnYHdlsK1id502cpiboFmRvdP0f6doM36yAt86nbRI2VZNDOhKNC4E2d2RwZHFd3w/0SNGWeQh/T5LEcP3LekZ/Ibj2D2zAddIOtu2lYVhBe46m0zMM3LSH+Du5a48dIIsR7djEYZh6nrk9+hnoQKOI/jx7hsNiItwyBFrYNLUSw5xipRiIjuoQK2I+Ec7FwjROPdNAugSXtb6wn4VrgC/0DXTD29BL0l4AywXAC7z7CUemcVGWguepl3j2duu4fgDtRNeonkE/lGPbd/uDC1f3AE/DRopyxLy7dhF+R6Ht6Hvfl0LAfiaKdANsN6KVJ7r2DF2b8UQn9vlwOm4Nw/C8JG0Y59O86X1PaAQKbJ0cBp96gYONYxFTpB+jU3QILkR/Dg70DH9Yq++6jjNrjwspmSxFf7+haNdfUbTvd3y80aOVUqpOwJ7DBelikckR+pmpL2xY6yXwoyiCr9tmWk9TAe0DdRua6ZajwId8/KsT6EtRFNdk60L3/nwm+Op5kyO2DmslX/UPCJWtnTQKXy1H3kPmA/2VCnyoB73lUsLd89A8Rj5kZxdKF1y4ZzeOdK8g/LzfI9NcxGmY44uVlAIr/gb0w9oX+uvcezFNKr9em9RwoTzbWZa1pnQh+rPuBjgOf4H4E1KlZvm1UArCO8DB/hmpRCc4nuQ4Q9erKgQdcEITXMfGPwfXdfJVJCP2PXI8/FBpmpwxJfr+Tzgpn1O1E6ou6iqGzxgu7fqKavOUv2soEo4Cn/bdTMMqrBAbBcdzKsFfCL7Uo+1ksy2vq2sTpgmM5rTPMPCNjlou+xMTJ2PdIFHpott4ao3jqq7rSQyI0+7nri/o5b6BDZdVOCS5u2c6PugbkDHzv/fYh79QAZ4FEaVKnMLZYTJi5PQksaw7isiERra1A5KN5yEOCrZpH/39brUE27PwxdjBPm3JW6EdMx/LceJwmY7w4FMRmVynF/T8yuU1TuPEtJEt7gGp/uj5X8G1GQ42iYe7BtHR9lApsrKZypFN40hhPofKfanbPO4WB5OTlKpKEsC3DmJ1pgP+t/SHsxKc2DB22zChHXTGR8YmGCzEi2E+AaoHeBAlShZMqUnm1HWyWPr1cAH9eTjYtGwzfKbHteSqUIyNUDhyjgBdCmDORym5hAnR6a7JD8bMdrtJKIii/lBZCMQQsHxEQggUXJqsmPd/OfeZIU2rxeSk1ja6upnLvXPm0ABfqxj1iS6ct0fpOIDQ3uC+cMIJKkkSAa/705HWDv4Zgio8nl1wL6eTZupubJlgu3bA0ZWaNsDlbDP9sboRa/5FprJarWzh04GiTecj5tHBv8wyckt0Pp+apuPrZizCpAKeZdkaczH6h4fgXrvYu6cNtszCK6Q1/FDq5kEU5tEiqnfB5lu4Z25L02l2n4qAZd+4s321Lf8Q29CwMZX1EzJHS4u+bUbVrsPG0r6Urk++JK2yzImHQz67RxW2uvtObCK6PEaX689uChxhKnEclJrZR4iXw0FPYcD5TT+6Lnrrogh5YlXGKc8Lmbo5G97mvnofjjyoEFN2+/06+8YEJ1uxof30rCcxR5i+3w/88b2uC7FHgzL0CWspA2ZImQuazQX8vdLd0MzPFJP0NKTOEa29Of903O2g3Q4bH37YJ1lLqscE26ed1hx9fIiuG+4hCfr3vTW4moYJfOpPz4fzQVg1GboM+qVPhCXe8As7n/qcVae5z3TB5VHe6e7nFODQZeWbKgiZmens0Nvz8/kMG5j3N17+SU2OrPgsHRscsKBwJuiKvAoctKc2dN/QoIMXOzJXofIi7y/MaKwtGEO/Fnj4uvvsx77mctMgthFadNj3fdU9xa2cLbfH0WgvKaWzg4YO02BT/RRb6N8vEl3vHrzdtTkXnOItMa3GogPsx+HQ1eBWZipBWgrfXI5dd4MjB+tjLv2n0HooW4fKa9WqqlZbp4NG9+GIdZeTJ8AjZRU04BgaXg/XG/5afte56RddYUfpZJwoxluY4DP56mehpUX0Sz6kyexlKlGs2nHIMqeB9vRXAot2OnQTWORs3tfD4I5e2BdYi+DfkMxFLc7pd3KKtjv50DwliWNb+GKkb41tQ3tFhne+yw4b7x+s74+0pDqIY+D4Grlprdj0EPyTxaS1DI1VS7TwYdE3Yz70Y4950Nqcj37wQkY+2DlracPjwMEsbZzYQJa1Qb9/1JBn00yGZo4WRUE5jH0OPJ86NhSbTjrc5GD907EbcuoGXoTxSpFNDwTdV4Hfvedycj32Yxag+iROopLZcSjUZ0Z8FS/Fy9TdX8Q35uqytImrHApUh8lWeRGH2O08tIn+/7Rwc1MuQDc9LAaVYpN7O/Zj00rdG7USzkdaymu1pLrEWjhoegpriVHWptrvZ1NzU6q3QaIWWD5VjCOeMUym/o3sHYpmbyivQC/pM+7p+68I+J3cdM2mhEMCosNDSysKAuVgMYwA4Xr7NwLLIjFIhKWuFWOLKh00C4xyN4cvsy0e4qWyU1Y9DtRcVXtZ5uPEWtLr0/cFTNR8wFVqWYsezkBnt10T4zLd46HsTNJ93yZ0GO6eF0XrKOs0Igi9VRDNSoMIC8yhp6lKp8tpiF07nI69bOpeuKwcsfRKxrBT8Ah2M9T6gWmUzIrn11UBIQnzZ1PUqXw45KTgLZudx9WP17z6LtvhEnCbI7RyobFr20o1lxJcyf7p9k0V63+XrHs/lGYIQVUB/6aJYrb0pbB8tXLJn0Kps0bmaUSGOfSnpVIYLf8vxRJeZvCpz21vBDENmoXPCE0sOVpwNhU+26k2fEZ/MQI/hDLyhgOs81PUeCUBSh3fdf1a/qerq6m8n4pU73LWVnJVjI3KYQuOFuCiW2uvYMeWF9IQX2HRgdfsPE1ntre1tP7y/c/bhQ65OsGAs6BI1kJgtNo/O1taiofQxd4Cjz2lhVE5NSPdhQPNXiql+l+VqJig85+g55hqECixbdXib8a2AP9kcNnpHBCrxCeZnACk85tPjOSu/G/5u712ZT5IRaitANyU3YwN9hKcNbfWVjEECR5YZJhyFT6QBwaX+qu1VGRfDaa+ha7Dhhtg6RzzrRz9m8VV6P+p3C1NdmrTl+VTevsweW35yDQziwTxSjR9F84yFaIP9GEs3eJilsHPdqSXJU8XXAFRbRUj3/Jh+z1gAwlMQRPGJayD21cS39SPXUN7LVQ4+zBWDbL0eaKQsS2uO3ZqVi5t9LAZdjGbWk3h4+glvwOX7LoovRS9AK4Jdk7K/PHf8y1VDpuB+WnDK3vaasPTqyFD1yZutOg39nt0ZdlmoCH671pEF3wvo8TVvyxMFNZc9Zh5nZk2Gh9lFMU8GwycdYOP/6BFN75fXK8l97wWRBw27rdccjmp+xwhP9lpkbThV2KXYEGXHDf96OkP4+a6szQQRdEfairpFBFDTcUQEo2+/xu61tkTS6Fetn6lBXTN5cy5zCgufh34p27bOkyfK+fohnTYRRdOoORnN5kSnuPDu2ewd+F0PHUas3cwh3QFaW/iX5T3f7oGf8S1u/1bS/2adWa43E1nksSYR7iXILx8Oz5TvkXDt2/uqgLvGVRfXdt7/GDV0t8/SweOzbZjdZ1Og98r1GWviYTnC6x064Wh4gphlZVbS311MvEruefTfqd51io/MGce7i0Ty43NwE02swuvoQHu9r4xzSxKk3XpWKnyF5fx70uupknnGXIDovsDTB/Fg5GFbu8kFLKFSweejUc1Ch/aR3jmwq67L3+V9uE+rSncZD6Ac79a+rgVmX6/34VDF89yc8InR4zGwx7oC4mR+SE56d9k3mFJ7fokj2kDxk5QNa5BF76TTwg3jXHa8XE0Vq+80HTYHCAziobWwQYMJV72dNCrQTfm4lzbYFybZ+GVzqwx/TWTEO6g42DIAJbRcWPQ+w4LFjC2B1XQRf2pz9OItRy0UwZ+qjp5xmUZ1xJUw94NqJ5fnum5g8WkSXSDhdCK1eqqEW2rFxT156qph5EX6M4PDmYxrlGpWq6Sxa5BVXzYqtipEYksFGq612nC0mGP5CR4PFODrtzNmydvptH9CMfMiTpelzrgw3GsYe2159lxxdJPcA0sTvxybBQNOqrGkuFQfEY4/vygCgS+pWZ1aY1RW4AP0JfL5ZjTRU4Hjeid/oez01P9ZSfhDuOg/bbRFdPG6xxil6X3eo9swHmxQLPewPzoOqMoHK95A25k2YVXYe755afbjQYw824/1nnJOHnfzrIDN/ggr6pe0v3raNcZeMWsm8CdrJEJqS9hTfQa1O6nG9+52QXymUqchwoOlBDLHPiKW3u+ws9tmC7O/WAG6T9Qo+eUyXiv/UJZth0HDtrA4gQycybpYxm5Zjyj4GuyHezcBR34PPF95szI4MpcznzugL/Bf+3Dy9RpWgJv4Ow/Rg2f4/XcNUd1t3lUl+OAU7W1iPVpiV7wFIE7cDsOXDk8NfNnklc00OXFblDyYQZbnTdPSTwtGMmZq+u2wmopcJw3l6QTzwVqon0F9TvsY1UN5iKyMbulexYux67c5Fb5zgR8gL60jBYnXCfqVPv8VhnXNvDs8Ecaxt2lBsyqwSboMPRX8peuCXHx2qWHMxz1pi6Dsz/Htb5Jp1Ui+lNEjarnfR8O+Ii1mRfQC913aK3x8ygr9PUTF8nIiLvpfcUiWWyOu31Ga5EeduC2q8MxOGyHIbQHzbKUXjgFklj3pSqLvagW1VdqQ2N0EBoR1YVQeRSAIu/Aiaj8hq2n0XuSQ2Yoa7UfBKU2/6P89OD14E4UYKaIBK68AfRYOnqFI+H0G7hrl8gK/GqIMnonLVKHVZv7UjmlwUcHXrs5n+534XFvgGVv4CoWD5uVhuYkQNNQkMG9b8l/1WA0KfjHFAzXrLQ4rxQsXU/RPLtwZO7GgBv2XoeZmVrhDP4/6H6crhvVTCQqrpzWgsWgFj1vdVfZ4FYpv4Abpa9T7bMVX1/7r55rm1DLMprmNp/jY8D3roe+iWmyM+NGn9g70dk0TBturfr0b3h9rax+qHNsTDeuHXxmPfS9Q0zheliC/2ypOrlWm3xNqfTXGY/JuZuDCk4vgJfnNK5I3+m51vbbuwNH87G7DfiY23/J2Y4TEs6ZIqpSDTzqA/9ywPAWquh4d3S6LCg+02nP9PtrR/UB8r5Ni9k31wv/WgYJx3/tnen+HvVEFo9xNbrKoY+JFgxjuoPGyJt4u/UdRTvbom9G2romVOMNHeVUdSeqgbeBTn1K1asxNIctrQYBTQ/aPijVmqk3fxj4rG9zsg0rMLi+Bhbhyi+kWCWymUVXWgw8KXuPpj4oHxXEh8dJeLLAZMwOaHZfs/e8F1j8gi/Q4bNBUhbfvTy9iDIUzCaKLlu53yrVxcoaT20eOPQ/wUHzacFJZJOemstSrhfLla/ykmRO5b3+cbXG/AEnbfYWcws8brQv9RUOVDKqrhvbNHd3aPA6RuRiPeqm1Obdas+cHahEszgXu2aPxb97hqvesFoT+kP4LlHgs6i7P6voU3R/VL6WhBW8fx7vVlMuXMnewHuIDzzeBrye1mTW7n94kh/428uTgJaZSdezKkcdePQCh42EO+mhO10eeRiMuckRVcnHVXDymg9sr/+pwcn7qmfdepdNWFsbI3w1d3ukv/v6qzoz2lEQBqJoVjQx/P8Hb6/nwoUyK9Xwskd3LYVynNrOxKgoxM3Q6MjZRrM6n5NgvIsjz2oP3u+CMkSuXcffebSnDvQEOtOh0iw5drqT1Yfks9yT4kdgpAmHTkwzw1zLWq/GPyVvWszAO9nMum6hxZSJQ32gXV3hkKkTjTaYzOrI//hJUXKGU+DyoUnVcS+OGe2ZW0PXWO906Y94rXMdY5YABCbu4YZtPqSlPsmx64Xvplz1LO3rrHOjfG/jDq5JGBs0OeCQBtF71SyhNyxf8kwdeOQa4zlDLjC+gcGWK2Ts28jL0JPhCzn2sO/ozmveHLrlOktNQx573Mrw+pMcptd48guaPelIl985n7aOWTGKGmq58jvR42HmeO8fwQBG61bMeuSxJ8NC5I4g8sm4lYamx829vb04/eR33KOc/L6VW0YES0Rn4JY1C/3FstgqeZCcVe3BLmXB5U11GlLXwsxYy5c9Hio3S57gb1DVz/lAd83s2J0ipEaOC3lZW4TlhG8Q5B2khLvZIa/+2GbrLkNdy7Ez89SIL8C9+7yRk0137n7DEXrsPE2a4XD+FjcLXchdE3sv75lug50pZnaf2rPbBfIvwA2jcoh9iZ//PGjxKPu4HHe3yc7cWfPU9+9hlRfZpSZyIH4gkGGezDecu9kGsSt+eGeoScy4R+Ry93v+oWfNozrDEIaiHXRD7DXkDONmzdY7oGbuAxPH/wEwphW49aD/MlAP40uv1I7bCf2a+KP+wF2p1f3pdBHHJfycnf43/AJwK37vPZnSygAAAABJRU5ErkJggg=="/>
|
|
96
|
-
</svg>`;return{url:URL.createObjectURL(new Blob([O],{type:"image/svg+xml"})),viewBox:g,scale:v}},r=>`${r.color},${r.isMoving},${r.designBeam??0},${r.designLength??0},${r.aisFromBow??0},${r.aisFromCenter??0}`),shipTypeColorMap=new Map([[-1,"#00FF00"],[70,"#95B3D7"],[37,"#00FF00"],[50,"#366092"],[51,"#366092"],[52,"#366092"],[53,"#366092"],[54,"#366092"],[55,"#366092"],[56,"#366092"],[57,"#366092"],[58,"#366092"],[59,"#366092"],[80,"red"],[81,"red"],[82,"red"],[83,"red"],[84,"red"],[85,"red"],[86,"red"],[87,"red"],[88,"red"],[89,"red"]]);function createAlphaSampled(r){const i=new Cesium.SampledProperty(Cesium.Color),s=(r==null?void 0:r.startTime)??Cesium.JulianDate.now(),o=Cesium.JulianDate.addMinutes(s,(r==null?void 0:r.startFadeMinutes)??1,new Cesium.JulianDate),u=Cesium.JulianDate.addMinutes(s,(r==null?void 0:r.endFadeMinutes)??5,new Cesium.JulianDate),a=Cesium.JulianDate.fromIso8601("2100-01-01T00:00:00Z"),l=(r==null?void 0:r.color)??Cesium.Color.WHITE;return i.addSample(s,l.withAlpha(1)),i.addSample(o,l.withAlpha(1)),i.addSample(u,l.withAlpha(.2)),i.addSample(a,l.withAlpha(.1)),i}function getHideAfterSomeMinutesProperty(r,i){const s=i??Cesium.JulianDate.now(),o=Cesium.JulianDate.addMinutes(s,r,new Cesium.JulianDate);return new Cesium.CallbackProperty(u=>u?Cesium.JulianDate.lessThan(u,o):!0,!1)}function getHideAfterSomeMinutesAndByDistance(r,i,s,o,u){const a=u??Cesium.JulianDate.now(),l=Cesium.JulianDate.addMinutes(a,r,new Cesium.JulianDate);return new Cesium.CallbackProperty(c=>{var m;if(!o)return!0;if(!c||!Cesium.JulianDate.lessThan(c,l))return!1;const h=(m=s.position)==null?void 0:m.getValue(c);return h?Cesium.Cartesian3.distance(o.positionWC,h)<=(i??4e3):!1},!1)}function createRoundedRectImage({text:r="未知",fill:i="#5582DF",stroke:s="#FFFFFF",strokeWidth:o=2,textColor:u="#FFFFFF",fontFamily:a="微软雅黑, Segoe UI, Helvetica, Arial, sans-serif",fontWeight:l="normal",fontSize:c=12,padding:h=6,radius:d=5}={}){const m=Math.max(0,r.length*c*.6+h*2),y=c*1.6,T=2,g=Math.ceil(o/2)+1,v=m+g*2,O=y+g*2,P=document.createElement("canvas");P.width=Math.round(v*T),P.height=Math.round(O*T),P.style.width=`${v}px`,P.style.height=`${O}px`;const _=P.getContext("2d");if(!_)throw new Error("无法获取2D绘图上下文");_.scale(T,T),_.clearRect(0,0,v,O),_.lineJoin="round",_.lineCap="round";const C=g,E=g,S=v-g,x=O-g,R=S-C,G=x-E,H=Math.min(d,Math.min(R,G)/2);_.beginPath(),_.moveTo(C+H,E),_.lineTo(S-H,E),_.quadraticCurveTo(S,E,S,E+H),_.lineTo(S,x-H),_.quadraticCurveTo(S,x,S-H,x),_.lineTo(C+H,x),_.quadraticCurveTo(C,x,C,x-H),_.lineTo(C,E+H),_.quadraticCurveTo(C,E,C+H,E),_.closePath(),i&&i!=="transparent"&&(_.fillStyle=i,_.fill()),_.lineWidth=o,_.strokeStyle=s,_.stroke();const D=Math.max(0,m-h*2);let Z=c;for(_.fillStyle=u,_.textAlign="center",_.textBaseline="middle",_.font=`${l} ${Z}px ${a}`;_.measureText(r).width>D&&Z>10;)Z-=1,_.font=`${l} ${Z}px ${a}`;return _.fillText(r,v/2,O/2+1),P}function hookClusterEvent(r){r.clustering.clusterEvent.addEventListener((s,o)=>{const u=s[0],a=u.billboard,l=u.label,c=u.point;o.label.show=!1,o.point.show=!1,a&&(o.billboard=Cesium.clone(a)),l&&(o.label=Cesium.clone(l)),c?o.point=Cesium.clone(c):(o.billboard.show=!0,o.billboard.image=Cesium.buildModuleUrl("Widgets/Images/clusterIcon.png"))})}class ShipLayer extends EventEmitter{constructor(s,o,u){var a,l,c;super();Te(this,"db");Te(this,"labelDataSource",new Cesium.CustomDataSource("ship-labels"));Te(this,"IS_MOVING_THRESHOLD");Te(this,"shipDisplayOptions");Te(this,"isMounted",!1);Te(this,"_viewer",null);Te(this,"entityMap",new Map);Te(this,"shadowEntityMap",new WeakMap);Te(this,"hookFilterEntityFn");this.key=s,this.zIndex=o,this.opt=u,this.IS_MOVING_THRESHOLD=(u==null?void 0:u.IS_MOVING_THRESHOLD)??1,this.db=new Cesium.CustomDataSource(s),this.labelDataSource.clustering.enabled=((a=u==null?void 0:u.clustering)==null?void 0:a.enabled)??!0,this.labelDataSource.clustering.pixelRange=((l=u==null?void 0:u.clustering)==null?void 0:l.pixelRange)??15,this.labelDataSource.clustering.minimumClusterSize=((c=u==null?void 0:u.clustering)==null?void 0:c.minimumClusterSize)??2,this.shipDisplayOptions=defaults(u==null?void 0:u.shipDisplayOptions,{startFadeMinutes:1,endFadeMinutes:5,hideMinutes:60}),hookClusterEvent(this.labelDataSource)}show(s){this.isMounted||(s.dataSources.add(this.db),s.dataSources.add(this.labelDataSource),this._viewer=s,this.isMounted=!0),this.db.show=!0}hide(){this.isMounted&&(this.db.show=!1,this.labelDataSource.show=!1)}contain(s){const o=s.id.replace(/_shadow\d*$/,"");return this.entityMap.has(o)}render(s){s.features.forEach(o=>{this.renderFeature(o)})}getIdByFeature(s){var u;const o=String(((u=s.properties)==null?void 0:u.mmsi)??s.id);if(!o)throw new Error("feature必须有mmsi或id");return"ship_mmsi_"+o}renderFeature(s){var d,m;const o=this.getIdByFeature(s),u=new Cesium.SampledPositionProperty;u.backwardExtrapolationType=Cesium.ExtrapolationType.HOLD,u.forwardExtrapolationType=Cesium.ExtrapolationType.HOLD;const a=Cesium.Cartesian3.fromDegrees(s.geometry.coordinates[0],s.geometry.coordinates[1]);u.addSample(((d=this._viewer)==null?void 0:d.clock.currentTime)??Cesium.JulianDate.now(),a);const l=((m=s.properties)==null?void 0:m.courseOverGroundTrue)??0,c=new Cesium.Entity({id:o,position:u,orientation:new Cesium.ConstantProperty(Cesium.Transforms.headingPitchRollQuaternion(a,new Cesium.HeadingPitchRoll(l,0,0))),properties:s.properties??{}});this.entityMap.set(o,c),this.db.entities.add(c),this.renderEntity(c);const h=new Cesium.Entity({id:o+"_shadow1",position:u,properties:s.properties??{}});this.labelDataSource.entities.add(h),this.renderLabelEntity(h),this.emit("createEntity",c)}update(s){var u,a,l,c,h,d,m,y,T,g,v,O,P,_,C,E,S;const o=this.db.entities.getById(this.getIdByFeature(s));if(o){const x=this.labelDataSource.entities.getById(o.id+"_shadow1"),R=this.shadowEntityMap.get(o),G=((u=s.properties)==null?void 0:u.shipTypeId)??-1,H=shipTypeColorMap.get(G)??shipTypeColorMap.get(-1),[D,Z]=s.geometry.coordinates,$=((a=this._viewer)==null?void 0:a.clock.currentTime)??Cesium.JulianDate.now(),z=(l=o.position)==null?void 0:l.getValue($),ee=Cesium.Cartesian3.fromDegrees(D,Z),J=new Cesium.SampledPositionProperty;J.backwardExtrapolationType=Cesium.ExtrapolationType.HOLD,J.forwardExtrapolationType=Cesium.ExtrapolationType.HOLD;const fe=(c=o.properties)==null?void 0:c.getValue().updateTime,se=(h=s.properties)==null?void 0:h.updateTime;if(fe&&se&&new Date(se).getTime()-new Date(fe).getTime()>=3*1e3*60)J.addSample($,ee);else{const te=Cesium.JulianDate.addSeconds($,3,new Cesium.JulianDate);J.addSample(Cesium.JulianDate.addSeconds($,1,new Cesium.JulianDate),z??ee),J.addSample(te,ee)}if(o.position=J,R&&(R.position=J),x&&(x.position=J),o.properties)for(const[te,X]of Object.entries(s.properties??{})){if(te=="speedOverGround"){const ae=o.properties.getValue().speedOverGround??0,ne=Number(ae)>this.IS_MOVING_THRESHOLD,le=Number(X)>this.IS_MOVING_THRESHOLD;if(ne!==le&&(o.billboard&&(o.billboard.image=new Cesium.ConstantProperty(createShipIconUrl(H,le))),R!=null&&R.plane)){const ue=((d=s.properties)==null?void 0:d.designBeam)??((y=(m=this.opt)==null?void 0:m.defaultValue)==null?void 0:y.designBeam)??12,ve=((T=s.properties)==null?void 0:T.designLength)??((v=(g=this.opt)==null?void 0:g.defaultValue)==null?void 0:v.designLength)??35,he=createShipIconV2({color:H,isMoving:le,...s.properties,designBeam:ue,designLength:ve}),Oe=(O=R.plane)==null?void 0:O.material;Oe&&(Oe.image=new Cesium.ConstantProperty(he.url),R.plane.dimensions=new Cesium.ConstantProperty(new Cesium.Cartesian2(ue*he.scale.x,ve*he.scale.y))),R.plane.dimensions=new Cesium.CallbackProperty(()=>new Cesium.Cartesian2(ue*he.scale.x,ve*he.scale.y),!0)}}if(te=="courseOverGroundTrue"){const ae=((P=s.properties)==null?void 0:P.courseOverGroundTrue)??0;o.billboard.rotation=new Cesium.ConstantProperty(typeof X=="number"?-1*X:0);const ne=new Cesium.ConstantProperty(Cesium.Transforms.headingPitchRollQuaternion(ee,new Cesium.HeadingPitchRoll(ae,0,0)));R&&(R.orientation=ne)}if(te=="updateTime"){const ae=Cesium.JulianDate.fromDate(new Date(X));o.billboard.color=createAlphaSampled({startTime:ae,startFadeMinutes:this.shipDisplayOptions.startFadeMinutes,endFadeMinutes:this.shipDisplayOptions.endFadeMinutes});const ne=(_=R==null?void 0:R.plane)==null?void 0:_.material;ne&&(ne.color=createAlphaSampled({startTime:ae,startFadeMinutes:this.shipDisplayOptions.startFadeMinutes,endFadeMinutes:this.shipDisplayOptions.endFadeMinutes}));const le=getHideAfterSomeMinutesProperty(this.shipDisplayOptions.endFadeMinutes,ae);x!=null&&x.billboard&&(x.billboard.show=le),o.point.show=le,R!=null&&R.plane&&(R.plane.show=getHideAfterSomeMinutesAndByDistance(this.shipDisplayOptions.hideMinutes,((E=(C=this.opt)==null?void 0:C.distanceDisplayConditions)==null?void 0:E.near)??4e3,o,(S=this._viewer)==null?void 0:S.camera,ae))}o.properties[te]=X,R!=null&&R.properties&&(R.properties[te]=X)}}else this.renderFeature(s)}renderEntity(s){var m,y,T,g,v,O,P,_,C;const o=(m=s.properties)==null?void 0:m.getValue(),u=(o==null?void 0:o.shipTypeId)??-1,a=shipTypeColorMap.get(u)??shipTypeColorMap.get(-1),l=Number((o==null?void 0:o.speedOverGround)??0),c=o!=null&&o.updateTime?new Date(o.updateTime):new Date,h=Cesium.JulianDate.fromDate(c),d=createShipIconUrl(a,l>this.IS_MOVING_THRESHOLD);s.point=new Cesium.PointGraphics({pixelSize:4,color:Cesium.Color.fromCssColorString("#8AF22C"),disableDepthTestDistance:3e6,distanceDisplayCondition:new Cesium.DistanceDisplayCondition(((T=(y=this.opt)==null?void 0:y.distanceDisplayConditions)==null?void 0:T.far)??15e3),show:getHideAfterSomeMinutesProperty(this.shipDisplayOptions.endFadeMinutes,h)}),s.billboard=new Cesium.BillboardGraphics({image:d,width:14,height:70,disableDepthTestDistance:3e6,distanceDisplayCondition:new Cesium.DistanceDisplayCondition(((v=(g=this.opt)==null?void 0:g.distanceDisplayConditions)==null?void 0:v.near)??4e3,((P=(O=this.opt)==null?void 0:O.distanceDisplayConditions)==null?void 0:P.far)??15e3),pixelOffset:new Cesium.Cartesian2(0,0),alignedAxis:Cesium.Cartesian3.UNIT_Z,color:createAlphaSampled({startTime:h,startFadeMinutes:this.shipDisplayOptions.startFadeMinutes,endFadeMinutes:this.shipDisplayOptions.endFadeMinutes}),rotation:new Cesium.ConstantProperty((C=(_=s.properties)==null?void 0:_.getValue())!=null&&C.courseOverGroundTrue?-1*s.properties.getValue().courseOverGroundTrue:0)}),this.createShipPlane(s)}renderLabelEntity(s){var h,d,m,y,T,g,v;const o=(h=s.properties)==null?void 0:h.getValue(),u=o!=null&&o.updateTime?new Date(o.updateTime):new Date,a=Cesium.JulianDate.fromDate(u),l=((m=(d=s.properties)==null?void 0:d.getValue())==null?void 0:m.name)??((y=s.properties)!=null&&y.getValue().mmsi?"mmsi:"+((T=s.properties)==null?void 0:T.getValue().mmsi):"未知"),c=createRoundedRectImage({text:l});s.billboard=new Cesium.BillboardGraphics({image:new Cesium.ConstantProperty(c),width:new Cesium.ConstantProperty(Number(c.style.width.replace("px",""))),height:new Cesium.ConstantProperty(Number(c.style.height.replace("px",""))),scale:new Cesium.ConstantProperty(1),pixelOffset:new Cesium.ConstantProperty(new Cesium.Cartesian2(0,-20)),horizontalOrigin:new Cesium.ConstantProperty(Cesium.HorizontalOrigin.CENTER),verticalOrigin:new Cesium.ConstantProperty(Cesium.VerticalOrigin.CENTER),distanceDisplayCondition:new Cesium.DistanceDisplayCondition(0,((v=(g=this.opt)==null?void 0:g.distanceDisplayConditions)==null?void 0:v.far)??15e3),disableDepthTestDistance:5e3,show:getHideAfterSomeMinutesProperty(this.shipDisplayOptions.endFadeMinutes,a)})}createShipPlane(s){var g,v,O,P,_,C,E,S;const o=new Cesium.Entity({id:s.id+"_shadow",position:s.position,orientation:s.orientation,properties:s.properties});this.shadowEntityMap.set(s,o),this.db.entities.add(o);const u=(g=s.properties)==null?void 0:g.getValue(),a=u!=null&&u.updateTime?new Date(u.updateTime):new Date,l=Cesium.JulianDate.fromDate(a),c=Number((u==null?void 0:u.speedOverGround)??0),h=(u==null?void 0:u.designBeam)??((O=(v=this.opt)==null?void 0:v.defaultValue)==null?void 0:O.designBeam)??12,d=(u==null?void 0:u.designLength)??((_=(P=this.opt)==null?void 0:P.defaultValue)==null?void 0:_.designLength)??35,m=(u==null?void 0:u.shipTypeId)??-1,y=shipTypeColorMap.get(m)??shipTypeColorMap.get(-1),T=createShipIconV2({color:y,isMoving:c>this.IS_MOVING_THRESHOLD,...u,designBeam:h,designLength:d});o.plane=new Cesium.PlaneGraphics({plane:new Cesium.Plane(Cesium.Cartesian3.UNIT_Z,0),dimensions:new Cesium.Cartesian2(h*T.scale.x,d*T.scale.y),show:getHideAfterSomeMinutesAndByDistance(this.shipDisplayOptions.hideMinutes,((E=(C=this.opt)==null?void 0:C.distanceDisplayConditions)==null?void 0:E.near)??4e3,s,(S=this._viewer)==null?void 0:S.camera,l),material:new Cesium.ImageMaterialProperty({image:T.url,transparent:!0,repeat:new Cesium.Cartesian2(1,1),color:createAlphaSampled({startTime:l,startFadeMinutes:this.shipDisplayOptions.startFadeMinutes,endFadeMinutes:this.shipDisplayOptions.endFadeMinutes})})})}hideEntityByCondition(s){this.hookFilterEntityFn&&this.off("createEntity",this.hookFilterEntityFn),this.hookFilterEntityFn=o=>{const u=(s==null?void 0:s(o))??!0;o.show=u;const a=this.shadowEntityMap.get(o);a&&(a.show=u);const l=this.labelDataSource.entities.getById(o.id+"_shadow1");l&&(l.show=u)},this.db.entities.values.forEach(o=>{var u;(u=this.hookFilterEntityFn)==null||u.call(this,o)}),s&&this.on("createEntity",this.hookFilterEntityFn)}}Cesium.Color.fromCssColorString("#FC4C02");Cesium.Color.WHITE;new Cesium.Color;new Array(4);var e$2=[],t$2=[];function n$2(r,i){if(r&&typeof document<"u"){var s,o=i.prepend===!0?"prepend":"append",u=i.singleTag===!0,a=typeof i.container=="string"?document.querySelector(i.container):document.getElementsByTagName("head")[0];if(u){var l=e$2.indexOf(a);l===-1&&(l=e$2.push(a)-1,t$2[l]={}),s=t$2[l]&&t$2[l][o]?t$2[l][o]:t$2[l][o]=c()}else s=c();r.charCodeAt(0)===65279&&(r=r.substring(1)),s.styleSheet?s.styleSheet.cssText+=r:s.appendChild(document.createTextNode(r))}function c(){var h=document.createElement("style");if(h.setAttribute("type","text/css"),i.attributes)for(var d=Object.keys(i.attributes),m=0;m<d.length;m++)h.setAttribute(d[m],i.attributes[d[m]]);var y=o==="prepend"?"afterbegin":"beforeend";return a.insertAdjacentElement(y,h),h}}var css$2='.cesium-tool-tip{background:rgba(0,0,0,.6);border-radius:4px;color:#fff;left:0;line-height:30px;min-height:30px;min-width:100px;padding:0 10px;pointer-events:none;position:absolute;top:0;visibility:hidden;z-index:-1}.cesium-tool-tip:before{border-bottom:10px solid transparent;border-right:10px solid rgba(0,0,0,.6);border-top:10px solid transparent;content:"";display:block;left:-10px;pointer-events:none;position:absolute;top:calc(50% - 10px)}';n$2(css$2,{});Cesium.Color.YELLOW,Cesium.Color.YELLOW,Cesium.Color.DARKTURQUOISE.withAlpha(.5),Cesium.Color.BLUE,Cesium.Color.WHITE,Cesium.Color.YELLOW.withAlpha(.5),Cesium.Color.YELLOW.withAlpha(.5);Cesium.Color.WHITE,new Cesium.Color(.165,.165,.165,.8),new Cesium.Cartesian2(4,4),Cesium.LabelStyle.FILL_AND_OUTLINE,new Cesium.Cartesian2(4,0),new Cesium.NearFarScalar(1,.85,8e6,.75),Cesium.HeightReference.CLAMP_TO_GROUND;var e$1=[],t$1=[];function n$1(r,i){if(r&&typeof document<"u"){var s,o=i.prepend===!0?"prepend":"append",u=i.singleTag===!0,a=typeof i.container=="string"?document.querySelector(i.container):document.getElementsByTagName("head")[0];if(u){var l=e$1.indexOf(a);l===-1&&(l=e$1.push(a)-1,t$1[l]={}),s=t$1[l]&&t$1[l][o]?t$1[l][o]:t$1[l][o]=c()}else s=c();r.charCodeAt(0)===65279&&(r=r.substring(1)),s.styleSheet?s.styleSheet.cssText+=r:s.appendChild(document.createTextNode(r))}function c(){var h=document.createElement("style");if(h.setAttribute("type","text/css"),i.attributes)for(var d=Object.keys(i.attributes),m=0;m<d.length;m++)h.setAttribute(d[m],i.attributes[d[m]]);var y=o==="prepend"?"afterbegin":"beforeend";return a.insertAdjacentElement(y,h),h}}var css$1=".cesium-compass{cursor:pointer;height:60px;pointer-events:auto;position:absolute;right:15px;top:100px;user-select:none;width:60px}.cesium-compass .out-ring{fill:rgba(23,49,71,.702);background-repeat:no-repeat;background-size:contain;border-radius:50%;height:60px;left:0;position:absolute;top:0;transition:all .3s ease;width:60px}.cesium-compass .out-ring svg{height:60px;width:60px}.cesium-compass:hover .rotation_marker svg{height:70.2px;width:70.2px}.cesium-compass .gyro{align-items:center;background:#fff;border-radius:50%;box-sizing:border-box;display:flex;height:30px;justify-content:center;margin:0 auto;padding:4px;position:relative;text-align:center;top:50%;transform:translateY(-50%);transition:all .3s ease;width:30px}.cesium-compass .gyro svg{height:20px;width:20px}.rotation_marker{background-repeat:no-repeat;background-size:contain;border-radius:50%;position:relative}.rotation_marker svg{height:60px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s ease;width:60px}.cesium-compass .gyro-active,.cesium-compass .gyro:hover{fill:#68adfe}";n$1(css$1,{});var e=[],t=[];function n(r,i){if(r&&typeof document<"u"){var s,o=i.prepend===!0?"prepend":"append",u=i.singleTag===!0,a=typeof i.container=="string"?document.querySelector(i.container):document.getElementsByTagName("head")[0];if(u){var l=e.indexOf(a);l===-1&&(l=e.push(a)-1,t[l]={}),s=t[l]&&t[l][o]?t[l][o]:t[l][o]=c()}else s=c();r.charCodeAt(0)===65279&&(r=r.substring(1)),s.styleSheet?s.styleSheet.cssText+=r:s.appendChild(document.createTextNode(r))}function c(){var h=document.createElement("style");if(h.setAttribute("type","text/css"),i.attributes)for(var d=Object.keys(i.attributes),m=0;m<d.length;m++)h.setAttribute(d[m],i.attributes[d[m]]);var y=o==="prepend"?"afterbegin":"beforeend";return a.insertAdjacentElement(y,h),h}}var css=".cesium-zoom-controller{border-radius:100px;box-sizing:border-box;display:flex;flex-direction:column;line-height:1.2rem;pointer-events:auto;position:absolute;right:30px;text-align:center;top:187px;user-select:none}.cesium-zoom-controller .refresh,.cesium-zoom-controller .zoom-in,.cesium-zoom-controller .zoom-out{border-radius:14%;margin-bottom:5px}.cesium-zoom-controller .cesium-button{background:#2a2e39;border:none;margin-right:0;transition:all .3s cubic-bezier(.645,.045,.355,1);transition-delay:0s;transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.645,.045,.355,1)}.cesium-zoom-controller .cesium-button:hover{background:#48b;box-shadow:none}.cesium-zoom-controller .cesium-button:active{fill:#edffff;background:#adf;color:#edffff}.cesium-zoom-controller .cesium-toolbar-button{align-items:center;display:flex;height:30px;justify-content:center;width:30px}";n(css,{});var heatmap$1={exports:{}},heatmap=heatmap$1.exports,hasRequiredHeatmap;function requireHeatmap(){return hasRequiredHeatmap||(hasRequiredHeatmap=1,function(r){(function(i,s,o){r.exports?r.exports=o():s[i]=o()})("h337",heatmap,function(){var i={defaultRadius:40,defaultRenderer:"canvas2d",defaultGradient:{.25:"rgb(0,0,255)",.55:"rgb(0,255,0)",.85:"yellow",1:"rgb(255,0,0)"},defaultMaxOpacity:1,defaultMinOpacity:0,defaultBlur:.85,defaultXField:"x",defaultYField:"y",defaultValueField:"value",plugins:{}},s=function(){var d=function(T){this._coordinator={},this._data=[],this._radi=[],this._min=10,this._max=1,this._xField=T.xField||T.defaultXField,this._yField=T.yField||T.defaultYField,this._valueField=T.valueField||T.defaultValueField,T.radius&&(this._cfgRadius=T.radius)},m=i.defaultRadius;return d.prototype={_organiseData:function(y,T){var g=y[this._xField],v=y[this._yField],O=this._radi,P=this._data,_=this._max,C=this._min,E=y[this._valueField]||1,S=y.radius||this._cfgRadius||m;P[g]||(P[g]=[],O[g]=[]),P[g][v]?P[g][v]+=E:(P[g][v]=E,O[g][v]=S);var x=P[g][v];return x>_?(T?this.setDataMax(x):this._max=x,!1):x<C?(T?this.setDataMin(x):this._min=x,!1):{x:g,y:v,value:E,radius:S,min:C,max:_}},_unOrganizeData:function(){var y=[],T=this._data,g=this._radi;for(var v in T)for(var O in T[v])y.push({x:v,y:O,radius:g[v][O],value:T[v][O]});return{min:this._min,max:this._max,data:y}},_onExtremaChange:function(){this._coordinator.emit("extremachange",{min:this._min,max:this._max})},addData:function(){if(arguments[0].length>0)for(var y=arguments[0],T=y.length;T--;)this.addData.call(this,y[T]);else{var g=this._organiseData(arguments[0],!0);g&&(this._data.length===0&&(this._min=this._max=g.value),this._coordinator.emit("renderpartial",{min:this._min,max:this._max,data:[g]}))}return this},setData:function(y){var T=y.data,g=T.length;this._data=[],this._radi=[];for(var v=0;v<g;v++)this._organiseData(T[v],!1);return this._max=y.max,this._min=y.min||0,this._onExtremaChange(),this._coordinator.emit("renderall",this._getInternalData()),this},removeData:function(){},setDataMax:function(y){return this._max=y,this._onExtremaChange(),this._coordinator.emit("renderall",this._getInternalData()),this},setDataMin:function(y){return this._min=y,this._onExtremaChange(),this._coordinator.emit("renderall",this._getInternalData()),this},setCoordinator:function(y){this._coordinator=y},_getInternalData:function(){return{max:this._max,min:this._min,data:this._data,radi:this._radi}},getData:function(){return this._unOrganizeData()}},d}(),o=function(){var d=function(g){var v=g.gradient||g.defaultGradient,O=document.createElement("canvas"),P=O.getContext("2d",{willReadFrequently:!0});O.width=256,O.height=1;var _=P.createLinearGradient(0,0,256,1);for(var C in v)_.addColorStop(C,v[C]);return P.fillStyle=_,P.fillRect(0,0,256,1),P.getImageData(0,0,256,1).data},m=function(g,v){var O=document.createElement("canvas"),P=O.getContext("2d",{willReadFrequently:!0}),_=g,C=g;if(O.width=O.height=g*2,v==1)P.beginPath(),P.arc(_,C,g,0,2*Math.PI,!1),P.fillStyle="rgba(0,0,0,1)",P.fill();else{var E=P.createRadialGradient(_,C,g*v,_,C,g);E.addColorStop(0,"rgba(0,0,0,1)"),E.addColorStop(1,"rgba(0,0,0,0)"),P.fillStyle=E,P.fillRect(0,0,2*g,2*g)}return O},y=function(C){for(var v=[],O=C.min,P=C.max,_=C.radi,C=C.data,E=Object.keys(C),S=E.length;S--;)for(var x=E[S],R=Object.keys(C[x]),G=R.length;G--;){var H=R[G],D=C[x][H],Z=_[x][H];v.push({x,y:H,value:D,radius:Z})}return{min:O,max:P,data:v}};function T(g){var v=g.container,O=this.shadowCanvas=document.createElement("canvas"),P=this.canvas=g.canvas||document.createElement("canvas");this._renderBoundaries=[1e4,1e4,0,0];var _=getComputedStyle(g.container)||{};P.className="heatmap-canvas",this._width=P.width=O.width=g.width||+_.width.replace(/px/,""),this._height=P.height=O.height=g.height||+_.height.replace(/px/,""),this.shadowCtx=O.getContext("2d",{willReadFrequently:!0}),this.ctx=P.getContext("2d",{willReadFrequently:!0}),P.style.cssText=O.style.cssText="position:absolute;left:0;top:0;",v.style.position="relative",v.appendChild(P),this._palette=d(g),this._templates={},this._setStyles(g)}return T.prototype={renderPartial:function(g){g.data.length>0&&(this._drawAlpha(g),this._colorize())},renderAll:function(g){this._clear(),g.data.length>0&&(this._drawAlpha(y(g)),this._colorize())},_updateGradient:function(g){this._palette=d(g)},updateConfig:function(g){g.gradient&&this._updateGradient(g),this._setStyles(g)},setDimensions:function(g,v){this._width=g,this._height=v,this.canvas.width=this.shadowCanvas.width=g,this.canvas.height=this.shadowCanvas.height=v},_clear:function(){this.shadowCtx.clearRect(0,0,this._width,this._height),this.ctx.clearRect(0,0,this._width,this._height)},_setStyles:function(g){this._blur=g.blur==0?0:g.blur||g.defaultBlur,g.backgroundColor&&(this.canvas.style.backgroundColor=g.backgroundColor),this._width=this.canvas.width=this.shadowCanvas.width=g.width||this._width,this._height=this.canvas.height=this.shadowCanvas.height=g.height||this._height,this._opacity=(g.opacity||0)*255,this._maxOpacity=(g.maxOpacity||g.defaultMaxOpacity)*255,this._minOpacity=(g.minOpacity||g.defaultMinOpacity)*255,this._useGradientOpacity=!!g.useGradientOpacity},_drawAlpha:function(P){for(var v=this._min=P.min,O=this._max=P.max,P=P.data||[],_=P.length,C=1-this._blur;_--;){var E=P[_],S=E.x,x=E.y,R=E.radius,G=Math.min(E.value,O),H=S-R,D=x-R,Z=this.shadowCtx,$;this._templates[R]?$=this._templates[R]:this._templates[R]=$=m(R,C);var z=(G-v)/(O-v);Z.globalAlpha=z<.01?.01:z,Z.drawImage($,H,D),H<this._renderBoundaries[0]&&(this._renderBoundaries[0]=H),D<this._renderBoundaries[1]&&(this._renderBoundaries[1]=D),H+2*R>this._renderBoundaries[2]&&(this._renderBoundaries[2]=H+2*R),D+2*R>this._renderBoundaries[3]&&(this._renderBoundaries[3]=D+2*R)}},_colorize:function(){var g=this._renderBoundaries[0],v=this._renderBoundaries[1],O=this._renderBoundaries[2]-g,P=this._renderBoundaries[3]-v,_=this._width,C=this._height,E=this._opacity,S=this._maxOpacity,x=this._minOpacity,R=this._useGradientOpacity;g<0&&(g=0),v<0&&(v=0),g+O>_&&(O=_-g),v+P>C&&(P=C-v);for(var G=this.shadowCtx.getImageData(g,v,O,P),H=G.data,D=H.length,Z=this._palette,$=3;$<D;$+=4){var z=H[$],ee=z*4;if(ee){var J;E>0?J=E:z<S?z<x?J=x:J=z:J=S,H[$-3]=Z[ee],H[$-2]=Z[ee+1],H[$-1]=Z[ee+2],H[$]=R?Z[ee+3]:J}}this.ctx.putImageData(G,g,v),this._renderBoundaries=[1e3,1e3,0,0]},getValueAt:function(g){var v,O=this.shadowCtx,P=O.getImageData(g.x,g.y,1,1),_=P.data[3],C=this._max,E=this._min;return v=Math.abs(C-E)*(_/255)>>0,v},getDataURL:function(){return this.canvas.toDataURL()}},T}(),u=function(){var d=!1;return i.defaultRenderer==="canvas2d"&&(d=o),d}(),a={merge:function(){for(var h={},d=arguments.length,m=0;m<d;m++){var y=arguments[m];for(var T in y)h[T]=y[T]}return h}},l=function(){var d=function(){function g(){this.cStore={}}return g.prototype={on:function(v,O,P){var _=this.cStore;_[v]||(_[v]=[]),_[v].push(function(C){return O.call(P,C)})},emit:function(v,O){var P=this.cStore;if(P[v])for(var _=P[v].length,C=0;C<_;C++){var E=P[v][C];E(O)}}},g}(),m=function(T){var g=T._renderer,v=T._coordinator,O=T._store;v.on("renderpartial",g.renderPartial,g),v.on("renderall",g.renderAll,g),v.on("extremachange",function(P){T._config.onExtremaChange&&T._config.onExtremaChange({min:P.min,max:P.max,gradient:T._config.gradient||T._config.defaultGradient})}),O.setCoordinator(v)};function y(){var T=this._config=a.merge(i,arguments[0]||{});if(this._coordinator=new d,T.plugin){var g=T.plugin;if(i.plugins[g]){var v=i.plugins[g];this._renderer=new v.renderer(T),this._store=new v.store(T)}else throw new Error("Plugin '"+g+"' not found. Maybe it was not registered.")}else this._renderer=new u(T),this._store=new s(T);m(this)}return y.prototype={addData:function(){return this._store.addData.apply(this._store,arguments),this},removeData:function(){return this._store.removeData&&this._store.removeData.apply(this._store,arguments),this},setData:function(){return this._store.setData.apply(this._store,arguments),this},setDataMax:function(){return this._store.setDataMax.apply(this._store,arguments),this},setDataMin:function(){return this._store.setDataMin.apply(this._store,arguments),this},configure:function(T){return this._config=a.merge(this._config,T),this._renderer.updateConfig(this._config),this._coordinator.emit("renderall",this._store._getInternalData()),this},repaint:function(){return this._coordinator.emit("renderall",this._store._getInternalData()),this},getData:function(){return this._store.getData()},getDataURL:function(){return this._renderer.getDataURL()},getValueAt:function(T){return this._store.getValueAt?this._store.getValueAt(T):this._renderer.getValueAt?this._renderer.getValueAt(T):null}},y}(),c={create:function(h){return new l(h)},register:function(h,d){i.plugins[h]=d}};return c})}(heatmap$1)),heatmap$1.exports}requireHeatmap();const defaultAccessToken="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI2ZTEzMzk0YS00MmFkLTQyMjYtOTA1Zi1iYzA4ZGNjM2U4ZDAiLCJpZCI6MTY3MTE2LCJpYXQiOjE2OTUwNDIzNTN9.3Th3o3URY7juTTczl7SJ0OS9DTSbEOwrjSf9aET4760",TDT_KEY="f9fd6f5e09b28d2bd19c96763ab3af1e";function setHomeView(){Cesium.Camera.DEFAULT_VIEW_RECTANGLE=Cesium.Rectangle.fromDegrees(119,25.8,119.6,26.2),Cesium.Camera.DEFAULT_VIEW_FACTOR=0}function createViewer(r){const i=new Cesium.Viewer(r,{timeline:!0,animation:!0,shouldAnimate:!0,infoBox:!1,baseLayerPicker:!1,msaaSamples:8,terrainProvider:createTdtTerrain({token:TDT_KEY})});i.resolutionScale=window.devicePixelRatio*1,i.imageryLayers.removeAll(),i.scene.globe.baseColor=Cesium.Color.WHITE;const s=128;return i.imageryLayers.addImageryProvider(createTdtProvider("vec",{token:TDT_KEY,tileHeight:s,tileWidth:s})),i.imageryLayers.addImageryProvider(createTdtProvider("cva",{token:TDT_KEY,tileHeight:s*1.5,tileWidth:s*1.5})),window.viewer=i,console.log("window.viewer is mounted."),i}const dataInit={type:"FeatureCollection",features:[{type:"Feature",id:412505321,geometry:{type:"Point",coordinates:[119.33092166666667,25.975265]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:45:35.409Z",mmsi:412505321,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28877922,preGeom:{type:"Point",coordinates:[119.33093,25.975298333333335]},preTime:"2025-09-23T08:39:35.388Z",tShip:{}}},{type:"Feature",id:412444165,geometry:{type:"Point",coordinates:[119.37285333333334,25.938936666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:22:03.958Z",mmsi:412444165,speedOverGround:.051444457477040344,courseOverGroundTrue:2.232276113810442,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.372435,25.93906]},preTime:"2025-09-23T05:40:01.200Z",id:25643329,tShip:{}}},{type:"Feature",id:412053430,geometry:{type:"Point",coordinates:[119.381955,25.953135]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:44:53.246Z",mmsi:412053430,speedOverGround:0,courseOverGroundTrue:3.790855136197248,aisClass:"B",headingTrue:3.787364477692462,preGeom:{type:"Point",coordinates:[119.381955,25.953133333333334]},preTime:"2025-09-23T08:41:53.328Z",id:27348876,tShip:{}}},{type:"Feature",id:413698230,geometry:{type:"Point",coordinates:[119.44254333333333,25.986326666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:58.608Z",mmsi:413698230,speedOverGround:0,courseOverGroundTrue:4.164355596209315,id:28427139,sourcePort:35236,aisClass:"A",navigationState:"anchored",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.44254333333333,25.98633]},preTime:"2025-09-23T08:44:59.237Z",tShip:{}}},{type:"Feature",id:412450320,geometry:{type:"Point",coordinates:[119.46541666666667,25.989741666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:07.149Z",mmsi:412450320,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28924545,headingTrue:0,preGeom:{type:"Point",coordinates:[119.4654,25.98973833333333]},preTime:"2025-09-23T08:44:06.959Z",tShip:{}}},{type:"Feature",id:970111010,geometry:{type:"Point",coordinates:[119.26060166666667,26.038005]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T15:10:17.507Z",mmsi:970111010,name:"ZHY08170010 99%",speedOverGround:0,courseOverGroundTrue:4.869468614176023,designBeam:3,designLength:8,aisFromBow:5,aisFromCenter:-.5,aisClass:"B",headingTrue:4.869468614176023,preGeom:{type:"Point",coordinates:[119.2605,26.037778333333332]},preTime:"2025-09-22T15:03:10.497Z",tShip:{}}},{type:"Feature",id:412447474,geometry:{type:"Point",coordinates:[119.37296333333333,25.938755]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:11:34.790Z",mmsi:412447474,speedOverGround:.10288891495408069,courseOverGroundTrue:5.644394802238444,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37296333333333,25.938828333333333]},preTime:"2025-09-23T05:41:29.720Z",id:18071998,tShip:{}}},{type:"Feature",id:412447473,geometry:{type:"Point",coordinates:[119.33939,25.965321666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T23:27:08.030Z",mmsi:412447473,speedOverGround:.15433337243112102,courseOverGroundTrue:3.2428217509458968,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.339325,25.96539]},preTime:"2025-09-22T22:33:10.080Z",tShip:{}}},{type:"Feature",id:412441451,geometry:{type:"Point",coordinates:[119.275395,25.994493333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:10.437Z",mmsi:412441451,speedOverGround:.41155565981632275,courseOverGroundTrue:4.482005520144813,sourcePort:35236,aisClass:"B",id:28758966,preGeom:{type:"Point",coordinates:[119.27538333333334,25.994398333333333]},preTime:"2025-09-23T08:42:09.358Z",tShip:{id:151,mmsi:412441451,shipNameEnglish:"MINMINYU12588",shipNameChinese:" 闽闽渔12588 ",shipTypeChinese:"捕捞船,B类",length:"11.00",beam:"3.00",buildYear:2017,draft:null,grossTonnage:null,callSign:" YR0",imoNumber:null,ct:"2025-08-13T07:10:47.138Z",ut:"2025-08-13T07:10:47.138Z"},name:" 闽闽渔12588 "}},{type:"Feature",id:413872009,geometry:{type:"Point",coordinates:[119.324255,25.980361666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:25.139Z",mmsi:413872009,speedOverGround:5.556001407520357,courseOverGroundTrue:1.546361717620056,sourcePort:35236,aisClass:"B",headingTrue:1.535889742105699,id:28451201,preGeom:{type:"Point",coordinates:[119.32259,25.980325]},preTime:"2025-09-23T08:47:54.958Z",tShip:{}}},{type:"Feature",id:413399120,geometry:{type:"Point",coordinates:[119.381815,25.967365]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:43.577Z",mmsi:413399120,speedOverGround:.051444457477040344,courseOverGroundTrue:0,id:28996555,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38183,25.967321666666667]},preTime:"2025-09-23T08:47:09.648Z",name:"JUN XIN 7",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:57,aisFromBow:45,aisFromCenter:-2,tShip:{}}},{type:"Feature",id:412443352,geometry:{type:"Point",coordinates:[119.373075,25.938713333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:10:25.030Z",mmsi:412443352,speedOverGround:.051444457477040344,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37301333333333,25.938815]},preTime:"2025-09-23T02:16:20.880Z",tShip:{}}},{type:"Feature",id:413096450,geometry:{type:"Point",coordinates:[119.45186666666666,25.982233333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T03:17:27.078Z",mmsi:413096450,speedOverGround:0,courseOverGroundTrue:.7173303227334572,sourcePort:35236,aisClass:"B",id:28425557,preGeom:{type:"Point",coordinates:[119.45187666666666,25.982243333333333]},preTime:"2025-09-23T03:17:13.340Z",name:"HAI XUN 08205",shipTypeId:55,shipTypeName:"Law enforcement",designBeam:4,designLength:17,aisFromBow:7,aisFromCenter:0,tShip:{}}},{type:"Feature",id:412505313,geometry:{type:"Point",coordinates:[119.33205,25.966675]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:39:16.637Z",mmsi:412505313,speedOverGround:0,courseOverGroundTrue:5.5274577423281235,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33202666666666,25.966695]},preTime:"2025-09-23T05:21:10.088Z",tShip:{}}},{type:"Feature",id:413290480,geometry:{type:"Point",coordinates:[119.46002666666666,25.986795]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:30:04.270Z",mmsi:413290480,speedOverGround:.4630001172933631,courseOverGroundTrue:4.923573821000201,sourcePort:35236,aisClass:"A",navigationState:"motoring",navigationSpecialManeuver:"not available",id:28946406,preGeom:{type:"Point",coordinates:[119.45989333333333,25.98678333333333]},preTime:"2025-09-23T08:27:50.758Z",tShip:{}}},{type:"Feature",id:413360636,geometry:{type:"Point",coordinates:[119.17717333333333,25.897148333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T05:50:35.581Z",mmsi:413360636,speedOverGround:3.1895563635765014,courseOverGroundTrue:3.1922072026265043,id:28980254,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.17720166666666,25.899143333333335]},preTime:"2025-09-23T05:49:25.269Z",name:" 民顺636",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:68,aisFromBow:40,aisFromCenter:1,tShip:{id:18,mmsi:413360636,shipNameEnglish:"MIN SHUN 636",shipNameChinese:" 民顺636",shipTypeChinese:"货轮,B类",length:"68.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:"10368",ct:"2025-08-08T05:33:24.719Z",ut:"2025-08-08T05:33:24.719Z"}}},{type:"Feature",id:413359320,geometry:{type:"Point",coordinates:[119.38356666666667,25.940516666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:23.046Z",mmsi:413359320,speedOverGround:0,courseOverGroundTrue:.8761552847012056,aisClass:"B",id:28997384,preGeom:{type:"Point",coordinates:[119.383575,25.940516666666667]},preTime:"2025-09-23T08:47:47.788Z",name:"新康辉",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:55,aisFromBow:44,aisFromCenter:.5,navigationState:"moored",navigationSpecialManeuver:"not available",tShip:{id:143,mmsi:413359320,shipNameEnglish:"XIN KANG HUI",shipNameChinese:"新康辉",shipTypeChinese:"货轮,B类",length:"54.80",beam:"8.80",buildYear:2011,draft:"3.60",grossTonnage:null,callSign:"QF56F",imoNumber:"268566528",ct:"2025-08-08T05:33:32.464Z",ut:"2025-08-08T05:33:32.464Z"}}},{type:"Feature",id:414618537,geometry:{type:"Point",coordinates:[119.38180833333334,25.962488333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:52.727Z",mmsi:414618537,speedOverGround:.051444457477040344,courseOverGroundTrue:3.89033890358364,sourcePort:35236,aisClass:"B",id:28964450,preGeom:{type:"Point",coordinates:[119.38185166666666,25.962533333333333]},preTime:"2025-09-23T08:46:26.838Z",name:"顺达18537",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:70,aisFromBow:58,aisFromCenter:.5,tShip:{id:96,mmsi:414618537,shipNameEnglish:"SHUNDA18537",shipNameChinese:"顺达18537",shipTypeChinese:"货轮,B类",length:"70.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:29.586Z",ut:"2025-08-08T05:33:29.586Z"}}},{type:"Feature",id:412442208,geometry:{type:"Point",coordinates:[119.33830666666667,25.964798333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:45:10.838Z",mmsi:412442208,speedOverGround:0,courseOverGroundTrue:0,id:28974768,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33828333333334,25.964775]},preTime:"2025-09-23T08:42:10.478Z",tShip:{}}},{type:"Feature",id:412446329,geometry:{type:"Point",coordinates:[119.37851166666667,25.937211666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T04:24:33.360Z",mmsi:412446329,speedOverGround:0,courseOverGroundTrue:.012217304766749877,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37850833333333,25.937176666666666]},preTime:"2025-09-22T05:09:56.029Z",id:28779621,tShip:{}}},{type:"Feature",id:414770997,geometry:{type:"Point",coordinates:[119.37763333333334,25.96475]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:38.727Z",mmsi:414770997,speedOverGround:.15433337243112102,courseOverGroundTrue:4.014257280503531,id:29007693,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37778333333333,25.9649]},preTime:"2025-09-23T08:42:30.007Z",name:" 福运997",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:70,aisFromBow:50,aisFromCenter:1,tShip:{id:66,mmsi:414770997,shipNameEnglish:"FUYUN997",shipNameChinese:" 福运997",shipTypeChinese:"货轮,B类",length:"70.00",beam:"10.00",buildYear:null,draft:"12.00",grossTonnage:null,callSign:"BRJK",imoNumber:"357731519",ct:"2025-08-08T05:33:27.704Z",ut:"2025-08-08T05:33:27.704Z"}}},{type:"Feature",id:413422140,geometry:{type:"Point",coordinates:[119.37766666666667,25.96885]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:18.166Z",mmsi:413422140,speedOverGround:0,courseOverGroundTrue:3.071779484211398,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37766166666667,25.968845]},preTime:"2025-09-23T08:48:02.059Z",id:28975726,name:"ZHE JIAO JI 1091",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:53,aisFromBow:40,aisFromCenter:-1.5,navigationState:"moored",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:412447733,geometry:{type:"Point",coordinates:[119.37332666666667,25.938523333333332]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:34:13.916Z",mmsi:412447733,speedOverGround:1.646222639265291,courseOverGroundTrue:4.010766621998746,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37340666666667,25.938413333333333]},preTime:"2025-09-18T19:08:47.407Z",tShip:{}}},{type:"Feature",id:412441081,geometry:{type:"Point",coordinates:[119.372925,25.93883]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:03:36.294Z",mmsi:412441081,speedOverGround:.10288891495408069,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.372955,25.938818333333334]},preTime:"2025-09-23T06:03:39.470Z",id:28196985,tShip:{}}},{type:"Feature",id:412505812,geometry:{type:"Point",coordinates:[119.42971166666666,26.004]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T05:43:59.140Z",mmsi:412505812,speedOverGround:.30866674486224205,courseOverGroundTrue:6.218608126275688,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.40332333333333,25.963916666666666]},preTime:"2025-09-23T04:28:21.360Z",tShip:{}}},{type:"Feature",id:412447489,geometry:{type:"Point",coordinates:[119.2977,25.988161666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:45:00.298Z",mmsi:412447489,speedOverGround:2.3150005864668155,courseOverGroundTrue:3.7542032218969985,id:28891114,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.2977,25.988161666666667]},preTime:"2025-09-23T08:43:36.288Z",tShip:{}}},{type:"Feature",id:412447316,geometry:{type:"Point",coordinates:[119.3707,25.938518333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T05:13:08.710Z",mmsi:412447316,speedOverGround:.15433337243112102,courseOverGroundTrue:2.7733281820522224,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37067666666667,25.938483333333334]},preTime:"2025-09-22T03:54:57.550Z",tShip:{}}},{type:"Feature",id:412447732,geometry:{type:"Point",coordinates:[119.37392166666666,25.93828]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:32:25.250Z",mmsi:412447732,speedOverGround:.051444457477040344,courseOverGroundTrue:3.843215013769033,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37379166666666,25.938326666666665]},preTime:"2025-09-20T14:55:27.840Z",tShip:{}}},{type:"Feature",id:414666666,geometry:{type:"Point",coordinates:[119.28069333333333,25.986328333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:13.278Z",mmsi:414666666,speedOverGround:0,courseOverGroundTrue:1.3823007678951291,sourcePort:35236,aisClass:"B",id:29001670,preGeom:{type:"Point",coordinates:[119.28070333333334,25.986326666666667]},preTime:"2025-09-23T08:47:23.016Z",name:" 民顺3689",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:68,aisFromBow:40,aisFromCenter:.5,tShip:{id:62,mmsi:414666666,shipNameEnglish:"MINSHUN3689",shipNameChinese:" 民顺3689",shipTypeChinese:"货轮,B类",length:"68.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:27.466Z",ut:"2025-08-08T05:33:27.466Z"}}},{type:"Feature",id:412496058,geometry:{type:"Point",coordinates:[119.37338,25.938465]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:28:57.490Z",mmsi:412496058,speedOverGround:.051444457477040344,courseOverGroundTrue:.09948376738639188,sourcePort:35236,aisClass:"B",id:27833615,preGeom:{type:"Point",coordinates:[119.37339333333334,25.938373333333335]},preTime:"2025-09-23T07:04:58.520Z",name:"闽闽渔16988",shipTypeId:30,shipTypeName:"Fishing",designBeam:4,designLength:25,aisFromBow:15,aisFromCenter:0,tShip:{id:109,mmsi:412496058,shipNameEnglish:"MIN MIN YU 16988",shipNameChinese:"闽闽渔16988",shipTypeChinese:"捕捞船,B类",length:"25.00",beam:"4.00",buildYear:null,draft:null,grossTonnage:null,callSign:"16988",imoNumber:null,ct:"2025-08-08T05:33:30.378Z",ut:"2025-08-08T05:33:30.378Z"}}},{type:"Feature",id:412448954,geometry:{type:"Point",coordinates:[119.33130833333334,25.974946666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:43:10.349Z",mmsi:412448954,speedOverGround:.36011120233928234,courseOverGroundTrue:4.4331363010778135,sourcePort:35236,aisClass:"B",id:27484458,preGeom:{type:"Point",coordinates:[119.33125166666666,25.974965]},preTime:"2025-09-23T08:37:10.358Z",tShip:{}}},{type:"Feature",id:412505324,geometry:{type:"Point",coordinates:[119.33171666666667,25.967216666666666]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T06:35:01.738Z",mmsi:412505324,speedOverGround:.10288891495408069,courseOverGroundTrue:0,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33169333333333,25.967181666666665]},preTime:"2025-09-23T06:23:02.690Z",id:28988523,tShip:{}}},{type:"Feature",id:413286030,geometry:{type:"Point",coordinates:[119.44154666666667,25.990156666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:33.709Z",mmsi:413286030,speedOverGround:0,courseOverGroundTrue:.5794493117944228,aisClass:"B",preGeom:{type:"Point",coordinates:[119.44153333333334,25.99015]},preTime:"2025-09-23T08:48:14.857Z",id:29008110,name:"HUI TONG 777",shipTypeId:33,shipTypeName:"Engaged in dredging or underwater operations",designBeam:14,designLength:78,aisFromBow:60,aisFromCenter:1,tShip:{}}},{type:"Feature",id:412505329,geometry:{type:"Point",coordinates:[119.29778833333333,25.988233333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:45:02.928Z",mmsi:412505329,speedOverGround:31.278230146040524,courseOverGroundTrue:0,id:28985362,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.29778666666667,25.988246666666665]},preTime:"2025-09-23T08:39:02.849Z",tShip:{}}},{type:"Feature",id:412441092,geometry:{type:"Point",coordinates:[119.37347833333334,25.938533333333332]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T06:24:29.250Z",mmsi:412441092,speedOverGround:.10288891495408069,courseOverGroundTrue:5.921902153368905,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37344,25.938403333333333]},preTime:"2025-09-22T17:18:02.160Z",id:14762485,tShip:{}}},{type:"Feature",id:413327620,geometry:{type:"Point",coordinates:[119.38499666666667,25.966101666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:25.957Z",mmsi:413327620,speedOverGround:.051444457477040344,courseOverGroundTrue:0,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38484166666667,25.966031666666666]},preTime:"2025-09-23T08:48:09.388Z",id:29006158,name:"QING FENG 88",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:57,aisFromBow:45,aisFromCenter:-1.5,navigationState:"moored",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:999412522,geometry:{type:"Point",coordinates:[119.453395,25.979533333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:28.107Z",mmsi:999412522,name:"XIAOMA JIAO",sourcePort:35236,aisClass:"ATON",id:28211348,atonTypeId:17,atonTypeName:"Beacon, Isolated Danger",atonOffPosition:!0,atonVirtual:!1,preGeom:{type:"Point",coordinates:[119.45339333333334,25.979535]},preTime:"2025-09-23T08:43:28.106Z",tShip:{}}},{type:"Feature",id:413389650,geometry:{type:"Point",coordinates:[119.332805,26.05396]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T14:43:49.969Z",mmsi:413389650,speedOverGround:0,courseOverGroundTrue:0,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33280666666667,26.05397]},preTime:"2025-09-22T14:32:50.269Z",id:18611554,name:"HAI EN BU BU GAO",shipTypeId:37,shipTypeName:"Pleasure",designBeam:7,designLength:17,aisFromBow:10,aisFromCenter:-.5,tShip:{}}},{type:"Feature",id:412443588,geometry:{type:"Point",coordinates:[119.373415,25.938398333333332]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T15:36:55.390Z",mmsi:412443588,speedOverGround:.10288891495408069,courseOverGroundTrue:4.225442120043065,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37345833333333,25.93847166666667]},preTime:"2025-09-22T09:00:54.241Z",tShip:{}}},{type:"Feature",id:412444053,geometry:{type:"Point",coordinates:[119.37483333333333,25.938081666666665]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:13:56.110Z",mmsi:412444053,speedOverGround:27.985784867509945,courseOverGroundTrue:2.3527038322255485,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37465333333333,25.937988333333333]},preTime:"2025-09-23T07:37:56.850Z",id:19209872,tShip:{}}},{type:"Feature",id:414665599,geometry:{type:"Point",coordinates:[119.26552,25.981586666666665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:34.036Z",mmsi:414665599,speedOverGround:3.3438897360076223,courseOverGroundTrue:4.583234616783598,sourcePort:35236,aisClass:"B",id:29003371,preGeom:{type:"Point",coordinates:[119.26658,25.981688333333334]},preTime:"2025-09-23T08:48:02.676Z",name:" 兴运5599",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:68,aisFromBow:57,aisFromCenter:0,tShip:{id:85,mmsi:414665599,shipNameEnglish:"XINGYUN5599",shipNameChinese:" 兴运5599",shipTypeChinese:"货轮,B类",length:"68.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"1",imoNumber:null,ct:"2025-08-08T05:33:28.908Z",ut:"2025-08-08T05:33:28.908Z"}}},{type:"Feature",id:414665007,geometry:{type:"Point",coordinates:[119.38656,25.967626666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:10.279Z",mmsi:414665007,speedOverGround:0,courseOverGroundTrue:.38571776477881764,id:29006402,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38656,25.96763]},preTime:"2025-09-23T08:46:25.176Z",name:" 福运5007 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:68,aisFromBow:58,aisFromCenter:-.5,tShip:{id:44,mmsi:414665007,shipNameEnglish:"FUYUN 5007",shipNameChinese:" 福运5007 ",shipTypeChinese:"货轮,B类",length:"68.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:26.365Z",ut:"2025-08-08T05:33:26.365Z"}}},{type:"Feature",id:414667319,geometry:{type:"Point",coordinates:[119.31454666666667,25.98263]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:19.678Z",mmsi:414667319,speedOverGround:2.98377853366834,courseOverGroundTrue:4.769984846789631,sourcePort:35236,aisClass:"B",id:28243922,preGeom:{type:"Point",coordinates:[119.31542666666667,25.982576666666667]},preTime:"2025-09-23T08:47:49.678Z",name:" 兴运7319",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:68,aisFromBow:56,aisFromCenter:0,tShip:{id:3,mmsi:414667319,shipNameEnglish:"XING YUN 7319",shipNameChinese:" 兴运7319",shipTypeChinese:"货轮,B类",length:"68.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:null,ct:"2025-08-08T05:33:23.795Z",ut:"2025-08-08T05:33:23.795Z"}}},{type:"Feature",id:414666789,geometry:{type:"Point",coordinates:[119.062925,26.204636666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:22:50.218Z",mmsi:414666789,speedOverGround:.20577782990816137,courseOverGroundTrue:2.830924047381186,id:28890668,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.086165,26.167193333333334]},preTime:"2025-09-22T15:12:52.617Z",name:" 仓宏789",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:68,aisFromBow:57,aisFromCenter:-.5,tShip:{id:76,mmsi:414666789,shipNameEnglish:"CANGHONG789",shipNameChinese:" 仓宏789",shipTypeChinese:"货轮,B类",length:"68.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:28.354Z",ut:"2025-08-08T05:33:28.354Z"}}},{type:"Feature",id:412443840,geometry:{type:"Point",coordinates:[119.33831,25.964906666666668]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T06:02:48.271Z",mmsi:412443840,speedOverGround:26.339562228244656,courseOverGroundTrue:0,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33576,25.965325]},preTime:"2025-09-21T18:23:50.226Z",tShip:{}}},{type:"Feature",id:413788191,geometry:{type:"Point",coordinates:[119.37156333333333,25.967838333333333]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:46:17.598Z",mmsi:413788191,speedOverGround:0,courseOverGroundTrue:0,aisClass:"B",headingTrue:0,preGeom:{type:"Point",coordinates:[119.37151166666666,25.967818333333334]},preTime:"2025-09-23T08:43:17.328Z",id:28989292,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:412440978,geometry:{type:"Point",coordinates:[119.37476,25.938011666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:17:39.250Z",mmsi:412440978,speedOverGround:27.985784867509945,courseOverGroundTrue:5.43844595045609,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37468166666666,25.938005]},preTime:"2025-09-23T07:53:38.260Z",id:28849958,tShip:{}}},{type:"Feature",id:412505807,geometry:{type:"Point",coordinates:[119.43256833333334,26.002446666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:03:42.771Z",mmsi:412505807,speedOverGround:.10288891495408069,courseOverGroundTrue:2.481858196902618,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.43223,26.001696666666668]},preTime:"2025-09-23T07:15:51.950Z",tShip:{}}},{type:"Feature",id:412442022,geometry:{type:"Point",coordinates:[119.33579,25.965326666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:43.849Z",mmsi:412442022,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28978118,preGeom:{type:"Point",coordinates:[119.33578833333333,25.965343333333333]},preTime:"2025-09-23T08:43:43.728Z",tShip:{}}},{type:"Feature",id:412441691,geometry:{type:"Point",coordinates:[119.37282166666667,25.93901]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T19:06:15.310Z",mmsi:412441691,speedOverGround:.15433337243112102,courseOverGroundTrue:1.8238690687505177,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37268333333333,25.938911666666666]},preTime:"2025-09-22T17:36:13.090Z",tShip:{}}},{type:"Feature",id:412505331,geometry:{type:"Point",coordinates:[119.29765666666667,25.988165]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:03.727Z",mmsi:412505331,speedOverGround:.051444457477040344,courseOverGroundTrue:5.508259120551803,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.29770833333333,25.988116666666667]},preTime:"2025-09-23T08:41:04.669Z",id:29002624,tShip:{}}},{type:"Feature",id:413830663,geometry:{type:"Point",coordinates:[119.177,25.895466666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:30.479Z",mmsi:413830663,speedOverGround:.4630001172933631,courseOverGroundTrue:.5393067389893875,sourcePort:35236,aisClass:"B",id:28011761,preGeom:{type:"Point",coordinates:[119.17681666666667,25.895333333333333]},preTime:"2025-09-23T08:47:30.478Z",tShip:{id:70,mmsi:413830663,shipNameEnglish:"FUYUN6699",shipNameChinese:" 福运6699 ",shipTypeChinese:"货轮,B类",length:"86.70",beam:"14.50",buildYear:2015,draft:null,grossTonnage:null,callSign:"6699",imoNumber:null,ct:"2025-08-08T05:33:27.960Z",ut:"2025-08-08T05:33:27.960Z"},name:" 福运6699 "}},{type:"Feature",id:414666579,geometry:{type:"Point",coordinates:[119.456785,25.97974333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:45:25.818Z",mmsi:414666579,speedOverGround:2.726556246283138,courseOverGroundTrue:3.958406744426961,id:28995583,sourcePort:35236,aisClass:"B",headingTrue:3.9269908178838895,preGeom:{type:"Point",coordinates:[119.45794,25.980765]},preTime:"2025-09-23T08:44:25.469Z",name:"航沣579",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:65,aisFromBow:54,aisFromCenter:-.5,tShip:{id:40,mmsi:414666579,shipNameEnglish:"HANGFENG 579",shipNameChinese:"航沣579",shipTypeChinese:"货轮,B类",length:"65.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:26.109Z",ut:"2025-08-08T05:33:26.109Z"}}},{type:"Feature",id:412442414,geometry:{type:"Point",coordinates:[119.37267666666666,25.939036666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:38:20.770Z",mmsi:412442414,speedOverGround:0,courseOverGroundTrue:1.4102260359334144,sourcePort:35236,aisClass:"B",id:17422136,preGeom:{type:"Point",coordinates:[119.37273833333333,25.938938333333333]},preTime:"2025-09-23T08:26:19.410Z",tShip:{}}},{type:"Feature",id:414667535,geometry:{type:"Point",coordinates:[119.23152,25.938895]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T00:02:05.030Z",mmsi:414667535,speedOverGround:0,courseOverGroundTrue:0,id:28912505,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.231505,25.93889666666667]},preTime:"2025-09-22T23:02:29.529Z",name:" 民顺0535",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:12,designLength:68,aisFromBow:56,aisFromCenter:-1,tShip:{id:12,mmsi:414667535,shipNameEnglish:"MINSHUN0535",shipNameChinese:" 民顺0535",shipTypeChinese:"货轮,B类",length:"68.00",beam:"12.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0",imoNumber:null,ct:"2025-08-08T05:33:24.351Z",ut:"2025-08-08T05:33:24.351Z"}}},{type:"Feature",id:412505798,geometry:{type:"Point",coordinates:[119.42871833333334,26.00465833333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:00:10.210Z",mmsi:412505798,speedOverGround:.10288891495408069,courseOverGroundTrue:4.790928797818346,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.42866166666667,26.0048]},preTime:"2025-09-23T07:42:10.880Z",id:28485111,tShip:{}}},{type:"Feature",id:414668989,geometry:{type:"Point",coordinates:[119.06013666666666,26.205736666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:22:09.758Z",mmsi:414668989,speedOverGround:0,courseOverGroundTrue:5.984734006455048,id:28976553,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.06001333333333,26.205701666666666]},preTime:"2025-09-23T08:06:28.390Z",name:" 顺达68989",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:13,designLength:76,aisFromBow:40,aisFromCenter:.5,tShip:{id:71,mmsi:414668989,shipNameEnglish:"SHUNDA68989",shipNameChinese:" 顺达68989",shipTypeChinese:"货轮,B类",length:"76.00",beam:"13.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:28.020Z",ut:"2025-08-08T05:33:28.020Z"}}},{type:"Feature",id:414770868,geometry:{type:"Point",coordinates:[119.38441,25.967163333333332]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:47:43.387Z",mmsi:414770868,speedOverGround:0,courseOverGroundTrue:.5375614097369946,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38441166666667,25.967175]},preTime:"2025-09-23T08:46:57.886Z",id:29002734,name:"SHUN AN 0868",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:53,aisFromBow:36,aisFromCenter:-.5,tShip:{}}},{type:"Feature",id:412443867,geometry:{type:"Point",coordinates:[119.33962166666667,25.965351666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:46:10.738Z",mmsi:412443867,speedOverGround:.051444457477040344,courseOverGroundTrue:3.876376269564497,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33963,25.96531]},preTime:"2025-09-23T08:40:11.208Z",id:28904886,tShip:{id:30,mmsi:412443867,shipNameEnglish:"MINMINYU61122",shipNameChinese:"闽闽渔61122",shipTypeChinese:"捕捞船,B类",length:"13.00",beam:"4.00",buildYear:2014,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:null,ct:"2025-08-08T05:33:25.484Z",ut:"2025-08-08T05:33:25.484Z"},name:"闽闽渔61122"}},{type:"Feature",id:412443902,geometry:{type:"Point",coordinates:[119.34878,25.951773333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:20.519Z",mmsi:412443902,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28921909,preGeom:{type:"Point",coordinates:[119.34879166666667,25.951748333333335]},preTime:"2025-09-23T08:44:20.678Z",tShip:{}}},{type:"Feature",id:412445576,geometry:{type:"Point",coordinates:[119.33190833333333,25.966608333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:41:42.188Z",mmsi:412445576,speedOverGround:.10288891495408069,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33192333333334,25.9667]},preTime:"2025-09-23T08:17:43.078Z",id:15664758,name:"MIN MIN YU 15338",shipTypeId:30,shipTypeName:"Fishing",designBeam:4,designLength:12,aisFromBow:9,aisFromCenter:0,tShip:{}}},{type:"Feature",id:412468819,geometry:{type:"Point",coordinates:[119.37231,25.976355]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:39:55.489Z",mmsi:412468819,speedOverGround:.5144445747704034,courseOverGroundTrue:1.057669526950061,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37233333333333,25.976338333333334]},preTime:"2025-09-23T08:33:55.410Z",id:28726854,tShip:{}}},{type:"Feature",id:414665398,geometry:{type:"Point",coordinates:[119.44125333333334,25.990691666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:47:54.399Z",mmsi:414665398,speedOverGround:0,courseOverGroundTrue:.27750735113046154,aisClass:"B",id:28952307,preGeom:{type:"Point",coordinates:[119.441255,25.990691666666667]},preTime:"2025-09-23T08:47:35.036Z",name:" 安平5398",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:70,aisFromBow:56,aisFromCenter:1,tShip:{id:126,mmsi:414665398,shipNameEnglish:"ANPING5398",shipNameChinese:" 安平5398",shipTypeChinese:"货轮,B类",length:"70.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:31.433Z",ut:"2025-08-08T05:33:31.433Z"}}},{type:"Feature",id:412441061,geometry:{type:"Point",coordinates:[119.37392333333334,25.938205]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T22:18:17.170Z",mmsi:412441061,speedOverGround:0,courseOverGroundTrue:5.13824931904452,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37410166666666,25.938138333333335]},preTime:"2025-09-22T08:47:48.229Z",tShip:{}}},{type:"Feature",id:414770898,geometry:{type:"Point",coordinates:[119.38243333333334,25.967638333333333]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T02:31:27.758Z",mmsi:414770898,speedOverGround:0,courseOverGroundTrue:4.1765729009760655,aisClass:"B",id:28428381,preGeom:{type:"Point",coordinates:[119.38243166666666,25.967633333333332]},preTime:"2025-09-23T02:30:42.448Z",name:"MINNINGDEHUO0898",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:56,aisFromBow:37,aisFromCenter:-.5,tShip:{}}},{type:"Feature",id:412440215,geometry:{type:"Point",coordinates:[119.33109,25.974781666666665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:54.908Z",mmsi:412440215,speedOverGround:.10288891495408069,courseOverGroundTrue:4.574507970521633,id:28949939,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33113833333333,25.974805]},preTime:"2025-09-23T08:40:53.809Z",tShip:{}}},{type:"Feature",id:412443171,geometry:{type:"Point",coordinates:[119.382565,25.94431]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:40:19.729Z",mmsi:412443171,speedOverGround:.15433337243112102,courseOverGroundTrue:0,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38263333333333,25.944401666666668]},preTime:"2025-09-23T08:16:18.290Z",tShip:{}}},{type:"Feature",id:413229260,geometry:{type:"Point",coordinates:[119.38464833333333,25.954135]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T13:31:40.629Z",mmsi:413229260,speedOverGround:0,courseOverGroundTrue:6.1295963344036535,id:28442143,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38464666666667,25.954111666666666]},preTime:"2025-09-22T13:25:40.089Z",tShip:{id:106,mmsi:413229260,shipNameEnglish:"MIN LONG 67",shipNameChinese:" 闽龙67",shipTypeChinese:"货轮,B类",length:"52.80",beam:"8.80",buildYear:2004,draft:"2.00",grossTonnage:null,callSign:"BOFL5",imoNumber:null,ct:"2025-08-08T05:33:30.191Z",ut:"2025-08-08T05:33:30.191Z"},name:" 闽龙67"}},{type:"Feature",id:412441689,geometry:{type:"Point",coordinates:[119.37266,25.939001666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:40:02.509Z",mmsi:412441689,speedOverGround:.051444457477040344,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37248,25.939033333333334]},preTime:"2025-09-23T06:10:01.840Z",id:27738786,tShip:{}}},{type:"Feature",id:412440977,geometry:{type:"Point",coordinates:[119.33833166666666,25.965188333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:44:11.736Z",mmsi:412440977,speedOverGround:.10288891495408069,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33828166666666,25.965216666666667]},preTime:"2025-09-23T08:32:11.750Z",id:28647519,tShip:{}}},{type:"Feature",id:413413490,geometry:{type:"Point",coordinates:[119.38805,25.9566]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:12.807Z",mmsi:413413490,speedOverGround:0,courseOverGroundTrue:1.2234758059273807,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38804,25.956601666666668]},preTime:"2025-09-23T08:47:52.368Z",id:29001157,name:"XIN LONG 3",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:53,aisFromBow:41,aisFromCenter:-.5,tShip:{}}},{type:"Feature",id:413706050,geometry:{type:"Point",coordinates:[119.38768,25.955915]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T15:40:56.769Z",mmsi:413706050,speedOverGround:0,courseOverGroundTrue:2.7646015357902582,aisClass:"B",name:"XIN LONG 993",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:53,aisFromBow:38,aisFromCenter:.5,preGeom:{type:"Point",coordinates:[119.38766666666666,25.955916666666667]},preTime:"2025-09-22T15:40:42.107Z",id:16979706,tShip:{}}},{type:"Feature",id:412447497,geometry:{type:"Point",coordinates:[119.29761,25.98827]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:03.138Z",mmsi:412447497,speedOverGround:.10288891495408069,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28993145,preGeom:{type:"Point",coordinates:[119.29769166666667,25.988216666666666]},preTime:"2025-09-23T08:41:02.289Z",tShip:{}}},{type:"Feature",id:413704110,geometry:{type:"Point",coordinates:[119.477795,26.003546666666665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:42:30.959Z",mmsi:413704110,speedOverGround:0,sourcePort:35236,aisClass:"A",headingTrue:.33161255795463956,navigationState:"moored",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.47779333333334,26.003561666666666]},preTime:"2025-09-23T08:39:30.928Z",id:28942176,courseOverGroundTrue:.6352998478709937,tShip:{}}},{type:"Feature",id:413258480,geometry:{type:"Point",coordinates:[119.37639833333333,25.966223333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:25.907Z",mmsi:413258480,speedOverGround:0,courseOverGroundTrue:.6806784084332075,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37638666666666,25.966226666666667]},preTime:"2025-09-23T08:47:00.766Z",id:28999378,name:"BO XIN DE",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:57,aisFromBow:47,aisFromCenter:-1.5,tShip:{}}},{type:"Feature",id:413875231,geometry:{type:"Point",coordinates:[119.34104333333333,26.051356666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T16:05:33.698Z",mmsi:413875231,speedOverGround:1.9548893841275328,courseOverGroundTrue:5.516985766813767,aisClass:"B",preGeom:{type:"Point",coordinates:[119.34136333333333,26.05109]},preTime:"2025-09-22T16:05:11.310Z",tShip:{}}},{type:"Feature",id:414770733,geometry:{type:"Point",coordinates:[119.48025666666666,26.000951666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:39:43.387Z",mmsi:414770733,speedOverGround:3.652556480869864,courseOverGroundTrue:.3735004600120677,sourcePort:35236,aisClass:"B",id:28984043,preGeom:{type:"Point",coordinates:[119.47989333333334,26.000126666666667]},preTime:"2025-09-23T08:39:15.818Z",name:" 闽福州货073",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:70,aisFromBow:60,aisFromCenter:1.5,tShip:{id:80,mmsi:414770733,shipNameEnglish:"MINFUZHOUHUO0733",shipNameChinese:" 闽福州货073",shipTypeChinese:"货轮,B类",length:"70.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:28.606Z",ut:"2025-08-08T05:33:28.606Z"}}},{type:"Feature",id:414666968,geometry:{type:"Point",coordinates:[119.19909333333334,26.10842]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T17:36:47.788Z",mmsi:414666968,speedOverGround:3.8068898533009854,courseOverGroundTrue:4.790928797818346,id:28885440,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.19935,26.108383333333332]},preTime:"2025-09-22T17:36:41.328Z",name:" 仓宏689",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:13,designLength:86,aisFromBow:68,aisFromCenter:.5,tShip:{id:32,mmsi:414666968,shipNameEnglish:"CANG HONG 689",shipNameChinese:" 仓宏689",shipTypeChinese:"货轮,B类",length:"86.00",beam:"13.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0",imoNumber:null,ct:"2025-08-08T05:33:25.606Z",ut:"2025-08-08T05:33:25.606Z"}}},{type:"Feature",id:414665788,geometry:{type:"Point",coordinates:[119.12434666666667,26.140945]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T17:50:54.198Z",mmsi:414665788,speedOverGround:4.269889970594349,courseOverGroundTrue:5.141739977549307,sourcePort:35236,aisClass:"B",id:28920606,preGeom:{type:"Point",coordinates:[119.13258666666667,26.13800833333333]},preTime:"2025-09-22T17:47:31.970Z",name:" 福运5788 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:68,aisFromBow:57,aisFromCenter:0,tShip:{id:29,mmsi:414665788,shipNameEnglish:"FU YUN 5788",shipNameChinese:" 福运5788 ",shipTypeChinese:"货轮,B类",length:"68.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:null,ct:"2025-08-08T05:33:25.422Z",ut:"2025-08-08T05:33:25.422Z"}}},{type:"Feature",id:413695330,geometry:{type:"Point",coordinates:[119.27985333333334,26.056743333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:56.429Z",mmsi:413695330,speedOverGround:0,id:28999899,sourcePort:35236,aisClass:"A",navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.27988,26.056743333333333]},preTime:"2025-09-23T08:44:54.318Z",courseOverGroundTrue:1.3753194508855577,tShip:{}}},{type:"Feature",id:200011261,geometry:{type:"Point",coordinates:[119.38374333333333,25.968105]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:51.175Z",mmsi:200011261,speedOverGround:0,courseOverGroundTrue:.40491638655513884,id:29001542,sourcePort:35236,aisClass:"B",headingTrue:.40142572805035315,preGeom:{type:"Point",coordinates:[119.38370666666667,25.96805833333333]},preTime:"2025-09-23T08:43:51.098Z",name:"闽福州货0715",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:70,aisFromBow:60,aisFromCenter:0,tShip:{id:39,mmsi:200011261,shipNameEnglish:"MIN FU ZHOU HUO 0715",shipNameChinese:"闽福州货0715",shipTypeChinese:"货船",length:"70.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:26.046Z",ut:"2025-08-08T05:33:26.046Z"}}},{type:"Feature",id:412443955,geometry:{type:"Point",coordinates:[119.37504,25.937553333333334]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T04:45:50.430Z",mmsi:412443955,speedOverGround:0,courseOverGroundTrue:0,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37494666666667,25.937595]},preTime:"2025-09-22T22:21:50.610Z",tShip:{}}},{type:"Feature",id:412505806,geometry:{type:"Point",coordinates:[119.43118333333334,26.002831666666665]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T06:15:16.640Z",mmsi:412505806,speedOverGround:0,courseOverGroundTrue:3.5918876014244647,aisClass:"B",preGeom:{type:"Point",coordinates:[119.43107,26.002671666666668]},preTime:"2025-09-23T03:45:16.370Z",tShip:{}}},{type:"Feature",id:412443493,geometry:{type:"Point",coordinates:[119.37311166666667,25.938721666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:11:35.079Z",mmsi:412443493,speedOverGround:.051444457477040344,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37316,25.938721666666666]},preTime:"2025-09-23T00:59:28.430Z",id:27632644,tShip:{}}},{type:"Feature",id:412443962,geometry:{type:"Point",coordinates:[119.34832166666666,25.951935]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:43:01.428Z",mmsi:412443962,speedOverGround:0,sourcePort:35236,aisClass:"B",id:28974596,preGeom:{type:"Point",coordinates:[119.34833166666667,25.951923333333333]},preTime:"2025-09-23T08:40:01.368Z",courseOverGroundTrue:0,tShip:{}}},{type:"Feature",id:413694610,geometry:{type:"Point",coordinates:[119.38687666666667,25.952833333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:33.466Z",mmsi:413694610,speedOverGround:.051444457477040344,courseOverGroundTrue:3.096214093744898,id:28995335,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38687666666667,25.952835]},preTime:"2025-09-23T08:47:48.226Z",name:"YONG GANG 168",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:56,aisFromBow:43,aisFromCenter:.5,navigationState:"sailing",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:413245570,geometry:{type:"Point",coordinates:[119.38748,25.955415]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:20:58.590Z",mmsi:413245570,speedOverGround:0,courseOverGroundTrue:1.8378317027696602,id:28625570,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38742666666667,25.95541]},preTime:"2025-09-23T06:17:58.610Z",name:"鑫龙968",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:53,aisFromBow:41,aisFromCenter:-.5,navigationState:"sailing",navigationSpecialManeuver:"not available",tShip:{id:53,mmsi:413245570,shipNameEnglish:"XINLONG968",shipNameChinese:"鑫龙968",shipTypeChinese:"货轮,B类",length:"53.00",beam:"9.00",buildYear:null,draft:null,grossTonnage:null,callSign:"000000",imoNumber:null,ct:"2025-08-08T05:33:26.908Z",ut:"2025-08-08T05:33:26.908Z"}}},{type:"Feature",id:412505339,geometry:{type:"Point",coordinates:[119.37317,25.938638333333333]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T19:08:52.240Z",mmsi:412505339,speedOverGround:0,courseOverGroundTrue:.1448623279486057,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37314166666667,25.938718333333334]},preTime:"2025-09-22T16:08:34.650Z",tShip:{}}},{type:"Feature",id:413621860,geometry:{type:"Point",coordinates:[119.47832,26.005063333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:27.948Z",mmsi:413621860,speedOverGround:0,courseOverGroundTrue:2.024581932775694,sourcePort:35236,aisClass:"A",headingTrue:3.1415926543071118,navigationState:"motoring",navigationSpecialManeuver:"not available",id:29003454,preGeom:{type:"Point",coordinates:[119.47832,26.005063333333332]},preTime:"2025-09-23T08:48:07.519Z",tShip:{}}},{type:"Feature",id:412443612,geometry:{type:"Point",coordinates:[119.33054166666666,25.97514333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:44:59.068Z",mmsi:412443612,speedOverGround:.10288891495408069,courseOverGroundTrue:3.1660272638406113,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33044166666667,25.975235]},preTime:"2025-09-23T08:38:57.008Z",id:27216206,tShip:{}}},{type:"Feature",id:412443482,geometry:{type:"Point",coordinates:[119.37335833333333,25.938418333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T18:57:47.708Z",mmsi:412443482,speedOverGround:.051444457477040344,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:8931635,preGeom:{type:"Point",coordinates:[119.37341833333333,25.938485]},preTime:"2025-09-22T17:57:46.560Z",tShip:{}}},{type:"Feature",id:412966596,geometry:{type:"Point",coordinates:[119.12031166666667,26.142818333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T15:55:52.929Z",mmsi:412966596,speedOverGround:3.8068898533009854,courseOverGroundTrue:5.094616087734699,id:28865960,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.12240833333334,26.142028333333332]},preTime:"2025-09-22T15:54:53.309Z",name:" 民福6659",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:68,aisFromBow:60,aisFromCenter:2,tShip:{id:7,mmsi:412966596,shipNameEnglish:"MINHHN6659",shipNameChinese:" 民福6659",shipTypeChinese:"货轮,B类",length:"68.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"MF6659",imoNumber:null,ct:"2025-08-08T05:33:24.047Z",ut:"2025-08-08T05:33:24.047Z"}}},{type:"Feature",id:414660087,geometry:{type:"Point",coordinates:[119.40498666666667,25.963205]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:16:13.120Z",mmsi:414660087,speedOverGround:2.417889501420896,courseOverGroundTrue:4.90437519922388,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.405135,25.963176666666666]},preTime:"2025-09-23T08:16:07.178Z",id:28656447,name:" 闽福州货0087",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:71,aisFromBow:56,aisFromCenter:0,tShip:{id:119,mmsi:414660087,shipNameEnglish:"MINFUZHOUHUO0087",shipNameChinese:" 闽福州货0087",shipTypeChinese:"货轮,B类",length:"71.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:null,ct:"2025-08-08T05:33:30.988Z",ut:"2025-08-08T05:33:30.988Z"}}},{type:"Feature",id:412505805,geometry:{type:"Point",coordinates:[119.43186333333334,26.002228333333335]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T23:54:33.350Z",mmsi:412505805,speedOverGround:.10288891495408069,courseOverGroundTrue:.8813912724583841,aisClass:"B",preGeom:{type:"Point",coordinates:[119.43185166666666,26.002035]},preTime:"2025-09-13T06:58:48.124Z",tShip:{}}},{type:"Feature",id:412443862,geometry:{type:"Point",coordinates:[119.33588166666667,25.965428333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T22:39:04.490Z",mmsi:412443862,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33589,25.965421666666668]},preTime:"2025-09-21T14:56:26.009Z",id:28222041,tShip:{}}},{type:"Feature",id:412445633,geometry:{type:"Point",coordinates:[119.33212833333333,25.96664]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:08:18.690Z",mmsi:412445633,speedOverGround:.15433337243112102,courseOverGroundTrue:3.138101995802326,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.332065,25.966543333333334]},id:15454215,preTime:"2025-09-23T05:14:15.349Z",name:"MIN MIN YU 11008",shipTypeId:30,shipTypeName:"Fishing",designBeam:4,designLength:18,aisFromBow:13,aisFromCenter:0,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:412447498,geometry:{type:"Point",coordinates:[119.29789,25.988648333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:42:58.619Z",mmsi:412447498,speedOverGround:0,courseOverGroundTrue:3.5796702966577145,sourcePort:35236,aisClass:"B",id:28959185,preGeom:{type:"Point",coordinates:[119.29789,25.988648333333334]},preTime:"2025-09-23T08:41:37.628Z",tShip:{}}},{type:"Feature",id:414663588,geometry:{type:"Point",coordinates:[119.38031833333334,25.961973333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:11.367Z",mmsi:414663588,speedOverGround:0,courseOverGroundTrue:.4206243498266744,id:28989692,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38031833333334,25.961973333333333]},preTime:"2025-09-23T08:47:26.136Z",name:" 兴运3588 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:66,aisFromBow:55,aisFromCenter:0,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{id:58,mmsi:414663588,shipNameEnglish:"XINGYUN3588",shipNameChinese:" 兴运3588 ",shipTypeChinese:"货轮,B类",length:"66.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:27.216Z",ut:"2025-08-08T05:33:27.216Z"}}},{type:"Feature",id:414660567,geometry:{type:"Point",coordinates:[119.37830666666666,25.966713333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T13:08:47.760Z",mmsi:414660567,speedOverGround:4.424223343025469,courseOverGroundTrue:5.112069380258627,id:28894710,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37952,25.96623]},preTime:"2025-09-22T13:08:17.761Z",name:" 民辉0567",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:66,aisFromBow:56,aisFromCenter:0,tShip:{id:114,mmsi:414660567,shipNameEnglish:"MIN HUI 0567",shipNameChinese:" 民辉0567",shipTypeChinese:"货轮,B类",length:"66.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:null,ct:"2025-08-08T05:33:30.681Z",ut:"2025-08-08T05:33:30.681Z"}}},{type:"Feature",id:413880364,geometry:{type:"Point",coordinates:[119.30962833333334,26.053596666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:32.616Z",mmsi:413880364,speedOverGround:0,courseOverGroundTrue:3.1241393617831834,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.30963166666666,26.053596666666667]},preTime:"2025-09-23T08:46:22.326Z",id:28977687,name:"MIN JIANG HUI KETING",shipTypeId:60,shipTypeName:"Passenger ship",designBeam:11,designLength:37,aisFromBow:10,aisFromCenter:-.5,tShip:{}}},{type:"Feature",id:412421078,geometry:{type:"Point",coordinates:[119.44819666666666,25.983255]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:25.759Z",mmsi:412421078,speedOverGround:0,courseOverGroundTrue:.403171057302746,aisClass:"A",id:29009096,headingTrue:1.8675023000603386,navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.44819666666666,25.983256666666666]},preTime:"2025-09-23T08:48:15.869Z",tShip:{}}},{type:"Feature",id:414660666,geometry:{type:"Point",coordinates:[119.38157333333334,25.968425]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T09:37:51.309Z",mmsi:414660666,speedOverGround:0,courseOverGroundTrue:6.077236456831868,aisClass:"B",id:28411480,preGeom:{type:"Point",coordinates:[119.38157166666667,25.968428333333332]},preTime:"2025-09-22T09:35:33.447Z",name:" 民顺777 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:65,aisFromBow:53,aisFromCenter:0,tShip:{id:88,mmsi:414660666,shipNameEnglish:"MINSHUN777",shipNameChinese:" 民顺777 ",shipTypeChinese:"货轮,B类",length:"65.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:29.091Z",ut:"2025-08-08T05:33:29.091Z"}}},{type:"Feature",id:412443873,geometry:{type:"Point",coordinates:[119.33579333333333,25.965385]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:11.608Z",mmsi:412443873,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28830572,preGeom:{type:"Point",coordinates:[119.33580666666667,25.965381666666666]},preTime:"2025-09-23T08:43:11.289Z",tShip:{}}},{type:"Feature",id:414000655,geometry:{type:"Point",coordinates:[119.36774333333334,26.03667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:47:55.060Z",mmsi:414000655,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",headingTrue:0,preGeom:{type:"Point",coordinates:[119.36774,26.036666666666665]},preTime:"2025-09-23T07:41:55.441Z",tShip:{}}},{type:"Feature",id:413875242,geometry:{type:"Point",coordinates:[119.33972,26.052291666666665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:26.109Z",mmsi:413875242,speedOverGround:0,sourcePort:35236,aisClass:"A",navigationState:"anchored",navigationSpecialManeuver:"not available",id:28869569,preGeom:{type:"Point",coordinates:[119.33976,26.05228]},preTime:"2025-09-23T08:44:25.249Z",tShip:{}}},{type:"Feature",id:415613014,geometry:{type:"Point",coordinates:[119.22684833333334,26.107923333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:26.209Z",mmsi:415613014,speedOverGround:0,id:29007140,sourcePort:35236,aisClass:"A",navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.22684666666666,26.107925]},preTime:"2025-09-23T08:48:16.048Z",tShip:{id:4,mmsi:415613014,shipNameEnglish:"HDX",shipNameChinese:null,shipTypeChinese:"货轮,A类",length:"36.00",beam:"7.00",buildYear:null,draft:null,grossTonnage:null,callSign:"HH",imoNumber:null,ct:"2025-08-08T05:33:23.862Z",ut:"2025-08-08T05:33:23.862Z"}}},{type:"Feature",id:414663299,geometry:{type:"Point",coordinates:[119.38768833333333,25.965705]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T04:08:57.128Z",mmsi:414663299,speedOverGround:.20577782990816137,courseOverGroundTrue:3.295181628517682,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38770666666667,25.96583]},preTime:"2025-09-23T04:08:14.960Z",id:28636469,name:" 顺达1657 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:12,designLength:73,aisFromBow:63,aisFromCenter:0,tShip:{id:140,mmsi:414663299,shipNameEnglish:"SHUNDA1657",shipNameChinese:" 顺达1657 ",shipTypeChinese:"货轮,B类",length:"73.00",beam:"12.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:32.287Z",ut:"2025-08-08T05:33:32.287Z"}}},{type:"Feature",id:413848165,geometry:{type:"Point",coordinates:[119.30921,26.053518333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:20.069Z",mmsi:413848165,speedOverGround:0,courseOverGroundTrue:4.225442120043065,sourcePort:35236,aisClass:"B",headingTrue:0,preGeom:{type:"Point",coordinates:[119.30922666666666,26.053525]},preTime:"2025-09-23T08:42:19.588Z",id:28985071,tShip:{}}},{type:"Feature",id:413562220,geometry:{type:"Point",coordinates:[119.31686666666667,26.054956666666666]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:31.389Z",mmsi:413562220,speedOverGround:0,aisClass:"A",id:29009892,navigationState:"default",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.31686666666667,26.054956666666666]},preTime:"2025-09-23T08:48:21.969Z",tShip:{}}},{type:"Feature",id:412487606,geometry:{type:"Point",coordinates:[119.37293,25.938715]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:21:07.040Z",mmsi:412487606,speedOverGround:.051444457477040344,courseOverGroundTrue:5.270894342226376,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37288,25.938816666666668]},preTime:"2025-09-23T05:39:08.810Z",tShip:{}}},{type:"Feature",id:412505789,geometry:{type:"Point",coordinates:[119.42897,26.004536666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T05:55:16.040Z",mmsi:412505789,speedOverGround:.10288891495408069,courseOverGroundTrue:3.6774087347917135,aisClass:"B",preGeom:{type:"Point",coordinates:[119.42907,26.004425]},preTime:"2025-09-22T18:43:07.520Z",tShip:{}}},{type:"Feature",id:412443032,geometry:{type:"Point",coordinates:[119.33112833333334,25.974891666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:09:08.990Z",mmsi:412443032,speedOverGround:0,courseOverGroundTrue:5.609488217190587,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33107666666666,25.974886666666666]},preTime:"2025-09-23T07:57:09.010Z",id:25639423,tShip:{}}},{type:"Feature",id:412505304,geometry:{type:"Point",coordinates:[119.33947333333333,25.965303333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:34:37.403Z",mmsi:412505304,speedOverGround:.051444457477040344,courseOverGroundTrue:6.237806748052009,sourcePort:35236,aisClass:"B",id:28890981,preGeom:{type:"Point",coordinates:[119.33950666666667,25.965318333333332]},preTime:"2025-09-23T08:22:38.350Z",tShip:{}}},{type:"Feature",id:414881005,geometry:{type:"Point",coordinates:[119.31751,25.966693333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T03:35:58.040Z",mmsi:414881005,speedOverGround:5.813223694905559,courseOverGroundTrue:4.729842273984596,sourcePort:35236,aisClass:"B",headingTrue:4.729842273984596,id:28408663,preGeom:{type:"Point",coordinates:[119.32271,25.96643]},preTime:"2025-09-23T03:34:28.058Z",navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{id:63,mmsi:414881005,shipNameEnglish:"HAOYUAN7798",shipNameChinese:" 浩源7798",shipTypeChinese:"货轮,B类",length:"80.00",beam:"14.00",buildYear:null,draft:"3.50",grossTonnage:null,callSign:"H",imoNumber:"33280",ct:"2025-08-08T05:33:27.526Z",ut:"2025-08-08T05:33:27.526Z"},name:" 浩源7798"}},{type:"Feature",id:412440687,geometry:{type:"Point",coordinates:[119.46270833333334,25.988175]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:30.719Z",mmsi:412440687,speedOverGround:0,courseOverGroundTrue:5.640904143733658,id:29008727,sourcePort:35236,aisClass:"A",navigationState:"default",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.46270833333334,25.988175]},preTime:"2025-09-23T08:48:21.649Z",tShip:{}}},{type:"Feature",id:412443939,geometry:{type:"Point",coordinates:[119.34841333333334,25.952106666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:20:20.610Z",mmsi:412443939,speedOverGround:0,courseOverGroundTrue:0,id:28909605,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.34850166666666,25.952051666666666]},preTime:"2025-09-23T08:14:20.440Z",tShip:{}}},{type:"Feature",id:414666988,geometry:{type:"Point",coordinates:[119.37890833333333,25.963785]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:08.136Z",mmsi:414666988,speedOverGround:0,courseOverGroundTrue:1.2775810127515588,id:29003999,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37890666666667,25.963785]},preTime:"2025-09-23T08:47:50.078Z",name:" 民顺988",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:73,aisFromBow:63,aisFromCenter:0,tShip:{id:37,mmsi:414666988,shipNameEnglish:"MIN SHUN 988",shipNameChinese:" 民顺988",shipTypeChinese:"货轮,B类",length:"73.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:null,ct:"2025-08-08T05:33:25.918Z",ut:"2025-08-08T05:33:25.918Z"}}},{type:"Feature",id:994126347,geometry:{type:"Point",coordinates:[119.4105,25.960361666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T04:17:13.088Z",mmsi:994126347,name:"WLJ 12",aisClass:"ATON",atonTypeId:17,atonTypeName:"Beacon, Isolated Danger",atonOffPosition:!1,atonVirtual:!0,preGeom:{type:"Point",coordinates:[119.4105,25.960361666666667]},preTime:"2025-09-22T18:28:11.758Z",tShip:{}}},{type:"Feature",id:416003915,geometry:{type:"Point",coordinates:[119.47889833333333,26.00667333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:30.648Z",mmsi:416003915,speedOverGround:0,courseOverGroundTrue:4.064871828822924,sourcePort:35236,aisClass:"A",id:29008428,navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.47890333333334,26.00667333333333]},preTime:"2025-09-23T08:48:09.958Z",headingTrue:5.323254219798161,tShip:{}}},{type:"Feature",id:412505318,geometry:{type:"Point",coordinates:[119.33934333333333,25.965513333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T16:24:20.930Z",mmsi:412505318,speedOverGround:.10288891495408069,courseOverGroundTrue:1.4102260359334144,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33942666666667,25.965725]},preTime:"2025-09-11T09:49:49.568Z",tShip:{}}},{type:"Feature",id:412443595,geometry:{type:"Point",coordinates:[119.3714,25.939113333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:41:53.168Z",mmsi:412443595,speedOverGround:.9774446920637664,courseOverGroundTrue:1.057669526950061,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37158833333334,25.939133333333334]},preTime:"2025-09-23T06:53:55.310Z",id:15121754,tShip:{}}},{type:"Feature",id:413971829,geometry:{type:"Point",coordinates:[119.37190666666666,26.033485]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:14.979Z",mmsi:413971829,speedOverGround:0,courseOverGroundTrue:3.6651914300249637,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37190833333334,26.033483333333333]},preTime:"2025-09-23T08:48:04.366Z",id:29002626,name:"SHUN DA 198",shipTypeId:53,shipTypeName:"Port tender",designBeam:13,designLength:60,aisFromBow:29,aisFromCenter:-.5,tShip:{}}},{type:"Feature",id:412446428,geometry:{type:"Point",coordinates:[119.33016333333333,25.974938333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:44:02.029Z",mmsi:412446428,speedOverGround:.10288891495408069,courseOverGroundTrue:2.8902652419625428,sourcePort:35236,aisClass:"B",id:27823229,preGeom:{type:"Point",coordinates:[119.33013166666667,25.974983333333334]},preTime:"2025-09-23T08:38:01.950Z",tShip:{}}},{type:"Feature",id:412505322,geometry:{type:"Point",coordinates:[119.33050833333333,25.97493]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:05.198Z",mmsi:412505322,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28986827,preGeom:{type:"Point",coordinates:[119.330485,25.97498]},preTime:"2025-09-23T08:42:06.129Z",tShip:{}}},{type:"Feature",id:414662501,geometry:{type:"Point",coordinates:[119.37908,25.96398]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:47:50.296Z",mmsi:414662501,speedOverGround:0,courseOverGroundTrue:1.350884841352058,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37907,25.963978333333333]},preTime:"2025-09-23T08:47:34.887Z",id:29005885,name:"MINFUZHOUHUO2501",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:68,aisFromBow:56,aisFromCenter:-.5,tShip:{}}},{type:"Feature",id:413360490,geometry:{type:"Point",coordinates:[119.38818666666667,25.966585]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:33.969Z",mmsi:413360490,speedOverGround:.051444457477040344,courseOverGroundTrue:7.063347484433822,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38819333333333,25.966583333333332]},preTime:"2025-09-23T08:44:01.446Z",id:28995863,name:" 骏鑫288",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:56,aisFromBow:35,aisFromCenter:.5,tShip:{id:16,mmsi:413360490,shipNameEnglish:"JUN XIN 288",shipNameChinese:" 骏鑫288",shipTypeChinese:"货轮,B类",length:"55.80",beam:"9.00",buildYear:2011,draft:null,grossTonnage:null,callSign:"000000",imoNumber:null,ct:"2025-08-08T05:33:24.589Z",ut:"2025-08-08T05:33:24.589Z"}}},{type:"Feature",id:412966649,geometry:{type:"Point",coordinates:[119.27007833333333,25.985481666666665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T13:16:46.188Z",mmsi:412966649,speedOverGround:13.169781114122328,courseOverGroundTrue:.5393067389893875,sourcePort:35236,name:"MINFU6659",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:68,aisFromBow:60,aisFromCenter:2,aisClass:"B",preGeom:{type:"Point",coordinates:[119.28119333333333,25.984026666666665]},preTime:"2025-06-16T07:41:56.613Z",tShip:{}}},{type:"Feature",id:412443933,geometry:{type:"Point",coordinates:[119.338345,25.96501]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:01.448Z",mmsi:412443933,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:29009891,preGeom:{type:"Point",coordinates:[119.338325,25.965016666666667]},preTime:"2025-09-23T08:40:00.948Z",name:null,shipTypeId:null,shipTypeName:null,designBeam:null,designLength:null,aisFromBow:null,aisFromCenter:null,atonTypeId:null,atonTypeName:null,atonOffPosition:null,atonVirtual:null,headingTrue:null,navigationState:null,navigationSpecialManeuver:null,tShip:{}}},{type:"Feature",id:354342e3,geometry:{type:"Point",coordinates:[119.44176666666667,25.987333333333332]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:47:02.989Z",mmsi:354342e3,speedOverGround:0,courseOverGroundTrue:1.8325957150124819,aisClass:"A",navigationState:"moored",navigationSpecialManeuver:"not available",id:29004577,preGeom:{type:"Point",coordinates:[119.4418,25.98731666666667]},preTime:"2025-09-23T08:44:03.408Z",tShip:{}}},{type:"Feature",id:412505317,geometry:{type:"Point",coordinates:[119.33940166666666,25.964998333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:44:11.736Z",mmsi:412505317,speedOverGround:.051444457477040344,courseOverGroundTrue:6.246533394313973,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.3394,25.964978333333335]},preTime:"2025-09-23T08:32:11.728Z",id:15181574,tShip:{}}},{type:"Feature",id:413231190,geometry:{type:"Point",coordinates:[119.38650666666666,25.96583]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:16.638Z",mmsi:413231190,speedOverGround:.051444457477040344,courseOverGroundTrue:6.075491127579475,aisClass:"B",id:29007139,preGeom:{type:"Point",coordinates:[119.3865,25.965816666666665]},preTime:"2025-09-23T08:48:07.307Z",name:"BEI LA JIA",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:57,aisFromBow:45,aisFromCenter:-1,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:414665766,geometry:{type:"Point",coordinates:[119.38155833333333,25.968581666666665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:10:52.598Z",mmsi:414665766,speedOverGround:0,courseOverGroundTrue:3.8536869892833905,sourcePort:35236,aisClass:"B",id:28527515,preGeom:{type:"Point",coordinates:[119.38155,25.96858]},preTime:"2025-09-23T08:06:26.378Z",name:"福运5766",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:72,aisFromBow:52,aisFromCenter:.5,tShip:{id:49,mmsi:414665766,shipNameEnglish:"FUYUN5766",shipNameChinese:"福运5766",shipTypeChinese:"货轮,B类",length:"72.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:26.665Z",ut:"2025-08-08T05:33:26.665Z"}}},{type:"Feature",id:412505801,geometry:{type:"Point",coordinates:[119.43049,26.003205]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T22:51:32.911Z",mmsi:412505801,speedOverGround:.051444457477040344,courseOverGroundTrue:.1762782544916768,aisClass:"B",preGeom:{type:"Point",coordinates:[119.41953666666667,26.007813333333335]},preTime:"2025-09-21T23:32:48.110Z",tShip:{}}},{type:"Feature",id:412441622,geometry:{type:"Point",coordinates:[119.37497,25.937501666666666]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T22:38:59.200Z",mmsi:412441622,speedOverGround:24.693339588979363,courseOverGroundTrue:0,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37498333333333,25.937485]},preTime:"2025-09-22T22:26:46.150Z",tShip:{}}},{type:"Feature",id:413881518,geometry:{type:"Point",coordinates:[119.3046,26.047945]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:19.078Z",mmsi:413881518,speedOverGround:0,courseOverGroundTrue:3.3370695305751097,sourcePort:35236,aisClass:"B",id:29010119,preGeom:{type:"Point",coordinates:[119.30459333333333,26.047945]},preTime:"2025-09-23T08:48:02.598Z",navigationState:"not under command",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:414666688,geometry:{type:"Point",coordinates:[119.40877333333333,25.96333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:32.698Z",mmsi:414666688,speedOverGround:3.446778650961703,courseOverGroundTrue:4.054399853308567,id:29007525,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.40965666666666,25.96397]},preTime:"2025-09-23T08:47:58.856Z",name:" 永星66688",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:65,aisFromBow:53,aisFromCenter:.5,tShip:{id:92,mmsi:414666688,shipNameEnglish:"YONGXING66688",shipNameChinese:" 永星66688",shipTypeChinese:"货轮,B类",length:"65.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:29.341Z",ut:"2025-08-08T05:33:29.341Z"}}},{type:"Feature",id:414666699,geometry:{type:"Point",coordinates:[119.38761166666667,25.95161]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:20.297Z",mmsi:414666699,speedOverGround:0,courseOverGroundTrue:.8674286384392415,id:28989200,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38760833333333,25.95161166666667]},preTime:"2025-09-23T08:45:24.917Z",name:"民三顺99",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:62,aisFromBow:52,aisFromCenter:0,tShip:{id:78,mmsi:414666699,shipNameEnglish:"MINSANSHUN 99",shipNameChinese:"民三顺99",shipTypeChinese:"货轮,B类",length:"62.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:28.483Z",ut:"2025-08-08T05:33:28.483Z"}}},{type:"Feature",id:412361340,geometry:{type:"Point",coordinates:[119.38358833333334,25.940511666666666]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:47:27.829Z",mmsi:412361340,speedOverGround:0,courseOverGroundTrue:1.2793263420039516,aisClass:"B",preGeom:{type:"Point",coordinates:[119.383605,25.940498333333334]},id:28892822,preTime:"2025-09-23T08:38:28.200Z",headingTrue:1.274090354246773,tShip:{}}},{type:"Feature",id:412505325,geometry:{type:"Point",coordinates:[119.339445,25.965336666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T00:39:10.670Z",mmsi:412505325,speedOverGround:.15433337243112102,courseOverGroundTrue:6.044075201036405,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33937833333333,25.96535]},preTime:"2025-09-22T22:57:19.090Z",tShip:{}}},{type:"Feature",id:412443485,geometry:{type:"Point",coordinates:[119.373875,25.9388]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:34:22.990Z",mmsi:412443485,speedOverGround:.051444457477040344,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.373735,25.938325]},preTime:"2025-09-23T04:52:20.090Z",tShip:{}}},{type:"Feature",id:412505342,geometry:{type:"Point",coordinates:[119.339175,25.964973333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:38:43.239Z",mmsi:412505342,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.339125,25.96501]},preTime:"2025-09-23T08:26:38.240Z",id:28485544,tShip:{}}},{type:"Feature",id:412505346,geometry:{type:"Point",coordinates:[119.33993166666667,25.965393333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T04:48:20.648Z",mmsi:412505346,speedOverGround:.10288891495408069,courseOverGroundTrue:4.920083162495415,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33995333333333,25.96527]},preTime:"2025-09-22T21:54:19.060Z",id:15400919,tShip:{}}},{type:"Feature",id:412505786,geometry:{type:"Point",coordinates:[119.43095833333334,26.00295]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:07:56.960Z",mmsi:412505786,speedOverGround:.15433337243112102,courseOverGroundTrue:4.24638607107178,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.43102166666667,26.00293]},preTime:"2025-09-23T06:55:56.610Z",id:28546371,tShip:{}}},{type:"Feature",id:412447496,geometry:{type:"Point",coordinates:[119.28280166666667,25.990051666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:43:05.477Z",mmsi:412447496,speedOverGround:.10288891495408069,courseOverGroundTrue:5.768313179158335,sourcePort:35236,aisClass:"B",id:28840694,preGeom:{type:"Point",coordinates:[119.282815,25.99006]},preTime:"2025-09-23T08:37:06.480Z",tShip:{id:152,mmsi:412447496,shipNameEnglish:"MINFUZHOUYU23159",shipNameChinese:" 闽福州渔23159",shipTypeChinese:"捕捞船,B类",length:"11.00",beam:"3.00",buildYear:2014,draft:null,grossTonnage:null,callSign:"0000006",imoNumber:"9615339",ct:"2025-08-13T07:11:09.080Z",ut:"2025-08-13T07:11:09.080Z"},name:" 闽福州渔23159"}},{type:"Feature",id:414666088,geometry:{type:"Point",coordinates:[119.38377333333334,25.968206666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:20.936Z",mmsi:414666088,speedOverGround:0,courseOverGroundTrue:.8133234316150634,sourcePort:35236,aisClass:"B",id:28949876,preGeom:{type:"Point",coordinates:[119.38377333333334,25.968205]},preTime:"2025-09-23T08:46:35.797Z",name:" 民顺179 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:68,aisFromBow:56,aisFromCenter:-.5,tShip:{id:41,mmsi:414666088,shipNameEnglish:"MINSHUN179",shipNameChinese:" 民顺179 ",shipTypeChinese:"货轮,B类",length:"68.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:26.170Z",ut:"2025-08-08T05:33:26.170Z"}}},{type:"Feature",id:413225780,geometry:{type:"Point",coordinates:[119.34505,26.050661666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T13:59:01.522Z",mmsi:413225780,speedOverGround:0,courseOverGroundTrue:.7103490057238858,aisClass:"B",id:28884771,preGeom:{type:"Point",coordinates:[119.34498,26.050648333333335]},preTime:"2025-09-22T13:57:36.657Z",name:"汉斯曼贰号",shipTypeId:37,shipTypeName:"Pleasure",designBeam:6,designLength:16,aisFromBow:9,aisFromCenter:0,tShip:{id:154,mmsi:413225780,shipNameEnglish:"HAN SI MAN ER HAO",shipNameChinese:"汉斯曼贰号",shipTypeChinese:"游艇,B类",length:"15.83",beam:"6.05",buildYear:2014,draft:null,grossTonnage:null,callSign:"L0",imoNumber:"9171278",ct:"2025-08-13T07:11:39.753Z",ut:"2025-08-13T07:11:39.753Z"}}},{type:"Feature",id:412328540,geometry:{type:"Point",coordinates:[119.47386666666667,25.99773666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T03:17:09.150Z",mmsi:412328540,speedOverGround:0,courseOverGroundTrue:1.6266468632301267,aisClass:"A",navigationState:"moored",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.47382666666667,25.997755]},preTime:"2025-09-23T03:11:09.150Z",id:28963098,headingTrue:.5585053607657088,tShip:{}}},{type:"Feature",id:413881338,geometry:{type:"Point",coordinates:[119.37161666666667,25.967938333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:00.628Z",mmsi:413881338,speedOverGround:0,courseOverGroundTrue:0,id:28995758,sourcePort:35236,aisClass:"B",headingTrue:0,preGeom:{type:"Point",coordinates:[119.37158666666667,25.967928333333333]},preTime:"2025-09-23T08:44:33.268Z",navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:414666336,geometry:{type:"Point",coordinates:[119.14917,26.125011666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:09.066Z",mmsi:414666336,speedOverGround:4.012667683209147,courseOverGroundTrue:2.471386221388261,id:28890798,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.14166666666667,26.13186333333333]},preTime:"2025-09-23T08:43:38.528Z",name:" 闽福州货0823 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:61,aisFromBow:50,aisFromCenter:0,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{id:22,mmsi:414666336,shipNameEnglish:"MINFUZHOUHUO0823",shipNameChinese:" 闽福州货0823 ",shipTypeChinese:"货轮,B类",length:"61.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:24.968Z",ut:"2025-08-08T05:33:24.968Z"}}},{type:"Feature",id:414600366,geometry:{type:"Point",coordinates:[119.23748,25.94565]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:08.208Z",mmsi:414600366,speedOverGround:3.446778650961703,courseOverGroundTrue:.43458698384581707,id:28734446,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.23729,25.94528]},preTime:"2025-09-23T08:47:55.366Z",name:" 民顺366 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:70,aisFromBow:58,aisFromCenter:1,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{id:19,mmsi:414600366,shipNameEnglish:"MINSHUN366",shipNameChinese:" 民顺366 ",shipTypeChinese:"货轮,B类",length:"70.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:24.778Z",ut:"2025-08-08T05:33:24.778Z"}}},{type:"Feature",id:414666342,geometry:{type:"Point",coordinates:[119.44122166666666,25.989555]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T22:22:49.470Z",mmsi:414666342,speedOverGround:0,courseOverGroundTrue:4.293509960886386,sourcePort:35236,aisClass:"B",headingTrue:4.869468614176023,preGeom:{type:"Point",coordinates:[119.44122666666667,25.989555]},preTime:"2025-09-22T22:17:26.050Z",id:28564185,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:412505333,geometry:{type:"Point",coordinates:[119.34846666666667,25.952275]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:43:18.498Z",mmsi:412505333,speedOverGround:.15433337243112102,courseOverGroundTrue:2.755874889528294,aisClass:"B",preGeom:{type:"Point",coordinates:[119.34849833333334,25.952183333333334]},preTime:"2025-09-23T07:55:16.960Z",id:28000522,tShip:{}}},{type:"Feature",id:412505307,geometry:{type:"Point",coordinates:[119.339555,25.965205]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T05:25:24.640Z",mmsi:412505307,speedOverGround:.10288891495408069,courseOverGroundTrue:6.185446870480224,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33952833333333,25.965181666666666]},preTime:"2025-09-23T05:19:24.431Z",tShip:{}}},{type:"Feature",id:414665676,geometry:{type:"Point",coordinates:[119.38163833333333,25.968693333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:33.016Z",mmsi:414665676,speedOverGround:0,courseOverGroundTrue:3.6512287960058205,id:28997831,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38164,25.96869]},preTime:"2025-09-23T08:47:47.717Z",name:" 福运5676 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:70,aisFromBow:58,aisFromCenter:.5,tShip:{id:25,mmsi:414665676,shipNameEnglish:"FUYUN5676",shipNameChinese:" 福运5676 ",shipTypeChinese:"货轮,B类",length:"70.00",beam:"11.00",buildYear:null,draft:"5.10",grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:25.154Z",ut:"2025-08-08T05:33:25.154Z"}}},{type:"Feature",id:413693360,geometry:{type:"Point",coordinates:[119.48044,26.002216666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T00:15:00.190Z",mmsi:413693360,speedOverGround:5.658890322474438,courseOverGroundTrue:.5166174587082806,sourcePort:35236,aisClass:"A",navigationState:"motoring",navigationSpecialManeuver:"not available",id:28800958,preGeom:{type:"Point",coordinates:[119.48013333333333,26.00173]},preTime:"2025-09-23T00:14:49.171Z",tShip:{}}},{type:"Feature",id:413355110,geometry:{type:"Point",coordinates:[119.38475,25.947133333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:45:42.418Z",mmsi:413355110,speedOverGround:.051444457477040344,courseOverGroundTrue:2.1066124076381576,sourcePort:35236,aisClass:"B",id:28830591,preGeom:{type:"Point",coordinates:[119.38475,25.947133333333333]},preTime:"2025-09-23T08:42:38.189Z",tShip:{}}},{type:"Feature",id:415327875,geometry:{type:"Point",coordinates:[119.18817833333334,26.130811666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T02:49:34.850Z",mmsi:415327875,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:17209983,preGeom:{type:"Point",coordinates:[119.18820833333334,26.130771666666668]},preTime:"2025-09-17T06:09:25.471Z",tShip:{}}},{type:"Feature",id:412505319,geometry:{type:"Point",coordinates:[119.33985166666666,25.965553333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:36:00.690Z",mmsi:412505319,speedOverGround:.15433337243112102,courseOverGroundTrue:5.05796417343445,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33983666666667,25.96537]},preTime:"2025-09-23T06:47:59.310Z",id:15046333,tShip:{}}},{type:"Feature",id:412505796,geometry:{type:"Point",coordinates:[119.42890166666666,26.004588333333334]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T21:12:29.390Z",mmsi:412505796,speedOverGround:51.03290181722402,courseOverGroundTrue:1.9373154701560522,aisClass:"B",preGeom:{type:"Point",coordinates:[119.42879166666667,26.004673333333333]},preTime:"2025-09-22T09:24:27.489Z",tShip:{}}},{type:"Feature",id:412505792,geometry:{type:"Point",coordinates:[119.42905833333333,26.004571666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:43:58.879Z",mmsi:412505792,speedOverGround:0,courseOverGroundTrue:5.8782689220590845,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.42885333333334,26.004996666666667]},preTime:"2025-09-23T07:19:57.268Z",id:28387590,tShip:{}}},{type:"Feature",id:414666777,geometry:{type:"Point",coordinates:[119.48022666666667,25.99977833333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:46:52.248Z",mmsi:414666777,speedOverGround:4.269889970594349,courseOverGroundTrue:.3665191430024964,id:28971769,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.47839333333333,25.996108333333332]},preTime:"2025-09-23T07:45:03.928Z",name:" 航通269 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:70,aisFromBow:58,aisFromCenter:.5,tShip:{id:84,mmsi:414666777,shipNameEnglish:"HANGTONG269",shipNameChinese:" 航通269 ",shipTypeChinese:"货轮,B类",length:"70.00",beam:"11.00",buildYear:null,draft:"3.80",grossTonnage:null,callSign:"A2B3",imoNumber:"2222222",ct:"2025-08-08T05:33:28.849Z",ut:"2025-08-08T05:33:28.849Z"}}},{type:"Feature",id:412505336,geometry:{type:"Point",coordinates:[119.33689166666667,25.965291666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:22:36.210Z",mmsi:412505336,speedOverGround:.051444457477040344,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28636468,preGeom:{type:"Point",coordinates:[119.33684166666667,25.965223333333334]},preTime:"2025-09-23T08:10:36.211Z",tShip:{id:108,mmsi:412505336,shipNameEnglish:"MINMINYU13008",shipNameChinese:"闽闽渔13008",shipTypeChinese:"其他类,B类",length:"20.00",beam:"4.00",buildYear:null,draft:null,grossTonnage:null,callSign:"1234567",imoNumber:null,ct:"2025-08-08T05:33:30.318Z",ut:"2025-08-08T05:33:30.318Z"},name:"闽闽渔13008"}},{type:"Feature",id:413533220,geometry:{type:"Point",coordinates:[119.35021333333333,26.048796666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:25.719Z",mmsi:413533220,speedOverGround:0,courseOverGroundTrue:.849975345915313,id:28601174,sourcePort:35236,aisClass:"A",navigationState:"moored",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.35021333333333,26.048788333333334]},preTime:"2025-09-23T08:43:26.598Z",tShip:{}}},{type:"Feature",id:999412521,geometry:{type:"Point",coordinates:[119.464955,25.982561666666665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:27.569Z",mmsi:999412521,name:"YINGQIAN 4",designBeam:2,designLength:2,sourcePort:35236,aisFromBow:1,aisFromCenter:0,aisClass:"ATON",id:28948674,atonTypeId:22,atonTypeName:"Cardinal Mark S",atonOffPosition:!1,atonVirtual:!1,preGeom:{type:"Point",coordinates:[119.46493333333333,25.982571666666665]},preTime:"2025-09-23T08:45:27.567Z",tShip:{}}},{type:"Feature",id:412443737,geometry:{type:"Point",coordinates:[119.38211,25.945363333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T20:51:03.410Z",mmsi:412443737,speedOverGround:0,courseOverGroundTrue:1.9477874456704092,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38212666666666,25.945446666666665]},preTime:"2025-09-22T09:39:02.320Z",tShip:{}}},{type:"Feature",id:412444156,geometry:{type:"Point",coordinates:[119.38265,25.944041666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:39:28.718Z",mmsi:412444156,speedOverGround:.10288891495408069,courseOverGroundTrue:5.653121448500408,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38252333333334,25.944121666666668]},preTime:"2025-09-23T08:27:28.640Z",tShip:{}}},{type:"Feature",id:412442012,geometry:{type:"Point",coordinates:[119.33689333333334,25.96519]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:45.432Z",mmsi:412442012,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28975143,preGeom:{type:"Point",coordinates:[119.336895,25.96518]},preTime:"2025-09-23T08:43:45.248Z",tShip:{}}},{type:"Feature",id:413999525,geometry:{type:"Point",coordinates:[119.311045,26.05397333333333]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T07:59:33.368Z",mmsi:413999525,speedOverGround:0,courseOverGroundTrue:3.410373359175609,aisClass:"B",headingTrue:3.4033920421660375,id:28670253,preGeom:{type:"Point",coordinates:[119.311045,26.053971666666666]},preTime:"2025-09-23T07:56:01.790Z",navigationState:"moored",navigationSpecialManeuver:"not available",name:"鼓山",shipTypeId:37,shipTypeName:"Pleasure",designBeam:7,designLength:30,aisFromBow:17,aisFromCenter:-.5,tShip:{id:155,mmsi:413999525,shipNameEnglish:"GU SHAN",shipNameChinese:"鼓山",shipTypeChinese:"客轮,B类",length:"30.80",beam:"7.20",buildYear:2010,draft:"1.20",grossTonnage:null,callSign:" 0TXD4",imoNumber:null,ct:"2025-08-13T07:11:52.902Z",ut:"2025-08-13T07:11:52.902Z"}}},{type:"Feature",id:412442299,geometry:{type:"Point",coordinates:[119.373965,25.9381]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T00:57:00.750Z",mmsi:412442299,speedOverGround:.10288891495408069,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37398333333333,25.938058333333334]},preTime:"2025-09-22T21:08:53.140Z",id:28826959,tShip:{}}},{type:"Feature",id:412505344,geometry:{type:"Point",coordinates:[119.37281666666667,25.93875166666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T23:39:13.318Z",mmsi:412505344,speedOverGround:.15433337243112102,courseOverGroundTrue:4.298745948643565,aisClass:"B",preGeom:{type:"Point",coordinates:[119.372875,25.939005]},preTime:"2025-09-22T09:39:13.119Z",tShip:{}}},{type:"Feature",id:412441984,geometry:{type:"Point",coordinates:[119.33684,25.965185]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:25:40.960Z",mmsi:412441984,speedOverGround:26.339562228244656,courseOverGroundTrue:1.560324351639199,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.336865,25.96513]},preTime:"2025-09-19T16:16:50.020Z",tShip:{}}},{type:"Feature",id:412505809,geometry:{type:"Point",coordinates:[119.43204666666666,26.001445]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T04:47:14.050Z",mmsi:412505809,speedOverGround:.15433337243112102,courseOverGroundTrue:.7051130179667072,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.432585,26.00136]},preTime:"2025-09-23T01:47:11.490Z",id:27293307,tShip:{}}},{type:"Feature",id:412444166,geometry:{type:"Point",coordinates:[119.37216333333333,25.939246666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:16.636Z",mmsi:412444166,speedOverGround:0,courseOverGroundTrue:4.0299652437750675,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.372285,25.939265]},preTime:"2025-09-23T06:22:18.540Z",id:27132698,tShip:{}}},{type:"Feature",id:412505788,geometry:{type:"Point",coordinates:[119.42890333333334,26.004493333333333]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T05:37:16.950Z",mmsi:412505788,speedOverGround:.15433337243112102,courseOverGroundTrue:3.4906585047856797,aisClass:"B",preGeom:{type:"Point",coordinates:[119.42887666666667,26.004521666666665]},preTime:"2025-09-23T02:37:15.440Z",id:14621445,tShip:{}}},{type:"Feature",id:414999088,geometry:{type:"Point",coordinates:[119.44124666666667,25.990948333333332]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:23.247Z",mmsi:414999088,speedOverGround:0,courseOverGroundTrue:3.1276300202879685,aisClass:"B",id:28971315,preGeom:{type:"Point",coordinates:[119.44124666666667,25.990951666666668]},preTime:"2025-09-23T08:47:38.127Z",name:"XIANGLOUDIGONG88HAO",shipTypeId:33,shipTypeName:"Engaged in dredging or underwater operations",designBeam:10,designLength:83,aisFromBow:63,aisFromCenter:0,tShip:{}}},{type:"Feature",id:412446642,geometry:{type:"Point",coordinates:[119.33829166666666,25.964838333333333]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:45:43.358Z",mmsi:412446642,speedOverGround:0,courseOverGroundTrue:.04014257280503531,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33833833333334,25.964838333333333]},preTime:"2025-09-23T08:15:46.248Z",id:28964355,tShip:{}}},{type:"Feature",id:414660599,geometry:{type:"Point",coordinates:[119.22124,26.060558333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:11.118Z",mmsi:414660599,speedOverGround:3.446778650961703,courseOverGroundTrue:3.361504140108609,id:28870066,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.22146666666667,26.061473333333332]},preTime:"2025-09-23T08:47:41.147Z",name:" 闽福州货0599",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:68,aisFromBow:57,aisFromCenter:0,tShip:{id:5,mmsi:414660599,shipNameEnglish:"MINFUZHOUHUO0599",shipNameChinese:" 闽福州货0599",shipTypeChinese:"货轮,B类",length:"68.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:null,ct:"2025-08-08T05:33:23.923Z",ut:"2025-08-08T05:33:23.923Z"}}},{type:"Feature",id:412000002,geometry:{type:"Point",coordinates:[119.30739666666666,26.02595833333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:17:22.860Z",mmsi:412000002,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"A",id:29002678,navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.307395,26.025966666666665]},preTime:"2025-09-23T08:17:13.650Z",tShip:{}}},{type:"Feature",id:413570270,geometry:{type:"Point",coordinates:[119.38168333333333,25.938533333333332]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:10.887Z",mmsi:413570270,speedOverGround:0,courseOverGroundTrue:1.8360863735172674,id:29003016,sourcePort:35236,aisClass:"B",headingTrue:1.8325957150124819,preGeom:{type:"Point",coordinates:[119.38168333333333,25.938533333333332]},preTime:"2025-09-23T08:47:48.619Z",navigationState:"motoring",navigationSpecialManeuver:"not available",name:" 新华达18",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:53,aisFromBow:40,aisFromCenter:-.5,tShip:{id:124,mmsi:413570270,shipNameEnglish:"XIN HUA DA 18",shipNameChinese:" 新华达18",shipTypeChinese:"货轮,B类",length:"57.00",beam:"9.40",buildYear:2008,draft:"3.50",grossTonnage:null,callSign:"18",imoNumber:"1400704",ct:"2025-08-08T05:33:31.308Z",ut:"2025-08-08T05:33:31.308Z"}}},{type:"Feature",id:413228750,geometry:{type:"Point",coordinates:[119.48038666666666,26.00352]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T00:24:33.600Z",mmsi:413228750,speedOverGround:2.572222873852017,sourcePort:35236,aisClass:"A",id:28911232,headingTrue:.3665191430024964,navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.48002666666666,26.0026]},preTime:"2025-09-23T00:23:53.478Z",courseOverGroundTrue:.28797932664481857,tShip:{}}},{type:"Feature",id:413465440,geometry:{type:"Point",coordinates:[119.46536666666667,25.98987]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:45.599Z",mmsi:413465440,speedOverGround:0,courseOverGroundTrue:2.6232298663464384,sourcePort:35236,aisClass:"B",headingTrue:2.61799387858926,id:28998241,preGeom:{type:"Point",coordinates:[119.46536,25.989871666666666]},preTime:"2025-09-23T08:44:45.408Z",navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:412505328,geometry:{type:"Point",coordinates:[119.33288666666667,25.97535]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:45:16.289Z",mmsi:412505328,speedOverGround:.10288891495408069,courseOverGroundTrue:0,id:28589950,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33295833333334,25.97543]},preTime:"2025-09-23T08:39:16.247Z",tShip:{}}},{type:"Feature",id:412441746,geometry:{type:"Point",coordinates:[119.37278166666667,25.939066666666665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:11:22.450Z",mmsi:412441746,speedOverGround:.051444457477040344,courseOverGroundTrue:5.391322060641482,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37283833333333,25.938935]},preTime:"2025-09-23T06:05:20.190Z",id:27844768,tShip:{}}},{type:"Feature",id:413233080,geometry:{type:"Point",coordinates:[119.38115333333333,25.938198333333332]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:47:58.997Z",mmsi:413233080,speedOverGround:0,courseOverGroundTrue:2.5429447207363673,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38115333333333,25.938198333333332]},preTime:"2025-09-23T08:47:14.037Z",id:29008509,name:" 闽龙18",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:9,designLength:56,aisFromBow:12,aisFromCenter:-.5,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{id:120,mmsi:413233080,shipNameEnglish:"MIN LONG 18",shipNameChinese:" 闽龙18",shipTypeChinese:"货轮,B类",length:"55.80",beam:"9.00",buildYear:2010,draft:"3.40",grossTonnage:null,callSign:"BOGM6",imoNumber:"1400704",ct:"2025-08-08T05:33:31.049Z",ut:"2025-08-08T05:33:31.049Z"}}},{type:"Feature",id:412441578,geometry:{type:"Point",coordinates:[119.37303833333333,25.93872]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:58:15.730Z",mmsi:412441578,speedOverGround:0,courseOverGroundTrue:4.981169686329165,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37318833333333,25.938713333333332]},preTime:"2025-09-23T06:28:14.720Z",id:28420991,tShip:{}}},{type:"Feature",id:970111222,geometry:{type:"Point",coordinates:[119.26095333333333,26.03781]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:23:54.328Z",mmsi:970111222,name:"970111000 0",speedOverGround:0,courseOverGroundTrue:6.1784655534706525,designBeam:3,designLength:8,sourcePort:35236,aisFromBow:5,aisFromCenter:-.5,aisClass:"B",headingTrue:6.1784655534706525,preGeom:{type:"Point",coordinates:[119.26152666666667,26.037803333333333]},preTime:"2025-09-23T06:22:40.360Z",id:28969554,tShip:{}}},{type:"Feature",id:413840836,geometry:{type:"Point",coordinates:[119.31157666666667,26.05407]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:28:23.200Z",mmsi:413840836,speedOverGround:0,courseOverGroundTrue:2.0664698348331223,sourcePort:35236,aisClass:"B",headingTrue:2.059488517823551,preGeom:{type:"Point",coordinates:[119.31156,26.054108333333332]},preTime:"2025-09-23T07:52:23.010Z",id:28126104,name:"MIN JIANG ZHI LIAN",shipTypeId:60,shipTypeName:"Passenger ship",designBeam:9,designLength:42,aisFromBow:10,aisFromCenter:-1.5,tShip:{}}},{type:"Feature",id:412440561,geometry:{type:"Point",coordinates:[119.38203,25.945446666666665]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T05:06:30.720Z",mmsi:412440561,speedOverGround:.10288891495408069,courseOverGroundTrue:6.009168615988548,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38202833333334,25.94546666666667]},preTime:"2025-09-20T06:59:02.930Z",tShip:{}}},{type:"Feature",id:412447313,geometry:{type:"Point",coordinates:[119.38275666666667,25.944296666666666]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T07:14:53.560Z",mmsi:412447313,speedOverGround:.15433337243112102,courseOverGroundTrue:1.4102260359334144,aisClass:"B",preGeom:{type:"Point",coordinates:[119.38272,25.944251666666666]},preTime:"2025-09-22T18:38:56.190Z",id:15032316,tShip:{}}},{type:"Feature",id:414660538,geometry:{type:"Point",coordinates:[119.37984166666666,25.964798333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:02.726Z",mmsi:414660538,speedOverGround:0,courseOverGroundTrue:.6248278723566366,id:28988335,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37984,25.964793333333333]},preTime:"2025-09-23T08:45:55.730Z",name:" 仓宏0538 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:71,aisFromBow:61,aisFromCenter:0,tShip:{id:13,mmsi:414660538,shipNameEnglish:"CANGHONG 0538",shipNameChinese:" 仓宏0538 ",shipTypeChinese:"货轮,B类",length:"71.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:24.410Z",ut:"2025-08-08T05:33:24.410Z"}}},{type:"Feature",id:413284680,geometry:{type:"Point",coordinates:[119.48035833333333,26.007466666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T00:24:38.523Z",mmsi:413284680,speedOverGround:1.0288891495408068,courseOverGroundTrue:.21467549804431932,sourcePort:35236,aisClass:"A",headingTrue:.43633231309820997,navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.48032,26.007365]},preTime:"2025-09-23T00:24:27.710Z",id:19145656,tShip:{}}},{type:"Feature",id:414663098,geometry:{type:"Point",coordinates:[119.17817333333333,25.908665]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T07:08:00.540Z",mmsi:414663098,speedOverGround:2.829445161237219,courseOverGroundTrue:3.9374627933982467,sourcePort:35236,aisClass:"B",id:28989421,preGeom:{type:"Point",coordinates:[119.17888666666667,25.909365]},preTime:"2025-09-23T07:07:22.778Z",name:" 兴运3098",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:70,aisFromBow:58,aisFromCenter:-.5,tShip:{id:59,mmsi:414663098,shipNameEnglish:"XINGYUN3098",shipNameChinese:" 兴运3098",shipTypeChinese:"货轮,B类",length:"70.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:27.283Z",ut:"2025-08-08T05:33:27.283Z"}}},{type:"Feature",id:414356280,geometry:{type:"Point",coordinates:[119.21520166666667,25.921636666666668]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T04:20:05.850Z",mmsi:414356280,speedOverGround:4.115556598163227,courseOverGroundTrue:4.352851155467743,aisClass:"B",headingTrue:4.345869838458171,preGeom:{type:"Point",coordinates:[119.216355,25.922038333333333]},preTime:"2025-09-23T04:19:35.700Z",id:28976417,name:" 顺航6696 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:70,aisFromBow:55,aisFromCenter:-.5,tShip:{id:55,mmsi:414356280,shipNameEnglish:"SHUN HANG 6696",shipNameChinese:" 顺航6696 ",shipTypeChinese:"货轮,B类",length:"70.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:27.034Z",ut:"2025-08-08T05:33:27.034Z"}}},{type:"Feature",id:414027546,geometry:{type:"Point",coordinates:[119.38204666666667,25.953171666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:31.149Z",mmsi:414027546,speedOverGround:0,courseOverGroundTrue:2.893755900467329,id:29002545,sourcePort:35236,aisClass:"B",headingTrue:2.8797932664481856,preGeom:{type:"Point",coordinates:[119.38204666666667,25.953173333333332]},preTime:"2025-09-23T08:48:18.736Z",name:" 长盛702 ",shipTypeId:75,shipTypeName:"Cargo ship",designBeam:15,designLength:86,aisFromBow:76,aisFromCenter:-.5,tShip:{id:38,mmsi:414027546,shipNameEnglish:"CHANG SHENG 702",shipNameChinese:" 长盛702 ",shipTypeChinese:"货轮,B类",length:"86.00",beam:"15.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:25.981Z",ut:"2025-08-08T05:33:25.981Z"}}},{type:"Feature",id:412447734,geometry:{type:"Point",coordinates:[119.37501166666667,25.937438333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T00:37:02.560Z",mmsi:412447734,speedOverGround:.051444457477040344,courseOverGroundTrue:5.265658354469197,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37575166666667,25.937573333333333]},preTime:"2025-09-21T22:01:00.000Z",id:18148680,tShip:{}}},{type:"Feature",id:412443904,geometry:{type:"Point",coordinates:[119.34846,25.95207]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:08:17.510Z",mmsi:412443904,speedOverGround:26.339562228244656,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.338315,25.964931666666665]},preTime:"2025-09-21T16:50:49.398Z",tShip:{}}},{type:"Feature",id:414666369,geometry:{type:"Point",coordinates:[119.37900333333333,25.963911666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:20.666Z",mmsi:414666369,speedOverGround:0,courseOverGroundTrue:4.853760650904488,sourcePort:35236,aisClass:"B",id:28963952,preGeom:{type:"Point",coordinates:[119.379,25.963908333333332]},preTime:"2025-09-23T08:46:15.278Z",name:" 民顺369 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:70,aisFromBow:58,aisFromCenter:1,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{id:87,mmsi:414666369,shipNameEnglish:"MINSHUN369",shipNameChinese:" 民顺369 ",shipTypeChinese:"货轮,B类",length:"70.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:29.029Z",ut:"2025-08-08T05:33:29.029Z"}}},{type:"Feature",id:412445918,geometry:{type:"Point",coordinates:[119.37487666666667,25.937656666666665]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T18:03:20.530Z",mmsi:412445918,speedOverGround:3.292445278530582,courseOverGroundTrue:.13439035243424866,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37489666666667,25.937553333333334]},preTime:"2025-09-10T15:26:56.116Z",tShip:{}}},{type:"Feature",id:414660987,geometry:{type:"Point",coordinates:[119.38061333333333,25.963658333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:38:50.848Z",mmsi:414660987,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28260612,preGeom:{type:"Point",coordinates:[119.38054333333334,25.963636666666666]},preTime:"2025-09-23T08:08:48.450Z",name:" 兴运0987",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:75,aisFromBow:62,aisFromCenter:-.5,tShip:{id:26,mmsi:414660987,shipNameEnglish:"XINGYUN0987",shipNameChinese:" 兴运0987",shipTypeChinese:"货轮,B类",length:"75.00",beam:"11.00",buildYear:null,draft:"3.80",grossTonnage:null,callSign:"0987",imoNumber:null,ct:"2025-08-08T05:33:25.218Z",ut:"2025-08-08T05:33:25.218Z"}}},{type:"Feature",id:412443874,geometry:{type:"Point",coordinates:[119.337555,25.965158333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T06:40:42.081Z",mmsi:412443874,speedOverGround:.051444457477040344,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33752166666666,25.965166666666665]},preTime:"2025-09-23T06:37:41.870Z",id:28772936,name:"MINMINYU61222",shipTypeId:30,shipTypeName:"Fishing",designBeam:6,designLength:29,aisFromBow:16,aisFromCenter:0,tShip:{}}},{type:"Feature",id:412505697,geometry:{type:"Point",coordinates:[119.29800333333333,25.988835]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:46:58.158Z",mmsi:412505697,speedOverGround:1.4404448093571294,courseOverGroundTrue:5.359906134098411,sourcePort:35236,aisClass:"B",id:28967463,preGeom:{type:"Point",coordinates:[119.29801666666667,25.988831666666666]},preTime:"2025-09-23T08:40:59.008Z",tShip:{}}},{type:"Feature",id:413630936,geometry:{type:"Point",coordinates:[119.2336,25.939645]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:23.619Z",mmsi:413630936,speedOverGround:2.98377853366834,courseOverGroundTrue:3.6704274177821423,aisClass:"B",id:28996533,preGeom:{type:"Point",coordinates:[119.23386166666667,25.940038333333334]},preTime:"2025-09-23T08:48:06.777Z",name:" 民顺936",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:11,designLength:70,aisFromBow:53,aisFromCenter:.5,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{id:99,mmsi:413630936,shipNameEnglish:"MINSHUN936",shipNameChinese:" 民顺936",shipTypeChinese:"货轮,B类",length:"70.00",beam:"11.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:29.768Z",ut:"2025-08-08T05:33:29.768Z"}}},{type:"Feature",id:600931581,geometry:{type:"Point",coordinates:[119.35097666666667,25.95042]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T01:46:33.310Z",mmsi:600931581,speedOverGround:0,courseOverGroundTrue:0,aisClass:"B",preGeom:{type:"Point",coordinates:[119.35097833333333,25.950461666666666]},preTime:"2025-09-22T01:45:37.408Z",id:15652215,tShip:{}}},{type:"Feature",id:413999528,geometry:{type:"Point",coordinates:[119.31067833333333,26.053888333333333]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:42:15.946Z",mmsi:413999528,speedOverGround:0,courseOverGroundTrue:6.141813639170403,sourcePort:35236,aisClass:"B",headingTrue:6.1261056758988675,id:28496226,preGeom:{type:"Point",coordinates:[119.31067333333333,26.053886666666667]},preTime:"2025-09-23T08:37:11.768Z",name:"MIN JIANG ZHI YUN 1",shipTypeId:60,shipTypeName:"Passenger ship",designBeam:8,designLength:40,aisFromBow:30,aisFromCenter:0,tShip:{}}},{type:"Feature",id:412443864,geometry:{type:"Point",coordinates:[119.33842833333334,25.965006666666667]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:43.316Z",mmsi:412443864,speedOverGround:.10288891495408069,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",id:28866456,preGeom:{type:"Point",coordinates:[119.33838666666666,25.964923333333335]},preTime:"2025-09-23T08:41:43.189Z",name:"MINMINYU61128",shipTypeId:30,shipTypeName:"Fishing",designBeam:6,designLength:29,aisFromBow:16,aisFromCenter:0,tShip:{}}},{type:"Feature",id:413120996,geometry:{type:"Point",coordinates:[119.15358666666667,26.120135]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:11.658Z",mmsi:413120996,speedOverGround:4.269889970594349,courseOverGroundTrue:2.4556782581167256,id:28653608,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.15326,26.120496666666668]},preTime:"2025-09-23T08:47:59.589Z",name:" 兴运0699",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:13,designLength:78,aisFromBow:63,aisFromCenter:-.5,tShip:{id:130,mmsi:413120996,shipNameEnglish:"XINGYUN0699",shipNameChinese:" 兴运0699",shipTypeChinese:"货轮,B类",length:"78.00",beam:"13.00",buildYear:2022,draft:null,grossTonnage:null,callSign:"0000000",imoNumber:null,ct:"2025-08-08T05:33:31.679Z",ut:"2025-08-08T05:33:31.679Z"}}},{type:"Feature",id:414660519,geometry:{type:"Point",coordinates:[119.26329666666666,26.002375]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:15.157Z",mmsi:414660519,speedOverGround:0,courseOverGroundTrue:4.462806898368491,sourcePort:35236,aisClass:"B",id:28990962,preGeom:{type:"Point",coordinates:[119.26329333333334,26.002375]},preTime:"2025-09-23T08:48:06.428Z",name:" 闽福州货0519 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:66,aisFromBow:56,aisFromCenter:0,tShip:{id:9,mmsi:414660519,shipNameEnglish:"MINFUZHOUHUO 0519",shipNameChinese:" 闽福州货0519 ",shipTypeChinese:"货轮,B类",length:"66.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:24.168Z",ut:"2025-08-08T05:33:24.168Z"}}},{type:"Feature",id:412446444,geometry:{type:"Point",coordinates:[119.37349833333333,25.938496666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T05:52:36.553Z",mmsi:412446444,speedOverGround:.051444457477040344,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37347833333334,25.938435]},preTime:"2025-09-23T04:40:35.970Z",tShip:{}}},{type:"Feature",id:251602048,geometry:{type:"Point",coordinates:[119.34778333333334,26.049738333333334]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:39:00.886Z",mmsi:251602048,name:"62105-10-99%",speedOverGround:.051444457477040344,courseOverGroundTrue:4.342379179953386,designBeam:10,designLength:10,aisFromBow:5,aisFromCenter:0,aisClass:"B",headingTrue:7.958701390911349,preGeom:{type:"Point",coordinates:[119.34782833333334,26.04966]},preTime:"2025-09-23T07:53:19.046Z",id:28985875,tShip:{}}},{type:"Feature",id:414661736,geometry:{type:"Point",coordinates:[119.441035,25.990671666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:40:04.807Z",mmsi:414661736,speedOverGround:0,courseOverGroundTrue:.47123889814606673,sourcePort:35236,aisClass:"B",id:28991558,preGeom:{type:"Point",coordinates:[119.44102833333334,25.990668333333332]},preTime:"2025-09-23T08:38:39.796Z",name:" 航发1736",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:10,designLength:65,aisFromBow:53,aisFromCenter:1,tShip:{id:11,mmsi:414661736,shipNameEnglish:"HANGFA1736",shipNameChinese:" 航发1736",shipTypeChinese:"货轮,B类",length:"65.00",beam:"10.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:24.290Z",ut:"2025-08-08T05:33:24.290Z"}}},{type:"Feature",id:414770998,geometry:{type:"Point",coordinates:[119.24729333333333,25.971445]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T07:03:42.439Z",mmsi:414770998,speedOverGround:.41155565981632275,courseOverGroundTrue:.0034906585047856796,aisClass:"B",preGeom:{type:"Point",coordinates:[119.24733333333333,25.971333333333334]},preTime:"2025-09-23T07:03:06.008Z",id:28056591,name:"FUYUN998",shipTypeId:70,shipTypeName:"Cargo ship",tShip:{}}},{type:"Feature",id:414661002,geometry:{type:"Point",coordinates:[119.383445,25.961811666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:47:53.957Z",mmsi:414661002,speedOverGround:0,courseOverGroundTrue:2.5324727452220106,id:28770219,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.383445,25.961811666666666]},preTime:"2025-09-23T08:46:28.608Z",name:" 民顺166 ",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:14,designLength:77,aisFromBow:65,aisFromCenter:0,tShip:{id:43,mmsi:414661002,shipNameEnglish:"MINSHUN166",shipNameChinese:" 民顺166 ",shipTypeChinese:"货轮,B类",length:"77.00",beam:"14.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:26.304Z",ut:"2025-08-08T05:33:26.304Z"}}},{type:"Feature",id:412446432,geometry:{type:"Point",coordinates:[119.373345,25.93854]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T11:14:43.169Z",mmsi:412446432,speedOverGround:.15433337243112102,courseOverGroundTrue:5.94284610439762,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.37335833333333,25.938541666666666]},preTime:"2025-09-22T09:14:44.680Z",tShip:{}}},{type:"Feature",id:412440838,geometry:{type:"Point",coordinates:[119.462655,25.988306666666666]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T08:48:34.668Z",mmsi:412440838,speedOverGround:0,aisClass:"A",navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.46264833333333,25.988308333333332]},preTime:"2025-09-23T08:48:13.308Z",id:28996946,headingTrue:4.223696790790672,tShip:{}}},{type:"Feature",id:412445473,geometry:{type:"Point",coordinates:[119.33831833333333,25.965258333333335]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:45:03.439Z",mmsi:412445473,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.33823166666667,25.9653]},preTime:"2025-09-23T08:32:52.253Z",id:29009780,name:null,shipTypeId:null,shipTypeName:null,designBeam:null,designLength:null,aisFromBow:null,aisFromCenter:null,atonTypeId:null,atonTypeName:null,atonOffPosition:null,atonVirtual:null,headingTrue:null,navigationState:null,navigationSpecialManeuver:null,tShip:{}}},{type:"Feature",id:412505802,geometry:{type:"Point",coordinates:[119.43181333333334,26.00207]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T05:14:26.990Z",mmsi:412505802,speedOverGround:.10288891495408069,courseOverGroundTrue:4.607669226317097,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.43209166666666,26.001738333333332]},preTime:"2025-09-23T04:02:26.110Z",id:18252351,tShip:{}}},{type:"Feature",id:413096220,geometry:{type:"Point",coordinates:[119.45141666666666,25.982316666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:26.508Z",mmsi:413096220,speedOverGround:0,courseOverGroundTrue:0,sourcePort:35236,aisClass:"A",id:29005720,headingTrue:1.9373154701560522,navigationState:"motoring",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.45141666666666,25.982316666666666]},preTime:"2025-09-23T08:48:15.568Z",tShip:{}}},{type:"Feature",id:415613052,geometry:{type:"Point",coordinates:[119.22680166666666,26.10793]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T03:40:49.630Z",mmsi:415613052,speedOverGround:0,sourcePort:35236,aisClass:"A",navigationState:"anchored",navigationSpecialManeuver:"not available",preGeom:{type:"Point",coordinates:[119.22681,26.107903333333333]},preTime:"2025-09-23T03:37:40.233Z",id:18069451,tShip:{}}},{type:"Feature",id:412505693,geometry:{type:"Point",coordinates:[119.29795,25.98862]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:43:31.359Z",mmsi:412505693,speedOverGround:.10288891495408069,courseOverGroundTrue:4.422664325563456,sourcePort:35236,aisClass:"B",id:28868077,preGeom:{type:"Point",coordinates:[119.29792166666667,25.98871]},preTime:"2025-09-23T08:37:31.360Z",tShip:{}}},{type:"Feature",id:413881339,geometry:{type:"Point",coordinates:[119.22318666666666,26.069451666666666]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:48:24.228Z",mmsi:413881339,speedOverGround:5.144445747704034,courseOverGroundTrue:3.3300882135655385,id:28614769,sourcePort:35236,aisClass:"A",headingTrue:3.333578872070324,preGeom:{type:"Point",coordinates:[119.22324,26.06968]},preTime:"2025-09-23T08:48:18.530Z",navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{}}},{type:"Feature",id:414666186,geometry:{type:"Point",coordinates:[119.34856833333333,25.975308333333334]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-22T23:04:58.708Z",mmsi:414666186,speedOverGround:.2572222873852017,courseOverGroundTrue:2.02807259128048,sourcePort:35236,aisClass:"B",id:28944856,preGeom:{type:"Point",coordinates:[119.348545,25.975316666666668]},preTime:"2025-09-22T23:04:13.508Z",name:" 顺航6186",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:12,designLength:78,aisFromBow:63,aisFromCenter:-2,tShip:{id:56,mmsi:414666186,shipNameEnglish:"SHUN HANG 6186",shipNameChinese:" 顺航6186",shipTypeChinese:"货轮,B类",length:"78.00",beam:"12.00",buildYear:null,draft:null,grossTonnage:null,callSign:"YR",imoNumber:null,ct:"2025-08-08T05:33:27.095Z",ut:"2025-08-08T05:33:27.095Z"}}},{type:"Feature",id:414666339,geometry:{type:"Point",coordinates:[119.37982333333333,25.964671666666668]},properties:{sourceIp:"140.243.35.27",updateTime:"2025-09-23T08:26:53.028Z",mmsi:414666339,speedOverGround:0,courseOverGroundTrue:6.045820530288797,id:28979689,sourcePort:35236,aisClass:"B",preGeom:{type:"Point",coordinates:[119.379825,25.964676666666666]},preTime:"2025-09-23T08:23:12.778Z",name:" 顺达58959",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:12,designLength:79,aisFromBow:66,aisFromCenter:0,tShip:{id:1,mmsi:414666339,shipNameEnglish:"SHUN DA 58959",shipNameChinese:" 顺达58959",shipTypeChinese:"货轮,B类",length:"79.00",beam:"12.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:23.675Z",ut:"2025-08-08T05:33:23.675Z"}}},{type:"Feature",id:200072164,geometry:{type:"Point",coordinates:[119.104435,26.152116666666668]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-22T14:50:56.117Z",mmsi:200072164,speedOverGround:4.372778885548429,courseOverGroundTrue:5.537929717842481,aisClass:"B",id:28845595,headingTrue:5.5326937300853025,preGeom:{type:"Point",coordinates:[119.10620166666666,26.15035]},preTime:"2025-09-22T14:49:55.949Z",name:"顺达26357",shipTypeId:70,shipTypeName:"Cargo ship",designBeam:12,designLength:76,aisFromBow:60,aisFromCenter:0,navigationState:"motoring",navigationSpecialManeuver:"not available",tShip:{id:83,mmsi:200072164,shipNameEnglish:"SHUN DA 26357",shipNameChinese:"顺达26357",shipTypeChinese:"货轮,B类",length:"76.00",beam:"12.00",buildYear:null,draft:null,grossTonnage:null,callSign:null,imoNumber:null,ct:"2025-08-08T05:33:28.787Z",ut:"2025-08-08T05:33:28.787Z"}}},{type:"Feature",id:412505311,geometry:{type:"Point",coordinates:[119.34597,25.964466666666667]},properties:{sourceIp:"140.243.35.27",sourcePort:35236,updateTime:"2025-09-23T07:12:26.610Z",mmsi:412505311,speedOverGround:3.549667565915784,courseOverGroundTrue:5.394812719146268,aisClass:"B",preGeom:{type:"Point",coordinates:[119.346185,25.964333333333332]},preTime:"2025-09-21T18:11:28.068Z",id:15964686,name:"闽闽渔16598",shipTypeId:30,shipTypeName:"Fishing",designBeam:4,designLength:12,aisFromBow:6,aisFromCenter:0,tShip:{id:50,mmsi:412505311,shipNameEnglish:"MIN MIN YU 16598",shipNameChinese:"闽闽渔16598",shipTypeChinese:"捕捞船,B类",length:"12.00",beam:"4.00",buildYear:null,draft:null,grossTonnage:null,callSign:"0016598",imoNumber:null,ct:"2025-08-08T05:33:26.725Z",ut:"2025-08-08T05:33:26.725Z"}}}]},_sfc_main$1=defineComponent({__name:"ShipLayer",setup(r){Cesium.Ion.defaultAccessToken=defaultAccessToken;const i=useTemplateRef("container");return onMounted(()=>{if(!i.value)return;setHomeView();const s=createViewer(i.value),o=new ShipLayer("ship",1,{defaultValue:{designLength:150,designBeam:50}});dataInit.features.forEach(u=>{u.properties.updateTime=new Date().toISOString()}),o.render(dataInit),o.show(s)}),onUnmounted(()=>{}),(s,o)=>(openBlock(),createElementBlock("div",{ref_key:"container",ref:i,class:"container"},null,512))}}),_sfc_main=defineComponent({__name:"App",setup(r){return(i,s)=>(openBlock(),createBlock(_sfc_main$1))}});createApp(_sfc_main).mount("#app")});export default xe();
|