@maptrip/map-tiles 1.5.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -4
- package/dist/api-extensions/leaflet/MapTripLeafletGridLayer.d.ts +9 -12
- package/dist/api-extensions/maplibre/MapLibreStyleFactory.d.ts +21 -0
- package/dist/core/VectorTileRenderer.d.ts +8 -0
- package/dist/core/constants.d.ts +3 -2
- package/dist/core/rendering_config_default.d.ts +95 -38
- package/dist/core/rendering_config_grayscale.d.ts +95 -38
- package/dist/core/rendering_config_traffic.d.ts +141 -6
- package/dist/map-tiles.d.ts +3 -2
- package/dist/map-tiles.js +2138 -408
- package/dist/map-tiles.js.map +1 -1
- package/dist/util/MapReleaseFetcher.d.ts +3 -2
- package/dist/util/VectorTileUtils.d.ts +4 -0
- package/lib/api-extensions/leaflet/MapTripLeafletGridLayer.ts +48 -95
- package/lib/api-extensions/maplibre/MapLibreStyleFactory.ts +114 -0
- package/lib/core/VectorTileFactory.ts +3 -2
- package/lib/core/VectorTileRenderer.ts +49 -11
- package/lib/core/constants.ts +8 -5
- package/lib/core/rendering_config_default.ts +352 -63
- package/lib/core/rendering_config_grayscale.ts +368 -79
- package/lib/core/rendering_config_traffic.ts +344 -104
- package/lib/main.ts +4 -2
- package/lib/util/MapReleaseFetcher.ts +38 -24
- package/lib/util/VectorTileUtils.ts +33 -0
- package/package.json +5 -4
package/dist/map-tiles.js
CHANGED
|
@@ -1107,7 +1107,7 @@ class CollisionDetector {
|
|
|
1107
1107
|
}
|
|
1108
1108
|
}
|
|
1109
1109
|
|
|
1110
|
-
const URL_TEMPLATE = "https://v${index}.maptrip.de/?tilex=${x}&tiley=${y}&acao=true&context=
|
|
1110
|
+
const URL_TEMPLATE = "https://v${index}.maptrip.de/?tilex=${x}&tiley=${y}&acao=true&context=level${z}&project=${project}&projection=wgs84";
|
|
1111
1111
|
const PROVIDER_PROJECTS = {
|
|
1112
1112
|
tomtom: "TomTom_latest",
|
|
1113
1113
|
orbis: "Orbis_latest",
|
|
@@ -1121,12 +1121,14 @@ const PROVIDER_NAMES = {
|
|
|
1121
1121
|
openstreetmap: "OpenStreetMap"
|
|
1122
1122
|
};
|
|
1123
1123
|
const PROVIDER_TRAFFIC = {
|
|
1124
|
-
tomtom: "https://v0.maptrip.de/tiles?project=TrafficMobileTomTom_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=
|
|
1125
|
-
here: "https://v0.maptrip.de/tiles?project=TrafficMobileHere_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=
|
|
1126
|
-
openstreetmap:
|
|
1124
|
+
tomtom: "https://v0.maptrip.de/tiles?project=TrafficMobileTomTom_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic_${z}&projection=wgs84",
|
|
1125
|
+
here: "https://v0.maptrip.de/tiles?project=TrafficMobileHere_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic_${z}&projection=wgs84",
|
|
1126
|
+
openstreetmap: "https://v0.maptrip.de/tiles?project=TrafficMobileOSM_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic_${z}&projection=wgs84",
|
|
1127
|
+
orbis: "https://v0.maptrip.de/tiles?project=TrafficMobileORBIS_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic_${z}&projection=wgs84"
|
|
1127
1128
|
};
|
|
1129
|
+
const DEFAULT_PROVIDER = "OpenStreetmap";
|
|
1128
1130
|
const MIN_ZOOM = 2;
|
|
1129
|
-
const MAX_ZOOM =
|
|
1131
|
+
const MAX_ZOOM = 21;
|
|
1130
1132
|
const ATTRIBUTION = '© <a href="https://maptrip.de/" target="_blank">infoware GmbH</a>';
|
|
1131
1133
|
const VECTOR_TILE_SIZE = 256;
|
|
1132
1134
|
const VECTOR_TILE_RENDER_PADDING = 32;
|
|
@@ -1140,6 +1142,8 @@ class VectorTileRenderer {
|
|
|
1140
1142
|
this.preloadImages();
|
|
1141
1143
|
}
|
|
1142
1144
|
drawTile(layer, z, boundaries, context) {
|
|
1145
|
+
context.lineJoin = "round";
|
|
1146
|
+
context.lineCap = "round";
|
|
1143
1147
|
context.fillStyle = this.getBackgroundColor(z);
|
|
1144
1148
|
context.fillRect(0, 0, VECTOR_TILE_SIZE, VECTOR_TILE_SIZE);
|
|
1145
1149
|
var collisions = new CollisionDetector();
|
|
@@ -1602,17 +1606,46 @@ class VectorTileRenderer {
|
|
|
1602
1606
|
}
|
|
1603
1607
|
return points;
|
|
1604
1608
|
}
|
|
1609
|
+
/**
|
|
1610
|
+
* @private
|
|
1611
|
+
*/
|
|
1612
|
+
translatePolyline(points, delta) {
|
|
1613
|
+
for (let i = 0; i < points.length - 1; i++) {
|
|
1614
|
+
const direction = {
|
|
1615
|
+
x: points[i + 1].x - points[i].x,
|
|
1616
|
+
y: points[i + 1].y - points[i].y
|
|
1617
|
+
};
|
|
1618
|
+
const length = Math.sqrt(Math.pow(direction.x, 2) + Math.pow(direction.y, 2));
|
|
1619
|
+
const normal = {
|
|
1620
|
+
x: direction.y / length,
|
|
1621
|
+
y: -direction.x / length
|
|
1622
|
+
};
|
|
1623
|
+
points[i] = {
|
|
1624
|
+
x: points[i].x - delta * normal.x,
|
|
1625
|
+
y: points[i].y - delta * normal.y
|
|
1626
|
+
};
|
|
1627
|
+
if (i === points.length - 2) {
|
|
1628
|
+
points[i + 1] = {
|
|
1629
|
+
x: points[i + 1].x - delta * normal.x,
|
|
1630
|
+
y: points[i + 1].y - delta * normal.y
|
|
1631
|
+
};
|
|
1632
|
+
}
|
|
1633
|
+
}
|
|
1634
|
+
}
|
|
1605
1635
|
/**
|
|
1606
1636
|
* @private
|
|
1607
1637
|
*/
|
|
1608
1638
|
drawPolyline(coordinates, geoJsonProperties, boundaries, style, context, phase) {
|
|
1609
1639
|
var merged = { ...VectorTileRenderer.DEFAULT_STYLE.LINE, ...style };
|
|
1610
1640
|
context.globalAlpha = merged.opacity;
|
|
1641
|
+
let points = this.projectCoordinates(coordinates, boundaries);
|
|
1642
|
+
if (merged.delta > 0) {
|
|
1643
|
+
this.translatePolyline(points, merged.delta);
|
|
1644
|
+
}
|
|
1611
1645
|
if ("linesOutline" === phase) {
|
|
1612
1646
|
if (merged.outlineColor && merged.outlineWidth) {
|
|
1613
|
-
let points2 = this.projectCoordinates(coordinates, boundaries);
|
|
1614
1647
|
this.drawPath(
|
|
1615
|
-
|
|
1648
|
+
points,
|
|
1616
1649
|
merged.outlineColor,
|
|
1617
1650
|
merged.width + merged.outlineWidth * 2,
|
|
1618
1651
|
context
|
|
@@ -1620,7 +1653,6 @@ class VectorTileRenderer {
|
|
|
1620
1653
|
}
|
|
1621
1654
|
return;
|
|
1622
1655
|
}
|
|
1623
|
-
let points = this.projectCoordinates(coordinates, boundaries);
|
|
1624
1656
|
this.drawPath(points, merged.color, merged.width, context);
|
|
1625
1657
|
if (merged.dashColor && merged.dashLength) {
|
|
1626
1658
|
context.setLineDash([merged.dashLength, merged.dashLength]);
|
|
@@ -1846,8 +1878,6 @@ class VectorTileRenderer {
|
|
|
1846
1878
|
context.beginPath();
|
|
1847
1879
|
context.strokeStyle = color;
|
|
1848
1880
|
context.lineWidth = width;
|
|
1849
|
-
context.lineCap = "square";
|
|
1850
|
-
context.lineJoin = "miter";
|
|
1851
1881
|
context.moveTo(points[0].x, points[0].y);
|
|
1852
1882
|
for (var j = 1; j < points.length; j++) {
|
|
1853
1883
|
context.lineTo(points[j].x, points[j].y);
|
|
@@ -1975,7 +2005,8 @@ class VectorTileRenderer {
|
|
|
1975
2005
|
outlineWidth: 0,
|
|
1976
2006
|
dashColor: void 0,
|
|
1977
2007
|
dashLength: 0,
|
|
1978
|
-
opacity: 1
|
|
2008
|
+
opacity: 1,
|
|
2009
|
+
delta: 0
|
|
1979
2010
|
},
|
|
1980
2011
|
IMAGE: {
|
|
1981
2012
|
url: void 0,
|
|
@@ -2040,7 +2071,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2040
2071
|
},
|
|
2041
2072
|
{
|
|
2042
2073
|
from: 8,
|
|
2043
|
-
to:
|
|
2074
|
+
to: 21,
|
|
2044
2075
|
color: "#eeeeee"
|
|
2045
2076
|
}
|
|
2046
2077
|
],
|
|
@@ -2073,9 +2104,15 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2073
2104
|
interstateNumbers: "interstateNumbers",
|
|
2074
2105
|
expresswayNumbers: "highway",
|
|
2075
2106
|
expresswayintersections: "interstate_minor",
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2107
|
+
trafficFlowFastHighway: "trafficFlowFastHighway",
|
|
2108
|
+
trafficFlowFastInterstate: "trafficFlowFastInterstate",
|
|
2109
|
+
trafficFlowFastMinor: "trafficFlowFastMinor",
|
|
2110
|
+
trafficFlowMediumHighway: "trafficFlowMediumHighway",
|
|
2111
|
+
trafficFlowMediumInterstate: "trafficFlowMediumInterstate",
|
|
2112
|
+
trafficFlowMediumMinor: "trafficFlowMediumMinor",
|
|
2113
|
+
trafficFlowSlowHighway: "trafficFlowSlowHighway",
|
|
2114
|
+
trafficFlowSlowInterstate: "trafficFlowSlowInterstate",
|
|
2115
|
+
trafficFlowSlowMinor: "trafficFlowSlowMinor",
|
|
2079
2116
|
trafficJam: "trafficJam",
|
|
2080
2117
|
roadworks: "roadworks",
|
|
2081
2118
|
dangerousSituation: "dangerous_situation",
|
|
@@ -2085,7 +2122,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2085
2122
|
metropolis: [
|
|
2086
2123
|
{
|
|
2087
2124
|
from: 17,
|
|
2088
|
-
to:
|
|
2125
|
+
to: 21,
|
|
2089
2126
|
text: {
|
|
2090
2127
|
size: 30,
|
|
2091
2128
|
color: "#606060",
|
|
@@ -2123,7 +2160,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2123
2160
|
large_city: [
|
|
2124
2161
|
{
|
|
2125
2162
|
from: 17,
|
|
2126
|
-
to:
|
|
2163
|
+
to: 21,
|
|
2127
2164
|
text: {
|
|
2128
2165
|
size: 24,
|
|
2129
2166
|
color: "#606060",
|
|
@@ -2161,7 +2198,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2161
2198
|
city: [
|
|
2162
2199
|
{
|
|
2163
2200
|
from: 17,
|
|
2164
|
-
to:
|
|
2201
|
+
to: 21,
|
|
2165
2202
|
text: {
|
|
2166
2203
|
size: 20,
|
|
2167
2204
|
color: "#606060",
|
|
@@ -2199,7 +2236,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2199
2236
|
settlement: [
|
|
2200
2237
|
{
|
|
2201
2238
|
from: 17,
|
|
2202
|
-
to:
|
|
2239
|
+
to: 21,
|
|
2203
2240
|
text: {
|
|
2204
2241
|
size: 18,
|
|
2205
2242
|
color: "#606060",
|
|
@@ -2237,7 +2274,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2237
2274
|
earth: [
|
|
2238
2275
|
{
|
|
2239
2276
|
from: 1,
|
|
2240
|
-
to:
|
|
2277
|
+
to: 21,
|
|
2241
2278
|
polygon: {
|
|
2242
2279
|
color: "#f2f2f2"
|
|
2243
2280
|
}
|
|
@@ -2246,23 +2283,16 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2246
2283
|
urban_area: [
|
|
2247
2284
|
{
|
|
2248
2285
|
from: 1,
|
|
2249
|
-
to:
|
|
2286
|
+
to: 21,
|
|
2250
2287
|
polygon: {
|
|
2251
2288
|
color: "rgba(0, 0, 0, 0.05)"
|
|
2252
2289
|
}
|
|
2253
2290
|
}
|
|
2254
2291
|
],
|
|
2255
2292
|
forest: [
|
|
2256
|
-
{
|
|
2257
|
-
from: 1,
|
|
2258
|
-
to: 14,
|
|
2259
|
-
polygon: {
|
|
2260
|
-
color: "#cddfb4"
|
|
2261
|
-
}
|
|
2262
|
-
},
|
|
2263
2293
|
{
|
|
2264
2294
|
from: 15,
|
|
2265
|
-
to:
|
|
2295
|
+
to: 21,
|
|
2266
2296
|
polygon: {
|
|
2267
2297
|
color: "#cddfb4"
|
|
2268
2298
|
},
|
|
@@ -2272,19 +2302,19 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2272
2302
|
font: "Open Sans",
|
|
2273
2303
|
fontStyle: "italic"
|
|
2274
2304
|
}
|
|
2275
|
-
}
|
|
2276
|
-
],
|
|
2277
|
-
natural_park: [
|
|
2305
|
+
},
|
|
2278
2306
|
{
|
|
2279
2307
|
from: 1,
|
|
2280
2308
|
to: 14,
|
|
2281
2309
|
polygon: {
|
|
2282
|
-
color: "#
|
|
2310
|
+
color: "#cddfb4"
|
|
2283
2311
|
}
|
|
2284
|
-
}
|
|
2312
|
+
}
|
|
2313
|
+
],
|
|
2314
|
+
natural_park: [
|
|
2285
2315
|
{
|
|
2286
2316
|
from: 15,
|
|
2287
|
-
to:
|
|
2317
|
+
to: 21,
|
|
2288
2318
|
polygon: {
|
|
2289
2319
|
color: "#daecbf"
|
|
2290
2320
|
},
|
|
@@ -2294,12 +2324,19 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2294
2324
|
font: "Open Sans",
|
|
2295
2325
|
fontStyle: "italic"
|
|
2296
2326
|
}
|
|
2327
|
+
},
|
|
2328
|
+
{
|
|
2329
|
+
from: 1,
|
|
2330
|
+
to: 14,
|
|
2331
|
+
polygon: {
|
|
2332
|
+
color: "#daecbf"
|
|
2333
|
+
}
|
|
2297
2334
|
}
|
|
2298
2335
|
],
|
|
2299
2336
|
water: [
|
|
2300
2337
|
{
|
|
2301
2338
|
from: 1,
|
|
2302
|
-
to:
|
|
2339
|
+
to: 21,
|
|
2303
2340
|
line: {
|
|
2304
2341
|
color: "#9fd0fc",
|
|
2305
2342
|
width: 1
|
|
@@ -2319,7 +2356,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2319
2356
|
country: [
|
|
2320
2357
|
{
|
|
2321
2358
|
from: 1,
|
|
2322
|
-
to:
|
|
2359
|
+
to: 21,
|
|
2323
2360
|
line: {
|
|
2324
2361
|
color: "#acacac"
|
|
2325
2362
|
},
|
|
@@ -2333,21 +2370,32 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2333
2370
|
}
|
|
2334
2371
|
}
|
|
2335
2372
|
],
|
|
2336
|
-
|
|
2373
|
+
trafficFlowFastHighway: [
|
|
2337
2374
|
{
|
|
2338
2375
|
from: 1,
|
|
2339
|
-
to:
|
|
2376
|
+
to: 5,
|
|
2340
2377
|
line: {
|
|
2341
2378
|
color: "#50dc32",
|
|
2342
|
-
width: 1
|
|
2379
|
+
width: 1,
|
|
2380
|
+
delta: 1
|
|
2343
2381
|
}
|
|
2344
2382
|
},
|
|
2345
2383
|
{
|
|
2346
|
-
from:
|
|
2384
|
+
from: 6,
|
|
2385
|
+
to: 9,
|
|
2386
|
+
line: {
|
|
2387
|
+
color: "#50dc32",
|
|
2388
|
+
width: 2,
|
|
2389
|
+
delta: 1
|
|
2390
|
+
}
|
|
2391
|
+
},
|
|
2392
|
+
{
|
|
2393
|
+
from: 10,
|
|
2347
2394
|
to: 12,
|
|
2348
2395
|
line: {
|
|
2349
2396
|
color: "#50dc32",
|
|
2350
|
-
width:
|
|
2397
|
+
width: 6,
|
|
2398
|
+
delta: 2
|
|
2351
2399
|
}
|
|
2352
2400
|
},
|
|
2353
2401
|
{
|
|
@@ -2355,33 +2403,122 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2355
2403
|
to: 15,
|
|
2356
2404
|
line: {
|
|
2357
2405
|
color: "#50dc32",
|
|
2358
|
-
width:
|
|
2406
|
+
width: 9,
|
|
2407
|
+
delta: 2
|
|
2359
2408
|
}
|
|
2360
2409
|
},
|
|
2361
2410
|
{
|
|
2362
2411
|
from: 16,
|
|
2363
|
-
to:
|
|
2412
|
+
to: 21,
|
|
2413
|
+
line: {
|
|
2414
|
+
color: "#50dc32",
|
|
2415
|
+
width: 13,
|
|
2416
|
+
delta: 2
|
|
2417
|
+
}
|
|
2418
|
+
}
|
|
2419
|
+
],
|
|
2420
|
+
trafficFlowFastInterstate: [
|
|
2421
|
+
{
|
|
2422
|
+
from: 9,
|
|
2423
|
+
to: 9,
|
|
2424
|
+
line: {
|
|
2425
|
+
color: "#50dc32",
|
|
2426
|
+
width: 2,
|
|
2427
|
+
delta: 1
|
|
2428
|
+
}
|
|
2429
|
+
},
|
|
2430
|
+
{
|
|
2431
|
+
from: 10,
|
|
2432
|
+
to: 12,
|
|
2433
|
+
line: {
|
|
2434
|
+
color: "#50dc32",
|
|
2435
|
+
width: 2,
|
|
2436
|
+
delta: 1
|
|
2437
|
+
}
|
|
2438
|
+
},
|
|
2439
|
+
{
|
|
2440
|
+
from: 13,
|
|
2441
|
+
to: 14,
|
|
2442
|
+
line: {
|
|
2443
|
+
color: "#50dc32",
|
|
2444
|
+
width: 6,
|
|
2445
|
+
delta: 2
|
|
2446
|
+
}
|
|
2447
|
+
},
|
|
2448
|
+
{
|
|
2449
|
+
from: 15,
|
|
2450
|
+
to: 16,
|
|
2451
|
+
line: {
|
|
2452
|
+
color: "#50dc32",
|
|
2453
|
+
width: 9,
|
|
2454
|
+
delta: 2
|
|
2455
|
+
}
|
|
2456
|
+
},
|
|
2457
|
+
{
|
|
2458
|
+
from: 17,
|
|
2459
|
+
to: 21,
|
|
2460
|
+
line: {
|
|
2461
|
+
color: "#50dc32",
|
|
2462
|
+
width: 12,
|
|
2463
|
+
delta: 2
|
|
2464
|
+
}
|
|
2465
|
+
}
|
|
2466
|
+
],
|
|
2467
|
+
trafficFlowFastMinor: [
|
|
2468
|
+
{
|
|
2469
|
+
from: 13,
|
|
2470
|
+
to: 14,
|
|
2471
|
+
line: {
|
|
2472
|
+
color: "#50dc32",
|
|
2473
|
+
width: 1,
|
|
2474
|
+
delta: 1
|
|
2475
|
+
}
|
|
2476
|
+
},
|
|
2477
|
+
{
|
|
2478
|
+
from: 15,
|
|
2479
|
+
to: 16,
|
|
2480
|
+
line: {
|
|
2481
|
+
color: "#50dc32",
|
|
2482
|
+
width: 5,
|
|
2483
|
+
delta: 2
|
|
2484
|
+
}
|
|
2485
|
+
},
|
|
2486
|
+
{
|
|
2487
|
+
from: 17,
|
|
2488
|
+
to: 21,
|
|
2364
2489
|
line: {
|
|
2365
2490
|
color: "#50dc32",
|
|
2366
|
-
width:
|
|
2491
|
+
width: 9,
|
|
2492
|
+
delta: 2
|
|
2367
2493
|
}
|
|
2368
2494
|
}
|
|
2369
2495
|
],
|
|
2370
|
-
|
|
2496
|
+
trafficFlowMediumHighway: [
|
|
2371
2497
|
{
|
|
2372
2498
|
from: 1,
|
|
2373
|
-
to:
|
|
2499
|
+
to: 5,
|
|
2374
2500
|
line: {
|
|
2375
2501
|
color: "#ffa500",
|
|
2376
|
-
width: 1
|
|
2502
|
+
width: 1,
|
|
2503
|
+
delta: 1
|
|
2377
2504
|
}
|
|
2378
2505
|
},
|
|
2379
2506
|
{
|
|
2380
|
-
from:
|
|
2507
|
+
from: 6,
|
|
2508
|
+
to: 9,
|
|
2509
|
+
line: {
|
|
2510
|
+
color: "#ffa500",
|
|
2511
|
+
width: 2,
|
|
2512
|
+
delta: 1
|
|
2513
|
+
}
|
|
2514
|
+
},
|
|
2515
|
+
{
|
|
2516
|
+
from: 10,
|
|
2381
2517
|
to: 12,
|
|
2382
2518
|
line: {
|
|
2383
2519
|
color: "#ffa500",
|
|
2384
|
-
width:
|
|
2520
|
+
width: 6,
|
|
2521
|
+
delta: 2
|
|
2385
2522
|
}
|
|
2386
2523
|
},
|
|
2387
2524
|
{
|
|
@@ -2389,33 +2526,122 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2389
2526
|
to: 15,
|
|
2390
2527
|
line: {
|
|
2391
2528
|
color: "#ffa500",
|
|
2392
|
-
width:
|
|
2529
|
+
width: 9,
|
|
2530
|
+
delta: 2
|
|
2393
2531
|
}
|
|
2394
2532
|
},
|
|
2395
2533
|
{
|
|
2396
2534
|
from: 16,
|
|
2397
|
-
to:
|
|
2535
|
+
to: 21,
|
|
2536
|
+
line: {
|
|
2537
|
+
color: "#ffa500",
|
|
2538
|
+
width: 13,
|
|
2539
|
+
delta: 2
|
|
2540
|
+
}
|
|
2541
|
+
}
|
|
2542
|
+
],
|
|
2543
|
+
trafficFlowMediumInterstate: [
|
|
2544
|
+
{
|
|
2545
|
+
from: 9,
|
|
2546
|
+
to: 9,
|
|
2547
|
+
line: {
|
|
2548
|
+
color: "#ffa500",
|
|
2549
|
+
width: 2,
|
|
2550
|
+
delta: 1
|
|
2551
|
+
}
|
|
2552
|
+
},
|
|
2553
|
+
{
|
|
2554
|
+
from: 10,
|
|
2555
|
+
to: 12,
|
|
2556
|
+
line: {
|
|
2557
|
+
color: "#ffa500",
|
|
2558
|
+
width: 2,
|
|
2559
|
+
delta: 1
|
|
2560
|
+
}
|
|
2561
|
+
},
|
|
2562
|
+
{
|
|
2563
|
+
from: 13,
|
|
2564
|
+
to: 14,
|
|
2565
|
+
line: {
|
|
2566
|
+
color: "#ffa500",
|
|
2567
|
+
width: 6,
|
|
2568
|
+
delta: 2
|
|
2569
|
+
}
|
|
2570
|
+
},
|
|
2571
|
+
{
|
|
2572
|
+
from: 15,
|
|
2573
|
+
to: 16,
|
|
2574
|
+
line: {
|
|
2575
|
+
color: "#ffa500",
|
|
2576
|
+
width: 9,
|
|
2577
|
+
delta: 2
|
|
2578
|
+
}
|
|
2579
|
+
},
|
|
2580
|
+
{
|
|
2581
|
+
from: 17,
|
|
2582
|
+
to: 21,
|
|
2583
|
+
line: {
|
|
2584
|
+
color: "#ffa500",
|
|
2585
|
+
width: 12,
|
|
2586
|
+
delta: 2
|
|
2587
|
+
}
|
|
2588
|
+
}
|
|
2589
|
+
],
|
|
2590
|
+
trafficFlowMediumMinor: [
|
|
2591
|
+
{
|
|
2592
|
+
from: 13,
|
|
2593
|
+
to: 14,
|
|
2594
|
+
line: {
|
|
2595
|
+
color: "#ffa500",
|
|
2596
|
+
width: 1,
|
|
2597
|
+
delta: 1
|
|
2598
|
+
}
|
|
2599
|
+
},
|
|
2600
|
+
{
|
|
2601
|
+
from: 15,
|
|
2602
|
+
to: 16,
|
|
2603
|
+
line: {
|
|
2604
|
+
color: "#ffa500",
|
|
2605
|
+
width: 5,
|
|
2606
|
+
delta: 2
|
|
2607
|
+
}
|
|
2608
|
+
},
|
|
2609
|
+
{
|
|
2610
|
+
from: 17,
|
|
2611
|
+
to: 21,
|
|
2398
2612
|
line: {
|
|
2399
2613
|
color: "#ffa500",
|
|
2400
|
-
width:
|
|
2614
|
+
width: 9,
|
|
2615
|
+
delta: 2
|
|
2401
2616
|
}
|
|
2402
2617
|
}
|
|
2403
2618
|
],
|
|
2404
|
-
|
|
2619
|
+
trafficFlowSlowHighway: [
|
|
2405
2620
|
{
|
|
2406
2621
|
from: 1,
|
|
2407
|
-
to:
|
|
2622
|
+
to: 5,
|
|
2408
2623
|
line: {
|
|
2409
2624
|
color: "#c80000",
|
|
2410
|
-
width: 1
|
|
2625
|
+
width: 1,
|
|
2626
|
+
delta: 1
|
|
2411
2627
|
}
|
|
2412
2628
|
},
|
|
2413
2629
|
{
|
|
2414
|
-
from:
|
|
2630
|
+
from: 6,
|
|
2631
|
+
to: 9,
|
|
2632
|
+
line: {
|
|
2633
|
+
color: "#c80000",
|
|
2634
|
+
width: 2,
|
|
2635
|
+
delta: 1
|
|
2636
|
+
}
|
|
2637
|
+
},
|
|
2638
|
+
{
|
|
2639
|
+
from: 10,
|
|
2415
2640
|
to: 12,
|
|
2416
2641
|
line: {
|
|
2417
2642
|
color: "#c80000",
|
|
2418
|
-
width:
|
|
2643
|
+
width: 6,
|
|
2644
|
+
delta: 2
|
|
2419
2645
|
}
|
|
2420
2646
|
},
|
|
2421
2647
|
{
|
|
@@ -2423,15 +2649,93 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2423
2649
|
to: 15,
|
|
2424
2650
|
line: {
|
|
2425
2651
|
color: "#c80000",
|
|
2426
|
-
width:
|
|
2652
|
+
width: 9,
|
|
2653
|
+
delta: 2
|
|
2427
2654
|
}
|
|
2428
2655
|
},
|
|
2429
2656
|
{
|
|
2430
2657
|
from: 16,
|
|
2431
|
-
to:
|
|
2658
|
+
to: 21,
|
|
2659
|
+
line: {
|
|
2660
|
+
color: "#c80000",
|
|
2661
|
+
width: 13,
|
|
2662
|
+
delta: 2
|
|
2663
|
+
}
|
|
2664
|
+
}
|
|
2665
|
+
],
|
|
2666
|
+
trafficFlowSlowInterstate: [
|
|
2667
|
+
{
|
|
2668
|
+
from: 9,
|
|
2669
|
+
to: 9,
|
|
2670
|
+
line: {
|
|
2671
|
+
color: "#c80000",
|
|
2672
|
+
width: 2,
|
|
2673
|
+
delta: 1
|
|
2674
|
+
}
|
|
2675
|
+
},
|
|
2676
|
+
{
|
|
2677
|
+
from: 10,
|
|
2678
|
+
to: 12,
|
|
2679
|
+
line: {
|
|
2680
|
+
color: "#c80000",
|
|
2681
|
+
width: 2,
|
|
2682
|
+
delta: 1
|
|
2683
|
+
}
|
|
2684
|
+
},
|
|
2685
|
+
{
|
|
2686
|
+
from: 13,
|
|
2687
|
+
to: 14,
|
|
2688
|
+
line: {
|
|
2689
|
+
color: "#c80000",
|
|
2690
|
+
width: 6,
|
|
2691
|
+
delta: 2
|
|
2692
|
+
}
|
|
2693
|
+
},
|
|
2694
|
+
{
|
|
2695
|
+
from: 15,
|
|
2696
|
+
to: 16,
|
|
2697
|
+
line: {
|
|
2698
|
+
color: "#c80000",
|
|
2699
|
+
width: 9,
|
|
2700
|
+
delta: 2
|
|
2701
|
+
}
|
|
2702
|
+
},
|
|
2703
|
+
{
|
|
2704
|
+
from: 17,
|
|
2705
|
+
to: 21,
|
|
2706
|
+
line: {
|
|
2707
|
+
color: "#c80000",
|
|
2708
|
+
width: 12,
|
|
2709
|
+
delta: 2
|
|
2710
|
+
}
|
|
2711
|
+
}
|
|
2712
|
+
],
|
|
2713
|
+
trafficFlowSlowMinor: [
|
|
2714
|
+
{
|
|
2715
|
+
from: 13,
|
|
2716
|
+
to: 14,
|
|
2717
|
+
line: {
|
|
2718
|
+
color: "#c80000",
|
|
2719
|
+
width: 1,
|
|
2720
|
+
delta: 1
|
|
2721
|
+
}
|
|
2722
|
+
},
|
|
2723
|
+
{
|
|
2724
|
+
from: 15,
|
|
2725
|
+
to: 16,
|
|
2726
|
+
line: {
|
|
2727
|
+
color: "#c80000",
|
|
2728
|
+
width: 5,
|
|
2729
|
+
delta: 2
|
|
2730
|
+
}
|
|
2731
|
+
},
|
|
2732
|
+
{
|
|
2733
|
+
from: 17,
|
|
2734
|
+
to: 21,
|
|
2432
2735
|
line: {
|
|
2433
2736
|
color: "#c80000",
|
|
2434
|
-
width:
|
|
2737
|
+
width: 9,
|
|
2738
|
+
delta: 2
|
|
2435
2739
|
}
|
|
2436
2740
|
}
|
|
2437
2741
|
],
|
|
@@ -2470,7 +2774,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2470
2774
|
},
|
|
2471
2775
|
{
|
|
2472
2776
|
from: 15,
|
|
2473
|
-
to:
|
|
2777
|
+
to: 21,
|
|
2474
2778
|
image: {
|
|
2475
2779
|
url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDg0Ny4xNTQ2IDc0My42MjUzNyIKICAgaGVpZ2h0PSI3NDMuNjI1MzciCiAgIHdpZHRoPSI4NDcuMTU0NiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMjEzMzkiPjxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTIxMzQ1Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzMjEzNDMiIC8+PGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1LDAsMCwtMS4yNSwwLDc0My42MjUzNCkiCiAgICAgaWQ9ImcyMTM0NyI+PGcKICAgICAgIGlkPSJnMjEzNDkiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTEiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1OTQuNTAyIGMgLTcuNTEyLDAgLTE1LjAyMywtMi44NjcgLTIwLjc1OCwtOC41OTggLTEuODgyLC0xLjg3OSAtMy40NDksLTMuOTUzIC00LjcxMSwtNi4xNTIgbCAtMTUuMjQ2LC0yNi4xNTYgLTAuMDY2LDAgTCA0Ljk4LDQ1LjU1MyBDIDQuOTMsNDUuNDU5IDQuODg3LDQ1LjM2NSA0LjgzMiw0NS4yNjQgMy4zNDgsNDIuODczIDIuMTc2LDQwLjIyMSAxLjM5OCwzNy4zNTMgLTIuNzg5LDIxLjY5NyA2LjUwNCw1LjU5OSAyMi4xNiwxLjQwNCBjIDIuNTksLTAuNjk1IDUuMTg4LC0xLjAxMiA3LjczOCwtMSBsIDYxOC4wNzUsMCBjIDE2LjIxMSwwIDI5LjM1MSwxMy4xNDEgMjkuMzUxLDI5LjM1NiAwLDUuMjk3IC0xLjQxOCwxMC4yODEgLTMuODc5LDE0LjU3OCAtMC4wMTksMC4wMzUgLTAuMDQzLDAuMDYyIC0wLjA1LDAuMDk3IEwgMzY5LjAyMyw1NzIuODQ2IGMgLTMuODYzLDYuNjY0IC01LjY0OCw5LjMwNCAtOS40MDIsMTMuMDU4IC01LjczLDUuNzMxIC0xMy4yNDIsOC41OTggLTIwLjc1NCw4LjU5OCB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTMiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjMTEyMWM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1ODcuMTQ2IGMgLTcuMTI1LDAuMDUxIC0xNC45NTMsLTMuNTkzIC0xOC43ODEsLTEwLjM5OCBMIDEwLjc4OSw0MC44NDkgQyA5LjAwOCwzNy4yMDEgOC4yNTgsMzQuMDI5IDguMjM0LDMwLjQgOC4yMzQsMjMuOTA0IDExLjEwNSwxNy43NCAxNi4wODIsMTMuNTUzIDIwLjQ2OSwxMC4xNjYgMjQuNjE3LDguNCAzMC4yMDMsOC40IGwgNjE3LjkwNiwwIGMgMy43NywtMC4wMzUgNy41NDMsMC44NzEgMTAuOTgxLDMuMTMzIDYuNDQxLDMuODk1IDEwLjM5OCwxMC44ODMgMTAuNDA2LDE4LjQyNiAtMC4xODQsMy44OTQgLTEuMTQ4LDggLTIuODc5LDEwLjg5IEwgMzU3LjUwNCw1NzYuODMgYyAtMC4wMzEsMC4wNDcgLTAuMDU5LDAuMDk0IC0wLjA5NCwwLjE0MSAtMC4wMjcsMC4wNDYgLTAuMDYyLDAuMDg2IC0wLjA5LDAuMTQ0IC0xLjA5NywxLjc1OCAtMi40NzIsMy4zMDUgLTQuMDQ3LDQuNjMzIC0zLjU4MiwzLjEwOSAtOC4wNzgsNC45NzYgLTEyLjgxNiw1LjMwOSAtMC41MzEsMC4wNTQgLTEuMDYyLDAuMDg1IC0xLjU5LDAuMDg5IHogTSAzMC4yMDMsOC40IGwgLTEuNTIzLDAgMS41NTQsMCAtMC4wMzEsMCB6IE0gMzM4LjU0Nyw0ODAuOTI4IDU3NC4yNSw3Mi40IGwgLTQ3MS43MzgsMCAyMzYuMDM1LDQwOC41MjggeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDIxMzU1IgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDMzOC44NjcsNTk0LjkgYyAtNy42MTcsMCAtMTUuMjMsLTIuOTA2IC0yMS4wMzksLTguNzIyIC0xLjkwNiwtMS44OTUgLTMuNDkyLC00LjAwNCAtNC43NzMsLTYuMjI3IGwgLTE1LjEyOSwtMjUuOTU3IC0wLjA3NCwwIEwgNC42NDEsNDUuNzU2IEMgNC41NzQsNDUuNjM5IDQuNTIzLDQ1LjUzNyA0LjQ3Nyw0NS40NTUgMi45NzMsNDMuMDMzIDEuNzk3LDQwLjM1MyAxLjAyLDM3LjQ1OSAtMy4yMywyMS41ODggNi4xOTEsNS4yNzEgMjIuMDU5LDEuMDE3IDI0LjY4LDAuMzE0IDI3LjMxNiwtMC4wMDYgMjkuODk4LDAuMDAyIGwgNjE4LjA3NSwwIGMgMTYuNDI1LDAgMjkuNzUsMTMuMzI4IDI5Ljc1LDI5Ljc1OCAwLDUuMzc1IC0xLjQzOCwxMC40MTQgLTMuOTM0LDE0Ljc3MyAtMC4wMTYsMC4wMTYgLTAuMDIzLDAuMDUxIC0wLjA0NywwLjA5OCBMIDM2OS4zNzksNTczLjA0NSBjIC0zLjg3MSw2LjY2OCAtNS42OTUsOS4zNjMgLTkuNDczLDEzLjEzMyAtNS44MDgsNS44MTYgLTEzLjQyNiw4LjcyMiAtMjEuMDM1LDguNzIyIGwgLTAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgNy41MTIsMCAxNS4wMjQsLTIuODY3IDIwLjc1NCwtOC41OTggMy43NTQsLTMuNzU0IDUuNTM5LC02LjM5NCA5LjQwMiwtMTMuMDU4IEwgNjczLjM5MSw0NC40MzUgYyAwLjAxMSwtMC4wMzUgMC4wMzUsLTAuMDYyIDAuMDU0LC0wLjA5NyAyLjQ2MSwtNC4yOTcgMy44NzksLTkuMjgxIDMuODc5LC0xNC41NzggMCwtMTYuMjE1IC0xMy4xNCwtMjkuMzU2IC0yOS4zNTEsLTI5LjM1NiBsIC02MTguMDc1LDAgQyAyNy4zNDgsMC4zOTIgMjQuNzUsMC43MDkgMjIuMTYsMS40MDQgNi41MDQsNS41OTkgLTIuNzg5LDIxLjY5NyAxLjM5OCwzNy4zNTMgYyAwLjc3LDIuODY4IDEuOTUsNS41MiAzLjQzNCw3LjkxMSAwLjA1NSwwLjEwMSAwLjA5OCwwLjE5NSAwLjE0OCwwLjI4OSBsIDI5My4xMDYsNTA4LjA0MyAwLjA2NiwwIDE1LjI0NiwyNi4xNTYgYyAxLjI2MiwyLjE5OSAyLjgyOSw0LjI3MyA0LjcxMSw2LjE1MiA1LjczNSw1LjczMSAxMy4yMzksOC41OTggMjAuNzU4LDguNTk4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgyMTM1NyIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzNTAuODk4LDE0OS4zODEgYyAwLDIuMzk0IDAuNzksNC43NDYgMi4yMjcsNi42NjQgbCAyLjIwMywyLjk1NyBjIDEuNTYzLDIuMDYyIDIuODcxLDQuMzEyIDMuODkxLDYuNjg3IGwgMTQuNjI5LDMzLjYzNyBjIDEuNDc2LDMuMzk1IDQuODA0LDUuNTYzIDguNDY4LDUuNTYzIGwgOTIuNDI2LDAgYyAzLjY4NCwwIDcuMDEyLC0yLjE2OCA4LjQ4OCwtNS41NjMgbCAxNC42MSwtMzMuNjM3IGMgMS4wMzksLTIuMzc1IDIuMzUxLC00LjYyNSAzLjg5LC02LjY4NyBsIDIuMjI3LC0yLjk1NyBjIDEuNDM0LC0xLjkxOCAyLjIyNywtNC4yNyAyLjIyNywtNi42NjQgbCAwLC0yNC4wNTkgYyAwLC01LjEwMSAtNC4xNDEsLTkuMjQ2IC05LjI2MiwtOS4yNDYgbCAtMTM2Ljc4NSwwIGMgLTUuMDk4LDAgLTkuMjM5LDQuMTQ1IC05LjIzOSw5LjI0NiBsIDAsMjQuMDU5IHogbSAxNy41NTksMTQuODA4IDEyMC4xNjQsMCAtMTIuNzE1LDI5LjIyMyBjIC0wLjU4MiwxLjM1MiAtMS45MTQsMi4yMjcgLTMuMzksMi4yMjcgbCAtODcuOTU0LDAgYyAtMS40NzYsMCAtMi44MDgsLTAuODc1IC0zLjM5LC0yLjIyNyBsIC0xMi43MTUsLTI5LjIyMyB6IG0gLTguMzIsLTUxLjgyIDIyLjE3OSwwIDAsLTIwLjM1MiBjIDAsLTMuMDU4IC0yLjQ3NiwtNS41MzkgLTUuNTM1LC01LjUzOSBsIC0xMS4wOSwwIGMgLTMuMDU4LDAgLTUuNTU0LDIuNDgxIC01LjU1NCw1LjUzOSBsIDAsMjAuMzUyIHogbSAxMTQuNjA1LDAgMjIuMTgsMCAwLC0yMC4zNTIgYyAwLC0zLjA1OCAtMi40NzMsLTUuNTM5IC01LjUzNSwtNS41MzkgbCAtMTEuMDksMCBjIC0zLjA1OSwwIC01LjU1NSwyLjQ4MSAtNS41NTUsNS41MzkgbCAwLDIwLjM1MiB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTkiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMjg1Ljg5OCwyMDAuMzQyIGMgMCwyLjA0MyAwLjY2OCw0LjA0MyAxLjg5NSw1LjY4NyBsIDEuODk1LDIuNTIgYyAxLjMwOCwxLjc2OSAyLjQzMywzLjY2NCAzLjMwOCw1LjcwNyBsIDEyLjQ2MSwyOC42NiBjIDEuMjUsMi44NzUgNC4xMDIsNC43NDYgNy4yMjMsNC43NDYgbCA3OC43OTcsMCBjIDMuMTQsMCA1Ljk3MiwtMS44NzEgNy4yMTgsLTQuNzQ2IGwgMTIuNDY1LC0yOC42NiBjIDAuODk1LC0yLjA0MyAxLjk5NiwtMy45MzggMy4zMjgsLTUuNzA3IGwgMC45MzgsLTEuMjUgLTMzLjEwNiwwIGMgLTQuNjQsMCAtOC44MiwtMi43NSAtMTAuNjc1LC03IGwgLTEyLjMxNywtMjguMzQ0IC02NS41NDMsMCBjIC00LjM0NywwIC03Ljg4NywzLjUxOSAtNy44ODcsNy44OTEgbCAwLDIwLjQ5NiB6IG0gMTQuOTYxLDEyLjYyMSAxMDIuNDM0LDAgLTEwLjg0LDI0LjkxIGMgLTAuNSwxLjE0OCAtMS42MjEsMS44OTggLTIuODkxLDEuODk4IGwgLTc0Ljk2OCwwIGMgLTEuMjUsMCAtMi4zOTUsLTAuNzUgLTIuODk1LC0xLjg5OCBsIC0xMC44NCwtMjQuOTEgeiBtIC03LjA3NCwtNDQuMTc2IDE4Ljg5NSwwIDAsLTE3LjM0OCBjIDAsLTIuNjA1IC0yLjEwMiwtNC43MyAtNC43MjcsLTQuNzMgbCAtOS40NDUsMCBjIC0yLjYyMSwwIC00LjcyMywyLjEyNSAtNC43MjMsNC43MyBsIDAsMTcuMzQ4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgyMTM2MSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAyMjguMTI1LDI0NS42NDIgYyAwLDEuNzI3IDAuNTU5LDMuNDE1IDEuNjAyLDQuODA5IGwgMS42MDEsMi4xMjUgYyAxLjEyNSwxLjUgMi4wNTksMy4xMjUgMi44MDksNC44MzIgbCAxMC41NTEsMjQuMjY2IGMgMS4wNTgsMi40MzcgMy40NTMsNCA2LjA5Myw0IGwgNjYuNjY4LDAgYyAyLjY2NCwwIDUuMDU1LC0xLjU2MyA2LjExNywtNCBsIDEwLjU1MSwtMjQuMjY2IGMgMC43NDYsLTEuNzA3IDEuNjg0LC0zLjMzMiAyLjgwOSwtNC44MzIgbCAxLjYwMSwtMi4xMjUgMC4yNSwtMC4zNzUgLTI2LjA5MywwIGMgLTQuMDk4LDAgLTcuODAxLC0yLjQzNCAtOS40MjYsLTYuMTg0IGwgLTkuNjc2LC0yMi4yODUgLTU4LjgwMSwwIGMgLTMuNjYsMCAtNi42NTYsMi45OTYgLTYuNjU2LDYuNjg0IGwgMCwxNy4zNTEgeiBtIDEyLjY3MiwxMC42ODQgODYuNjYsMCAtOS4xNzYsMjEuMDc4IGMgLTAuNDE0LDAuOTgxIC0xLjM3MSwxLjYwNiAtMi40MzMsMS42MDYgbCAtNjMuNDQyLDAgYyAtMS4wNjIsMCAtMi4wMTksLTAuNjI1IC0yLjQ1NywtMS42MDYgbCAtOS4xNTIsLTIxLjA3OCB6IG0gLTYuMDE2LC0zNy4zODcgMTYsMCAwLC0xNC42ODMgYyAwLC0yLjIwNyAtMS43ODksLTQgLTMuOTkyLC00IGwgLTcuOTkyLDAgYyAtMi4yMDMsMCAtNC4wMTYsMS43OTMgLTQuMDE2LDQgbCAwLDE0LjY4MyB6IiAvPjwvZz48L2c+PC9zdmc+",
|
|
2476
2780
|
width: 34,
|
|
@@ -2520,7 +2824,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2520
2824
|
},
|
|
2521
2825
|
{
|
|
2522
2826
|
from: 15,
|
|
2523
|
-
to:
|
|
2827
|
+
to: 21,
|
|
2524
2828
|
image: {
|
|
2525
2829
|
url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgaWQ9InN2ZzcyODMiCiAgIHZlcnNpb249IjEuMSIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgd2lkdGg9Ijg0Ny4xNTg1NyIKICAgaGVpZ2h0PSI3NDMuNjIyNjgiCiAgIHZpZXdCb3g9IjAgMCA4NDcuMTU4NTcgNzQzLjYyMjY4Ij48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE3Mjg5Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNzI4NyI+PGNsaXBQYXRoCiAgICAgICBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJjbGlwRW1mUGF0aDEiPjxwYXRoCiAgICAgICAgIGQ9Im0gMCw0OC4yMjQ2IDU0LjgyNDYsMCBMIDU0LjgyNDYsMCAwLDAgMCw0OC4yMjQ2IFoiCiAgICAgICAgIGlkPSJwYXRoMzM0NCIgLz48L2NsaXBQYXRoPjxwYXR0ZXJuCiAgICAgICBpZD0iRU1GaGJhc2VwYXR0ZXJuIgogICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHdpZHRoPSI2IgogICAgICAgaGVpZ2h0PSI2IgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiIC8+PC9kZWZzPjxnCiAgICAgaWQ9Imc3MjkxIgogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNzQzLjYyMjY3KSI+PGcKICAgICAgIGlkPSJnNzI5MyI+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU5NC41IGMgNy41MTIsMCAxNS4wMjgsLTIuODY3IDIwLjc1OCwtOC41OTggMS44NzksLTEuODc5IDMuNDQ1LC0zLjk1MyA0LjcwNywtNi4xNTIgbCAxNS4yNDYsLTI2LjE1NyAwLjA3MSwwIDI5My4xMDEsLTUwOC4wMzkgYyAwLjA1NSwtMC4wOTcgMC4wOTgsLTAuMTk1IDAuMTUzLC0wLjI5MyAxLjQ4OCwtMi4zOTQgMi42NTYsLTUuMDQzIDMuNDI1LC03LjkxIDQuMTk2LC0xNS42NTYgLTUuMDk3LC0zMS43NTQgLTIwLjc1OCwtMzUuOTQ5IC0yLjU4NSwtMC42OTUgLTUuMTgzLC0xLjAxMiAtNy43MzgsLTEgbCAtNjE4LjA2NiwwIGMgLTE2LjIxNSwwIC0yOS4zNTYsMTMuMTQxIC0yOS4zNTYsMjkuMzU2IDAsNS4zMDQgMS40MTQsMTAuMjgxIDMuODc5LDE0LjU3OCAwLjAyLDAuMDMxIDAuMDM1LDAuMDYyIDAuMDUxLDAuMDk3IGwgMzA0LjM2Nyw1MjguNDEgYyAzLjg2Myw2LjY2NSA1LjY1Myw5LjMwNSA5LjQwNiwxMy4wNTkgNS43MzEsNS43MzEgMTMuMjQzLDguNTk4IDIwLjc1NCw4LjU5OCB6IgogICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBpZD0icGF0aDcyOTUiIC8+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU4Ny4xNDQgYyA3LjEyNSwwLjA1MSAxNC45NSwtMy41OSAxOC43ODIsLTEwLjQwNiBMIDY2Ni45MzQsNDAuODQ3IGMgMS43ODUsLTMuNjQ4IDIuNTM1LC02LjgyIDIuNTU4LC0xMC40NDkgMCwtNi40OTYgLTIuODc1LC0xMi42NiAtNy44NDcsLTE2Ljg0IC00LjM4MywtMy4zOTQgLTguNTM2LC01LjE2IC0xNC4xMjIsLTUuMTYgbCAtNjE3LjkwNiwwIEMgMjUuODQ4LDguMzYzIDIyLjA3LDkuMjY5IDE4LjY0MSwxMS41MzEgMTIuMTg4LDE1LjQyOSA4LjIzOCwyMi40MTQgOC4yMywyOS45NTcgYyAwLjE4NCwzLjg5NCAxLjE0NSw4IDIuODc5LDEwLjg5IGwgMzA5LjExNCw1MzUuOTgxIGMgMC4wMjcsMC4wNDcgMC4wNTgsMC4wOTQgMC4wODksMC4xNCAwLjAzMiwwLjA0NyAwLjA2MywwLjA5NCAwLjA5NCwwLjE0NSAxLjA5OCwxLjc1NCAyLjQ3MywzLjMwNSA0LjAzOSw0LjYzMyAzLjU5LDMuMTA5IDguMDg2LDQuOTc2IDEyLjgyNSw1LjMxNiAwLjUzMSwwLjA0NyAxLjA2MiwwLjA3OCAxLjU4OSwwLjA4MiB6IE0gNjQ3LjUyMyw4LjM5OCBsIDEuNTI0LDAgLTEuNTU1LDAgMC4wMzEsMCB6IE0gMzM5LjE4LDQ4MC45MzMgMTAzLjQ3Nyw3Mi4zOTggbCA0NzEuNzM4LDAgLTIzNi4wMzUsNDA4LjUzNSB6IgogICAgICAgICBzdHlsZT0iZmlsbDojYzExMjFjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBpZD0icGF0aDcyOTciIC8+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU5NC44OTggYyA3LjYxOCwwIDE1LjIzMSwtMi45MDYgMjEuMDM5LC04LjcxNSAxLjkwNywtMS45MDIgMy40OTMsLTQuMDA4IDQuNzc0LC02LjIzNCBsIDE1LjEyOSwtMjUuOTU3IDAuMDcsMCAyOTMuMjE1LC01MDguMjM4IGMgMC4wNjYsLTAuMTE4IDAuMTEzLC0wLjIxOSAwLjE2LC0wLjMwMSAxLjUwNCwtMi40MjIgMi42ODQsLTUuMTAyIDMuNDYxLC03Ljk5NiBDIDY4MC45NTcsMjEuNTg2IDY3MS41MzUsNS4yNjkgNjU1LjY2OCwxLjAxNSA2NTMuMDQ3LDAuMzEyIDY1MC40MSwtMC4wMDggNjQ3LjgyNCwwIEwgMjkuNzU4LDAgQyAxMy4zMjgsMCAwLDEzLjMyOCAwLDI5Ljc1OCBjIDAsNS4zNzUgMS40MzgsMTAuNDE3IDMuOTM0LDE0Ljc3MyAwLjAxMSwwLjAxOSAwLjAyNywwLjA1MSAwLjA1LDAuMDk4IGwgMzA0LjM2NCw1MjguNDE0IGMgMy44NzEsNi42NjggNS42OTUsOS4zNjMgOS40NjgsMTMuMTQgNS44MDksNS44MDkgMTMuNDI2LDguNzE1IDIxLjAzOSw4LjcxNSBsIDAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgLTcuNTExLDAgLTE1LjAyMywtMi44NjcgLTIwLjc1NCwtOC41OTggLTMuNzUzLC0zLjc1NCAtNS41NDMsLTYuMzk0IC05LjQwNiwtMTMuMDU5IEwgNC4zMzYsNDQuNDMzIEMgNC4zMTYsNDQuMzk4IDQuMzAxLDQ0LjM2NyA0LjI4MSw0NC4zMzYgMS44MTYsNDAuMDM5IDAuNDAyLDM1LjA2MiAwLjQwMiwyOS43NTggMC40MDIsMTMuNTQzIDEzLjU0MywwLjQwMiAyOS43NTgsMC40MDIgbCA2MTguMDY2LDAgYyAyLjU1NSwtMC4wMTIgNS4xNTMsMC4zMDUgNy43MzgsMSAxNS42NjEsNC4xOTUgMjQuOTU0LDIwLjI5MyAyMC43NTgsMzUuOTQ5IC0wLjc2NSwyLjg2NyAtMS45MzcsNS41MTYgLTMuNDI1LDcuOTEgLTAuMDU1LDAuMDk4IC0wLjA5OCwwLjE5NiAtMC4xNTMsMC4yOTMgbCAtMjkzLjEwMSw1MDguMDM5IC0wLjA3MSwwIC0xNS4yNDYsMjYuMTU3IGMgLTEuMjYyLDIuMTk5IC0yLjgyOCw0LjI3MyAtNC43MDcsNi4xNTIgLTUuNzMsNS43MzEgLTEzLjI0Miw4LjU5OCAtMjAuNzU4LDguNTk4IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGlkPSJwYXRoNzI5OSIgLz48L2c+PC9nPjxnCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoNTQuNjM3NzcxLDAsMCw1NC42Mzc3NzEsMTM1MDguNjYxLC04NTgwLjUzNjQpIgogICAgIGlkPSJnMzM2OSI+PHBhdGgKICAgICAgIGlkPSJwYXRoMzM0NyIKICAgICAgIGQ9IiIKICAgICAgIGNsaXAtcGF0aD0idXJsKCNjbGlwRW1mUGF0aDEpIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6bm9uZSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNDcuMjA4MDcsMTU3LjA0NDA0KSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgzMzU1IgogICAgICAgZD0ibSAtMjM5LjM5NzYzLDE2OC4zMDQ2MiAwLjc2MiwtMC45MTAxNyBjIDAuMDQyMywtMC4wMjEyIDAuMDg0NywtMC4wNjM1IDAuMTI3LC0wLjA2MzUgbCAwLjE0ODE3LC0wLjA2MzUgYyAwLjA4NDcsLTAuMDIxMiAwLjE2OTMzLC0wLjA4NDcgMC4yMzI4MywtMC4xNDgxNiBsIDAuNTI5MTQsLTAuNjEzODEgYyAwLjIzMjgzLC0wLjI5NjMzIDAuNjU2MTcsLTAuMzE3NSAwLjkzMTMzLC0wLjA4NDcgMC4wNDIzLDAuMDIxMiAwLjA4NDcsMC4wNjM1IDAuMTA1ODQsMC4xMDU4NCBsIDEuMzc1ODMsMS43Nzc5NyBjIDAuMDQyMywwLjA2MzUgMC4wNDIzLDAuMTQ4MTcgLTAuMDIxMiwwLjE5MDUgLTAuMDIxMiwwLjAyMTIgLTAuMDYzNSwwLjA0MjMgLTAuMDg0NywwLjA0MjMgbCAtNC4wMDA0NywwIGMgLTAuMDg0NywwIC0wLjEyNywtMC4wNjM1IC0wLjEyNywtMC4xNDgxNyAwLC0wLjAyMTIgMCwtMC4wNjM1IDAuMDIxMiwtMC4wODQ3IHogbSAxLjAxNiwtNS4xMjIzIGMgMCwwLjI3NTE2IC0wLjIzMjgzLDAuNTA4IC0wLjUwOCwwLjUwOCAtMC4yNzUxNiwwIC0wLjUwOCwtMC4yMzI4NCAtMC41MDgsLTAuNTA4IDAsLTAuMjc1MTcgMC4yMzI4NCwtMC40ODY4MSAwLjUwOCwtMC40ODY4MSAwLjI3NTE3LDAgMC41MDgsMC4yMTE2NCAwLjUwOCwwLjQ4NjgxIHogbSAtMi43NTE2NiwyLjEzNzgzIDAuNzQwODMsLTEuMzk3IC0wLjUyOTE3LDAgLTAuMzE3NSwwLjU5MjY3IDAuMzE3NSwwLjI3NTE2IC0wLjEwNTgzLDAuMTkwNSAtMC4zMTc1LC0wLjI1NCAtMC4xNDgxNCwwLjI3NTE3IGMgLTAuMjMyODMsLTAuMTI3IC0wLjMxNzUsLTAuNDIzMzMgLTAuMTkwNSwtMC42MzUgbCAwLjM4MDk3LC0wLjc0MDgzIGMgMC4wNjM1LC0wLjEwNTg0IDAuMTY5MzQsLTAuMTY5MzQgMC4yOTYzNCwtMC4xNjkzNCBsIDEuMTg1MzMsMCBjIDAuMjk2MzMsMCAwLjUyOTE3LDAuMjMyODQgMC41MjkxNywwLjUyOTE3IDAsMC4wMjEyIDAsMC4wMjEyIDAsMC4wNDIzIGwgLTAuMTI3LDEuOTg5NjcgMS4yNDg4MywxLjA1ODMgYyAtMC4wNDIzLDAuMDQyMyAtMC4xMDU4MywwLjA4NDcgLTAuMTkwNSwwLjEyNyBsIC0xLjA3OTUsLTAuOTEwMTQgLTAuMDIxMiwwLjIzMjg0IGMgLTAuMjU0LC0wLjAyMTIgLTAuNDQ0NSwtMC4yMzI4NCAtMC40MjMzMywtMC40ODY4NCBsIDAsLTAuMTA1ODMgLTAuMzE3NSwtMC4yNTQgMC4xMDU4MywtMC4xOTA1IDAuMjMyODQsMC4xNjkzMyAwLjA0MjMsLTAuODI1NSAtMC40ODY4MywwLjkzMTM0IC0wLjgyNTUsLTAuNDQ0NSB6IG0gMS4zNzU4MywzLjIxNzMgYyAtMC4yOTYzMywwIC0wLjU1MDMzLC0wLjIzMjgzIC0wLjU1MDMzLC0wLjUyOTE2IGwgLTAuMDQyMywtMS4xMjE4NCAtMC41NTAzMywtMC44NDY2MyAtMS4zMzM0NywyLjQ5NzYzIGMgLTAuMjU0LC0wLjE0ODE2IC0wLjM1OTg0LC0wLjQ2NTY2IC0wLjIxMTY3LC0wLjc0MDgzIGwgMS4yNDg4MSwtMi4zNDk0NyAwLjgyNTUsMC40MjMzMyAwLjUyOTE2LDAuODI1NDcgYyAwLDAuMDIxMiAwLjAyMTIsMC4wNDIzIDAuMDIxMiwwLjA2MzUiCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjwvZz48L3N2Zz4=",
|
|
2526
2830
|
width: 34,
|
|
@@ -2570,7 +2874,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2570
2874
|
},
|
|
2571
2875
|
{
|
|
2572
2876
|
from: 15,
|
|
2573
|
-
to:
|
|
2877
|
+
to: 21,
|
|
2574
2878
|
image: {
|
|
2575
2879
|
url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDg0Ny4xNTg1NyA3NDMuNjIyNjgiCiAgIGhlaWdodD0iNzQzLjYyMjY4IgogICB3aWR0aD0iODQ3LjE1ODU3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1NDg4Ij48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1NDk0Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNTQ5MiIgLz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNzQzLjYyMjY3KSIKICAgICBpZD0iZzU0OTYiPjxnCiAgICAgICBpZD0iZzU0OTgiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoNTUwMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguODY3LDU5NC41IGMgLTcuNTEyLDAgLTE1LjAyNywtMi44NjcgLTIwLjc1OCwtOC41OTggLTEuODc5LC0xLjg3OSAtMy40NDUsLTMuOTUzIC00LjcwNywtNi4xNTIgbCAtMTUuMjQ2LC0yNi4xNTcgLTAuMDcsMCBMIDQuOTg0LDQ1LjU1NCBDIDQuOTMsNDUuNDU3IDQuODg3LDQ1LjM1OSA0LjgzMiw0NS4yNjEgMy4zNDQsNDIuODY3IDIuMTc2LDQwLjIxOCAxLjQwNiwzNy4zNTEgLTIuNzg5LDIxLjY5NSA2LjUwNCw1LjU5NyAyMi4xNjQsMS40MDIgYyAyLjU4NiwtMC42OTUgNS4xODQsLTEuMDEyIDcuNzM4LC0xIGwgNjE4LjA2NywwIGMgMTYuMjE1LDAgMjkuMzU1LDEzLjE0MSAyOS4zNTUsMjkuMzU2IDAsNS4zMDQgLTEuNDE0LDEwLjI4MSAtMy44NzksMTQuNTc4IC0wLjAxOSwwLjAzMSAtMC4wMzUsMC4wNjIgLTAuMDUsMC4wOTcgbCAtMzA0LjM2OCw1MjguNDEgYyAtMy44NjMsNi42NjUgLTUuNjUyLDkuMzA1IC05LjQwNiwxMy4wNTkgLTUuNzMsNS43MzEgLTEzLjI0Miw4LjU5OCAtMjAuNzU0LDguNTk4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGg1NTAyIgogICAgICAgICBzdHlsZT0iZmlsbDojYzExMjFjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDMzOC44NjcsNTg3LjE0NCBjIC03LjEyNSwwLjA1MSAtMTQuOTQ5LC0zLjU5IC0xOC43ODEsLTEwLjQwNiBMIDEwLjc5Myw0MC44NDcgQyA5LjAwOCwzNy4xOTkgOC4yNTgsMzQuMDI3IDguMjM0LDMwLjM5OCBjIDAsLTYuNDk2IDIuODc1LC0xMi42NiA3Ljg0OCwtMTYuODQgNC4zODMsLTMuMzk0IDguNTM1LC01LjE2IDE0LjEyMSwtNS4xNiBsIDYxNy45MDYsMCBjIDMuNzcsLTAuMDM1IDcuNTQ3LDAuODcxIDEwLjk3NywzLjEzMyA2LjQ1MywzLjg5OCAxMC40MDIsMTAuODgzIDEwLjQxLDE4LjQyNiAtMC4xODQsMy44OTQgLTEuMTQ0LDggLTIuODc5LDEwLjg5IEwgMzU3LjUwNCw1NzYuODI4IGMgLTAuMDI3LDAuMDQ3IC0wLjA1OSwwLjA5NCAtMC4wOSwwLjE0IC0wLjAzMSwwLjA0NyAtMC4wNjIsMC4wOTQgLTAuMDk0LDAuMTQ1IC0xLjA5NywxLjc1NCAtMi40NzIsMy4zMDUgLTQuMDM5LDQuNjMzIC0zLjU5LDMuMTA5IC04LjA4Niw0Ljk3NiAtMTIuODI0LDUuMzE2IC0wLjUzMSwwLjA0NyAtMS4wNjIsMC4wNzggLTEuNTksMC4wODIgeiBNIDMwLjIwMyw4LjM5OCBsIC0xLjUyMywwIDEuNTU0LDAgLTAuMDMxLDAgeiBNIDMzOC41NDcsNDgwLjkzMyA1NzQuMjUsNzIuMzk4IGwgLTQ3MS43MzgsMCAyMzYuMDM1LDQwOC41MzUgeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDU1MDQiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1OTQuODk4IGMgLTcuNjE3LDAgLTE1LjIzLC0yLjkwNiAtMjEuMDM5LC04LjcxNSAtMS45MDYsLTEuOTAyIC0zLjQ5MiwtNC4wMDggLTQuNzczLC02LjIzNCBsIC0xNS4xMjksLTI1Ljk1NyAtMC4wNzEsMCBMIDQuNjQxLDQ1Ljc1NCBDIDQuNTc0LDQ1LjYzNiA0LjUyNyw0NS41MzUgNC40OCw0NS40NTMgMi45NzcsNDMuMDMxIDEuNzk3LDQwLjM1MSAxLjAyLDM3LjQ1NyAtMy4yMywyMS41ODYgNi4xOTEsNS4yNjkgMjIuMDU5LDEuMDE1IDI0LjY4LDAuMzEyIDI3LjMxNiwtMC4wMDggMjkuOTAyLDAgbCA2MTguMDY3LDAgYyAxNi40MjksMCAyOS43NTgsMTMuMzI4IDI5Ljc1OCwyOS43NTggMCw1LjM3NSAtMS40MzgsMTAuNDE3IC0zLjkzNCwxNC43NzMgLTAuMDEyLDAuMDE5IC0wLjAyNywwLjA1MSAtMC4wNTEsMC4wOTggTCAzNjkuMzc5LDU3My4wNDMgYyAtMy44NzEsNi42NjggLTUuNjk1LDkuMzYzIC05LjQ2OSwxMy4xNCAtNS44MDgsNS44MDkgLTEzLjQyNiw4LjcxNSAtMjEuMDM5LDguNzE1IGwgLTAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgNy41MTIsMCAxNS4wMjQsLTIuODY3IDIwLjc1NCwtOC41OTggMy43NTQsLTMuNzU0IDUuNTQzLC02LjM5NCA5LjQwNiwtMTMuMDU5IEwgNjczLjM5MSw0NC40MzMgYyAwLjAxOSwtMC4wMzUgMC4wMzUsLTAuMDY2IDAuMDU0LC0wLjA5NyAyLjQ2NSwtNC4yOTcgMy44NzksLTkuMjc0IDMuODc5LC0xNC41NzggMCwtMTYuMjE1IC0xMy4xNCwtMjkuMzU2IC0yOS4zNTUsLTI5LjM1NiBsIC02MTguMDY3LDAgQyAyNy4zNDgsMC4zOSAyNC43NSwwLjcwNyAyMi4xNjQsMS40MDIgNi41MDQsNS41OTcgLTIuNzg5LDIxLjY5NSAxLjQwNiwzNy4zNTEgYyAwLjc2NiwyLjg2NyAxLjkzOCw1LjUxNiAzLjQyNiw3LjkxIDAuMDU1LDAuMDk4IDAuMDk4LDAuMTk2IDAuMTUyLDAuMjkzIGwgMjkzLjEwMiw1MDguMDM5IDAuMDcsMCAxNS4yNDYsMjYuMTU3IGMgMS4yNjIsMi4xOTkgMi44MjgsNC4yNzMgNC43MDcsNi4xNTIgNS43MzEsNS43MzEgMTMuMjQzLDguNTk4IDIwLjc1OCw4LjU5OCB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoNTUwNiIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguODY3LDQwOC40MTQgYyAtMTcuNjc2LDAgLTMyLjAwNCwtMTQuMzI4IC0zMi4wMDQsLTMyIGwgMTYsLTE4OC4wMTYgYyAwLC04LjgzNiA2LjM3MSwtMTYuMDE1IDE2LjAwNCwtMTYgOS42MjksMC4wMTYgMTUuOTk2LDcuODIgMTUuOTk2LDE2LjAxMiBsIDE2LDE4OC4wMDQgYyAwLDE3LjY3MiAtMTQuMzI0LDMyIC0zMS45OTYsMzIgeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDU1MDgiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzcwLjg2MywxMjQuMzk4IGMgMCwtMTcuNjgzIC0xNC4zMTYsLTMxLjk5NiAtMzEuOTk2LC0zMS45OTYgLTE3LjY3NiwwIC0zMi4wMDQsMTQuMzA5IC0zMi4wMDQsMzEuOTk2IDAsMTcuNjcyIDE0LjMyOCwzMi4wMDQgMzIuMDA0LDMyLjAwNCAxNy42OCwwIDMxLjk5NiwtMTQuMzMyIDMxLjk5NiwtMzIuMDA0IiAvPjwvZz48L2c+PC9zdmc+",
|
|
2576
2880
|
width: 34,
|
|
@@ -2588,7 +2892,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2588
2892
|
highway: [
|
|
2589
2893
|
{
|
|
2590
2894
|
from: 16,
|
|
2591
|
-
to:
|
|
2895
|
+
to: 21,
|
|
2592
2896
|
line: {
|
|
2593
2897
|
color: "#f2d078",
|
|
2594
2898
|
width: 11,
|
|
@@ -2664,7 +2968,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2664
2968
|
interstate_major: [
|
|
2665
2969
|
{
|
|
2666
2970
|
from: 17,
|
|
2667
|
-
to:
|
|
2971
|
+
to: 21,
|
|
2668
2972
|
line: {
|
|
2669
2973
|
width: 10,
|
|
2670
2974
|
color: "#f9e5a6",
|
|
@@ -2735,7 +3039,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2735
3039
|
interstate_minor: [
|
|
2736
3040
|
{
|
|
2737
3041
|
from: 17,
|
|
2738
|
-
to:
|
|
3042
|
+
to: 21,
|
|
2739
3043
|
line: {
|
|
2740
3044
|
width: 10,
|
|
2741
3045
|
color: "#ffffff",
|
|
@@ -2798,7 +3102,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2798
3102
|
minor_road: [
|
|
2799
3103
|
{
|
|
2800
3104
|
from: 17,
|
|
2801
|
-
to:
|
|
3105
|
+
to: 21,
|
|
2802
3106
|
line: {
|
|
2803
3107
|
width: 7,
|
|
2804
3108
|
color: "#ffffff",
|
|
@@ -2818,7 +3122,9 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2818
3122
|
to: 16,
|
|
2819
3123
|
line: {
|
|
2820
3124
|
width: 3,
|
|
2821
|
-
color: "#ffffff"
|
|
3125
|
+
color: "#ffffff",
|
|
3126
|
+
outlineColor: "#cccccc",
|
|
3127
|
+
outlineWidth: 1
|
|
2822
3128
|
},
|
|
2823
3129
|
text: {
|
|
2824
3130
|
size: 12,
|
|
@@ -2840,7 +3146,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2840
3146
|
minor_road_oneway: [
|
|
2841
3147
|
{
|
|
2842
3148
|
from: 17,
|
|
2843
|
-
to:
|
|
3149
|
+
to: 21,
|
|
2844
3150
|
line: {
|
|
2845
3151
|
width: 7,
|
|
2846
3152
|
color: "#ffffff",
|
|
@@ -2862,7 +3168,9 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2862
3168
|
to: 16,
|
|
2863
3169
|
line: {
|
|
2864
3170
|
width: 3,
|
|
2865
|
-
color: "#ffffff"
|
|
3171
|
+
color: "#ffffff",
|
|
3172
|
+
outlineColor: "#cccccc",
|
|
3173
|
+
outlineWidth: 1
|
|
2866
3174
|
},
|
|
2867
3175
|
text: {
|
|
2868
3176
|
size: 12,
|
|
@@ -2884,7 +3192,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2884
3192
|
minor_road_oneway_reverse: [
|
|
2885
3193
|
{
|
|
2886
3194
|
from: 17,
|
|
2887
|
-
to:
|
|
3195
|
+
to: 21,
|
|
2888
3196
|
line: {
|
|
2889
3197
|
width: 7,
|
|
2890
3198
|
color: "#ffffff",
|
|
@@ -2906,7 +3214,9 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2906
3214
|
to: 16,
|
|
2907
3215
|
line: {
|
|
2908
3216
|
width: 3,
|
|
2909
|
-
color: "#ffffff"
|
|
3217
|
+
color: "#ffffff",
|
|
3218
|
+
outlineColor: "#cccccc",
|
|
3219
|
+
outlineWidth: 1
|
|
2910
3220
|
},
|
|
2911
3221
|
text: {
|
|
2912
3222
|
size: 12,
|
|
@@ -2928,7 +3238,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2928
3238
|
minor_road_restricted: [
|
|
2929
3239
|
{
|
|
2930
3240
|
from: 17,
|
|
2931
|
-
to:
|
|
3241
|
+
to: 21,
|
|
2932
3242
|
line: {
|
|
2933
3243
|
width: 2,
|
|
2934
3244
|
color: "#B0B9C4"
|
|
@@ -2968,7 +3278,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
2968
3278
|
residential_road: [
|
|
2969
3279
|
{
|
|
2970
3280
|
from: 17,
|
|
2971
|
-
to:
|
|
3281
|
+
to: 21,
|
|
2972
3282
|
line: {
|
|
2973
3283
|
width: 3,
|
|
2974
3284
|
color: "#ffffff"
|
|
@@ -3000,7 +3310,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
3000
3310
|
residential_road_oneway: [
|
|
3001
3311
|
{
|
|
3002
3312
|
from: 17,
|
|
3003
|
-
to:
|
|
3313
|
+
to: 21,
|
|
3004
3314
|
line: {
|
|
3005
3315
|
width: 3,
|
|
3006
3316
|
color: "#ffffff",
|
|
@@ -3034,7 +3344,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
3034
3344
|
residential_road_oneway_rev: [
|
|
3035
3345
|
{
|
|
3036
3346
|
from: 17,
|
|
3037
|
-
to:
|
|
3347
|
+
to: 21,
|
|
3038
3348
|
line: {
|
|
3039
3349
|
width: 3,
|
|
3040
3350
|
color: "#ffffff",
|
|
@@ -3067,8 +3377,8 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
3067
3377
|
],
|
|
3068
3378
|
foot_path: [
|
|
3069
3379
|
{
|
|
3070
|
-
from:
|
|
3071
|
-
to:
|
|
3380
|
+
from: 18,
|
|
3381
|
+
to: 21,
|
|
3072
3382
|
line: {
|
|
3073
3383
|
width: 2,
|
|
3074
3384
|
color: "rgba(1, 1, 1, 0)",
|
|
@@ -3082,12 +3392,22 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
3082
3392
|
outlineColor: "#ffffff",
|
|
3083
3393
|
outlineWidth: 2
|
|
3084
3394
|
}
|
|
3395
|
+
},
|
|
3396
|
+
{
|
|
3397
|
+
from: 16,
|
|
3398
|
+
to: 17,
|
|
3399
|
+
line: {
|
|
3400
|
+
width: 1,
|
|
3401
|
+
color: "rgba(1, 1, 1, 0)",
|
|
3402
|
+
dashColor: "#B0B9C4",
|
|
3403
|
+
dashLength: 6
|
|
3404
|
+
}
|
|
3085
3405
|
}
|
|
3086
3406
|
],
|
|
3087
3407
|
rail: [
|
|
3088
3408
|
{
|
|
3089
3409
|
from: 16,
|
|
3090
|
-
to:
|
|
3410
|
+
to: 21,
|
|
3091
3411
|
line: {
|
|
3092
3412
|
width: 2,
|
|
3093
3413
|
color: "#8B8C8C",
|
|
@@ -3108,7 +3428,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
3108
3428
|
ferry: [
|
|
3109
3429
|
{
|
|
3110
3430
|
from: 17,
|
|
3111
|
-
to:
|
|
3431
|
+
to: 21,
|
|
3112
3432
|
line: {
|
|
3113
3433
|
width: 3,
|
|
3114
3434
|
color: "#74a8e1"
|
|
@@ -3148,7 +3468,7 @@ const RENDERING_CONFIG_DEFAULT = {
|
|
|
3148
3468
|
interstateNumbers: [
|
|
3149
3469
|
{
|
|
3150
3470
|
from: 11,
|
|
3151
|
-
to:
|
|
3471
|
+
to: 21,
|
|
3152
3472
|
image: {
|
|
3153
3473
|
url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkJ1bmRlc3N0cmFzc2UiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIwMCAxMjAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMTIwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMDAgMTIwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe2ZpbGw6I0Y5REM4MTt9PC9zdHlsZT48cGF0aCBpZD0icmVjdDQiIGNsYXNzPSJzdDAiIGQ9Ik0yMi4zLDBoMTU1LjVDMTkwLDAsMjAwLDEwLDIwMCwyMi4zdjc1LjVjMCwxMi4zLTEwLDIyLjMtMjIuMywyMi4zSDIyLjNDMTAsMTIwLDAsMTEwLDAsOTcuOFYyMi4zIEMwLDEwLDEwLDAsMjIuMywweiIvPjxwYXRoIGlkPSJyZWN0NiIgZD0iTTIyLjMsNC4zaDE1NS41YzkuOSwwLDE4LDguMSwxOCwxOHY3NS41YzAsOS45LTguMSwxOC0xOCwxOEgyMi4zYy05LjksMC0xOC04LjEtMTgtMThWMjIuMyBDNC4zLDEyLjMsMTIuMyw0LjMsMjIuMyw0LjN6Ii8+PHBhdGggaWQ9InJlY3Q4IiBjbGFzcz0ic3QwIiBkPSJNMjIuMywxMS4zaDE1NS41YzYuMSwwLDExLDQuOSwxMSwxMXY3NS41YzAsNi4xLTQuOSwxMS0xMSwxMUgyMi4zYy02LjEsMC0xMS00LjktMTEtMTFWMjIuMyBDMTEuMywxNi4yLDE2LjIsMTEuMywyMi4zLDExLjN6Ii8+PC9zdmc+",
|
|
3154
3474
|
width: 27,
|
|
@@ -3170,115 +3490,355 @@ const RENDERING_CONFIG_TRAFFIC = {
|
|
|
3170
3490
|
"background": [
|
|
3171
3491
|
{
|
|
3172
3492
|
"from": 1,
|
|
3173
|
-
"to":
|
|
3493
|
+
"to": 21,
|
|
3174
3494
|
"color": "rgba(0, 0, 0, 0)"
|
|
3175
3495
|
}
|
|
3176
3496
|
],
|
|
3177
3497
|
"layers": {
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3498
|
+
trafficFlowFastHighway: "trafficFlowFastHighway",
|
|
3499
|
+
trafficFlowFastInterstate: "trafficFlowFastInterstate",
|
|
3500
|
+
trafficFlowFastMinor: "trafficFlowFastMinor",
|
|
3501
|
+
trafficFlowMediumHighway: "trafficFlowMediumHighway",
|
|
3502
|
+
trafficFlowMediumInterstate: "trafficFlowMediumInterstate",
|
|
3503
|
+
trafficFlowMediumMinor: "trafficFlowMediumMinor",
|
|
3504
|
+
trafficFlowSlowHighway: "trafficFlowSlowHighway",
|
|
3505
|
+
trafficFlowSlowInterstate: "trafficFlowSlowInterstate",
|
|
3506
|
+
trafficFlowSlowMinor: "trafficFlowSlowMinor"
|
|
3181
3507
|
},
|
|
3182
3508
|
"renderers": {
|
|
3183
|
-
|
|
3509
|
+
trafficFlowFastHighway: [
|
|
3184
3510
|
{
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3511
|
+
from: 1,
|
|
3512
|
+
to: 5,
|
|
3513
|
+
line: {
|
|
3514
|
+
color: "#6EDB9C",
|
|
3515
|
+
width: 1,
|
|
3516
|
+
delta: 1
|
|
3517
|
+
}
|
|
3518
|
+
},
|
|
3519
|
+
{
|
|
3520
|
+
from: 6,
|
|
3521
|
+
to: 9,
|
|
3522
|
+
line: {
|
|
3523
|
+
color: "#6EDB9C",
|
|
3524
|
+
width: 1,
|
|
3525
|
+
delta: 1
|
|
3190
3526
|
}
|
|
3191
3527
|
},
|
|
3192
3528
|
{
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3529
|
+
from: 10,
|
|
3530
|
+
to: 12,
|
|
3531
|
+
line: {
|
|
3532
|
+
color: "#6EDB9C",
|
|
3533
|
+
width: 2,
|
|
3534
|
+
outlineColor: "#4B9869",
|
|
3535
|
+
outlineWidth: 1
|
|
3198
3536
|
}
|
|
3199
3537
|
},
|
|
3200
3538
|
{
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
|
|
3204
|
-
|
|
3205
|
-
|
|
3539
|
+
from: 13,
|
|
3540
|
+
to: 15,
|
|
3541
|
+
line: {
|
|
3542
|
+
color: "#6EDB9C",
|
|
3543
|
+
width: 3,
|
|
3544
|
+
outlineColor: "#4B9869",
|
|
3545
|
+
outlineWidth: 1
|
|
3206
3546
|
}
|
|
3207
3547
|
},
|
|
3208
3548
|
{
|
|
3209
|
-
|
|
3210
|
-
|
|
3211
|
-
|
|
3212
|
-
|
|
3213
|
-
|
|
3549
|
+
from: 16,
|
|
3550
|
+
to: 21,
|
|
3551
|
+
line: {
|
|
3552
|
+
color: "#6EDB9C",
|
|
3553
|
+
width: 4,
|
|
3554
|
+
outlineColor: "#4B9869",
|
|
3555
|
+
outlineWidth: 1
|
|
3214
3556
|
}
|
|
3215
3557
|
}
|
|
3216
3558
|
],
|
|
3217
|
-
|
|
3559
|
+
trafficFlowFastInterstate: [
|
|
3560
|
+
{
|
|
3561
|
+
from: 9,
|
|
3562
|
+
to: 12,
|
|
3563
|
+
line: {
|
|
3564
|
+
color: "#6EDB9C",
|
|
3565
|
+
width: 1,
|
|
3566
|
+
delta: 1
|
|
3567
|
+
}
|
|
3568
|
+
},
|
|
3218
3569
|
{
|
|
3219
|
-
|
|
3220
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3570
|
+
from: 13,
|
|
3571
|
+
to: 14,
|
|
3572
|
+
line: {
|
|
3573
|
+
color: "#6EDB9C",
|
|
3574
|
+
width: 2,
|
|
3575
|
+
delta: 2
|
|
3224
3576
|
}
|
|
3225
3577
|
},
|
|
3226
3578
|
{
|
|
3227
|
-
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3579
|
+
from: 15,
|
|
3580
|
+
to: 16,
|
|
3581
|
+
line: {
|
|
3582
|
+
color: "#6EDB9C",
|
|
3583
|
+
width: 2,
|
|
3584
|
+
delta: 2,
|
|
3585
|
+
outlineColor: "#4B9869",
|
|
3586
|
+
outlineWidth: 1
|
|
3232
3587
|
}
|
|
3233
3588
|
},
|
|
3234
3589
|
{
|
|
3235
|
-
|
|
3236
|
-
|
|
3237
|
-
|
|
3238
|
-
|
|
3239
|
-
|
|
3590
|
+
from: 17,
|
|
3591
|
+
to: 21,
|
|
3592
|
+
line: {
|
|
3593
|
+
color: "#6EDB9C",
|
|
3594
|
+
width: 3,
|
|
3595
|
+
delta: 3,
|
|
3596
|
+
outlineColor: "#4B9869",
|
|
3597
|
+
outlineWidth: 1
|
|
3598
|
+
}
|
|
3599
|
+
}
|
|
3600
|
+
],
|
|
3601
|
+
trafficFlowFastMinor: [
|
|
3602
|
+
{
|
|
3603
|
+
from: 15,
|
|
3604
|
+
to: 16,
|
|
3605
|
+
line: {
|
|
3606
|
+
color: "#6EDB9C",
|
|
3607
|
+
width: 1,
|
|
3608
|
+
delta: 1
|
|
3240
3609
|
}
|
|
3241
3610
|
},
|
|
3242
3611
|
{
|
|
3243
|
-
|
|
3244
|
-
|
|
3245
|
-
|
|
3246
|
-
|
|
3247
|
-
|
|
3612
|
+
from: 17,
|
|
3613
|
+
to: 21,
|
|
3614
|
+
line: {
|
|
3615
|
+
color: "#6EDB9C",
|
|
3616
|
+
width: 2,
|
|
3617
|
+
delta: 2
|
|
3248
3618
|
}
|
|
3249
3619
|
}
|
|
3250
3620
|
],
|
|
3251
|
-
|
|
3621
|
+
trafficFlowMediumHighway: [
|
|
3622
|
+
{
|
|
3623
|
+
from: 1,
|
|
3624
|
+
to: 5,
|
|
3625
|
+
line: {
|
|
3626
|
+
color: "#ffce42",
|
|
3627
|
+
width: 1,
|
|
3628
|
+
delta: 1
|
|
3629
|
+
}
|
|
3630
|
+
},
|
|
3631
|
+
{
|
|
3632
|
+
from: 6,
|
|
3633
|
+
to: 9,
|
|
3634
|
+
line: {
|
|
3635
|
+
color: "#ffce42",
|
|
3636
|
+
width: 1,
|
|
3637
|
+
delta: 1
|
|
3638
|
+
}
|
|
3639
|
+
},
|
|
3252
3640
|
{
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3641
|
+
from: 10,
|
|
3642
|
+
to: 12,
|
|
3643
|
+
line: {
|
|
3644
|
+
color: "#ffce42",
|
|
3645
|
+
width: 2,
|
|
3646
|
+
outlineColor: "#f4bf22",
|
|
3647
|
+
outlineWidth: 1
|
|
3258
3648
|
}
|
|
3259
3649
|
},
|
|
3260
3650
|
{
|
|
3261
|
-
|
|
3262
|
-
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3651
|
+
from: 13,
|
|
3652
|
+
to: 15,
|
|
3653
|
+
line: {
|
|
3654
|
+
color: "#ffce42",
|
|
3655
|
+
width: 3,
|
|
3656
|
+
outlineColor: "#f4bf22",
|
|
3657
|
+
outlineWidth: 1
|
|
3266
3658
|
}
|
|
3267
3659
|
},
|
|
3268
3660
|
{
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3661
|
+
from: 16,
|
|
3662
|
+
to: 21,
|
|
3663
|
+
line: {
|
|
3664
|
+
color: "#ffce42",
|
|
3665
|
+
width: 4,
|
|
3666
|
+
outlineColor: "#f4bf22",
|
|
3667
|
+
outlineWidth: 1
|
|
3668
|
+
}
|
|
3669
|
+
}
|
|
3670
|
+
],
|
|
3671
|
+
trafficFlowMediumInterstate: [
|
|
3672
|
+
{
|
|
3673
|
+
from: 9,
|
|
3674
|
+
to: 12,
|
|
3675
|
+
line: {
|
|
3676
|
+
color: "#ffce42",
|
|
3677
|
+
width: 1,
|
|
3678
|
+
delta: 1
|
|
3274
3679
|
}
|
|
3275
3680
|
},
|
|
3276
3681
|
{
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3682
|
+
from: 13,
|
|
3683
|
+
to: 14,
|
|
3684
|
+
line: {
|
|
3685
|
+
color: "#ffce42",
|
|
3686
|
+
width: 2,
|
|
3687
|
+
delta: 2
|
|
3688
|
+
}
|
|
3689
|
+
},
|
|
3690
|
+
{
|
|
3691
|
+
from: 15,
|
|
3692
|
+
to: 16,
|
|
3693
|
+
line: {
|
|
3694
|
+
color: "#ffce42",
|
|
3695
|
+
width: 2,
|
|
3696
|
+
delta: 2,
|
|
3697
|
+
outlineColor: "#f4bf22",
|
|
3698
|
+
outlineWidth: 1
|
|
3699
|
+
}
|
|
3700
|
+
},
|
|
3701
|
+
{
|
|
3702
|
+
from: 17,
|
|
3703
|
+
to: 21,
|
|
3704
|
+
line: {
|
|
3705
|
+
color: "#ffce42",
|
|
3706
|
+
width: 3,
|
|
3707
|
+
delta: 3,
|
|
3708
|
+
outlineColor: "#f4bf22",
|
|
3709
|
+
outlineWidth: 1
|
|
3710
|
+
}
|
|
3711
|
+
}
|
|
3712
|
+
],
|
|
3713
|
+
trafficFlowMediumMinor: [
|
|
3714
|
+
{
|
|
3715
|
+
from: 15,
|
|
3716
|
+
to: 16,
|
|
3717
|
+
line: {
|
|
3718
|
+
color: "#ffce42",
|
|
3719
|
+
width: 1,
|
|
3720
|
+
delta: 1
|
|
3721
|
+
}
|
|
3722
|
+
},
|
|
3723
|
+
{
|
|
3724
|
+
from: 17,
|
|
3725
|
+
to: 21,
|
|
3726
|
+
line: {
|
|
3727
|
+
color: "#ffce42",
|
|
3728
|
+
width: 2,
|
|
3729
|
+
delta: 2
|
|
3730
|
+
}
|
|
3731
|
+
}
|
|
3732
|
+
],
|
|
3733
|
+
trafficFlowSlowHighway: [
|
|
3734
|
+
{
|
|
3735
|
+
from: 1,
|
|
3736
|
+
to: 5,
|
|
3737
|
+
line: {
|
|
3738
|
+
color: "#f14d40",
|
|
3739
|
+
width: 1,
|
|
3740
|
+
delta: 1
|
|
3741
|
+
}
|
|
3742
|
+
},
|
|
3743
|
+
{
|
|
3744
|
+
from: 6,
|
|
3745
|
+
to: 9,
|
|
3746
|
+
line: {
|
|
3747
|
+
color: "#f14d40",
|
|
3748
|
+
width: 1,
|
|
3749
|
+
delta: 1
|
|
3750
|
+
}
|
|
3751
|
+
},
|
|
3752
|
+
{
|
|
3753
|
+
from: 10,
|
|
3754
|
+
to: 12,
|
|
3755
|
+
line: {
|
|
3756
|
+
color: "#f14d40",
|
|
3757
|
+
width: 2,
|
|
3758
|
+
outlineColor: "#96403a",
|
|
3759
|
+
outlineWidth: 1
|
|
3760
|
+
}
|
|
3761
|
+
},
|
|
3762
|
+
{
|
|
3763
|
+
from: 13,
|
|
3764
|
+
to: 15,
|
|
3765
|
+
line: {
|
|
3766
|
+
color: "#f14d40",
|
|
3767
|
+
width: 3,
|
|
3768
|
+
outlineColor: "#96403a",
|
|
3769
|
+
outlineWidth: 1
|
|
3770
|
+
}
|
|
3771
|
+
},
|
|
3772
|
+
{
|
|
3773
|
+
from: 16,
|
|
3774
|
+
to: 21,
|
|
3775
|
+
line: {
|
|
3776
|
+
color: "#f14d40",
|
|
3777
|
+
width: 4,
|
|
3778
|
+
outlineColor: "#96403a",
|
|
3779
|
+
outlineWidth: 1
|
|
3780
|
+
}
|
|
3781
|
+
}
|
|
3782
|
+
],
|
|
3783
|
+
trafficFlowSlowInterstate: [
|
|
3784
|
+
{
|
|
3785
|
+
from: 9,
|
|
3786
|
+
to: 12,
|
|
3787
|
+
line: {
|
|
3788
|
+
color: "#f14d40",
|
|
3789
|
+
width: 1,
|
|
3790
|
+
delta: 1
|
|
3791
|
+
}
|
|
3792
|
+
},
|
|
3793
|
+
{
|
|
3794
|
+
from: 13,
|
|
3795
|
+
to: 14,
|
|
3796
|
+
line: {
|
|
3797
|
+
color: "#f14d40",
|
|
3798
|
+
width: 2,
|
|
3799
|
+
delta: 2
|
|
3800
|
+
}
|
|
3801
|
+
},
|
|
3802
|
+
{
|
|
3803
|
+
from: 15,
|
|
3804
|
+
to: 16,
|
|
3805
|
+
line: {
|
|
3806
|
+
color: "#f14d40",
|
|
3807
|
+
width: 2,
|
|
3808
|
+
delta: 2,
|
|
3809
|
+
outlineColor: "#96403a",
|
|
3810
|
+
outlineWidth: 1
|
|
3811
|
+
}
|
|
3812
|
+
},
|
|
3813
|
+
{
|
|
3814
|
+
from: 17,
|
|
3815
|
+
to: 21,
|
|
3816
|
+
line: {
|
|
3817
|
+
color: "#f14d40",
|
|
3818
|
+
width: 3,
|
|
3819
|
+
delta: 3,
|
|
3820
|
+
outlineColor: "#96403a",
|
|
3821
|
+
outlineWidth: 1
|
|
3822
|
+
}
|
|
3823
|
+
}
|
|
3824
|
+
],
|
|
3825
|
+
trafficFlowSlowMinor: [
|
|
3826
|
+
{
|
|
3827
|
+
from: 15,
|
|
3828
|
+
to: 16,
|
|
3829
|
+
line: {
|
|
3830
|
+
color: "#f14d40",
|
|
3831
|
+
width: 1,
|
|
3832
|
+
delta: 1
|
|
3833
|
+
}
|
|
3834
|
+
},
|
|
3835
|
+
{
|
|
3836
|
+
from: 17,
|
|
3837
|
+
to: 21,
|
|
3838
|
+
line: {
|
|
3839
|
+
color: "#f14d40",
|
|
3840
|
+
width: 2,
|
|
3841
|
+
delta: 2
|
|
3282
3842
|
}
|
|
3283
3843
|
}
|
|
3284
3844
|
]
|
|
@@ -3534,7 +4094,7 @@ class VectorTileFactory {
|
|
|
3534
4094
|
}
|
|
3535
4095
|
}
|
|
3536
4096
|
static DEFAULT_PROPERTIES = {
|
|
3537
|
-
provider:
|
|
4097
|
+
provider: DEFAULT_PROVIDER,
|
|
3538
4098
|
baseMap: true,
|
|
3539
4099
|
traffic: false
|
|
3540
4100
|
};
|
|
@@ -3549,7 +4109,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3549
4109
|
},
|
|
3550
4110
|
{
|
|
3551
4111
|
from: 8,
|
|
3552
|
-
to:
|
|
4112
|
+
to: 21,
|
|
3553
4113
|
color: "#eeeeee"
|
|
3554
4114
|
}
|
|
3555
4115
|
],
|
|
@@ -3582,9 +4142,15 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3582
4142
|
interstateNumbers: "interstateNumbers",
|
|
3583
4143
|
expresswayNumbers: "highway",
|
|
3584
4144
|
expresswayintersections: "interstate_minor",
|
|
3585
|
-
|
|
3586
|
-
|
|
3587
|
-
|
|
4145
|
+
trafficFlowFastHighway: "trafficFlowFastHighway",
|
|
4146
|
+
trafficFlowFastInterstate: "trafficFlowFastInterstate",
|
|
4147
|
+
trafficFlowFastMinor: "trafficFlowFastMinor",
|
|
4148
|
+
trafficFlowMediumHighway: "trafficFlowMediumHighway",
|
|
4149
|
+
trafficFlowMediumInterstate: "trafficFlowMediumInterstate",
|
|
4150
|
+
trafficFlowMediumMinor: "trafficFlowMediumMinor",
|
|
4151
|
+
trafficFlowSlowHighway: "trafficFlowSlowHighway",
|
|
4152
|
+
trafficFlowSlowInterstate: "trafficFlowSlowInterstate",
|
|
4153
|
+
trafficFlowSlowMinor: "trafficFlowSlowMinor",
|
|
3588
4154
|
trafficJam: "trafficJam",
|
|
3589
4155
|
roadworks: "roadworks",
|
|
3590
4156
|
dangerousSituation: "dangerous_situation",
|
|
@@ -3594,7 +4160,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3594
4160
|
metropolis: [
|
|
3595
4161
|
{
|
|
3596
4162
|
from: 17,
|
|
3597
|
-
to:
|
|
4163
|
+
to: 21,
|
|
3598
4164
|
text: {
|
|
3599
4165
|
size: 30,
|
|
3600
4166
|
color: "#606060",
|
|
@@ -3632,7 +4198,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3632
4198
|
large_city: [
|
|
3633
4199
|
{
|
|
3634
4200
|
from: 17,
|
|
3635
|
-
to:
|
|
4201
|
+
to: 21,
|
|
3636
4202
|
text: {
|
|
3637
4203
|
size: 24,
|
|
3638
4204
|
color: "#606060",
|
|
@@ -3670,7 +4236,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3670
4236
|
city: [
|
|
3671
4237
|
{
|
|
3672
4238
|
from: 17,
|
|
3673
|
-
to:
|
|
4239
|
+
to: 21,
|
|
3674
4240
|
text: {
|
|
3675
4241
|
size: 20,
|
|
3676
4242
|
color: "#606060",
|
|
@@ -3708,7 +4274,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3708
4274
|
settlement: [
|
|
3709
4275
|
{
|
|
3710
4276
|
from: 17,
|
|
3711
|
-
to:
|
|
4277
|
+
to: 21,
|
|
3712
4278
|
text: {
|
|
3713
4279
|
size: 18,
|
|
3714
4280
|
color: "#606060",
|
|
@@ -3746,7 +4312,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3746
4312
|
earth: [
|
|
3747
4313
|
{
|
|
3748
4314
|
from: 1,
|
|
3749
|
-
to:
|
|
4315
|
+
to: 21,
|
|
3750
4316
|
polygon: {
|
|
3751
4317
|
color: "#f2f2f2"
|
|
3752
4318
|
}
|
|
@@ -3755,192 +4321,459 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3755
4321
|
urban_area: [
|
|
3756
4322
|
{
|
|
3757
4323
|
from: 1,
|
|
3758
|
-
to:
|
|
4324
|
+
to: 21,
|
|
3759
4325
|
polygon: {
|
|
3760
4326
|
color: "rgba(0, 0, 0, 0.05)"
|
|
3761
4327
|
}
|
|
3762
4328
|
}
|
|
3763
4329
|
],
|
|
3764
4330
|
forest: [
|
|
4331
|
+
{
|
|
4332
|
+
from: 15,
|
|
4333
|
+
to: 21,
|
|
4334
|
+
polygon: {
|
|
4335
|
+
color: "#d4d4d4"
|
|
4336
|
+
},
|
|
4337
|
+
text: {
|
|
4338
|
+
size: 12,
|
|
4339
|
+
color: "#a0a0a0",
|
|
4340
|
+
font: "Open Sans",
|
|
4341
|
+
fontStyle: "italic"
|
|
4342
|
+
}
|
|
4343
|
+
},
|
|
3765
4344
|
{
|
|
3766
4345
|
from: 1,
|
|
3767
4346
|
to: 14,
|
|
3768
4347
|
polygon: {
|
|
3769
4348
|
color: "#d4d4d4"
|
|
3770
4349
|
}
|
|
4350
|
+
}
|
|
4351
|
+
],
|
|
4352
|
+
natural_park: [
|
|
4353
|
+
{
|
|
4354
|
+
from: 15,
|
|
4355
|
+
to: 21,
|
|
4356
|
+
polygon: {
|
|
4357
|
+
color: "#e1e1e1"
|
|
4358
|
+
},
|
|
4359
|
+
text: {
|
|
4360
|
+
size: 12,
|
|
4361
|
+
color: "#b9b9b9",
|
|
4362
|
+
font: "Open Sans",
|
|
4363
|
+
fontStyle: "italic"
|
|
4364
|
+
}
|
|
4365
|
+
},
|
|
4366
|
+
{
|
|
4367
|
+
from: 1,
|
|
4368
|
+
to: 14,
|
|
4369
|
+
polygon: {
|
|
4370
|
+
color: "#e1e1e1"
|
|
4371
|
+
}
|
|
4372
|
+
}
|
|
4373
|
+
],
|
|
4374
|
+
water: [
|
|
4375
|
+
{
|
|
4376
|
+
from: 1,
|
|
4377
|
+
to: 21,
|
|
4378
|
+
line: {
|
|
4379
|
+
color: "#c6c6c6",
|
|
4380
|
+
width: 1
|
|
4381
|
+
},
|
|
4382
|
+
polygon: {
|
|
4383
|
+
color: "#BBC5CF"
|
|
4384
|
+
},
|
|
4385
|
+
text: {
|
|
4386
|
+
size: 14,
|
|
4387
|
+
color: "#9e9e9e",
|
|
4388
|
+
font: "Open Sans",
|
|
4389
|
+
fontWeight: "bold",
|
|
4390
|
+
fontStyle: "italic"
|
|
4391
|
+
}
|
|
4392
|
+
}
|
|
4393
|
+
],
|
|
4394
|
+
country: [
|
|
4395
|
+
{
|
|
4396
|
+
from: 1,
|
|
4397
|
+
to: 21,
|
|
4398
|
+
line: {
|
|
4399
|
+
color: "#acacac"
|
|
4400
|
+
},
|
|
4401
|
+
text: {
|
|
4402
|
+
size: 18,
|
|
4403
|
+
color: "#acacac",
|
|
4404
|
+
font: "Open Sans",
|
|
4405
|
+
fontWeight: "bold",
|
|
4406
|
+
outlineColor: "white",
|
|
4407
|
+
outlineWidth: 2
|
|
4408
|
+
}
|
|
4409
|
+
}
|
|
4410
|
+
],
|
|
4411
|
+
trafficFlowFastHighway: [
|
|
4412
|
+
{
|
|
4413
|
+
from: 1,
|
|
4414
|
+
to: 5,
|
|
4415
|
+
line: {
|
|
4416
|
+
color: "#50dc32",
|
|
4417
|
+
width: 1,
|
|
4418
|
+
delta: 1
|
|
4419
|
+
}
|
|
4420
|
+
},
|
|
4421
|
+
{
|
|
4422
|
+
from: 6,
|
|
4423
|
+
to: 9,
|
|
4424
|
+
line: {
|
|
4425
|
+
color: "#50dc32",
|
|
4426
|
+
width: 2,
|
|
4427
|
+
delta: 1
|
|
4428
|
+
}
|
|
4429
|
+
},
|
|
4430
|
+
{
|
|
4431
|
+
from: 10,
|
|
4432
|
+
to: 12,
|
|
4433
|
+
line: {
|
|
4434
|
+
color: "#50dc32",
|
|
4435
|
+
width: 6,
|
|
4436
|
+
delta: 2
|
|
4437
|
+
}
|
|
4438
|
+
},
|
|
4439
|
+
{
|
|
4440
|
+
from: 13,
|
|
4441
|
+
to: 15,
|
|
4442
|
+
line: {
|
|
4443
|
+
color: "#50dc32",
|
|
4444
|
+
width: 9,
|
|
4445
|
+
delta: 2
|
|
4446
|
+
}
|
|
4447
|
+
},
|
|
4448
|
+
{
|
|
4449
|
+
from: 16,
|
|
4450
|
+
to: 21,
|
|
4451
|
+
line: {
|
|
4452
|
+
color: "#50dc32",
|
|
4453
|
+
width: 13,
|
|
4454
|
+
delta: 2
|
|
4455
|
+
}
|
|
4456
|
+
}
|
|
4457
|
+
],
|
|
4458
|
+
trafficFlowFastInterstate: [
|
|
4459
|
+
{
|
|
4460
|
+
from: 9,
|
|
4461
|
+
to: 9,
|
|
4462
|
+
line: {
|
|
4463
|
+
color: "#50dc32",
|
|
4464
|
+
width: 2,
|
|
4465
|
+
delta: 1
|
|
4466
|
+
}
|
|
4467
|
+
},
|
|
4468
|
+
{
|
|
4469
|
+
from: 10,
|
|
4470
|
+
to: 12,
|
|
4471
|
+
line: {
|
|
4472
|
+
color: "#50dc32",
|
|
4473
|
+
width: 2,
|
|
4474
|
+
delta: 1
|
|
4475
|
+
}
|
|
4476
|
+
},
|
|
4477
|
+
{
|
|
4478
|
+
from: 13,
|
|
4479
|
+
to: 14,
|
|
4480
|
+
line: {
|
|
4481
|
+
color: "#50dc32",
|
|
4482
|
+
width: 6,
|
|
4483
|
+
delta: 2
|
|
4484
|
+
}
|
|
4485
|
+
},
|
|
4486
|
+
{
|
|
4487
|
+
from: 15,
|
|
4488
|
+
to: 16,
|
|
4489
|
+
line: {
|
|
4490
|
+
color: "#50dc32",
|
|
4491
|
+
width: 9,
|
|
4492
|
+
delta: 2
|
|
4493
|
+
}
|
|
4494
|
+
},
|
|
4495
|
+
{
|
|
4496
|
+
from: 17,
|
|
4497
|
+
to: 21,
|
|
4498
|
+
line: {
|
|
4499
|
+
color: "#50dc32",
|
|
4500
|
+
width: 12,
|
|
4501
|
+
delta: 2
|
|
4502
|
+
}
|
|
4503
|
+
}
|
|
4504
|
+
],
|
|
4505
|
+
trafficFlowFastMinor: [
|
|
4506
|
+
{
|
|
4507
|
+
from: 13,
|
|
4508
|
+
to: 14,
|
|
4509
|
+
line: {
|
|
4510
|
+
color: "#50dc32",
|
|
4511
|
+
width: 1,
|
|
4512
|
+
delta: 1
|
|
4513
|
+
}
|
|
4514
|
+
},
|
|
4515
|
+
{
|
|
4516
|
+
from: 15,
|
|
4517
|
+
to: 16,
|
|
4518
|
+
line: {
|
|
4519
|
+
color: "#50dc32",
|
|
4520
|
+
width: 5,
|
|
4521
|
+
delta: 2
|
|
4522
|
+
}
|
|
4523
|
+
},
|
|
4524
|
+
{
|
|
4525
|
+
from: 17,
|
|
4526
|
+
to: 21,
|
|
4527
|
+
line: {
|
|
4528
|
+
color: "#50dc32",
|
|
4529
|
+
width: 9,
|
|
4530
|
+
delta: 2
|
|
4531
|
+
}
|
|
4532
|
+
}
|
|
4533
|
+
],
|
|
4534
|
+
trafficFlowMediumHighway: [
|
|
4535
|
+
{
|
|
4536
|
+
from: 1,
|
|
4537
|
+
to: 5,
|
|
4538
|
+
line: {
|
|
4539
|
+
color: "#ffa500",
|
|
4540
|
+
width: 1,
|
|
4541
|
+
delta: 1
|
|
4542
|
+
}
|
|
4543
|
+
},
|
|
4544
|
+
{
|
|
4545
|
+
from: 6,
|
|
4546
|
+
to: 9,
|
|
4547
|
+
line: {
|
|
4548
|
+
color: "#ffa500",
|
|
4549
|
+
width: 2,
|
|
4550
|
+
delta: 1
|
|
4551
|
+
}
|
|
4552
|
+
},
|
|
4553
|
+
{
|
|
4554
|
+
from: 10,
|
|
4555
|
+
to: 12,
|
|
4556
|
+
line: {
|
|
4557
|
+
color: "#ffa500",
|
|
4558
|
+
width: 6,
|
|
4559
|
+
delta: 2
|
|
4560
|
+
}
|
|
4561
|
+
},
|
|
4562
|
+
{
|
|
4563
|
+
from: 13,
|
|
4564
|
+
to: 15,
|
|
4565
|
+
line: {
|
|
4566
|
+
color: "#ffa500",
|
|
4567
|
+
width: 9,
|
|
4568
|
+
delta: 2
|
|
4569
|
+
}
|
|
4570
|
+
},
|
|
4571
|
+
{
|
|
4572
|
+
from: 16,
|
|
4573
|
+
to: 21,
|
|
4574
|
+
line: {
|
|
4575
|
+
color: "#ffa500",
|
|
4576
|
+
width: 13,
|
|
4577
|
+
delta: 2
|
|
4578
|
+
}
|
|
4579
|
+
}
|
|
4580
|
+
],
|
|
4581
|
+
trafficFlowMediumInterstate: [
|
|
4582
|
+
{
|
|
4583
|
+
from: 9,
|
|
4584
|
+
to: 9,
|
|
4585
|
+
line: {
|
|
4586
|
+
color: "#ffa500",
|
|
4587
|
+
width: 2,
|
|
4588
|
+
delta: 1
|
|
4589
|
+
}
|
|
4590
|
+
},
|
|
4591
|
+
{
|
|
4592
|
+
from: 10,
|
|
4593
|
+
to: 12,
|
|
4594
|
+
line: {
|
|
4595
|
+
color: "#ffa500",
|
|
4596
|
+
width: 2,
|
|
4597
|
+
delta: 1
|
|
4598
|
+
}
|
|
4599
|
+
},
|
|
4600
|
+
{
|
|
4601
|
+
from: 13,
|
|
4602
|
+
to: 14,
|
|
4603
|
+
line: {
|
|
4604
|
+
color: "#ffa500",
|
|
4605
|
+
width: 6,
|
|
4606
|
+
delta: 2
|
|
4607
|
+
}
|
|
3771
4608
|
},
|
|
3772
4609
|
{
|
|
3773
4610
|
from: 15,
|
|
3774
|
-
to:
|
|
3775
|
-
|
|
3776
|
-
color: "#
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3782
|
-
|
|
4611
|
+
to: 16,
|
|
4612
|
+
line: {
|
|
4613
|
+
color: "#ffa500",
|
|
4614
|
+
width: 9,
|
|
4615
|
+
delta: 2
|
|
4616
|
+
}
|
|
4617
|
+
},
|
|
4618
|
+
{
|
|
4619
|
+
from: 17,
|
|
4620
|
+
to: 21,
|
|
4621
|
+
line: {
|
|
4622
|
+
color: "#ffa500",
|
|
4623
|
+
width: 12,
|
|
4624
|
+
delta: 2
|
|
3783
4625
|
}
|
|
3784
4626
|
}
|
|
3785
4627
|
],
|
|
3786
|
-
|
|
4628
|
+
trafficFlowMediumMinor: [
|
|
3787
4629
|
{
|
|
3788
|
-
from:
|
|
4630
|
+
from: 13,
|
|
3789
4631
|
to: 14,
|
|
3790
|
-
|
|
3791
|
-
color: "#
|
|
4632
|
+
line: {
|
|
4633
|
+
color: "#ffa500",
|
|
4634
|
+
width: 1,
|
|
4635
|
+
delta: 1
|
|
3792
4636
|
}
|
|
3793
4637
|
},
|
|
3794
4638
|
{
|
|
3795
4639
|
from: 15,
|
|
3796
|
-
to:
|
|
3797
|
-
|
|
3798
|
-
color: "#
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
size: 12,
|
|
3802
|
-
color: "#b9b9b9",
|
|
3803
|
-
font: "Open Sans",
|
|
3804
|
-
fontStyle: "italic"
|
|
4640
|
+
to: 16,
|
|
4641
|
+
line: {
|
|
4642
|
+
color: "#ffa500",
|
|
4643
|
+
width: 5,
|
|
4644
|
+
delta: 2
|
|
3805
4645
|
}
|
|
3806
|
-
}
|
|
3807
|
-
],
|
|
3808
|
-
water: [
|
|
4646
|
+
},
|
|
3809
4647
|
{
|
|
3810
|
-
from:
|
|
3811
|
-
to:
|
|
4648
|
+
from: 17,
|
|
4649
|
+
to: 21,
|
|
3812
4650
|
line: {
|
|
3813
|
-
color: "#
|
|
3814
|
-
width:
|
|
3815
|
-
|
|
3816
|
-
polygon: {
|
|
3817
|
-
color: "#BBC5CF"
|
|
3818
|
-
},
|
|
3819
|
-
text: {
|
|
3820
|
-
size: 14,
|
|
3821
|
-
color: "#9e9e9e",
|
|
3822
|
-
font: "Open Sans",
|
|
3823
|
-
fontWeight: "bold",
|
|
3824
|
-
fontStyle: "italic"
|
|
4651
|
+
color: "#ffa500",
|
|
4652
|
+
width: 9,
|
|
4653
|
+
delta: 2
|
|
3825
4654
|
}
|
|
3826
4655
|
}
|
|
3827
4656
|
],
|
|
3828
|
-
|
|
4657
|
+
trafficFlowSlowHighway: [
|
|
3829
4658
|
{
|
|
3830
4659
|
from: 1,
|
|
3831
|
-
to:
|
|
4660
|
+
to: 5,
|
|
3832
4661
|
line: {
|
|
3833
|
-
color: "#
|
|
3834
|
-
|
|
3835
|
-
|
|
3836
|
-
size: 18,
|
|
3837
|
-
color: "#acacac",
|
|
3838
|
-
font: "Open Sans",
|
|
3839
|
-
fontWeight: "bold",
|
|
3840
|
-
outlineColor: "white",
|
|
3841
|
-
outlineWidth: 2
|
|
4662
|
+
color: "#c80000",
|
|
4663
|
+
width: 1,
|
|
4664
|
+
delta: 1
|
|
3842
4665
|
}
|
|
3843
|
-
}
|
|
3844
|
-
],
|
|
3845
|
-
trafficFlowFast: [
|
|
4666
|
+
},
|
|
3846
4667
|
{
|
|
3847
|
-
from:
|
|
3848
|
-
to:
|
|
4668
|
+
from: 6,
|
|
4669
|
+
to: 9,
|
|
3849
4670
|
line: {
|
|
3850
|
-
color: "#
|
|
3851
|
-
width:
|
|
4671
|
+
color: "#c80000",
|
|
4672
|
+
width: 2,
|
|
4673
|
+
delta: 1
|
|
3852
4674
|
}
|
|
3853
4675
|
},
|
|
3854
4676
|
{
|
|
3855
|
-
from:
|
|
4677
|
+
from: 10,
|
|
3856
4678
|
to: 12,
|
|
3857
4679
|
line: {
|
|
3858
|
-
color: "#
|
|
3859
|
-
width:
|
|
4680
|
+
color: "#c80000",
|
|
4681
|
+
width: 6,
|
|
4682
|
+
delta: 2
|
|
3860
4683
|
}
|
|
3861
4684
|
},
|
|
3862
4685
|
{
|
|
3863
4686
|
from: 13,
|
|
3864
4687
|
to: 15,
|
|
3865
4688
|
line: {
|
|
3866
|
-
color: "#
|
|
3867
|
-
width:
|
|
4689
|
+
color: "#c80000",
|
|
4690
|
+
width: 9,
|
|
4691
|
+
delta: 2
|
|
3868
4692
|
}
|
|
3869
4693
|
},
|
|
3870
4694
|
{
|
|
3871
4695
|
from: 16,
|
|
3872
|
-
to:
|
|
4696
|
+
to: 21,
|
|
3873
4697
|
line: {
|
|
3874
|
-
color: "#
|
|
3875
|
-
width:
|
|
4698
|
+
color: "#c80000",
|
|
4699
|
+
width: 13,
|
|
4700
|
+
delta: 2
|
|
3876
4701
|
}
|
|
3877
4702
|
}
|
|
3878
4703
|
],
|
|
3879
|
-
|
|
4704
|
+
trafficFlowSlowInterstate: [
|
|
3880
4705
|
{
|
|
3881
|
-
from:
|
|
3882
|
-
to:
|
|
4706
|
+
from: 9,
|
|
4707
|
+
to: 9,
|
|
3883
4708
|
line: {
|
|
3884
|
-
color: "#
|
|
3885
|
-
width:
|
|
4709
|
+
color: "#c80000",
|
|
4710
|
+
width: 2,
|
|
4711
|
+
delta: 1
|
|
3886
4712
|
}
|
|
3887
4713
|
},
|
|
3888
4714
|
{
|
|
3889
|
-
from:
|
|
4715
|
+
from: 10,
|
|
3890
4716
|
to: 12,
|
|
3891
4717
|
line: {
|
|
3892
|
-
color: "#
|
|
3893
|
-
width: 2
|
|
4718
|
+
color: "#c80000",
|
|
4719
|
+
width: 2,
|
|
4720
|
+
delta: 1
|
|
3894
4721
|
}
|
|
3895
4722
|
},
|
|
3896
4723
|
{
|
|
3897
4724
|
from: 13,
|
|
3898
|
-
to:
|
|
4725
|
+
to: 14,
|
|
3899
4726
|
line: {
|
|
3900
|
-
color: "#
|
|
3901
|
-
width:
|
|
4727
|
+
color: "#c80000",
|
|
4728
|
+
width: 6,
|
|
4729
|
+
delta: 2
|
|
3902
4730
|
}
|
|
3903
4731
|
},
|
|
3904
4732
|
{
|
|
3905
|
-
from:
|
|
3906
|
-
to:
|
|
4733
|
+
from: 15,
|
|
4734
|
+
to: 16,
|
|
3907
4735
|
line: {
|
|
3908
|
-
color: "#
|
|
3909
|
-
width:
|
|
4736
|
+
color: "#c80000",
|
|
4737
|
+
width: 9,
|
|
4738
|
+
delta: 2
|
|
3910
4739
|
}
|
|
3911
|
-
}
|
|
3912
|
-
],
|
|
3913
|
-
trafficFlowSlow: [
|
|
4740
|
+
},
|
|
3914
4741
|
{
|
|
3915
|
-
from:
|
|
3916
|
-
to:
|
|
4742
|
+
from: 17,
|
|
4743
|
+
to: 21,
|
|
3917
4744
|
line: {
|
|
3918
4745
|
color: "#c80000",
|
|
3919
|
-
width:
|
|
4746
|
+
width: 12,
|
|
4747
|
+
delta: 2
|
|
3920
4748
|
}
|
|
3921
|
-
}
|
|
4749
|
+
}
|
|
4750
|
+
],
|
|
4751
|
+
trafficFlowSlowMinor: [
|
|
3922
4752
|
{
|
|
3923
|
-
from:
|
|
3924
|
-
to:
|
|
4753
|
+
from: 13,
|
|
4754
|
+
to: 14,
|
|
3925
4755
|
line: {
|
|
3926
4756
|
color: "#c80000",
|
|
3927
|
-
width:
|
|
4757
|
+
width: 1,
|
|
4758
|
+
delta: 1
|
|
3928
4759
|
}
|
|
3929
4760
|
},
|
|
3930
4761
|
{
|
|
3931
|
-
from:
|
|
3932
|
-
to:
|
|
4762
|
+
from: 15,
|
|
4763
|
+
to: 16,
|
|
3933
4764
|
line: {
|
|
3934
4765
|
color: "#c80000",
|
|
3935
|
-
width:
|
|
4766
|
+
width: 5,
|
|
4767
|
+
delta: 2
|
|
3936
4768
|
}
|
|
3937
4769
|
},
|
|
3938
4770
|
{
|
|
3939
|
-
from:
|
|
3940
|
-
to:
|
|
4771
|
+
from: 17,
|
|
4772
|
+
to: 21,
|
|
3941
4773
|
line: {
|
|
3942
4774
|
color: "#c80000",
|
|
3943
|
-
width:
|
|
4775
|
+
width: 9,
|
|
4776
|
+
delta: 2
|
|
3944
4777
|
}
|
|
3945
4778
|
}
|
|
3946
4779
|
],
|
|
@@ -3979,7 +4812,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
3979
4812
|
},
|
|
3980
4813
|
{
|
|
3981
4814
|
from: 15,
|
|
3982
|
-
to:
|
|
4815
|
+
to: 21,
|
|
3983
4816
|
image: {
|
|
3984
4817
|
url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDg0Ny4xNTQ2IDc0My42MjUzNyIKICAgaGVpZ2h0PSI3NDMuNjI1MzciCiAgIHdpZHRoPSI4NDcuMTU0NiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMjEzMzkiPjxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTIxMzQ1Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzMjEzNDMiIC8+PGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1LDAsMCwtMS4yNSwwLDc0My42MjUzNCkiCiAgICAgaWQ9ImcyMTM0NyI+PGcKICAgICAgIGlkPSJnMjEzNDkiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTEiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1OTQuNTAyIGMgLTcuNTEyLDAgLTE1LjAyMywtMi44NjcgLTIwLjc1OCwtOC41OTggLTEuODgyLC0xLjg3OSAtMy40NDksLTMuOTUzIC00LjcxMSwtNi4xNTIgbCAtMTUuMjQ2LC0yNi4xNTYgLTAuMDY2LDAgTCA0Ljk4LDQ1LjU1MyBDIDQuOTMsNDUuNDU5IDQuODg3LDQ1LjM2NSA0LjgzMiw0NS4yNjQgMy4zNDgsNDIuODczIDIuMTc2LDQwLjIyMSAxLjM5OCwzNy4zNTMgLTIuNzg5LDIxLjY5NyA2LjUwNCw1LjU5OSAyMi4xNiwxLjQwNCBjIDIuNTksLTAuNjk1IDUuMTg4LC0xLjAxMiA3LjczOCwtMSBsIDYxOC4wNzUsMCBjIDE2LjIxMSwwIDI5LjM1MSwxMy4xNDEgMjkuMzUxLDI5LjM1NiAwLDUuMjk3IC0xLjQxOCwxMC4yODEgLTMuODc5LDE0LjU3OCAtMC4wMTksMC4wMzUgLTAuMDQzLDAuMDYyIC0wLjA1LDAuMDk3IEwgMzY5LjAyMyw1NzIuODQ2IGMgLTMuODYzLDYuNjY0IC01LjY0OCw5LjMwNCAtOS40MDIsMTMuMDU4IC01LjczLDUuNzMxIC0xMy4yNDIsOC41OTggLTIwLjc1NCw4LjU5OCB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTMiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjMTEyMWM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1ODcuMTQ2IGMgLTcuMTI1LDAuMDUxIC0xNC45NTMsLTMuNTkzIC0xOC43ODEsLTEwLjM5OCBMIDEwLjc4OSw0MC44NDkgQyA5LjAwOCwzNy4yMDEgOC4yNTgsMzQuMDI5IDguMjM0LDMwLjQgOC4yMzQsMjMuOTA0IDExLjEwNSwxNy43NCAxNi4wODIsMTMuNTUzIDIwLjQ2OSwxMC4xNjYgMjQuNjE3LDguNCAzMC4yMDMsOC40IGwgNjE3LjkwNiwwIGMgMy43NywtMC4wMzUgNy41NDMsMC44NzEgMTAuOTgxLDMuMTMzIDYuNDQxLDMuODk1IDEwLjM5OCwxMC44ODMgMTAuNDA2LDE4LjQyNiAtMC4xODQsMy44OTQgLTEuMTQ4LDggLTIuODc5LDEwLjg5IEwgMzU3LjUwNCw1NzYuODMgYyAtMC4wMzEsMC4wNDcgLTAuMDU5LDAuMDk0IC0wLjA5NCwwLjE0MSAtMC4wMjcsMC4wNDYgLTAuMDYyLDAuMDg2IC0wLjA5LDAuMTQ0IC0xLjA5NywxLjc1OCAtMi40NzIsMy4zMDUgLTQuMDQ3LDQuNjMzIC0zLjU4MiwzLjEwOSAtOC4wNzgsNC45NzYgLTEyLjgxNiw1LjMwOSAtMC41MzEsMC4wNTQgLTEuMDYyLDAuMDg1IC0xLjU5LDAuMDg5IHogTSAzMC4yMDMsOC40IGwgLTEuNTIzLDAgMS41NTQsMCAtMC4wMzEsMCB6IE0gMzM4LjU0Nyw0ODAuOTI4IDU3NC4yNSw3Mi40IGwgLTQ3MS43MzgsMCAyMzYuMDM1LDQwOC41MjggeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDIxMzU1IgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDMzOC44NjcsNTk0LjkgYyAtNy42MTcsMCAtMTUuMjMsLTIuOTA2IC0yMS4wMzksLTguNzIyIC0xLjkwNiwtMS44OTUgLTMuNDkyLC00LjAwNCAtNC43NzMsLTYuMjI3IGwgLTE1LjEyOSwtMjUuOTU3IC0wLjA3NCwwIEwgNC42NDEsNDUuNzU2IEMgNC41NzQsNDUuNjM5IDQuNTIzLDQ1LjUzNyA0LjQ3Nyw0NS40NTUgMi45NzMsNDMuMDMzIDEuNzk3LDQwLjM1MyAxLjAyLDM3LjQ1OSAtMy4yMywyMS41ODggNi4xOTEsNS4yNzEgMjIuMDU5LDEuMDE3IDI0LjY4LDAuMzE0IDI3LjMxNiwtMC4wMDYgMjkuODk4LDAuMDAyIGwgNjE4LjA3NSwwIGMgMTYuNDI1LDAgMjkuNzUsMTMuMzI4IDI5Ljc1LDI5Ljc1OCAwLDUuMzc1IC0xLjQzOCwxMC40MTQgLTMuOTM0LDE0Ljc3MyAtMC4wMTYsMC4wMTYgLTAuMDIzLDAuMDUxIC0wLjA0NywwLjA5OCBMIDM2OS4zNzksNTczLjA0NSBjIC0zLjg3MSw2LjY2OCAtNS42OTUsOS4zNjMgLTkuNDczLDEzLjEzMyAtNS44MDgsNS44MTYgLTEzLjQyNiw4LjcyMiAtMjEuMDM1LDguNzIyIGwgLTAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgNy41MTIsMCAxNS4wMjQsLTIuODY3IDIwLjc1NCwtOC41OTggMy43NTQsLTMuNzU0IDUuNTM5LC02LjM5NCA5LjQwMiwtMTMuMDU4IEwgNjczLjM5MSw0NC40MzUgYyAwLjAxMSwtMC4wMzUgMC4wMzUsLTAuMDYyIDAuMDU0LC0wLjA5NyAyLjQ2MSwtNC4yOTcgMy44NzksLTkuMjgxIDMuODc5LC0xNC41NzggMCwtMTYuMjE1IC0xMy4xNCwtMjkuMzU2IC0yOS4zNTEsLTI5LjM1NiBsIC02MTguMDc1LDAgQyAyNy4zNDgsMC4zOTIgMjQuNzUsMC43MDkgMjIuMTYsMS40MDQgNi41MDQsNS41OTkgLTIuNzg5LDIxLjY5NyAxLjM5OCwzNy4zNTMgYyAwLjc3LDIuODY4IDEuOTUsNS41MiAzLjQzNCw3LjkxMSAwLjA1NSwwLjEwMSAwLjA5OCwwLjE5NSAwLjE0OCwwLjI4OSBsIDI5My4xMDYsNTA4LjA0MyAwLjA2NiwwIDE1LjI0NiwyNi4xNTYgYyAxLjI2MiwyLjE5OSAyLjgyOSw0LjI3MyA0LjcxMSw2LjE1MiA1LjczNSw1LjczMSAxMy4yMzksOC41OTggMjAuNzU4LDguNTk4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgyMTM1NyIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzNTAuODk4LDE0OS4zODEgYyAwLDIuMzk0IDAuNzksNC43NDYgMi4yMjcsNi42NjQgbCAyLjIwMywyLjk1NyBjIDEuNTYzLDIuMDYyIDIuODcxLDQuMzEyIDMuODkxLDYuNjg3IGwgMTQuNjI5LDMzLjYzNyBjIDEuNDc2LDMuMzk1IDQuODA0LDUuNTYzIDguNDY4LDUuNTYzIGwgOTIuNDI2LDAgYyAzLjY4NCwwIDcuMDEyLC0yLjE2OCA4LjQ4OCwtNS41NjMgbCAxNC42MSwtMzMuNjM3IGMgMS4wMzksLTIuMzc1IDIuMzUxLC00LjYyNSAzLjg5LC02LjY4NyBsIDIuMjI3LC0yLjk1NyBjIDEuNDM0LC0xLjkxOCAyLjIyNywtNC4yNyAyLjIyNywtNi42NjQgbCAwLC0yNC4wNTkgYyAwLC01LjEwMSAtNC4xNDEsLTkuMjQ2IC05LjI2MiwtOS4yNDYgbCAtMTM2Ljc4NSwwIGMgLTUuMDk4LDAgLTkuMjM5LDQuMTQ1IC05LjIzOSw5LjI0NiBsIDAsMjQuMDU5IHogbSAxNy41NTksMTQuODA4IDEyMC4xNjQsMCAtMTIuNzE1LDI5LjIyMyBjIC0wLjU4MiwxLjM1MiAtMS45MTQsMi4yMjcgLTMuMzksMi4yMjcgbCAtODcuOTU0LDAgYyAtMS40NzYsMCAtMi44MDgsLTAuODc1IC0zLjM5LC0yLjIyNyBsIC0xMi43MTUsLTI5LjIyMyB6IG0gLTguMzIsLTUxLjgyIDIyLjE3OSwwIDAsLTIwLjM1MiBjIDAsLTMuMDU4IC0yLjQ3NiwtNS41MzkgLTUuNTM1LC01LjUzOSBsIC0xMS4wOSwwIGMgLTMuMDU4LDAgLTUuNTU0LDIuNDgxIC01LjU1NCw1LjUzOSBsIDAsMjAuMzUyIHogbSAxMTQuNjA1LDAgMjIuMTgsMCAwLC0yMC4zNTIgYyAwLC0zLjA1OCAtMi40NzMsLTUuNTM5IC01LjUzNSwtNS41MzkgbCAtMTEuMDksMCBjIC0zLjA1OSwwIC01LjU1NSwyLjQ4MSAtNS41NTUsNS41MzkgbCAwLDIwLjM1MiB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTkiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMjg1Ljg5OCwyMDAuMzQyIGMgMCwyLjA0MyAwLjY2OCw0LjA0MyAxLjg5NSw1LjY4NyBsIDEuODk1LDIuNTIgYyAxLjMwOCwxLjc2OSAyLjQzMywzLjY2NCAzLjMwOCw1LjcwNyBsIDEyLjQ2MSwyOC42NiBjIDEuMjUsMi44NzUgNC4xMDIsNC43NDYgNy4yMjMsNC43NDYgbCA3OC43OTcsMCBjIDMuMTQsMCA1Ljk3MiwtMS44NzEgNy4yMTgsLTQuNzQ2IGwgMTIuNDY1LC0yOC42NiBjIDAuODk1LC0yLjA0MyAxLjk5NiwtMy45MzggMy4zMjgsLTUuNzA3IGwgMC45MzgsLTEuMjUgLTMzLjEwNiwwIGMgLTQuNjQsMCAtOC44MiwtMi43NSAtMTAuNjc1LC03IGwgLTEyLjMxNywtMjguMzQ0IC02NS41NDMsMCBjIC00LjM0NywwIC03Ljg4NywzLjUxOSAtNy44ODcsNy44OTEgbCAwLDIwLjQ5NiB6IG0gMTQuOTYxLDEyLjYyMSAxMDIuNDM0LDAgLTEwLjg0LDI0LjkxIGMgLTAuNSwxLjE0OCAtMS42MjEsMS44OTggLTIuODkxLDEuODk4IGwgLTc0Ljk2OCwwIGMgLTEuMjUsMCAtMi4zOTUsLTAuNzUgLTIuODk1LC0xLjg5OCBsIC0xMC44NCwtMjQuOTEgeiBtIC03LjA3NCwtNDQuMTc2IDE4Ljg5NSwwIDAsLTE3LjM0OCBjIDAsLTIuNjA1IC0yLjEwMiwtNC43MyAtNC43MjcsLTQuNzMgbCAtOS40NDUsMCBjIC0yLjYyMSwwIC00LjcyMywyLjEyNSAtNC43MjMsNC43MyBsIDAsMTcuMzQ4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgyMTM2MSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAyMjguMTI1LDI0NS42NDIgYyAwLDEuNzI3IDAuNTU5LDMuNDE1IDEuNjAyLDQuODA5IGwgMS42MDEsMi4xMjUgYyAxLjEyNSwxLjUgMi4wNTksMy4xMjUgMi44MDksNC44MzIgbCAxMC41NTEsMjQuMjY2IGMgMS4wNTgsMi40MzcgMy40NTMsNCA2LjA5Myw0IGwgNjYuNjY4LDAgYyAyLjY2NCwwIDUuMDU1LC0xLjU2MyA2LjExNywtNCBsIDEwLjU1MSwtMjQuMjY2IGMgMC43NDYsLTEuNzA3IDEuNjg0LC0zLjMzMiAyLjgwOSwtNC44MzIgbCAxLjYwMSwtMi4xMjUgMC4yNSwtMC4zNzUgLTI2LjA5MywwIGMgLTQuMDk4LDAgLTcuODAxLC0yLjQzNCAtOS40MjYsLTYuMTg0IGwgLTkuNjc2LC0yMi4yODUgLTU4LjgwMSwwIGMgLTMuNjYsMCAtNi42NTYsMi45OTYgLTYuNjU2LDYuNjg0IGwgMCwxNy4zNTEgeiBtIDEyLjY3MiwxMC42ODQgODYuNjYsMCAtOS4xNzYsMjEuMDc4IGMgLTAuNDE0LDAuOTgxIC0xLjM3MSwxLjYwNiAtMi40MzMsMS42MDYgbCAtNjMuNDQyLDAgYyAtMS4wNjIsMCAtMi4wMTksLTAuNjI1IC0yLjQ1NywtMS42MDYgbCAtOS4xNTIsLTIxLjA3OCB6IG0gLTYuMDE2LC0zNy4zODcgMTYsMCAwLC0xNC42ODMgYyAwLC0yLjIwNyAtMS43ODksLTQgLTMuOTkyLC00IGwgLTcuOTkyLDAgYyAtMi4yMDMsMCAtNC4wMTYsMS43OTMgLTQuMDE2LDQgbCAwLDE0LjY4MyB6IiAvPjwvZz48L2c+PC9zdmc+",
|
|
3985
4818
|
width: 34,
|
|
@@ -4029,7 +4862,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4029
4862
|
},
|
|
4030
4863
|
{
|
|
4031
4864
|
from: 15,
|
|
4032
|
-
to:
|
|
4865
|
+
to: 21,
|
|
4033
4866
|
image: {
|
|
4034
4867
|
url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgaWQ9InN2ZzcyODMiCiAgIHZlcnNpb249IjEuMSIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgd2lkdGg9Ijg0Ny4xNTg1NyIKICAgaGVpZ2h0PSI3NDMuNjIyNjgiCiAgIHZpZXdCb3g9IjAgMCA4NDcuMTU4NTcgNzQzLjYyMjY4Ij48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE3Mjg5Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNzI4NyI+PGNsaXBQYXRoCiAgICAgICBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJjbGlwRW1mUGF0aDEiPjxwYXRoCiAgICAgICAgIGQ9Im0gMCw0OC4yMjQ2IDU0LjgyNDYsMCBMIDU0LjgyNDYsMCAwLDAgMCw0OC4yMjQ2IFoiCiAgICAgICAgIGlkPSJwYXRoMzM0NCIgLz48L2NsaXBQYXRoPjxwYXR0ZXJuCiAgICAgICBpZD0iRU1GaGJhc2VwYXR0ZXJuIgogICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHdpZHRoPSI2IgogICAgICAgaGVpZ2h0PSI2IgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiIC8+PC9kZWZzPjxnCiAgICAgaWQ9Imc3MjkxIgogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNzQzLjYyMjY3KSI+PGcKICAgICAgIGlkPSJnNzI5MyI+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU5NC41IGMgNy41MTIsMCAxNS4wMjgsLTIuODY3IDIwLjc1OCwtOC41OTggMS44NzksLTEuODc5IDMuNDQ1LC0zLjk1MyA0LjcwNywtNi4xNTIgbCAxNS4yNDYsLTI2LjE1NyAwLjA3MSwwIDI5My4xMDEsLTUwOC4wMzkgYyAwLjA1NSwtMC4wOTcgMC4wOTgsLTAuMTk1IDAuMTUzLC0wLjI5MyAxLjQ4OCwtMi4zOTQgMi42NTYsLTUuMDQzIDMuNDI1LC03LjkxIDQuMTk2LC0xNS42NTYgLTUuMDk3LC0zMS43NTQgLTIwLjc1OCwtMzUuOTQ5IC0yLjU4NSwtMC42OTUgLTUuMTgzLC0xLjAxMiAtNy43MzgsLTEgbCAtNjE4LjA2NiwwIGMgLTE2LjIxNSwwIC0yOS4zNTYsMTMuMTQxIC0yOS4zNTYsMjkuMzU2IDAsNS4zMDQgMS40MTQsMTAuMjgxIDMuODc5LDE0LjU3OCAwLjAyLDAuMDMxIDAuMDM1LDAuMDYyIDAuMDUxLDAuMDk3IGwgMzA0LjM2Nyw1MjguNDEgYyAzLjg2Myw2LjY2NSA1LjY1Myw5LjMwNSA5LjQwNiwxMy4wNTkgNS43MzEsNS43MzEgMTMuMjQzLDguNTk4IDIwLjc1NCw4LjU5OCB6IgogICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBpZD0icGF0aDcyOTUiIC8+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU4Ny4xNDQgYyA3LjEyNSwwLjA1MSAxNC45NSwtMy41OSAxOC43ODIsLTEwLjQwNiBMIDY2Ni45MzQsNDAuODQ3IGMgMS43ODUsLTMuNjQ4IDIuNTM1LC02LjgyIDIuNTU4LC0xMC40NDkgMCwtNi40OTYgLTIuODc1LC0xMi42NiAtNy44NDcsLTE2Ljg0IC00LjM4MywtMy4zOTQgLTguNTM2LC01LjE2IC0xNC4xMjIsLTUuMTYgbCAtNjE3LjkwNiwwIEMgMjUuODQ4LDguMzYzIDIyLjA3LDkuMjY5IDE4LjY0MSwxMS41MzEgMTIuMTg4LDE1LjQyOSA4LjIzOCwyMi40MTQgOC4yMywyOS45NTcgYyAwLjE4NCwzLjg5NCAxLjE0NSw4IDIuODc5LDEwLjg5IGwgMzA5LjExNCw1MzUuOTgxIGMgMC4wMjcsMC4wNDcgMC4wNTgsMC4wOTQgMC4wODksMC4xNCAwLjAzMiwwLjA0NyAwLjA2MywwLjA5NCAwLjA5NCwwLjE0NSAxLjA5OCwxLjc1NCAyLjQ3MywzLjMwNSA0LjAzOSw0LjYzMyAzLjU5LDMuMTA5IDguMDg2LDQuOTc2IDEyLjgyNSw1LjMxNiAwLjUzMSwwLjA0NyAxLjA2MiwwLjA3OCAxLjU4OSwwLjA4MiB6IE0gNjQ3LjUyMyw4LjM5OCBsIDEuNTI0LDAgLTEuNTU1LDAgMC4wMzEsMCB6IE0gMzM5LjE4LDQ4MC45MzMgMTAzLjQ3Nyw3Mi4zOTggbCA0NzEuNzM4LDAgLTIzNi4wMzUsNDA4LjUzNSB6IgogICAgICAgICBzdHlsZT0iZmlsbDojYzExMjFjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBpZD0icGF0aDcyOTciIC8+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU5NC44OTggYyA3LjYxOCwwIDE1LjIzMSwtMi45MDYgMjEuMDM5LC04LjcxNSAxLjkwNywtMS45MDIgMy40OTMsLTQuMDA4IDQuNzc0LC02LjIzNCBsIDE1LjEyOSwtMjUuOTU3IDAuMDcsMCAyOTMuMjE1LC01MDguMjM4IGMgMC4wNjYsLTAuMTE4IDAuMTEzLC0wLjIxOSAwLjE2LC0wLjMwMSAxLjUwNCwtMi40MjIgMi42ODQsLTUuMTAyIDMuNDYxLC03Ljk5NiBDIDY4MC45NTcsMjEuNTg2IDY3MS41MzUsNS4yNjkgNjU1LjY2OCwxLjAxNSA2NTMuMDQ3LDAuMzEyIDY1MC40MSwtMC4wMDggNjQ3LjgyNCwwIEwgMjkuNzU4LDAgQyAxMy4zMjgsMCAwLDEzLjMyOCAwLDI5Ljc1OCBjIDAsNS4zNzUgMS40MzgsMTAuNDE3IDMuOTM0LDE0Ljc3MyAwLjAxMSwwLjAxOSAwLjAyNywwLjA1MSAwLjA1LDAuMDk4IGwgMzA0LjM2NCw1MjguNDE0IGMgMy44NzEsNi42NjggNS42OTUsOS4zNjMgOS40NjgsMTMuMTQgNS44MDksNS44MDkgMTMuNDI2LDguNzE1IDIxLjAzOSw4LjcxNSBsIDAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgLTcuNTExLDAgLTE1LjAyMywtMi44NjcgLTIwLjc1NCwtOC41OTggLTMuNzUzLC0zLjc1NCAtNS41NDMsLTYuMzk0IC05LjQwNiwtMTMuMDU5IEwgNC4zMzYsNDQuNDMzIEMgNC4zMTYsNDQuMzk4IDQuMzAxLDQ0LjM2NyA0LjI4MSw0NC4zMzYgMS44MTYsNDAuMDM5IDAuNDAyLDM1LjA2MiAwLjQwMiwyOS43NTggMC40MDIsMTMuNTQzIDEzLjU0MywwLjQwMiAyOS43NTgsMC40MDIgbCA2MTguMDY2LDAgYyAyLjU1NSwtMC4wMTIgNS4xNTMsMC4zMDUgNy43MzgsMSAxNS42NjEsNC4xOTUgMjQuOTU0LDIwLjI5MyAyMC43NTgsMzUuOTQ5IC0wLjc2NSwyLjg2NyAtMS45MzcsNS41MTYgLTMuNDI1LDcuOTEgLTAuMDU1LDAuMDk4IC0wLjA5OCwwLjE5NiAtMC4xNTMsMC4yOTMgbCAtMjkzLjEwMSw1MDguMDM5IC0wLjA3MSwwIC0xNS4yNDYsMjYuMTU3IGMgLTEuMjYyLDIuMTk5IC0yLjgyOCw0LjI3MyAtNC43MDcsNi4xNTIgLTUuNzMsNS43MzEgLTEzLjI0Miw4LjU5OCAtMjAuNzU4LDguNTk4IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGlkPSJwYXRoNzI5OSIgLz48L2c+PC9nPjxnCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoNTQuNjM3NzcxLDAsMCw1NC42Mzc3NzEsMTM1MDguNjYxLC04NTgwLjUzNjQpIgogICAgIGlkPSJnMzM2OSI+PHBhdGgKICAgICAgIGlkPSJwYXRoMzM0NyIKICAgICAgIGQ9IiIKICAgICAgIGNsaXAtcGF0aD0idXJsKCNjbGlwRW1mUGF0aDEpIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6bm9uZSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNDcuMjA4MDcsMTU3LjA0NDA0KSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgzMzU1IgogICAgICAgZD0ibSAtMjM5LjM5NzYzLDE2OC4zMDQ2MiAwLjc2MiwtMC45MTAxNyBjIDAuMDQyMywtMC4wMjEyIDAuMDg0NywtMC4wNjM1IDAuMTI3LC0wLjA2MzUgbCAwLjE0ODE3LC0wLjA2MzUgYyAwLjA4NDcsLTAuMDIxMiAwLjE2OTMzLC0wLjA4NDcgMC4yMzI4MywtMC4xNDgxNiBsIDAuNTI5MTQsLTAuNjEzODEgYyAwLjIzMjgzLC0wLjI5NjMzIDAuNjU2MTcsLTAuMzE3NSAwLjkzMTMzLC0wLjA4NDcgMC4wNDIzLDAuMDIxMiAwLjA4NDcsMC4wNjM1IDAuMTA1ODQsMC4xMDU4NCBsIDEuMzc1ODMsMS43Nzc5NyBjIDAuMDQyMywwLjA2MzUgMC4wNDIzLDAuMTQ4MTcgLTAuMDIxMiwwLjE5MDUgLTAuMDIxMiwwLjAyMTIgLTAuMDYzNSwwLjA0MjMgLTAuMDg0NywwLjA0MjMgbCAtNC4wMDA0NywwIGMgLTAuMDg0NywwIC0wLjEyNywtMC4wNjM1IC0wLjEyNywtMC4xNDgxNyAwLC0wLjAyMTIgMCwtMC4wNjM1IDAuMDIxMiwtMC4wODQ3IHogbSAxLjAxNiwtNS4xMjIzIGMgMCwwLjI3NTE2IC0wLjIzMjgzLDAuNTA4IC0wLjUwOCwwLjUwOCAtMC4yNzUxNiwwIC0wLjUwOCwtMC4yMzI4NCAtMC41MDgsLTAuNTA4IDAsLTAuMjc1MTcgMC4yMzI4NCwtMC40ODY4MSAwLjUwOCwtMC40ODY4MSAwLjI3NTE3LDAgMC41MDgsMC4yMTE2NCAwLjUwOCwwLjQ4NjgxIHogbSAtMi43NTE2NiwyLjEzNzgzIDAuNzQwODMsLTEuMzk3IC0wLjUyOTE3LDAgLTAuMzE3NSwwLjU5MjY3IDAuMzE3NSwwLjI3NTE2IC0wLjEwNTgzLDAuMTkwNSAtMC4zMTc1LC0wLjI1NCAtMC4xNDgxNCwwLjI3NTE3IGMgLTAuMjMyODMsLTAuMTI3IC0wLjMxNzUsLTAuNDIzMzMgLTAuMTkwNSwtMC42MzUgbCAwLjM4MDk3LC0wLjc0MDgzIGMgMC4wNjM1LC0wLjEwNTg0IDAuMTY5MzQsLTAuMTY5MzQgMC4yOTYzNCwtMC4xNjkzNCBsIDEuMTg1MzMsMCBjIDAuMjk2MzMsMCAwLjUyOTE3LDAuMjMyODQgMC41MjkxNywwLjUyOTE3IDAsMC4wMjEyIDAsMC4wMjEyIDAsMC4wNDIzIGwgLTAuMTI3LDEuOTg5NjcgMS4yNDg4MywxLjA1ODMgYyAtMC4wNDIzLDAuMDQyMyAtMC4xMDU4MywwLjA4NDcgLTAuMTkwNSwwLjEyNyBsIC0xLjA3OTUsLTAuOTEwMTQgLTAuMDIxMiwwLjIzMjg0IGMgLTAuMjU0LC0wLjAyMTIgLTAuNDQ0NSwtMC4yMzI4NCAtMC40MjMzMywtMC40ODY4NCBsIDAsLTAuMTA1ODMgLTAuMzE3NSwtMC4yNTQgMC4xMDU4MywtMC4xOTA1IDAuMjMyODQsMC4xNjkzMyAwLjA0MjMsLTAuODI1NSAtMC40ODY4MywwLjkzMTM0IC0wLjgyNTUsLTAuNDQ0NSB6IG0gMS4zNzU4MywzLjIxNzMgYyAtMC4yOTYzMywwIC0wLjU1MDMzLC0wLjIzMjgzIC0wLjU1MDMzLC0wLjUyOTE2IGwgLTAuMDQyMywtMS4xMjE4NCAtMC41NTAzMywtMC44NDY2MyAtMS4zMzM0NywyLjQ5NzYzIGMgLTAuMjU0LC0wLjE0ODE2IC0wLjM1OTg0LC0wLjQ2NTY2IC0wLjIxMTY3LC0wLjc0MDgzIGwgMS4yNDg4MSwtMi4zNDk0NyAwLjgyNTUsMC40MjMzMyAwLjUyOTE2LDAuODI1NDcgYyAwLDAuMDIxMiAwLjAyMTIsMC4wNDIzIDAuMDIxMiwwLjA2MzUiCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjwvZz48L3N2Zz4=",
|
|
4035
4868
|
width: 34,
|
|
@@ -4079,7 +4912,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4079
4912
|
},
|
|
4080
4913
|
{
|
|
4081
4914
|
from: 15,
|
|
4082
|
-
to:
|
|
4915
|
+
to: 21,
|
|
4083
4916
|
image: {
|
|
4084
4917
|
url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDg0Ny4xNTg1NyA3NDMuNjIyNjgiCiAgIGhlaWdodD0iNzQzLjYyMjY4IgogICB3aWR0aD0iODQ3LjE1ODU3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1NDg4Ij48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1NDk0Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNTQ5MiIgLz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNzQzLjYyMjY3KSIKICAgICBpZD0iZzU0OTYiPjxnCiAgICAgICBpZD0iZzU0OTgiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoNTUwMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguODY3LDU5NC41IGMgLTcuNTEyLDAgLTE1LjAyNywtMi44NjcgLTIwLjc1OCwtOC41OTggLTEuODc5LC0xLjg3OSAtMy40NDUsLTMuOTUzIC00LjcwNywtNi4xNTIgbCAtMTUuMjQ2LC0yNi4xNTcgLTAuMDcsMCBMIDQuOTg0LDQ1LjU1NCBDIDQuOTMsNDUuNDU3IDQuODg3LDQ1LjM1OSA0LjgzMiw0NS4yNjEgMy4zNDQsNDIuODY3IDIuMTc2LDQwLjIxOCAxLjQwNiwzNy4zNTEgLTIuNzg5LDIxLjY5NSA2LjUwNCw1LjU5NyAyMi4xNjQsMS40MDIgYyAyLjU4NiwtMC42OTUgNS4xODQsLTEuMDEyIDcuNzM4LC0xIGwgNjE4LjA2NywwIGMgMTYuMjE1LDAgMjkuMzU1LDEzLjE0MSAyOS4zNTUsMjkuMzU2IDAsNS4zMDQgLTEuNDE0LDEwLjI4MSAtMy44NzksMTQuNTc4IC0wLjAxOSwwLjAzMSAtMC4wMzUsMC4wNjIgLTAuMDUsMC4wOTcgbCAtMzA0LjM2OCw1MjguNDEgYyAtMy44NjMsNi42NjUgLTUuNjUyLDkuMzA1IC05LjQwNiwxMy4wNTkgLTUuNzMsNS43MzEgLTEzLjI0Miw4LjU5OCAtMjAuNzU0LDguNTk4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGg1NTAyIgogICAgICAgICBzdHlsZT0iZmlsbDojYzExMjFjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDMzOC44NjcsNTg3LjE0NCBjIC03LjEyNSwwLjA1MSAtMTQuOTQ5LC0zLjU5IC0xOC43ODEsLTEwLjQwNiBMIDEwLjc5Myw0MC44NDcgQyA5LjAwOCwzNy4xOTkgOC4yNTgsMzQuMDI3IDguMjM0LDMwLjM5OCBjIDAsLTYuNDk2IDIuODc1LC0xMi42NiA3Ljg0OCwtMTYuODQgNC4zODMsLTMuMzk0IDguNTM1LC01LjE2IDE0LjEyMSwtNS4xNiBsIDYxNy45MDYsMCBjIDMuNzcsLTAuMDM1IDcuNTQ3LDAuODcxIDEwLjk3NywzLjEzMyA2LjQ1MywzLjg5OCAxMC40MDIsMTAuODgzIDEwLjQxLDE4LjQyNiAtMC4xODQsMy44OTQgLTEuMTQ0LDggLTIuODc5LDEwLjg5IEwgMzU3LjUwNCw1NzYuODI4IGMgLTAuMDI3LDAuMDQ3IC0wLjA1OSwwLjA5NCAtMC4wOSwwLjE0IC0wLjAzMSwwLjA0NyAtMC4wNjIsMC4wOTQgLTAuMDk0LDAuMTQ1IC0xLjA5NywxLjc1NCAtMi40NzIsMy4zMDUgLTQuMDM5LDQuNjMzIC0zLjU5LDMuMTA5IC04LjA4Niw0Ljk3NiAtMTIuODI0LDUuMzE2IC0wLjUzMSwwLjA0NyAtMS4wNjIsMC4wNzggLTEuNTksMC4wODIgeiBNIDMwLjIwMyw4LjM5OCBsIC0xLjUyMywwIDEuNTU0LDAgLTAuMDMxLDAgeiBNIDMzOC41NDcsNDgwLjkzMyA1NzQuMjUsNzIuMzk4IGwgLTQ3MS43MzgsMCAyMzYuMDM1LDQwOC41MzUgeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDU1MDQiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1OTQuODk4IGMgLTcuNjE3LDAgLTE1LjIzLC0yLjkwNiAtMjEuMDM5LC04LjcxNSAtMS45MDYsLTEuOTAyIC0zLjQ5MiwtNC4wMDggLTQuNzczLC02LjIzNCBsIC0xNS4xMjksLTI1Ljk1NyAtMC4wNzEsMCBMIDQuNjQxLDQ1Ljc1NCBDIDQuNTc0LDQ1LjYzNiA0LjUyNyw0NS41MzUgNC40OCw0NS40NTMgMi45NzcsNDMuMDMxIDEuNzk3LDQwLjM1MSAxLjAyLDM3LjQ1NyAtMy4yMywyMS41ODYgNi4xOTEsNS4yNjkgMjIuMDU5LDEuMDE1IDI0LjY4LDAuMzEyIDI3LjMxNiwtMC4wMDggMjkuOTAyLDAgbCA2MTguMDY3LDAgYyAxNi40MjksMCAyOS43NTgsMTMuMzI4IDI5Ljc1OCwyOS43NTggMCw1LjM3NSAtMS40MzgsMTAuNDE3IC0zLjkzNCwxNC43NzMgLTAuMDEyLDAuMDE5IC0wLjAyNywwLjA1MSAtMC4wNTEsMC4wOTggTCAzNjkuMzc5LDU3My4wNDMgYyAtMy44NzEsNi42NjggLTUuNjk1LDkuMzYzIC05LjQ2OSwxMy4xNCAtNS44MDgsNS44MDkgLTEzLjQyNiw4LjcxNSAtMjEuMDM5LDguNzE1IGwgLTAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgNy41MTIsMCAxNS4wMjQsLTIuODY3IDIwLjc1NCwtOC41OTggMy43NTQsLTMuNzU0IDUuNTQzLC02LjM5NCA5LjQwNiwtMTMuMDU5IEwgNjczLjM5MSw0NC40MzMgYyAwLjAxOSwtMC4wMzUgMC4wMzUsLTAuMDY2IDAuMDU0LC0wLjA5NyAyLjQ2NSwtNC4yOTcgMy44NzksLTkuMjc0IDMuODc5LC0xNC41NzggMCwtMTYuMjE1IC0xMy4xNCwtMjkuMzU2IC0yOS4zNTUsLTI5LjM1NiBsIC02MTguMDY3LDAgQyAyNy4zNDgsMC4zOSAyNC43NSwwLjcwNyAyMi4xNjQsMS40MDIgNi41MDQsNS41OTcgLTIuNzg5LDIxLjY5NSAxLjQwNiwzNy4zNTEgYyAwLjc2NiwyLjg2NyAxLjkzOCw1LjUxNiAzLjQyNiw3LjkxIDAuMDU1LDAuMDk4IDAuMDk4LDAuMTk2IDAuMTUyLDAuMjkzIGwgMjkzLjEwMiw1MDguMDM5IDAuMDcsMCAxNS4yNDYsMjYuMTU3IGMgMS4yNjIsMi4xOTkgMi44MjgsNC4yNzMgNC43MDcsNi4xNTIgNS43MzEsNS43MzEgMTMuMjQzLDguNTk4IDIwLjc1OCw4LjU5OCB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoNTUwNiIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguODY3LDQwOC40MTQgYyAtMTcuNjc2LDAgLTMyLjAwNCwtMTQuMzI4IC0zMi4wMDQsLTMyIGwgMTYsLTE4OC4wMTYgYyAwLC04LjgzNiA2LjM3MSwtMTYuMDE1IDE2LjAwNCwtMTYgOS42MjksMC4wMTYgMTUuOTk2LDcuODIgMTUuOTk2LDE2LjAxMiBsIDE2LDE4OC4wMDQgYyAwLDE3LjY3MiAtMTQuMzI0LDMyIC0zMS45OTYsMzIgeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDU1MDgiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzcwLjg2MywxMjQuMzk4IGMgMCwtMTcuNjgzIC0xNC4zMTYsLTMxLjk5NiAtMzEuOTk2LC0zMS45OTYgLTE3LjY3NiwwIC0zMi4wMDQsMTQuMzA5IC0zMi4wMDQsMzEuOTk2IDAsMTcuNjcyIDE0LjMyOCwzMi4wMDQgMzIuMDA0LDMyLjAwNCAxNy42OCwwIDMxLjk5NiwtMTQuMzMyIDMxLjk5NiwtMzIuMDA0IiAvPjwvZz48L2c+PC9zdmc+",
|
|
4085
4918
|
width: 34,
|
|
@@ -4097,11 +4930,11 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4097
4930
|
highway: [
|
|
4098
4931
|
{
|
|
4099
4932
|
from: 16,
|
|
4100
|
-
to:
|
|
4933
|
+
to: 21,
|
|
4101
4934
|
line: {
|
|
4102
|
-
color: "#
|
|
4935
|
+
color: "#c0c0c0",
|
|
4103
4936
|
width: 11,
|
|
4104
|
-
outlineColor: "#
|
|
4937
|
+
outlineColor: "#a2a2a2",
|
|
4105
4938
|
outlineWidth: 1
|
|
4106
4939
|
},
|
|
4107
4940
|
image: {
|
|
@@ -4121,9 +4954,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4121
4954
|
from: 13,
|
|
4122
4955
|
to: 15,
|
|
4123
4956
|
line: {
|
|
4124
|
-
color: "#
|
|
4957
|
+
color: "#c0c0c0",
|
|
4125
4958
|
width: 7,
|
|
4126
|
-
outlineColor: "#
|
|
4959
|
+
outlineColor: "#a2a2a2",
|
|
4127
4960
|
outlineWidth: 1
|
|
4128
4961
|
},
|
|
4129
4962
|
image: {
|
|
@@ -4143,9 +4976,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4143
4976
|
from: 10,
|
|
4144
4977
|
to: 12,
|
|
4145
4978
|
line: {
|
|
4146
|
-
color: "#
|
|
4979
|
+
color: "#c0c0c0",
|
|
4147
4980
|
width: 4,
|
|
4148
|
-
outlineColor: "#
|
|
4981
|
+
outlineColor: "#a2a2a2",
|
|
4149
4982
|
outlineWidth: 1
|
|
4150
4983
|
},
|
|
4151
4984
|
image: {
|
|
@@ -4165,7 +4998,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4165
4998
|
from: 6,
|
|
4166
4999
|
to: 9,
|
|
4167
5000
|
line: {
|
|
4168
|
-
color: "#
|
|
5001
|
+
color: "#c0c0c0",
|
|
4169
5002
|
width: 2
|
|
4170
5003
|
}
|
|
4171
5004
|
}
|
|
@@ -4173,11 +5006,11 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4173
5006
|
interstate_major: [
|
|
4174
5007
|
{
|
|
4175
5008
|
from: 17,
|
|
4176
|
-
to:
|
|
5009
|
+
to: 21,
|
|
4177
5010
|
line: {
|
|
4178
5011
|
width: 10,
|
|
4179
|
-
color: "#
|
|
4180
|
-
outlineColor: "#
|
|
5012
|
+
color: "#d4d4d4",
|
|
5013
|
+
outlineColor: "#c0c0c0",
|
|
4181
5014
|
outlineWidth: 1
|
|
4182
5015
|
},
|
|
4183
5016
|
text: {
|
|
@@ -4193,8 +5026,8 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4193
5026
|
to: 16,
|
|
4194
5027
|
line: {
|
|
4195
5028
|
width: 7,
|
|
4196
|
-
color: "#
|
|
4197
|
-
outlineColor: "#
|
|
5029
|
+
color: "#d4d4d4",
|
|
5030
|
+
outlineColor: "#c0c0c0",
|
|
4198
5031
|
outlineWidth: 1
|
|
4199
5032
|
},
|
|
4200
5033
|
text: {
|
|
@@ -4210,8 +5043,8 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4210
5043
|
to: 14,
|
|
4211
5044
|
line: {
|
|
4212
5045
|
width: 4,
|
|
4213
|
-
color: "#
|
|
4214
|
-
outlineColor: "#
|
|
5046
|
+
color: "#d4d4d4",
|
|
5047
|
+
outlineColor: "#c0c0c0",
|
|
4215
5048
|
outlineWidth: 1
|
|
4216
5049
|
},
|
|
4217
5050
|
text: {
|
|
@@ -4227,8 +5060,8 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4227
5060
|
to: 12,
|
|
4228
5061
|
line: {
|
|
4229
5062
|
width: 1,
|
|
4230
|
-
color: "#
|
|
4231
|
-
outlineColor: "#
|
|
5063
|
+
color: "#d4d4d4",
|
|
5064
|
+
outlineColor: "#c0c0c0",
|
|
4232
5065
|
outlineWidth: 1
|
|
4233
5066
|
}
|
|
4234
5067
|
},
|
|
@@ -4237,14 +5070,14 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4237
5070
|
to: 9,
|
|
4238
5071
|
line: {
|
|
4239
5072
|
width: 2,
|
|
4240
|
-
color: "#
|
|
5073
|
+
color: "#d4d4d4"
|
|
4241
5074
|
}
|
|
4242
5075
|
}
|
|
4243
5076
|
],
|
|
4244
5077
|
interstate_minor: [
|
|
4245
5078
|
{
|
|
4246
5079
|
from: 17,
|
|
4247
|
-
to:
|
|
5080
|
+
to: 21,
|
|
4248
5081
|
line: {
|
|
4249
5082
|
width: 10,
|
|
4250
5083
|
color: "#ffffff",
|
|
@@ -4307,7 +5140,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4307
5140
|
minor_road: [
|
|
4308
5141
|
{
|
|
4309
5142
|
from: 17,
|
|
4310
|
-
to:
|
|
5143
|
+
to: 21,
|
|
4311
5144
|
line: {
|
|
4312
5145
|
width: 7,
|
|
4313
5146
|
color: "#ffffff",
|
|
@@ -4327,7 +5160,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4327
5160
|
to: 16,
|
|
4328
5161
|
line: {
|
|
4329
5162
|
width: 3,
|
|
4330
|
-
color: "#ffffff"
|
|
5163
|
+
color: "#ffffff",
|
|
5164
|
+
outlineColor: "#cccccc",
|
|
5165
|
+
outlineWidth: 1
|
|
4331
5166
|
},
|
|
4332
5167
|
text: {
|
|
4333
5168
|
size: 12,
|
|
@@ -4349,7 +5184,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4349
5184
|
minor_road_oneway: [
|
|
4350
5185
|
{
|
|
4351
5186
|
from: 17,
|
|
4352
|
-
to:
|
|
5187
|
+
to: 21,
|
|
4353
5188
|
line: {
|
|
4354
5189
|
width: 7,
|
|
4355
5190
|
color: "#ffffff",
|
|
@@ -4371,7 +5206,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4371
5206
|
to: 16,
|
|
4372
5207
|
line: {
|
|
4373
5208
|
width: 3,
|
|
4374
|
-
color: "#ffffff"
|
|
5209
|
+
color: "#ffffff",
|
|
5210
|
+
outlineColor: "#cccccc",
|
|
5211
|
+
outlineWidth: 1
|
|
4375
5212
|
},
|
|
4376
5213
|
text: {
|
|
4377
5214
|
size: 12,
|
|
@@ -4393,7 +5230,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4393
5230
|
minor_road_oneway_reverse: [
|
|
4394
5231
|
{
|
|
4395
5232
|
from: 17,
|
|
4396
|
-
to:
|
|
5233
|
+
to: 21,
|
|
4397
5234
|
line: {
|
|
4398
5235
|
width: 7,
|
|
4399
5236
|
color: "#ffffff",
|
|
@@ -4415,7 +5252,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4415
5252
|
to: 16,
|
|
4416
5253
|
line: {
|
|
4417
5254
|
width: 3,
|
|
4418
|
-
color: "#ffffff"
|
|
5255
|
+
color: "#ffffff",
|
|
5256
|
+
outlineColor: "#cccccc",
|
|
5257
|
+
outlineWidth: 1
|
|
4419
5258
|
},
|
|
4420
5259
|
text: {
|
|
4421
5260
|
size: 12,
|
|
@@ -4437,7 +5276,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4437
5276
|
minor_road_restricted: [
|
|
4438
5277
|
{
|
|
4439
5278
|
from: 17,
|
|
4440
|
-
to:
|
|
5279
|
+
to: 21,
|
|
4441
5280
|
line: {
|
|
4442
5281
|
width: 2,
|
|
4443
5282
|
color: "#cccccc"
|
|
@@ -4475,7 +5314,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4475
5314
|
residential_road: [
|
|
4476
5315
|
{
|
|
4477
5316
|
from: 17,
|
|
4478
|
-
to:
|
|
5317
|
+
to: 21,
|
|
4479
5318
|
line: {
|
|
4480
5319
|
width: 3,
|
|
4481
5320
|
color: "#ffffff"
|
|
@@ -4507,7 +5346,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4507
5346
|
residential_road_oneway: [
|
|
4508
5347
|
{
|
|
4509
5348
|
from: 17,
|
|
4510
|
-
to:
|
|
5349
|
+
to: 21,
|
|
4511
5350
|
line: {
|
|
4512
5351
|
width: 3,
|
|
4513
5352
|
color: "#ffffff",
|
|
@@ -4541,7 +5380,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4541
5380
|
residential_road_oneway_rev: [
|
|
4542
5381
|
{
|
|
4543
5382
|
from: 17,
|
|
4544
|
-
to:
|
|
5383
|
+
to: 21,
|
|
4545
5384
|
line: {
|
|
4546
5385
|
width: 3,
|
|
4547
5386
|
color: "#ffffff",
|
|
@@ -4574,8 +5413,8 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4574
5413
|
],
|
|
4575
5414
|
foot_path: [
|
|
4576
5415
|
{
|
|
4577
|
-
from:
|
|
4578
|
-
to:
|
|
5416
|
+
from: 18,
|
|
5417
|
+
to: 21,
|
|
4579
5418
|
line: {
|
|
4580
5419
|
width: 2,
|
|
4581
5420
|
color: "rgba(1, 1, 1, 0)",
|
|
@@ -4589,12 +5428,22 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4589
5428
|
outlineColor: "#ffffff",
|
|
4590
5429
|
outlineWidth: 2
|
|
4591
5430
|
}
|
|
5431
|
+
},
|
|
5432
|
+
{
|
|
5433
|
+
from: 16,
|
|
5434
|
+
to: 27,
|
|
5435
|
+
line: {
|
|
5436
|
+
width: 1,
|
|
5437
|
+
color: "rgba(1, 1, 1, 0)",
|
|
5438
|
+
dashColor: "#cccccc",
|
|
5439
|
+
dashLength: 6
|
|
5440
|
+
}
|
|
4592
5441
|
}
|
|
4593
5442
|
],
|
|
4594
5443
|
rail: [
|
|
4595
5444
|
{
|
|
4596
5445
|
from: 16,
|
|
4597
|
-
to:
|
|
5446
|
+
to: 21,
|
|
4598
5447
|
line: {
|
|
4599
5448
|
width: 2,
|
|
4600
5449
|
color: "#8B8C8C",
|
|
@@ -4615,7 +5464,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4615
5464
|
ferry: [
|
|
4616
5465
|
{
|
|
4617
5466
|
from: 17,
|
|
4618
|
-
to:
|
|
5467
|
+
to: 21,
|
|
4619
5468
|
line: {
|
|
4620
5469
|
width: 3,
|
|
4621
5470
|
color: "#9e9e9e"
|
|
@@ -4655,7 +5504,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
|
|
|
4655
5504
|
interstateNumbers: [
|
|
4656
5505
|
{
|
|
4657
5506
|
from: 11,
|
|
4658
|
-
to:
|
|
5507
|
+
to: 21,
|
|
4659
5508
|
image: {
|
|
4660
5509
|
url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkJ1bmRlc3N0cmFzc2UiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIwMCAxMjAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMTIwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMDAgMTIwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe2ZpbGw6I0Y5REM4MTt9PC9zdHlsZT48cGF0aCBpZD0icmVjdDQiIGNsYXNzPSJzdDAiIGQ9Ik0yMi4zLDBoMTU1LjVDMTkwLDAsMjAwLDEwLDIwMCwyMi4zdjc1LjVjMCwxMi4zLTEwLDIyLjMtMjIuMywyMi4zSDIyLjNDMTAsMTIwLDAsMTEwLDAsOTcuOFYyMi4zIEMwLDEwLDEwLDAsMjIuMywweiIvPjxwYXRoIGlkPSJyZWN0NiIgZD0iTTIyLjMsNC4zaDE1NS41YzkuOSwwLDE4LDguMSwxOCwxOHY3NS41YzAsOS45LTguMSwxOC0xOCwxOEgyMi4zYy05LjksMC0xOC04LjEtMTgtMThWMjIuMyBDNC4zLDEyLjMsMTIuMyw0LjMsMjIuMyw0LjN6Ii8+PHBhdGggaWQ9InJlY3Q4IiBjbGFzcz0ic3QwIiBkPSJNMjIuMywxMS4zaDE1NS41YzYuMSwwLDExLDQuOSwxMSwxMXY3NS41YzAsNi4xLTQuOSwxMS0xMSwxMUgyMi4zYy02LjEsMC0xMS00LjktMTEtMTFWMjIuMyBDMTEuMywxNi4yLDE2LjIsMTEuMywyMi4zLDExLjN6Ii8+PC9zdmc+",
|
|
4661
5510
|
width: 27,
|
|
@@ -4683,46 +5532,55 @@ class MapReleaseFetcher {
|
|
|
4683
5532
|
this._token = token;
|
|
4684
5533
|
}
|
|
4685
5534
|
async getRelease(provider) {
|
|
5535
|
+
if (!provider) {
|
|
5536
|
+
provider = DEFAULT_PROVIDER;
|
|
5537
|
+
}
|
|
4686
5538
|
if (provider === "tomtom") {
|
|
4687
5539
|
if (!this._tomtom) {
|
|
4688
|
-
|
|
4689
|
-
this._tomtom = this.fetchAndExtractRelease(provider, url);
|
|
5540
|
+
this._tomtom = this.fetchAndExtractRelease(provider);
|
|
4690
5541
|
}
|
|
4691
5542
|
return this._tomtom;
|
|
4692
|
-
}
|
|
4693
|
-
if (provider === "orbis") {
|
|
5543
|
+
} else if (provider === "orbis") {
|
|
4694
5544
|
if (!this._orbis) {
|
|
4695
|
-
|
|
4696
|
-
this._orbis = this.fetchAndExtractRelease(provider, url);
|
|
5545
|
+
this._orbis = this.fetchAndExtractRelease(provider);
|
|
4697
5546
|
}
|
|
4698
5547
|
return this._orbis;
|
|
4699
5548
|
} else if (provider === "here") {
|
|
4700
5549
|
if (!this._here) {
|
|
4701
|
-
|
|
4702
|
-
this._here = this.fetchAndExtractRelease(provider, url);
|
|
5550
|
+
this._here = this.fetchAndExtractRelease(provider);
|
|
4703
5551
|
}
|
|
4704
5552
|
return this._here;
|
|
4705
5553
|
} else if (provider === "openstreetmap") {
|
|
4706
5554
|
if (!this._osm) {
|
|
4707
|
-
|
|
4708
|
-
this._osm = this.fetchAndExtractRelease(provider, url);
|
|
5555
|
+
this._osm = this.fetchAndExtractRelease(provider);
|
|
4709
5556
|
}
|
|
4710
5557
|
return this._osm;
|
|
4711
5558
|
}
|
|
5559
|
+
return null;
|
|
5560
|
+
}
|
|
5561
|
+
getUrl(provider) {
|
|
5562
|
+
const project = PROVIDER_PROJECTS[provider.toLowerCase()];
|
|
5563
|
+
return `https://v0.maptrip.de/?CMD=GETFILE&PROJECT=${project}&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true`;
|
|
4712
5564
|
}
|
|
4713
|
-
async fetchAndExtractRelease(provider
|
|
5565
|
+
async fetchAndExtractRelease(provider) {
|
|
5566
|
+
const project = PROVIDER_PROJECTS[provider.toLowerCase()];
|
|
5567
|
+
const url = `https://v0.maptrip.de/?CMD=GETFILE&PROJECT=${project}&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true`;
|
|
4714
5568
|
return new Promise((resolve, reject) => {
|
|
4715
5569
|
var xhr = new XMLHttpRequest();
|
|
4716
5570
|
xhr.onreadystatechange = () => {
|
|
4717
5571
|
if (xhr.readyState !== XMLHttpRequest.DONE) return;
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
5572
|
+
try {
|
|
5573
|
+
if (xhr.status === 200) {
|
|
5574
|
+
const text = new TextDecoder("latin1").decode(xhr.response);
|
|
5575
|
+
const textString = this.extractTargetString(text);
|
|
5576
|
+
const formattedString = textString.split("Q").join(" Q");
|
|
5577
|
+
const release = ` ${PROVIDER_NAMES[provider]} ${formattedString}`;
|
|
5578
|
+
resolve(release);
|
|
5579
|
+
} else {
|
|
5580
|
+
reject(`Error fetching: ${xhr.status}`);
|
|
5581
|
+
}
|
|
5582
|
+
} catch (e) {
|
|
5583
|
+
reject(`Error fetching: ${e}`);
|
|
4726
5584
|
}
|
|
4727
5585
|
};
|
|
4728
5586
|
xhr.open("GET", url, true);
|
|
@@ -4739,28 +5597,6 @@ class MapReleaseFetcher {
|
|
|
4739
5597
|
}
|
|
4740
5598
|
}
|
|
4741
5599
|
|
|
4742
|
-
class MapTripGoogleMapType {
|
|
4743
|
-
tileSize = new google.maps.Size(256, 256);
|
|
4744
|
-
alt = null;
|
|
4745
|
-
maxZoom = MAX_ZOOM;
|
|
4746
|
-
minZoom = MIN_ZOOM;
|
|
4747
|
-
projection = null;
|
|
4748
|
-
radius = 6378137;
|
|
4749
|
-
name;
|
|
4750
|
-
token;
|
|
4751
|
-
factory;
|
|
4752
|
-
constructor(properties) {
|
|
4753
|
-
this.name = properties.name ? properties.name : "infoware";
|
|
4754
|
-
this.token = properties.token;
|
|
4755
|
-
this.factory = VectorTileFactory.createFactory(properties);
|
|
4756
|
-
}
|
|
4757
|
-
getTile(coord, zoom) {
|
|
4758
|
-
return this.factory.getJsonTile(zoom, coord.x, coord.y, this.token);
|
|
4759
|
-
}
|
|
4760
|
-
releaseTile() {
|
|
4761
|
-
}
|
|
4762
|
-
}
|
|
4763
|
-
|
|
4764
5600
|
var leafletSrc$1 = {exports: {}};
|
|
4765
5601
|
|
|
4766
5602
|
/* @preserve
|
|
@@ -19284,96 +20120,968 @@ function requireLeafletSrc () {
|
|
|
19284
20120
|
}
|
|
19285
20121
|
|
|
19286
20122
|
var leafletSrcExports = requireLeafletSrc();
|
|
19287
|
-
const L$
|
|
20123
|
+
const L$2 = /*@__PURE__*/getDefaultExportFromCjs(leafletSrcExports);
|
|
20124
|
+
|
|
20125
|
+
class VectorTileUtils {
|
|
20126
|
+
static async getAttribution(token, provider, attribution, releaseDate) {
|
|
20127
|
+
let result = [ATTRIBUTION];
|
|
20128
|
+
if (releaseDate ? releaseDate : false) {
|
|
20129
|
+
const releaseFetcher = new MapReleaseFetcher(token);
|
|
20130
|
+
const release = await releaseFetcher.getRelease(provider).catch((error) => {
|
|
20131
|
+
console.error("Failed to fetch release:", error);
|
|
20132
|
+
return void 0;
|
|
20133
|
+
});
|
|
20134
|
+
if (release) {
|
|
20135
|
+
result.push(release);
|
|
20136
|
+
}
|
|
20137
|
+
}
|
|
20138
|
+
if (attribution) {
|
|
20139
|
+
result.push(attribution);
|
|
20140
|
+
}
|
|
20141
|
+
return result.join(", ");
|
|
20142
|
+
}
|
|
20143
|
+
}
|
|
19288
20144
|
|
|
19289
|
-
class MapTripLeafletGridLayer extends L$
|
|
19290
|
-
|
|
19291
|
-
MAX_ZOOM = MAX_ZOOM;
|
|
20145
|
+
class MapTripLeafletGridLayer extends L$2.GridLayer {
|
|
20146
|
+
static attributions = [];
|
|
19292
20147
|
token;
|
|
19293
20148
|
factory;
|
|
19294
|
-
releaseFetcher;
|
|
19295
20149
|
provider;
|
|
19296
|
-
attribution;
|
|
19297
|
-
release;
|
|
19298
20150
|
releaseDate;
|
|
20151
|
+
currentAttribution;
|
|
20152
|
+
attachedMap;
|
|
20153
|
+
customAttribution;
|
|
19299
20154
|
constructor(options) {
|
|
19300
|
-
super(
|
|
20155
|
+
super({
|
|
20156
|
+
...options,
|
|
20157
|
+
attribution: "",
|
|
20158
|
+
minZoom: Math.max(options.minZoom ? options.minZoom : MIN_ZOOM, MIN_ZOOM),
|
|
20159
|
+
maxZoom: Math.min(options.maxZoom ? options.maxZoom : MAX_ZOOM, MAX_ZOOM)
|
|
20160
|
+
});
|
|
19301
20161
|
this.token = options.token;
|
|
19302
|
-
this.provider = options.provider
|
|
19303
|
-
this.
|
|
19304
|
-
this.
|
|
19305
|
-
this.
|
|
19306
|
-
this.attribution
|
|
19307
|
-
|
|
19308
|
-
|
|
19309
|
-
|
|
19310
|
-
|
|
19311
|
-
if (this._map) {
|
|
19312
|
-
this._map.on(
|
|
19313
|
-
"baselayerchange",
|
|
19314
|
-
(event) => this.onBaseLayerChange(event)
|
|
19315
|
-
);
|
|
19316
|
-
}
|
|
19317
|
-
});
|
|
19318
|
-
}
|
|
19319
|
-
this.options.minZoom = options.minZoom ? Math.max(this.MIN_ZOOM, options.minZoom) : this.MIN_ZOOM;
|
|
19320
|
-
this.options.maxZoom = options.maxZoom ? Math.min(this.MAX_ZOOM, options.maxZoom) : this.MAX_ZOOM;
|
|
20162
|
+
this.provider = options.provider;
|
|
20163
|
+
this.customAttribution = options.attribution;
|
|
20164
|
+
this.releaseDate = options.releaseDate;
|
|
20165
|
+
this.currentAttribution = void 0;
|
|
20166
|
+
void VectorTileUtils.getAttribution(this.token, this.provider, this.customAttribution, this.releaseDate).then((attribution) => {
|
|
20167
|
+
this.updateAttribution(attribution);
|
|
20168
|
+
}).catch((error) => {
|
|
20169
|
+
console.error("Unable to add MapTrip attribution", error);
|
|
20170
|
+
});
|
|
19321
20171
|
this.factory = VectorTileFactory.createFactory(options);
|
|
19322
20172
|
}
|
|
20173
|
+
onAdd(map) {
|
|
20174
|
+
this.attachedMap = map;
|
|
20175
|
+
return super.onAdd(map);
|
|
20176
|
+
}
|
|
20177
|
+
onRemove(map) {
|
|
20178
|
+
const result = super.onRemove(map);
|
|
20179
|
+
this.attachedMap = void 0;
|
|
20180
|
+
return result;
|
|
20181
|
+
}
|
|
19323
20182
|
createTile(coords) {
|
|
19324
20183
|
return this.factory.getJsonTile(coords.z, coords.x, coords.y, this.token);
|
|
19325
20184
|
}
|
|
19326
|
-
|
|
19327
|
-
|
|
19328
|
-
|
|
19329
|
-
|
|
19330
|
-
|
|
19331
|
-
|
|
19332
|
-
const
|
|
19333
|
-
if (
|
|
19334
|
-
|
|
20185
|
+
updateAttribution(attribution) {
|
|
20186
|
+
const previous = this.options.attribution ?? "";
|
|
20187
|
+
if (previous === attribution) {
|
|
20188
|
+
return;
|
|
20189
|
+
}
|
|
20190
|
+
const map = this.attachedMap;
|
|
20191
|
+
const control = map?.attributionControl;
|
|
20192
|
+
if (control && map.hasLayer(this)) {
|
|
20193
|
+
control.removeAttribution(previous);
|
|
20194
|
+
}
|
|
20195
|
+
this.options.attribution = attribution;
|
|
20196
|
+
if (control && map.hasLayer(this)) {
|
|
20197
|
+
control.addAttribution(attribution);
|
|
19335
20198
|
}
|
|
19336
20199
|
}
|
|
19337
|
-
|
|
19338
|
-
|
|
19339
|
-
|
|
19340
|
-
|
|
19341
|
-
|
|
19342
|
-
|
|
20200
|
+
}
|
|
20201
|
+
|
|
20202
|
+
/**
|
|
20203
|
+
* MapLibre GL JS
|
|
20204
|
+
* @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v6.16.0/LICENSE.txt
|
|
20205
|
+
*/
|
|
20206
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(t(o,`default`,{value:n,enumerable:true}),n));function u(e,t){this.x=e,this.y=t;}u.prototype={clone(){return new u(this.x,this.y)},add(e){return this.clone()._add(e)},sub(e){return this.clone()._sub(e)},multByPoint(e){return this.clone()._multByPoint(e)},divByPoint(e){return this.clone()._divByPoint(e)},mult(e){return this.clone()._mult(e)},div(e){return this.clone()._div(e)},rotate(e){return this.clone()._rotate(e)},rotateAround(e,t){return this.clone()._rotateAround(e,t)},matMult(e){return this.clone()._matMult(e)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(e){return this.x===e.x&&this.y===e.y},dist(e){return Math.sqrt(this.distSqr(e))},distSqr(e){let t=e.x-this.x,n=e.y-this.y;return t*t+n*n},angle(){return Math.atan2(this.y,this.x)},angleTo(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith(e){return this.angleWithSep(e.x,e.y)},angleWithSep(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult(e){let t=e[0]*this.x+e[1]*this.y,n=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=n,this},_add(e){return this.x+=e.x,this.y+=e.y,this},_sub(e){return this.x-=e.x,this.y-=e.y,this},_mult(e){return this.x*=e,this.y*=e,this},_div(e){return this.x/=e,this.y/=e,this},_multByPoint(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint(e){return this.x/=e.x,this.y/=e.y,this},_unit(){return this._div(this.mag()),this},_perp(){let e=this.y;return this.y=this.x,this.x=-e,this},_rotate(e){let t=Math.cos(e),n=Math.sin(e),r=t*this.x-n*this.y,i=n*this.x+t*this.y;return this.x=r,this.y=i,this},_rotateAround(e,t){let n=Math.cos(e),r=Math.sin(e),i=t.x+n*(this.x-t.x)-r*(this.y-t.y),a=t.y+r*(this.x-t.x)+n*(this.y-t.y);return this.x=i,this.y=a,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:u},u.convert=function(e){if(e instanceof u)return e;if(Array.isArray(e))return new u(+e[0],+e[1]);if(e.x!==void 0&&e.y!==void 0)return new u(+e.x,+e.y);throw Error(`Expected [x, y] or {x, y} point format`)};function d(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return ((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u;}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5;}return ((l*n+c)*n+s)*n}}var g=typeof Float32Array<`u`?Float32Array:Array;function x(){var e=new g(9);return g!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function T(){var e=new g(16);return g!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function O(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function de(){var e=new g(3);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function pe(e){var t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function me(e,t,n){var r=new g(3);return r[0]=e,r[1]=t,r[2]=n,r}function be(e,t){var n=t[0],r=t[1],i=t[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function xe(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Se(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2];return e[0]=i*c-a*s,e[1]=a*o-r*c,e[2]=r*s-i*o,e}var Me=pe;(function(){var e=de();return function(t,n,r,i,a,o){var s,c;for(n||=3,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2];return t}})();function Ne(){var e=new g(4);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Le(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*n+r*r+i*i+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=i*o,e[3]=a*o,e}(function(){var e=Ne();return function(t,n,r,i,a,o){var s,c;for(n||=4,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],e[3]=t[s+3],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2],t[s+3]=e[3];return t}})();function Be(){var e=new g(4);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function He(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function We(e,t,n,r){var i=t[0],a=t[1],o=t[2],s=t[3],c=n[0],l=n[1],u=n[2],d=n[3],f,p=i*c+a*l+o*u+s*d,m,h,g;return p<0&&(p=-p,c=-c,l=-l,u=-u,d=-d),1-p>1e-6?(f=Math.acos(p),m=Math.sin(f),h=Math.sin((1-r)*f)/m,g=Math.sin(r*f)/m):(h=1-r,g=r),e[0]=h*i+g*c,e[1]=h*a+g*l,e[2]=h*o+g*u,e[3]=h*s+g*d,e}function Ge(e,t){var n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else {var i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);var a=(i+1)%3,o=(i+2)%3;r=Math.sqrt(t[i*3+i]-t[a*3+a]-t[o*3+o]+1),e[i]=.5*r,r=.5/r,e[3]=(t[a*3+o]-t[o*3+a])*r,e[a]=(t[a*3+i]+t[i*3+a])*r,e[o]=(t[o*3+i]+t[i*3+o])*r;}return e}var Je=Le;((function(){var e=de(),t=me(1,0,0),n=me(0,1,0);return function(r,i,a){var o=xe(i,a);return o<-0.999999?(Se(e,t,i),Me(e)<1e-6&&Se(e,n,i),be(e,e),He(r,e,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Se(e,i,a),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+o,Je(r,r))}}))(),function(){var e=Be(),t=Be();return function(n,r,i,a,o,s){return We(e,r,o,s),We(t,i,a,s),We(n,e,t,2*s*(1-s)),n}}(),function(){var e=x();return function(t,n,r,i){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=i[0],e[4]=i[1],e[7]=i[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],Je(t,Ge(t,e))}}();function Ye(){var e=new g(2);return g!=Float32Array&&(e[0]=0,e[1]=0),e}(function(){var e=Ye();return function(t,n,r,i,a,o){var s,c;for(n||=2,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],a(e,e,o),t[s]=e[0],t[s+1]=e[1];return t}})();const P=8192;function rt(e){return e instanceof Error?e:Error(typeof e==`string`?e:String(e))}function St(e,t,n,r){return d(e,t,n,r)}function F(e,t,n){return Math.min(n,Math.max(t,e))}function wt(e,t,n){let r=n-t,i=((e-t)%r+r)%r+t;return i===t?n:i}function I(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function Nt(e,t,n){let r={};for(let i in e)r[i]=t.call(this,e[i],i,e);return r}const Lt={};function L$1(e){Lt[e]||(typeof console<`u`&&console.warn(e),Lt[e]=true);}function Rt(e,t,n){return (n.y-e.y)*(t.x-e.x)>(t.y-e.y)*(n.x-e.x)}function Vt(e){return typeof WorkerGlobalScope<`u`&&e!==void 0&&e instanceof WorkerGlobalScope}let Ut=null;function Wt(e){if(Ut==null){let t=e.navigator?e.navigator.userAgent:null;Ut=!!e.safari||!!(t&&(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match(`Safari`)&&!t.match(`Chrome`)));}return Ut}function Gt(e){return typeof ImageBitmap<`u`&&e instanceof ImageBitmap}const Kt=async(e,t)=>{let n=new Blob([new Uint8Array(e)],{type:`image/png`});try{return createImageBitmap(n,t)}catch(e){throw Error(`Could not load image because of ${rt(e).message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}},qt=e=>new Promise((t,n)=>{let r=new Image;r.onload=()=>{t(r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>r.src=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=`);},r.onerror=()=>n(/* @__PURE__ */ Error(`Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));let i=new Blob([new Uint8Array(e)],{type:`image/png`});r.src=URL.createObjectURL(i);});const un=`AbortError`;var dn=class extends Error{constructor(e=un){super(e instanceof Error?e.message:e),this.name=un,e instanceof Error&&e.stack&&(this.stack=e.stack);}};function fn(e){return e instanceof Error&&e.name===`AbortError`}function pn(e){if(e.aborted)throw new dn(e.reason)}const _n={get hardwareConcurrency(){return typeof navigator<`u`&&navigator.hardwareConcurrency||4}};const Cn=/* @__PURE__ */ new Set(/* @__PURE__ */ `a.abbr.b.bdi.bdo.br.cite.code.del.div.em.i.img.ins.kbd.li.mark.ol.p.q.s.samp.small.span.strong.sub.sup.time.u.ul.var.wbr`.split(`.`)),wn=/* @__PURE__ */ new Set([`alt`,`class`,`datetime`,`dir`,`height`,`href`,`hreflang`,`lang`,`referrerpolicy`,`rel`,`role`,`src`,`target`,`title`,`translate`,`type`,`width`]),Tn=/* @__PURE__ */ new Set([`href`,`src`]),En=/* @__PURE__ */ new Set([`http:`,`https:`,`mailto:`]);let Dn;function On(){return Dn??={getAttribute:Element.prototype.getAttribute,getAttributeNames:Element.prototype.getAttributeNames,querySelectorAll:Element.prototype.querySelectorAll,remove:Element.prototype.remove,removeAttribute:Element.prototype.removeAttribute,localName:Object.getOwnPropertyDescriptor(Element.prototype,`localName`).get,namespaceURI:Object.getOwnPropertyDescriptor(Element.prototype,`namespaceURI`).get},Dn}(class e{static{this.docStyle=typeof window<`u`&&window.document?.documentElement.style;}static{this.selectProp=!e.docStyle||`userSelect`in e.docStyle?`userSelect`:`webkitUserSelect`;}static create(e,t,n){let r=window.document.createElement(e);return t!==void 0&&(r.className=t),n&&n.appendChild(r),r}static createNS(e,t){return window.document.createElementNS(e,t)}static disableDrag(){e.docStyle&&e.selectProp&&(e.userSelect=e.docStyle[e.selectProp],e.docStyle[e.selectProp]=`none`);}static enableDrag(){e.docStyle&&e.selectProp&&(e.docStyle[e.selectProp]=e.userSelect);}static suppressClickInternal(t){t.preventDefault(),t.stopPropagation(),window.removeEventListener(`click`,e.suppressClickInternal,true);}static suppressClick(){window.addEventListener(`click`,e.suppressClickInternal,true),window.setTimeout(()=>{window.removeEventListener(`click`,e.suppressClickInternal,true);},0);}static getScale(e){let t=e.getBoundingClientRect();return {x:t.width/e.offsetWidth||1,y:t.height/e.offsetHeight||1,boundingClientRect:t}}static getPoint(e,t,n){let r=t.boundingClientRect;return new u((n.clientX-r.left)/t.x-e.clientLeft,(n.clientY-r.top)/t.y-e.clientTop)}static mousePos(t,n){let r=e.getScale(t);return e.getPoint(t,r,n)}static touchPos(t,n){let r=[],i=e.getScale(t);for(let a of n)r.push(e.getPoint(t,i,a));return r}static sanitize(t){let n=new DOMParser().parseFromString(t,`text/html`).body,{querySelectorAll:r,remove:i}=On();for(let t of Array.from(r.call(n,`*`)))e.isAllowedElement(t)?e.removeDisallowedAttributes(t):i.call(t);let a=document.createDocumentFragment();return a.append(...n.childNodes),a}static isAllowedElement(e){let{namespaceURI:t,localName:n}=On();return t.call(e)===`http://www.w3.org/1999/xhtml`&&Cn.has(n.call(e))}static removeDisallowedAttributes(t){let{getAttributeNames:n,getAttribute:r,removeAttribute:i}=On();for(let a of n.call(t))e.isAllowedAttribute(a,r.call(t,a))||i.call(t,a);}static isAllowedAttribute(e,t){if(!wn.has(e)&&!e.startsWith(`aria-`))return false;if(!Tn.has(e))return true;try{return En.has(new URL(t,`https://maplibre.invalid/`).protocol)}catch{return false}}});const kn={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,REGISTERED_PROTOCOLS:{}};function An(e){return kn.REGISTERED_PROTOCOLS[e.substring(0,e.indexOf(`://`))]}function jn(e,t){kn.REGISTERED_PROTOCOLS[e]=t;}const Nn=`global-dispatcher`;var Pn=class extends Error{constructor(e,t,n,r){super(`AJAXError: ${t} (${e}): ${n}`),this.status=e,this.statusText=t,this.url=n,this.body=r;}};function Fn(){if(Vt(self))return self.worker?.referrer;if(window.location.protocol===`blob:`)try{return window.parent.location.href}catch{}return window.location.href}const In=e=>e.startsWith(`file:`)||Fn()?.startsWith(`file:`)&&!/^\w+:/.test(e);async function Ln(e,t){let n=new Request(e.url,{method:e.method||`GET`,body:e.body,credentials:e.credentials,headers:e.headers,cache:e.cache,referrer:Fn(),referrerPolicy:e.referrerPolicy,signal:t.signal});e.type===`json`&&!n.headers.has(`Accept`)&&n.headers.set(`Accept`,`application/json`);let r;try{r=await fetch(n);}catch(t){throw fn(t)?t:new Pn(0,rt(t).message,e.url,new Blob)}if(!r.ok){let t=await r.blob();throw new Pn(r.status,r.statusText,e.url,t)}let i;i=e.type===`arrayBuffer`||e.type===`image`?r.arrayBuffer():e.type===`json`?r.json():r.text();let a=await i;return pn(t.signal),{data:a,cacheControl:r.headers.get(`Cache-Control`),expires:r.headers.get(`Expires`),etag:r.headers.get(`ETag`)}}function Rn(e,t){return new Promise((n,r)=>{let i=new XMLHttpRequest;i.open(e.method||`GET`,e.url,true),(e.type===`arrayBuffer`||e.type===`image`)&&(i.responseType=`arraybuffer`);for(let t in e.headers)i.setRequestHeader(t,e.headers[t]);e.type===`json`&&(i.responseType=`text`,e.headers?.Accept||i.setRequestHeader(`Accept`,`application/json`)),i.withCredentials=e.credentials===`include`,i.onerror=()=>{r(Error(i.statusText));},i.onload=()=>{if(!t.signal.aborted){if((i.status>=200&&i.status<300||i.status===0)&&i.response!==null){let t=i.response;if(e.type===`json`)try{t=JSON.parse(i.response);}catch(e){r(e);return}n({data:t,cacheControl:i.getResponseHeader(`Cache-Control`),expires:i.getResponseHeader(`Expires`),etag:i.getResponseHeader(`ETag`)});}else {let t=new Blob([i.response],{type:i.getResponseHeader(`Content-Type`)});r(new Pn(i.status,i.statusText,e.url,t));}}},t.signal.addEventListener(`abort`,()=>{i.abort(),r(new dn(t.signal.reason));}),i.send(e.body);})}const zn=async function(e,t){if(e.url.includes(`://`)&&!/^https?:|^file:/.test(e.url)){let n=An(e.url);if(n){let r=await n(e,t);return !r.data&&e.type===`arrayBuffer`?I(r,{data:/* @__PURE__ */ new ArrayBuffer(0)}):r}if(Vt(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,targetMapId:Nn},t)}if(!In(e.url)){if(fetch&&Request&&AbortController&&Object.hasOwn(Request.prototype,`signal`))return Ln(e,t);if(Vt(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,mustQueue:true,targetMapId:Nn},t)}return Rn(e,t)};function Hn(e){if(!e||e.startsWith(`data:image/`))return true;if(e.startsWith(`blob:`)&&(e=e.slice(5),e.startsWith(`null`)))return false;if(e.indexOf(`://`)<=0)return true;let t=new URL(e),n=window.location;return t.protocol===n.protocol&&t.host===n.host}var Jn=class e{constructor(e,t,n){let r=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;let i=new Int32Array(this.arrayBuffer);e=i[0],t=i[1],n=i[2],this.d=t+2*n;for(let e=0;e<this.d*this.d;e++){let t=i[3+e],n=i[3+e+1];r.push(t===n?null:i.subarray(t,n));}let a=i[3+r.length],o=i[3+r.length+1];this.keys=i.subarray(a,o),this.bboxes=i.subarray(o),this.insert=this._insertReadonly;}else {this.d=t+2*n;for(let e=0;e<this.d*this.d;e++)r.push([]);this.keys=[],this.bboxes=[];}this.n=t,this.extent=e,this.padding=n,this.scale=t/e,this.uid=0;let i=n/t*e;this.min=-i,this.max=e+i;}insert(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertCell,this.uid++,void 0,void 0),this.keys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i);}_insertReadonly(){throw Error(`Cannot insert into a GridIndex created from an ArrayBuffer.`)}_insertCell(e,t,n,r,i,a){this.cells[i].push(a);}query(e,t,n,r,i){let a=this.min,o=this.max;if(e<=a&&t<=a&&o<=n&&o<=r&&!i)return [...this.keys];{let a=[];return this._forEachCell(e,t,n,r,this._queryCell,a,{},i),a}}_queryCell(e,t,n,r,i,a,o,s){let c=this.cells[i];if(c!==null){let i=this.keys,l=this.bboxes;for(let u of c)if(o[u]===void 0){let c=u*4;(s?s(l[c+0],l[c+1],l[c+2],l[c+3]):e<=l[c+2]&&t<=l[c+3]&&n>=l[c+0]&&r>=l[c+1])?(o[u]=true,a.push(i[u])):o[u]=false;}}}_forEachCell(e,t,n,r,i,a,o,s){let c=this._convertToCellCoord(e),l=this._convertToCellCoord(t),u=this._convertToCellCoord(n),d=this._convertToCellCoord(r);for(let f=c;f<=u;f++)for(let c=l;c<=d;c++){let l=this.d*c+f;if((!s||s(this._convertFromCellCoord(f),this._convertFromCellCoord(c),this._convertFromCellCoord(f+1),this._convertFromCellCoord(c+1)))&&i.call(this,e,t,n,r,l,a,o,s))return}}_convertFromCellCoord(e){return (e-this.padding)/this.scale}_convertToCellCoord(e){return Math.max(0,Math.min(this.d-1,Math.floor(e*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let e=this.cells,t=3+this.cells.length+1+1,n=0;for(let e of this.cells)n+=e.length;let r=new Int32Array(t+n+this.keys.length+this.bboxes.length);r[0]=this.extent,r[1]=this.n,r[2]=this.padding;let i=t;for(let t=0;t<e.length;t++){let n=e[t];r[3+t]=i,r.set(n,i),i+=n.length;}return r[3+e.length]=i,r.set(this.keys,i),i+=this.keys.length,r[3+e.length+1]=i,r.set(this.bboxes,i),i+=this.bboxes.length,r.buffer}static serialize(e,t){let n=e.toArrayBuffer();return t&&t.push(n),{buffer:n}}static deserialize(t){return new e(t.buffer)}},Yn={$version:8,$root:{version:{required:true,type:`enum`,values:[8]},name:{type:`string`},metadata:{type:`*`},center:{type:`array`,value:`number`,length:2},centerAltitude:{type:`number`},zoom:{type:`number`},bearing:{type:`number`,default:0,period:360,units:`degrees`},pitch:{type:`number`,default:0,units:`degrees`},roll:{type:`number`,default:0,units:`degrees`},state:{type:`state`,default:{}},light:{type:`light`},sky:{type:`sky`},projection:{type:`projection`},terrain:{type:`terrain`},sources:{required:true,type:`sources`},sprite:{type:`sprite`},glyphs:{type:`string`},"font-faces":{type:`fontFaces`},transition:{type:`transition`},layers:{required:true,type:`array`,value:`layer`}},sources:{"*":{type:`source`}},source:[`source_vector`,`source_raster`,`source_raster_dem`,`source_geojson`,`source_video`,`source_image`],source_vector:{type:{required:true,type:`enum`,values:{vector:{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:`enum`,values:{xyz:{},tms:{}},default:`xyz`},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},attribution:{type:`string`},promoteId:{type:`promoteId`},volatile:{type:`boolean`,default:false},encoding:{type:`enum`,values:{mvt:{},mlt:{}},default:`mvt`},"*":{type:`*`}},source_raster:{type:{required:true,type:`enum`,values:{raster:{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},tileSize:{type:`number`,default:512,units:`pixels`},scheme:{type:`enum`,values:{xyz:{},tms:{}},default:`xyz`},attribution:{type:`string`},volatile:{type:`boolean`,default:false},"*":{type:`*`}},source_raster_dem:{type:{required:true,type:`enum`,values:{"raster-dem":{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},tileSize:{type:`number`,default:512,units:`pixels`},attribution:{type:`string`},encoding:{type:`enum`,values:{terrarium:{},mapbox:{},custom:{}},default:`mapbox`},redFactor:{type:`number`,default:1},blueFactor:{type:`number`,default:1},greenFactor:{type:`number`,default:1},baseShift:{type:`number`,default:0},volatile:{type:`boolean`,default:false},"*":{type:`*`}},source_geojson:{type:{required:true,type:`enum`,values:{geojson:{}}},data:{required:true,type:`*`},maxzoom:{type:`number`,default:18},attribution:{type:`string`},buffer:{type:`number`,default:128,maximum:512,minimum:0},filter:{type:`filter`},tolerance:{type:`number`,default:.375},cluster:{type:`boolean`,default:false},clusterRadius:{type:`number`,default:50,minimum:0},clusterMaxZoom:{type:`number`},clusterMinPoints:{type:`number`},clusterProperties:{type:`*`},lineMetrics:{type:`boolean`,default:false},generateId:{type:`boolean`,default:false},promoteId:{type:`promoteId`}},source_video:{type:{required:true,type:`enum`,values:{video:{}}},urls:{required:true,type:`array`,value:`string`},coordinates:{required:true,type:`array`,length:4,value:{type:`array`,length:2,value:`number`}}},source_image:{type:{required:true,type:`enum`,values:{image:{}}},url:{type:`string`},coordinates:{required:true,type:`array`,length:4,value:{type:`array`,length:2,value:`number`}}},layer:{id:{type:`string`,required:true},type:{type:`enum`,values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},"color-relief":{},background:{}},required:true},metadata:{type:`*`},source:{type:`string`},"source-layer":{type:`string`},minzoom:{type:`number`,minimum:0,maximum:24},maxzoom:{type:`number`,minimum:0,maximum:24},filter:{type:`filter`},layout:{type:`layout`},paint:{type:`paint`}},layout:[`layout_fill`,`layout_line`,`layout_circle`,`layout_heatmap`,`layout_fill-extrusion`,`layout_symbol`,`layout_raster`,`layout_hillshade`,`layout_color-relief`,`layout_background`],layout_background:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_fill:{"fill-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_circle:{"circle-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_heatmap:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_fill-extrusion":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`},"fill-extrusion-rounded-corner-distance":{type:`number`,default:0,minimum:0,units:`meters`,"property-type":`constant`}},layout_line:{"line-cap":{type:`enum`,values:{butt:{},round:{},square:{}},default:`butt`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-join":{type:`enum`,values:{bevel:{},round:{},miter:{}},default:`miter`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-miter-limit":{type:`number`,default:2,requires:[{"line-join":`miter`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-round-limit":{type:`number`,default:1.05,requires:[{"line-join":`round`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_symbol:{"symbol-placement":{type:`enum`,values:{point:{},line:{},"line-center":{}},default:`point`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-spacing":{type:`number`,default:250,minimum:1,units:`pixels`,requires:[{"symbol-placement":`line`}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-avoid-edges":{type:`boolean`,default:false,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"symbol-z-order":{type:`enum`,values:{auto:{},"viewport-y":{},source:{}},default:`auto`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-allow-overlap":{type:`boolean`,default:false,requires:[`icon-image`,{"!":`icon-overlap`}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-ignore-placement":{type:`boolean`,default:false,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-optional":{type:`boolean`,default:false,requires:[`icon-image`,`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-size":{type:`number`,default:1,minimum:0,units:`factor of the original icon size`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-text-fit":{type:`enum`,values:{none:{},width:{},height:{},both:{}},default:`none`,requires:[`icon-image`,`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-text-fit-padding":{type:`array`,value:`number`,length:4,default:[0,0,0,0],units:`pixels`,requires:[`icon-image`,`text-field`,{"icon-text-fit":[`both`,`width`,`height`]}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"icon-image":{type:`resolvedImage`,tokens:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-padding":{type:`padding`,default:[2],units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-keep-upright":{type:`boolean`,default:false,requires:[`icon-image`,{"icon-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-offset":{type:`array`,value:`number`,length:2,default:[0,0],requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-anchor":{type:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:`center`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-field":{type:`formatted`,default:``,tokens:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-font":{type:`array`,value:`string`,default:[`Open Sans Regular`,`Arial Unicode MS Regular`],requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-size":{type:`number`,default:16,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-width":{type:`number`,default:10,minimum:0,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-line-height":{type:`number`,default:1.2,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-letter-spacing":{type:`number`,default:0,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-justify":{type:`enum`,values:{auto:{},left:{},center:{},right:{}},default:`center`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-radial-offset":{type:`number`,units:`ems`,default:0,requires:[`text-field`],"property-type":`data-driven`,expression:{interpolated:true,parameters:[`zoom`,`feature`]}},"text-variable-anchor":{type:`array`,value:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-variable-anchor-offset":{type:`variableAnchorOffsetCollection`,requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-anchor":{type:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:`center`,requires:[`text-field`,{"!":`text-variable-anchor`}],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-angle":{type:`number`,default:45,units:`degrees`,requires:[`text-field`,{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-writing-mode":{type:`array`,value:`enum`,values:{horizontal:{},vertical:{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-padding":{type:`number`,default:2,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-keep-upright":{type:`boolean`,default:true,requires:[`text-field`,{"text-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-transform":{type:`enum`,values:{none:{},uppercase:{},lowercase:{}},default:`none`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-offset":{type:`array`,value:`number`,units:`ems`,length:2,default:[0,0],requires:[`text-field`,{"!":`text-radial-offset`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-allow-overlap":{type:`boolean`,default:false,requires:[`text-field`,{"!":`text-overlap`}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-ignore-placement":{type:`boolean`,default:false,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-optional":{type:`boolean`,default:false,requires:[`text-field`,`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-height-offset":{type:`number`,default:0,units:`meters`,requires:[{"symbol-placement":[`point`]}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"symbol-height-anchor":{type:`enum`,values:{ground:{},absolute:{}},default:`ground`,requires:[`symbol-height-offset`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_raster:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_hillshade:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_color-relief":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},filter:{type:`boolean`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},filter_operator:{type:`enum`,values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:`enum`,values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:`expression`},stops:{type:`array`,value:`function_stop`},base:{type:`number`,default:1,minimum:0},property:{type:`string`,default:`$zoom`},type:{type:`enum`,values:{identity:{},exponential:{},interval:{},categorical:{}},default:`exponential`},colorSpace:{type:`enum`,values:{rgb:{},lab:{},hcl:{}},default:`rgb`},default:{type:`*`,required:false}},function_stop:{type:`array`,minimum:0,maximum:24,value:[`number`,`color`],length:2},expression:{type:`array`,value:`expression_name`,minimum:1},light:{anchor:{type:`enum`,default:`viewport`,values:{map:{},viewport:{}},"property-type":`data-constant`,transition:false,expression:{interpolated:false,parameters:[`zoom`]}},position:{type:`array`,default:[1.15,210,30],length:3,value:`number`,"property-type":`data-constant`,transition:true,expression:{interpolated:true,parameters:[`zoom`]}},color:{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},intensity:{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true}},sky:{"sky-color":{type:`color`,"property-type":`data-constant`,default:`#88C6FC`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"horizon-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"fog-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"fog-ground-blend":{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"horizon-fog-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"sky-horizon-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"atmosphere-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true}},terrain:{source:{type:`string`,required:true},exaggeration:{type:`number`,minimum:0,default:1}},projection:{type:{type:`projectionDefinition`,default:`mercator`,"property-type":`data-constant`,transition:false,expression:{interpolated:true,parameters:[`zoom`]}}},paint:[`paint_fill`,`paint_line`,`paint_circle`,`paint_heatmap`,`paint_fill-extrusion`,`paint_symbol`,`paint_raster`,`paint_hillshade`,`paint_color-relief`,`paint_background`],paint_fill:{"fill-antialias":{type:`boolean`,default:true,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"fill-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-outline-color":{type:`color`,transition:true,requires:[{"!":`fill-pattern`},{"fill-antialias":true}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`fill-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`fill-extrusion-pattern`}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`fill-extrusion-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"fill-extrusion-height":{type:`number`,default:0,units:`meters`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-base":{type:`number`,default:0,units:`meters`,transition:true,requires:[`fill-extrusion-height`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-vertical-gradient":{type:`boolean`,default:true,transition:false,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_line:{"line-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"line-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`line-pattern`}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"line-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`line-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"line-width":{type:`number`,default:1,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-gap-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-offset":{type:`number`,default:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-dasharray":{type:`array`,value:`number`,minimum:0,transition:true,units:`line widths`,requires:[{"!":`line-pattern`}],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"line-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"line-gradient":{type:`color`,transition:false,requires:[{"!":`line-dasharray`},{"!":`line-pattern`},{source:`geojson`,has:{lineMetrics:true}}],expression:{interpolated:true,parameters:[`line-progress`]},"property-type":`color-ramp`}},paint_circle:{"circle-radius":{type:`number`,default:5,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-blur":{type:`number`,default:0,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"circle-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`circle-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-pitch-scale":{type:`enum`,values:{map:{},viewport:{}},default:`map`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-pitch-alignment":{type:`enum`,values:{map:{},viewport:{}},default:`viewport`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-stroke-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-stroke-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-stroke-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`}},paint_heatmap:{"heatmap-radius":{type:`number`,default:30,minimum:1,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"heatmap-weight":{type:`number`,default:1,minimum:0,transition:false,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"heatmap-intensity":{type:`number`,default:1,minimum:0,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"heatmap-color":{type:`color`,default:[`interpolate`,[`linear`],[`heatmap-density`],0,`rgba(0, 0, 255, 0)`,.1,`royalblue`,.3,`cyan`,.5,`lime`,.7,`yellow`,1,`red`],transition:false,expression:{interpolated:true,parameters:[`heatmap-density`]},"property-type":`color-ramp`},"heatmap-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},paint_symbol:{"icon-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-color":{type:`color`,default:`#000000`,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-color":{type:`color`,default:`rgba(0, 0, 0, 0)`,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"icon-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`icon-image`,`icon-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-color":{type:`color`,default:`#000000`,transition:true,overridable:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-color":{type:`color`,default:`rgba(0, 0, 0, 0)`,transition:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`text-field`,`text-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_raster:{"raster-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-hue-rotate":{type:`number`,default:0,period:360,transition:true,units:`degrees`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-brightness-min":{type:`number`,default:0,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-brightness-max":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-saturation":{type:`number`,default:0,minimum:-1,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-contrast":{type:`number`,default:0,minimum:-1,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"raster-resampling":{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"raster-fade-duration":{type:`number`,default:300,minimum:0,transition:false,units:`milliseconds`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},paint_hillshade:{"hillshade-illumination-direction":{type:`numberArray`,default:335,minimum:0,maximum:359,transition:false,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-altitude":{type:`numberArray`,default:45,minimum:0,maximum:90,transition:false,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`viewport`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-exaggeration":{type:`number`,default:.5,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-shadow-color":{type:`colorArray`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-highlight-color":{type:`colorArray`,default:`#FFFFFF`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-accent-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-method":{type:`enum`,values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:`standard`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},"paint_color-relief":{"color-relief-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"color-relief-color":{type:`color`,transition:false,expression:{interpolated:true,parameters:[`elevation`]},"property-type":`color-ramp`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_background:{"background-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`background-pattern`}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"background-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`cross-faded`},"background-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},transition:{duration:{type:`number`,default:300,minimum:0,units:`milliseconds`},delay:{type:`number`,default:0,minimum:0,units:`milliseconds`}},"property-type":{"data-driven":{type:`property-type`},"cross-faded":{type:`property-type`},"cross-faded-data-driven":{type:`property-type`},"color-ramp":{type:`property-type`},"data-constant":{type:`property-type`},constant:{type:`property-type`}},promoteId:{"*":{type:`string`}},interpolation:{type:`array`,value:`interpolation_name`,minimum:1},interpolation_name:{type:`enum`,values:{linear:{syntax:{overloads:[{parameters:[],"output-type":`interpolation`}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:[`base`],"output-type":`interpolation`}],parameters:[{name:`base`,type:`number literal`}]}},"cubic-bezier":{syntax:{overloads:[{parameters:[`x1`,`y1`,`x2`,`y2`],"output-type":`interpolation`}],parameters:[{name:`x1`,type:`number literal`},{name:`y1`,type:`number literal`},{name:`x2`,type:`number literal`},{name:`y2`,type:`number literal`}]}}}}};const B=Yn;const fr={kind:`null`},H={kind:`number`},U={kind:`string`},pr={kind:`boolean`},mr={kind:`color`},hr={kind:`projectionDefinition`},gr={kind:`object`},W={kind:`value`},_r={kind:`error`},vr={kind:`collator`},yr={kind:`formatted`},br={kind:`padding`},xr={kind:`colorArray`},Sr={kind:`numberArray`},Cr={kind:`resolvedImage`},wr={kind:`variableAnchorOffsetCollection`};function Tr(e,t){return {kind:`array`,itemType:e,N:t}}function Er(e){if(e.kind===`array`){let t=Er(e.itemType);return typeof e.N==`number`?`array<${t}, ${e.N}>`:e.itemType.kind===`value`?`array`:`array<${t}>`}return e.kind}const Dr=[fr,H,U,pr,mr,hr,yr,gr,Tr(W),br,Sr,xr,Cr,wr];function Or(e,t){if(t.kind===`error`)return null;if(e.kind===`array`){if(t.kind===`array`&&(t.N===0&&t.itemType.kind===`value`||!Or(e.itemType,t.itemType))&&(typeof e.N!=`number`||e.N===t.N))return null}else if(e.kind===t.kind)return null;else if(e.kind===`value`){for(let e of Dr)if(!Or(e,t))return null}return `Expected ${Er(e)} but found ${Er(t)} instead.`}function kr(e,t){return t.some(t=>t.kind===e.kind)}function Ar(e,t){return t.some(t=>t===`null`?e===null:t===`array`?Array.isArray(e):t===`object`?e&&!Array.isArray(e)&&typeof e==`object`:t===typeof e)}function jr(e,t){return e.kind===`array`&&t.kind===`array`?e.itemType.kind===t.itemType.kind&&typeof e.N==`number`:e.kind===t.kind}const Mr=.96422,Nr=.82521,Pr=4/29,Fr=6/29,Ir=3*Fr*Fr,Lr=Math.PI/180,Rr=180/Math.PI;function zr(e){return e%=360,e<0&&(e+=360),e}function Br([e,t,n,r]){e=Vr(e),t=Vr(t),n=Vr(n);let i,a,o=Hr((.2225045*e+.7168786*t+.0606169*n)/1);e===t&&t===n?i=a=o:(i=Hr((.4360747*e+.3850649*t+.1430804*n)/Mr),a=Hr((.0139322*e+.0971045*t+.7141733*n)/Nr));let s=116*o-16;return [s<0?0:s,500*(i-o),200*(o-a),r]}function Vr(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Hr(e){return e>.008856451679035631?e**(1/3):e/Ir+Pr}function Ur([e,t,n,r]){let i=(e+16)/116,a=isNaN(t)?i:i+t/500,o=isNaN(n)?i:i-n/200;return i=1*Gr(i),a=Mr*Gr(a),o=Nr*Gr(o),[Wr(3.1338561*a-1.6168667*i-.4906146*o),Wr(-0.9787684*a+1.9161415*i+.033454*o),Wr(.0719453*a-.2289914*i+1.4052427*o),r]}function Wr(e){return e=e<=.00304?12.92*e:1.055*e**(1/2.4)-.055,e<0?0:e>1?1:e}function Gr(e){return e>Fr?e*e*e:Ir*(e-Pr)}function Kr(e){let[t,n,r,i]=Br(e),a=Math.sqrt(n*n+r*r);return [Math.round(a*1e4)?zr(Math.atan2(r,n)*Rr):NaN,a,t,i]}function qr([e,t,n,r]){return e=isNaN(e)?0:e*Lr,Ur([n,Math.cos(e)*t,Math.sin(e)*t,r])}function Jr([e,t,n,r]){e=zr(e),t/=100,n/=100;function i(r){let i=(r+e/30)%12,a=t*Math.min(n,1-n);return n-a*Math.max(-1,Math.min(i-3,9-i,1))}return [i(0),i(8),i(4),r]}const Yr=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};function Xr(e,t){return Yr(e,t)?e[t]:void 0}function Zr(e){if(e=e.toLowerCase().trim(),e===`transparent`)return [0,0,0,0];let t=Xr(ni,e);if(t){let[e,n,r]=t;return [e/255,n/255,r/255,1]}if(e.startsWith(`#`)&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(e)){let t=e.length<6?1:2,n=1;return [Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+t)||`ff`)]}if(e.startsWith(`rgb`)){let t=e.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(t){let[e,n,r,i,a,o,s,c,l,u,d,f]=t,p=[i||` `,s||` `,u].join(``);if(p===` `||p===` /`||p===`,,`||p===`,,,`){let e=[r,o,l].join(``),t=e===`%%%`?100:e===``?255:0;if(t){let e=[ei(+n/t,0,1),ei(+a/t,0,1),ei(+c/t,0,1),d?$r(+d,f):1];if(ti(e))return e}}return}}let n=e.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){let[e,t,r,i,a,o,s,c,l]=n,u=[r||` `,a||` `,s].join(``);if(u===` `||u===` /`||u===`,,`||u===`,,,`){let e=[+t,ei(+i,0,100),ei(+o,0,100),c?$r(+c,l):1];if(ti(e))return Jr(e)}}}function Qr(e){return parseInt(e.padEnd(2,e),16)/255}function $r(e,t){return ei(t?e/100:e,0,1)}function ei(e,t,n){return Math.min(Math.max(t,e),n)}function ti(e){return !e.some(Number.isNaN)}const ni={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function ri(e,t,n){return e+n*(t-e)}function ii(e,t,n){return e.map((e,r)=>ri(e,t[r],n))}function ai(e){return e===`rgb`||e===`hcl`||e===`lab`}var G=class e{constructor(e,t,n,r=1,i=true){this.r=e,this.g=t,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter(`rgb`,[e,t,n,r]));}static{this.black=new e(0,0,0,1);}static{this.white=new e(1,1,1,1);}static{this.transparent=new e(0,0,0,0);}static{this.red=new e(1,0,0,1);}static parse(t){if(t instanceof e)return t;if(typeof t!=`string`)return;let n=Zr(t);if(n)return new e(...n,false)}get rgb(){let{r:e,g:t,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter(`rgb`,[e/i,t/i,n/i,r])}get hcl(){return this.overwriteGetter(`hcl`,Kr(this.rgb))}get lab(){return this.overwriteGetter(`lab`,Br(this.rgb))}overwriteGetter(e,t){return Object.defineProperty(this,e,{value:t}),t}toString(){let[e,t,n,r]=this.rgb;return `rgba(${[e,t,n].map(e=>Math.round(e*255)).join(`,`)},${r})`}static interpolate(t,n,r,i=`rgb`){switch(i){case `rgb`:{let[i,a,o,s]=ii(t.rgb,n.rgb,r);return new e(i,a,o,s,false)}case `hcl`:{let[i,a,o,s]=t.hcl,[c,l,u,d]=n.hcl,f,p;if(!isNaN(i)&&!isNaN(c)){let e=c-i;c>i&&e>180?e-=360:c<i&&i-c>180&&(e+=360),f=i+r*e;}else isNaN(i)?isNaN(c)?f=NaN:(f=c,(o===1||o===0)&&(p=l)):(f=i,(u===1||u===0)&&(p=a));let[m,h,g,_]=qr([f,p??ri(a,l,r),ri(o,u,r),ri(s,d,r)]);return new e(m,h,g,_,false)}case `lab`:{let[i,a,o,s]=Ur(ii(t.lab,n.lab,r));return new e(i,a,o,s,false)}}}};const oi=[`bottom`,`center`,`top`];var si=class{constructor(e,t,n,r,i,a){this.text=e,this.image=t,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=a;}},ci=class e{constructor(e){this.sections=e;}static fromString(t){return new e([new si(t,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(e=>e.text.length!==0||e.image&&e.image.name.length!==0)}static factory(t){return t instanceof e?t:e.fromString(t)}toString(){return this.sections.length===0?``:this.sections.map(e=>e.text).join(``)}},li=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(let e of t)if(typeof e!=`number`)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]];}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(ii(t.values,n.values,r))}},ui=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t]);if(Array.isArray(t)){for(let e of t)if(typeof e!=`number`)return;return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(ii(t.values,n.values,r))}},di=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`string`){let n=G.parse(t);return n?new e([n]):void 0}if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`string`)return;let t=G.parse(e);if(!t)return;n.push(t);}return new e(n)}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i=`rgb`){let a=[];if(t.values.length!=n.values.length)throw Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let e=0;e<t.values.length;e++)a.push(G.interpolate(t.values[e],n.values[e],r,i));return new e(a)}},fi=class extends Error{constructor(e,t){super(e),this.name=`RuntimeError`,this.path=t;}toJSON(){return this.message}};const pi=/* @__PURE__ */ new Set([`center`,`left`,`right`,`top`,`bottom`,`top-left`,`top-right`,`bottom-left`,`bottom-right`]);var mi=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(!(!Array.isArray(t)||t.length<1||t.length%2!=0)){for(let e=0;e<t.length;e+=2){let n=t[e],r=t[e+1];if(typeof n!=`string`||!pi.has(n)||!Array.isArray(r)||r.length!==2||typeof r[0]!=`number`||typeof r[1]!=`number`)return}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i){let a=t.values,o=n.values;if(a.length!==o.length)throw new fi(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${n.toString()}`,i);let s=[];for(let e=0;e<a.length;e+=2){if(a[e]!==o[e])throw new fi(`Cannot interpolate values containing mismatched anchors. from[${e}]: ${a[e]}, to[${e}]: ${o[e]}`,i);s.push(a[e]);let[t,n]=a[e+1],[c,l]=o[e+1];s.push([ri(t,c,r),ri(n,l,r)]);}return new e(s)}},hi=class e{constructor(e){this.name=e.name,this.available=e.available;}toString(){return this.name}static fromString(t){return t?new e({name:t,available:false}):null}},gi=class e{constructor(e,t,n){this.from=e,this.to=t,this.transition=n;}toString(){return this.from===this.to&&this.transition===1?this.from:JSON.stringify([this.from,this.to,this.transition])}static interpolate(t,n,r){return new e(t,n,r)}static parse(t){if(t instanceof e)return t;if(Array.isArray(t)&&t.length===3&&typeof t[0]==`string`&&typeof t[1]==`string`&&typeof t[2]==`number`)return new e(t[0],t[1],t[2]);if(typeof t==`object`&&typeof t.from==`string`&&typeof t.to==`string`&&typeof t.transition==`number`)return new e(t.from,t.to,t.transition);if(typeof t==`string`)return new e(t,t,1)}},_i=class{constructor(e,t,n){this.sensitivity=e?t?`variant`:`case`:t?`accent`:`base`,this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:`search`});}compare(e,t){return this.collator.compare(e,t)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}};function vi(e,t,n,r){return typeof e==`number`&&e>=0&&e<=255&&typeof t==`number`&&t>=0&&t<=255&&typeof n==`number`&&n>=0&&n<=255?r===void 0||typeof r==`number`&&r>=0&&r<=1?null:`Invalid rgba value [${[e,t,n,r].join(`, `)}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof r==`number`?[e,t,n,r]:[e,t,n]).join(`, `)}]: 'r', 'g', and 'b' must be between 0 and 255.`}function yi(e){if(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`||e instanceof gi||e instanceof G||e instanceof _i||e instanceof ci||e instanceof li||e instanceof ui||e instanceof di||e instanceof mi||e instanceof hi)return true;if(Array.isArray(e)){for(let t of e)if(!yi(t))return false;return true}if(typeof e==`object`){for(let t in e)if(!yi(e[t]))return false;return true}return false}function bi(e){if(e===null)return fr;if(typeof e==`string`)return U;if(typeof e==`boolean`)return pr;if(typeof e==`number`)return H;if(e instanceof G)return mr;if(e instanceof gi)return hr;if(e instanceof _i)return vr;if(e instanceof ci)return yr;if(e instanceof li)return br;if(e instanceof ui)return Sr;if(e instanceof di)return xr;if(e instanceof mi)return wr;if(e instanceof hi)return Cr;if(Array.isArray(e)){let t=e.length,n;for(let t of e){let e=bi(t);if(!n)n=e;else if(n===e)continue;else {n=W;break}}return Tr(n||W,t)}return gr}function xi(e){let t=typeof e;return e===null?``:t===`string`||t===`number`||t===`boolean`?String(e):e instanceof G||e instanceof gi||e instanceof ci||e instanceof li||e instanceof ui||e instanceof di||e instanceof mi||e instanceof hi?e.toString():JSON.stringify(e)}var Si=class e{constructor(e,t){this.type=e,this.value=t;}static parse(t,n){if(t.length!==2)return n.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!yi(t[1]))return n.error(`invalid value of type "${typeof t[1]}"`);let r=t[1],i=bi(r),a=n.expectedType;return i.kind===`array`&&i.N===0&&a&&a.kind===`array`&&(typeof a.N!=`number`||a.N===0)&&(i=a),new e(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return true}};const Ci=[`Unknown`,`Point`,`LineString`,`Polygon`];var wi=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=/* @__PURE__ */ new Map,this.availableImages=null,this.canonical=null;}id(){return this.feature&&`id`in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==`number`?Ci[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&`geometry`in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(e){let t=this._parseColorCache.get(e);return t||(t=G.parse(e),this._parseColorCache.set(e,t)),t}};function Ti(e,t,n){let r=e.length-1,i=0,a=r,o=0,s,c;for(;i<=a;)if(o=Math.floor((i+a)/2),s=e[o],c=e[o+1],s<=t){if(o===r||t<c)return o;i=o+1;}else if(s>t)a=o-1;else throw new fi(`Input is not a number.`,n);return 0}var Ei=class e{constructor(e,t,n,r){this.type=e,this.input=t,this.key=r,this.labels=[],this.outputs=[];for(let[e,t]of n)this.labels.push(e),this.outputs.push(t);}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);let r=n.parse(t[1],1,H);if(!r)return null;let i=[],a=null;n.expectedType&&n.expectedType.kind!==`value`&&(a=n.expectedType);for(let e=1;e<t.length;e+=2){let r=e===1?-1/0:t[e],o=t[e+1],s=e,c=e+1;if(typeof r!=`number`)return n.error(`Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,s);if(i.length&&i[i.length-1][0]>=r)return n.error(`Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.`,s);let l=n.parse(o,c,a);if(!l)return null;a||=l.type,i.push([r,l]);}return new e(a,r,i,n.key)}evaluate(e){let t=this.labels,n=this.outputs;if(t.length===1)return n[0].evaluate(e);let r=this.input.evaluate(e);if(r<=t[0])return n[0].evaluate(e);let i=t.length;return r>=t[i-1]?n[i-1].evaluate(e):n[Ti(t,r,this.key)].evaluate(e)}eachChild(e){e(this.input);for(let t of this.outputs)e(t);}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function Di(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return ((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u;}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5;}return ((l*n+c)*n+s)*n}}var Oi=class e{constructor(e,t,n,r,i,a){this.type=e,this.operator=t,this.interpolation=n,this.input=r,this.key=a,this.labels=[],this.outputs=[];for(let[e,t]of i)this.labels.push(e),this.outputs.push(t);}static interpolationFactor(e,t,n,r){let i=0;if(e.name===`exponential`)i=ki(t,e.base,n,r);else if(e.name===`linear`)i=ki(t,1,n,r);else if(e.name===`cubic-bezier`){let a=e.controlPoints;i=Di(a[0],a[1],a[2],a[3])(ki(t,1,n,r));}return i}static parse(t,n){let[r,i,a,...o]=t;if(!Array.isArray(i)||i.length===0)return n.error(`Expected an interpolation type expression.`,1);if(i[0]===`linear`)i={name:`linear`};else if(i[0]===`exponential`){let e=i[1];if(typeof e!=`number`)return n.error(`Exponential interpolation requires a numeric base.`,1,1);i={name:`exponential`,base:e};}else if(i[0]===`cubic-bezier`){let e=i.slice(1);if(e.length!==4||e.some(e=>typeof e!=`number`||e<0||e>1))return n.error(`Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.`,1);i={name:`cubic-bezier`,controlPoints:e};}else return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);if(a=n.parse(a,2,H),!a)return null;let s=[],c=null;(r===`interpolate-hcl`||r===`interpolate-lab`)&&n.expectedType!=xr?c=mr:n.expectedType&&n.expectedType.kind!==`value`&&(c=n.expectedType);for(let e=0;e<o.length;e+=2){let t=o[e],r=o[e+1],i=e+3,a=e+4;if(typeof t!=`number`)return n.error(`Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,i);if(s.length&&s[s.length-1][0]>=t)return n.error(`Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.`,i);let l=n.parse(r,a,c);if(!l)return null;c||=l.type,s.push([t,l]);}return !jr(c,H)&&!jr(c,hr)&&!jr(c,mr)&&!jr(c,br)&&!jr(c,Sr)&&!jr(c,xr)&&!jr(c,wr)&&!jr(c,Tr(H))?n.error(`Type ${Er(c)} is not interpolatable.`):new e(c,r,i,a,s,n.key)}evaluate(t){let n=this.labels,r=this.outputs;if(n.length===1)return r[0].evaluate(t);let i=this.input.evaluate(t);if(i<=n[0])return r[0].evaluate(t);let a=n.length;if(i>=n[a-1])return r[a-1].evaluate(t);let o=Ti(n,i,this.key),s=n[o],c=n[o+1],l=e.interpolationFactor(this.interpolation,i,s,c),u=r[o].evaluate(t),d=r[o+1].evaluate(t);switch(this.operator){case `interpolate`:switch(this.type.kind){case `number`:return ri(u,d,l);case `color`:return G.interpolate(u,d,l);case `padding`:return li.interpolate(u,d,l);case `colorArray`:return di.interpolate(u,d,l);case `numberArray`:return ui.interpolate(u,d,l);case `variableAnchorOffsetCollection`:return mi.interpolate(u,d,l,this.key);case `array`:return ii(u,d,l);case `projectionDefinition`:return gi.interpolate(u,d,l)}case `interpolate-hcl`:switch(this.type.kind){case `color`:return G.interpolate(u,d,l,`hcl`);case `colorArray`:return di.interpolate(u,d,l,`hcl`)}case `interpolate-lab`:switch(this.type.kind){case `color`:return G.interpolate(u,d,l,`lab`);case `colorArray`:return di.interpolate(u,d,l,`lab`)}}}eachChild(e){e(this.input);for(let t of this.outputs)e(t);}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function ki(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}const Ai={color:G.interpolate,number:ri,padding:li.interpolate,numberArray:ui.interpolate,colorArray:di.interpolate,variableAnchorOffsetCollection:mi.interpolate,array:ii};var ji=class e{constructor(e){this.type=yr,this.sections=e;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[1];if(!Array.isArray(r)&&typeof r==`object`)return n.error(`First argument must be an image or text section.`);let i=[],a=false;for(let e=1;e<=t.length-1;++e){let r=t[e];if(a&&typeof r==`object`&&!Array.isArray(r)){a=false;let e=null;if(r[`font-scale`]&&(e=n.parse(r[`font-scale`],1,H),!e))return null;let t=null;if(r[`text-font`]&&(t=n.parse(r[`text-font`],1,Tr(U)),!t))return null;let o=null;if(r[`text-color`]&&(o=n.parse(r[`text-color`],1,mr),!o))return null;let s=null;if(r[`vertical-align`]){if(typeof r[`vertical-align`]==`string`&&!oi.includes(r[`vertical-align`]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r[`vertical-align`]}' instead.`);if(s=n.parse(r[`vertical-align`],1,U),!s)return null}let c=i[i.length-1];c.scale=e,c.font=t,c.textColor=o,c.verticalAlign=s;}else {let r=n.parse(t[e],1,W);if(!r)return null;let o=r.type.kind;if(o!==`string`&&o!==`value`&&o!==`null`&&o!==`resolvedImage`)return n.error(`Formatted text type must be 'string', 'value', 'image' or 'null'.`);a=true,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null});}}return new e(i)}evaluate(e){return new ci(this.sections.map(t=>{let n=t.content.evaluate(e);return bi(n)===Cr?new si(``,n,null,null,null,t.verticalAlign?t.verticalAlign.evaluate(e):null):new si(xi(n),null,t.scale?t.scale.evaluate(e):null,t.font?t.font.evaluate(e).join(`,`):null,t.textColor?t.textColor.evaluate(e):null,t.verticalAlign?t.verticalAlign.evaluate(e):null)}))}eachChild(e){for(let t of this.sections)e(t.content),t.scale&&e(t.scale),t.font&&e(t.font),t.textColor&&e(t.textColor),t.verticalAlign&&e(t.verticalAlign);}outputDefined(){return false}};function Mi(e,t,n=0,r=e.length-1,i=Pi){for(;r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1);Mi(e,t,Math.max(n,Math.floor(t-o*c/a+l)),Math.min(r,Math.floor(t+(a-o)*c/a+l)),i);}let a=e[t],o=n,s=r;for(Ni(e,n,t),i(e[r],a)>0&&Ni(e,n,r);o<s;){for(Ni(e,o,s),o++,s--;i(e[o],a)<0;)o++;for(;i(e[s],a)>0;)s--;}i(e[n],a)===0?Ni(e,n,s):(s++,Ni(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1);}}function Ni(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}function Pi(e,t){return e<t?-1:+(e>t)}function Fi(e,t){if(e.length<=1)return [e];let n=[],r,i;for(let t of e){let e=Li(t);e!==0&&(t.area=Math.abs(e),i===void 0&&(i=e<0),i===e<0?(r&&n.push(r),r=[t]):r.push(t));}if(r&&n.push(r),t>1)for(let e=0;e<n.length;e++)n[e].length<=t||(Mi(n[e],t,1,n[e].length-1,Ii),n[e]=n[e].slice(0,t));return n}function Ii(e,t){return t.area-e.area}function Li(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}const Ri={string:U,number:H,boolean:pr,object:gr};var zi=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=1,i,a=t[0];if(a===`array`){let e;if(t.length>2){let i=t[1];if(typeof i!=`string`||!(i in Ri)||i===`object`)return n.error(`The item type argument of "array" must be one of string, number, boolean`,1);e=Ri[i],r++;}else e=W;let a;if(t.length>3){if(t[2]!==null&&(typeof t[2]!=`number`||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(`The length argument to "array" must be a positive integer literal`,2);a=t[2],r++;}i=Tr(e,a);}else {if(!Ri[a])throw Error(`Types doesn't contain name = ${a}`);i=Ri[a];}let o=[];for(;r<t.length;r++){let e=n.parse(t[r],r,W);if(!e)return null;o.push(e);}return new e(i,o,n.key)}evaluate(e){for(let t=0;t<this.args.length;t++){let n=this.args[t].evaluate(e);if(!Or(this.type,bi(n)))return n;if(t===this.args.length-1)throw new fi(`Expected value to be of type ${Er(this.type)}, but found ${Er(bi(n))} instead.`,this.key)}throw Error()}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};const Bi={"to-boolean":pr,"to-color":mr,"to-number":H,"to-string":U};var Vi=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[0];if(!Bi[r])throw Error(`Can't parse ${r} as it is not part of the known types`);if((r===`to-boolean`||r===`to-string`)&&t.length!==2)return n.error(`Expected one argument.`);let i=Bi[r],a=[];for(let e=1;e<t.length;e++){let r=n.parse(t[e],e,W);if(!r)return null;a.push(r);}return new e(i,a,n.key)}evaluate(e){switch(this.type.kind){case `boolean`:return !!this.args[0].evaluate(e);case `color`:{let t,n;for(let r of this.args){if(t=r.evaluate(e),n=null,t instanceof G)return t;if(typeof t==`string`){let n=e.parseColor(t);if(n)return n}else if(Array.isArray(t)&&(n=t.length<3||t.length>4?`Invalid rgba value ${JSON.stringify(t)}: expected an array containing either three or four numeric values.`:vi(t[0],t[1],t[2],t[3]),!n))return new G(t[0]/255,t[1]/255,t[2]/255,t[3])}throw new fi(n||`Could not parse color from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `padding`:{let t;for(let n of this.args){t=n.evaluate(e);let r=li.parse(t);if(r)return r}throw new fi(`Could not parse padding from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `numberArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=ui.parse(t);if(r)return r}throw new fi(`Could not parse numberArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `colorArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=di.parse(t);if(r)return r}throw new fi(`Could not parse colorArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `variableAnchorOffsetCollection`:{let t;for(let n of this.args){t=n.evaluate(e);let r=mi.parse(t);if(r)return r}throw new fi(`Could not parse variableAnchorOffsetCollection from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `number`:{let t=null;for(let n of this.args){if(t=n.evaluate(e),t===null)return 0;let r=Number(t);if(!isNaN(r))return r}throw new fi(`Could not convert ${JSON.stringify(t)} to number.`,this.key)}case `formatted`:return ci.fromString(xi(this.args[0].evaluate(e)));case `resolvedImage`:return hi.fromString(xi(this.args[0].evaluate(e)));case `projectionDefinition`:{let t=this.args[0].evaluate(e);if(gi.parse(t))return t;throw new fi(`Could not parse projectionDefinition from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}default:return xi(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}},Hi=class e{constructor(e,t){this.type=t.type,this.bindings=[].concat(e),this.result=t;}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(let t of this.bindings)e(t[1]);e(this.result);}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);let r=[];for(let e=1;e<t.length-1;e+=2){let i=t[e];if(typeof i!=`string`)return n.error(`Expected string, but found ${typeof i} instead.`,e);if(/[^a-zA-Z0-9_]/.test(i))return n.error(`Variable names must contain only alphanumeric characters or '_'.`,e);let a=n.parse(t[e+1],e+1);if(!a)return null;r.push([i,a]);}let i=n.parse(t[t.length-1],t.length-1,n.expectedType,r);return i?new e(r,i):null}outputDefined(){return this.result.outputDefined()}},Ui=class e{constructor(e,t){this.type=t.type,this.name=e,this.boundExpression=t;}static parse(t,n){if(t.length!==2||typeof t[1]!=`string`)return n.error(`'var' expression requires exactly one string literal argument.`);let r=t[1];return n.scope.has(r)?new e(r,n.scope.get(r)):n.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return false}},Wi=class e{constructor(e,t,n,r){this.type=e,this.index=t,this.input=n,this.key=r;}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,H),i=n.parse(t[2],2,Tr(n.expectedType||W));if(!r||!i)return null;let a=i.type;return new e(a.itemType,r,i,n.key)}evaluate(e){let t=this.index.evaluate(e),n=this.input.evaluate(e);if(t<0)throw new fi(`Array index out of bounds: ${t} < 0.`,this.key);if(t>=n.length)throw new fi(`Array index out of bounds: ${t} > ${n.length-1}.`,this.key);if(t!==Math.floor(t))throw new fi(`Array index must be an integer, but found ${t} instead.`,this.key);return n[t]}eachChild(e){e(this.index),e(this.input);}outputDefined(){return false}},Gi=class e{constructor(e,t,n){this.needle=e,this.haystack=t,this.key=n,this.type=pr;}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,W);return !r||!i?null:kr(r.type,[pr,U,H,fr,W])?new e(r,i,n.key):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Er(r.type)} instead`)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!n)return false;if(!Ar(t,[`boolean`,`string`,`number`,`null`]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${Er(bi(t))} instead.`,this.key);if(!Ar(n,[`string`,`array`]))throw new fi(`Expected second argument to be of type array or string, but found ${Er(bi(n))} instead.`,this.key);return n.indexOf(t)>=0}eachChild(e){e(this.needle),e(this.haystack);}outputDefined(){return true}},Ki=class e{constructor(e,t,n,r){this.needle=e,this.haystack=t,this.key=n,this.fromIndex=r,this.type=H;}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,W);if(!r||!i)return null;if(!kr(r.type,[pr,U,H,fr,W]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Er(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,H);return a?new e(r,i,n.key,a):null}return new e(r,i,n.key)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!Ar(t,[`boolean`,`string`,`number`,`null`]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${Er(bi(t))} instead.`,this.key);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(e)),Ar(n,[`string`])){let e=n.indexOf(t,r);return e===-1?-1:[...n.slice(0,e)].length}if(Ar(n,[`array`]))return n.indexOf(t,r);throw new fi(`Expected second argument to be of type array or string, but found ${Er(bi(n))} instead.`,this.key)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex);}outputDefined(){return false}},qi=class e{constructor(e,t,n,r,i,a){this.inputType=e,this.type=t,this.input=n,this.cases=r,this.outputs=i,this.otherwise=a;}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error(`Expected an even number of arguments.`);let r,i;n.expectedType&&n.expectedType.kind!==`value`&&(i=n.expectedType);let a={},o=[];for(let e=2;e<t.length-1;e+=2){let s=t[e],c=t[e+1];Array.isArray(s)||(s=[s]);let l=n.concat(e);if(s.length===0)return l.error(`Expected at least one branch label.`);for(let e of s){if(typeof e!=`number`&&typeof e!=`string`)return l.error(`Branch labels must be numbers or strings.`);if(typeof e==`number`&&Math.abs(e)>2**53-1)return l.error(`Branch labels must be integers no larger than ${2**53-1}.`);if(typeof e==`number`&&Math.floor(e)!==e)return l.error(`Numeric branch labels must be integer values.`);if(!r)r=bi(e);else if(l.checkSubtype(r,bi(e)))return null;if(a[String(e)]!==void 0)return l.error(`Branch labels must be unique.`);a[String(e)]=o.length;}let u=n.parse(c,e,i);if(!u)return null;i||=u.type,o.push(u);}let s=n.parse(t[1],1,W);if(!s)return null;let c=n.parse(t[t.length-1],t.length-1,i);return !c||s.type.kind!==`value`&&n.concat(1).checkSubtype(r,s.type)?null:new e(r,i,s,a,o,c)}evaluate(e){let t=this.input.evaluate(e);return (bi(t)===this.inputType&&this.outputs[this.cases[t]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise);}outputDefined(){return this.outputs.every(e=>e.outputDefined())&&this.otherwise.outputDefined()}},Ji=class e{constructor(e,t,n){this.type=e,this.branches=t,this.otherwise=n;}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error(`Expected an odd number of arguments.`);let r;n.expectedType&&n.expectedType.kind!==`value`&&(r=n.expectedType);let i=[];for(let e=1;e<t.length-1;e+=2){let a=n.parse(t[e],e,pr);if(!a)return null;let o=n.parse(t[e+1],e+1,r);if(!o)return null;i.push([a,o]),r||=o.type;}let a=n.parse(t[t.length-1],t.length-1,r);if(!a)return null;if(!r)throw Error(`Can't infer output type`);return new e(r,i,a)}evaluate(e){for(let[t,n]of this.branches)if(t.evaluate(e))return n.evaluate(e);return this.otherwise.evaluate(e)}eachChild(e){for(let[t,n]of this.branches)e(t),e(n);e(this.otherwise);}outputDefined(){return this.branches.every(([e,t])=>t.outputDefined())&&this.otherwise.outputDefined()}},Yi=class e{constructor(e,t,n,r,i){this.type=e,this.input=t,this.beginIndex=n,this.key=r,this.endIndex=i;}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,H);if(!r||!i)return null;if(!kr(r.type,[Tr(W),U,W]))return n.error(`Expected first argument to be of type array or string, but found ${Er(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,H);return a?new e(r.type,r,i,n.key,a):null}return new e(r.type,r,i,n.key)}evaluate(e){let t=this.input.evaluate(e),n=this.beginIndex.evaluate(e),r;if(this.endIndex&&(r=this.endIndex.evaluate(e)),Ar(t,[`string`]))return [...t].slice(n,r).join(``);if(Ar(t,[`array`]))return t.slice(n,r);throw new fi(`Expected first argument to be of type array or string, but found ${Er(bi(t))} instead.`,this.key)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex);}outputDefined(){return false}},Xi=class e{constructor(e,t){this.type=e,this.args=t;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=null,i=n.expectedType;i&&i.kind!==`value`&&(r=i);let a=[];for(let e of t.slice(1)){let t=n.parse(e,1+a.length,r,void 0,{typeAnnotation:`omit`});if(!t)return null;r||=t.type,a.push(t);}if(!r)throw Error(`No output type`);return i&&a.some(e=>Or(i,e.type))?new e(W,a):new e(r,a)}evaluate(e){let t=null,n=0,r;for(let i of this.args)if(n++,t=i.evaluate(e),t&&t instanceof hi&&!t.available&&(r||=t.name,t=null,n===this.args.length&&(t=r)),t!==null)break;return t}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};function Zi(e,t){return e===`==`||e===`!=`?t.kind===`boolean`||t.kind===`string`||t.kind===`number`||t.kind===`null`||t.kind===`value`:t.kind===`string`||t.kind===`number`||t.kind===`value`}function Qi(e,t,n){return t===n}function $i(e,t,n){return t!==n}function ea(e,t,n){return t<n}function ta(e,t,n){return t>n}function na(e,t,n){return t<=n}function ra(e,t,n){return t>=n}function ia(e,t,n,r){return r.compare(t,n)===0}function aa(e,t,n,r){return !ia(e,t,n,r)}function oa(e,t,n,r){return r.compare(t,n)<0}function sa(e,t,n,r){return r.compare(t,n)>0}function ca(e,t,n,r){return r.compare(t,n)<=0}function la(e,t,n,r){return r.compare(t,n)>=0}function ua$1(e,t,n){let r=e!==`==`&&e!==`!=`;return class i{constructor(e,t,n,r){this.lhs=e,this.rhs=t,this.key=n,this.collator=r,this.type=pr,this.hasUntypedArgument=e.type.kind===`value`||t.type.kind===`value`;}static parse(e,t){if(e.length!==3&&e.length!==4)return t.error(`Expected two or three arguments.`);let n=e[0],a=t.parse(e[1],1,W);if(!a)return null;if(!Zi(n,a.type))return t.concat(1).error(`"${n}" comparisons are not supported for type '${Er(a.type)}'.`);let o=t.parse(e[2],2,W);if(!o)return null;if(!Zi(n,o.type))return t.concat(2).error(`"${n}" comparisons are not supported for type '${Er(o.type)}'.`);if(a.type.kind!==o.type.kind&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot compare types '${Er(a.type)}' and '${Er(o.type)}'.`);r&&(a.type.kind===`value`&&o.type.kind!==`value`?a=new zi(o.type,[a],t.key):a.type.kind!==`value`&&o.type.kind===`value`&&(o=new zi(a.type,[o],t.key)));let s=null;if(e.length===4){if(a.type.kind!==`string`&&o.type.kind!==`string`&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot use collator to compare non-string types.`);if(s=t.parse(e[3],3,vr),!s)return null}return new i(a,o,t.key,s)}evaluate(i){let a=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){let t=bi(a),n=bi(o);if(t.kind!==n.kind||t.kind!==`string`&&t.kind!==`number`)throw new fi(`Expected arguments for "${e}" to be (string, string) or (number, number), but found (${t.kind}, ${n.kind}) instead.`,this.key)}if(this.collator&&!r&&this.hasUntypedArgument){let e=bi(a),n=bi(o);if(e.kind!==`string`||n.kind!==`string`)return t(i,a,o)}return this.collator?n(i,a,o,this.collator.evaluate(i)):t(i,a,o)}eachChild(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator);}outputDefined(){return true}}}const da=ua$1(`==`,Qi,ia),fa=ua$1(`!=`,$i,aa),pa=ua$1(`<`,ea,oa),ma=ua$1(`>`,ta,sa),ha=ua$1(`<=`,na,ca),ga=ua$1(`>=`,ra,la);var _a=class e{constructor(e,t,n){this.type=vr,this.locale=n,this.caseSensitive=e,this.diacriticSensitive=t;}static parse(t,n){if(t.length!==2)return n.error(`Expected one argument.`);let r=t[1];if(typeof r!=`object`||Array.isArray(r))return n.error(`Collator options argument must be an object.`);let i=n.parse(r[`case-sensitive`]!==void 0&&r[`case-sensitive`],1,pr);if(!i)return null;let a=n.parse(r[`diacritic-sensitive`]!==void 0&&r[`diacritic-sensitive`],1,pr);if(!a)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,U),!o)?null:new e(i,a,o)}evaluate(e){return new _i(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale);}outputDefined(){return false}},va=class e{constructor(e,t,n,r,i,a){this.type=U,this.number=e,this.locale=t,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=a;}static parse(t,n){if(t.length!==3)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,H);if(!r)return null;let i=t[2];if(typeof i!=`object`||Array.isArray(i))return n.error(`NumberFormat options argument must be an object.`);let a=null;if(i.locale&&(a=n.parse(i.locale,1,U),!a))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,U),!o))return null;let s=null;if(i.unit&&(s=n.parse(i.unit,1,U),!s))return null;if(o&&s)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let c=null;if(i[`min-fraction-digits`]&&(c=n.parse(i[`min-fraction-digits`],1,H),!c))return null;let l=null;return i[`max-fraction-digits`]&&(l=n.parse(i[`max-fraction-digits`],1,H),!l)?null:new e(r,a,o,s,c,l)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?`currency`:this.unit?`unit`:`decimal`,currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits);}outputDefined(){return false}},ya=class e{constructor(e){this.type=Cr,this.input=e;}static parse(t,n){if(t.length!==2)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,U);return r?new e(r):n.error(`No image name provided.`)}evaluate(e){let t=this.input.evaluate(e),n=hi.fromString(t);return n&&e.availableImages&&(n.available=e.availableImages.indexOf(t)>-1),n}eachChild(e){e(this.input);}outputDefined(){return false}},ba=class e{constructor(e,t){this.input=e,this.key=t,this.type=H;}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=n.parse(t[1],1);return r?r.type.kind!==`array`&&r.type.kind!==`string`&&r.type.kind!==`value`?n.error(`Expected argument of type string or array, but found ${Er(r.type)} instead.`):new e(r,n.key):null}evaluate(e){let t=this.input.evaluate(e);if(typeof t==`string`)return [...t].length;if(Array.isArray(t))return t.length;throw new fi(`Expected value to be of type string or array, but found ${Er(bi(t))} instead.`,this.key)}eachChild(e){e(this.input);}outputDefined(){return false}};const xa=8192;function Sa(e,t){let n=wa(e[0]),r=Ea(e[1]),i=2**t.z;return [Math.round(n*i*xa),Math.round(r*i*xa)]}function Ca(e,t){let n=2**t.z,r=(e[0]/xa+t.x)/n,i=(e[1]/xa+t.y)/n;return [Ta(r),Da(i)]}function wa(e){return (180+e)/360}function Ta(e){return e*360-180}function Ea(e){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function Da(e){return 360/Math.PI*Math.atan(Math.exp((180-e*360)*Math.PI/180))-90}function Oa(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[0]),e[3]=Math.max(e[3],t[1]);}function ka(e,t){return !(e[0]<=t[0]||e[2]>=t[2]||e[1]<=t[1]||e[3]>=t[3])}function Aa(e,t,n){return t[1]>e[1]!=n[1]>e[1]&&e[0]<(n[0]-t[0])*(e[1]-t[1])/(n[1]-t[1])+t[0]}function ja(e,t,n){let r=e[0]-t[0],i=e[1]-t[1],a=e[0]-n[0],o=e[1]-n[1];return r*o-a*i===0&&r*a<=0&&i*o<=0}function Ma(e,t,n,r){let i=[t[0]-e[0],t[1]-e[1]];return Ra([r[0]-n[0],r[1]-n[1]],i)!==0&&!!(za(e,t,n,r)&&za(n,r,e,t))}function Na(e,t,n){for(let r of n)for(let n=0;n<r.length-1;++n)if(Ma(e,t,r[n],r[n+1]))return true;return false}function Pa(e,t,n=false){let r=false;for(let i of t)for(let t=0;t<i.length-1;t++){if(ja(e,i[t],i[t+1]))return n;Aa(e,i[t],i[t+1])&&(r=!r);}return r}function Fa(e,t){for(let n of t)if(Pa(e,n))return true;return false}function Ia(e,t){for(let n of e)if(!Pa(n,t))return false;for(let n=0;n<e.length-1;++n)if(Na(e[n],e[n+1],t))return false;return true}function La(e,t){for(let n of t)if(Ia(e,n))return true;return false}function Ra(e,t){return e[0]*t[1]-e[1]*t[0]}function za(e,t,n,r){let i=e[0]-n[0],a=e[1]-n[1],o=t[0]-n[0],s=t[1]-n[1],c=r[0]-n[0],l=r[1]-n[1],u=i*l-c*a,d=o*l-c*s;return u>0&&d<0||u<0&&d>0}function Ba(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=[];for(let r=0;r<e[i].length;r++){let o=Sa(e[i][r],n);Oa(t,o),a.push(o);}r.push(a);}return r}function Va(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=Ba(e[i],t,n);r.push(a);}return r}function Ha(e,t,n,r){if(e[0]<n[0]||e[0]>n[2]){let t=r*.5,i=e[0]-n[0]>t?-r:n[0]-e[0]>t?r:0;i===0&&(i=e[0]-n[2]>t?-r:n[2]-e[0]>t?r:0),e[0]+=i;}Oa(t,e);}function Ua(e){e[0]=e[1]=1/0,e[2]=e[3]=-1/0;}function Wa(e,t,n,r){let i=2**r.z*xa,a=[r.x*xa,r.y*xa],o=[];for(let r of e)for(let e of r){let r=[e.x+a[0],e.y+a[1]];Ha(r,t,n,i),o.push(r);}return o}function Ga(e,t,n,r){let i=2**r.z*xa,a=[r.x*xa,r.y*xa],o=[];for(let n of e){let e=[];for(let r of n){let n=[r.x+a[0],r.y+a[1]];Oa(t,n),e.push(n);}o.push(e);}if(t[2]-t[0]<=i/2){Ua(t);for(let e of o)for(let r of e)Ha(r,t,n,i);}return o}function Ka(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=Ba(t.coordinates,r,i),o=Wa(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Pa(e,a))return false}if(t.type===`MultiPolygon`){let a=Va(t.coordinates,r,i),o=Wa(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Fa(e,a))return false}return true}function qa(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=Ba(t.coordinates,r,i),o=Ga(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Ia(e,a))return false}if(t.type===`MultiPolygon`){let a=Va(t.coordinates,r,i),o=Ga(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!La(e,a))return false}return true}var Ja=class e{constructor(e,t){this.type=pr,this.geojson=e,this.geometries=t;}static parse(t,n){if(t.length!==2)return n.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(yi(t[1])){let n=t[1];if(n.type===`FeatureCollection`){let t=[];for(let e of n.features){let{type:n,coordinates:r}=e.geometry;n===`Polygon`&&t.push(r),n===`MultiPolygon`&&t.push(...r);}if(t.length)return new e(n,{type:`MultiPolygon`,coordinates:t})}else if(n.type===`Feature`){let t=n.geometry.type;if(t===`Polygon`||t===`MultiPolygon`)return new e(n,n.geometry)}else if(n.type===`Polygon`||n.type===`MultiPolygon`)return new e(n,n)}return n.error(`'within' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return Ka(e,this.geometries);if(e.geometryType()===`LineString`)return qa(e,this.geometries)}return false}eachChild(){}outputDefined(){return true}},Ya=class{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e);}push(e){this.data.push(e),this._up(this.length++);}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return --this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i;}t[e]=r;}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r;}t[e]=i;}};const Xa=Math.PI/180;var Za=class{constructor(e){let t=Xa*6378.137*1e3,n=Math.cos(e*Xa),r=1/(1-.0066943799901413165*(1-n*n)),i=Math.sqrt(r);this.kx=t*i*n,this.ky=t*i*r*.9933056200098587;}distance(e,t){let n=this.wrap(e[0]-t[0])*this.kx,r=(e[1]-t[1])*this.ky;return Math.sqrt(n*n+r*r)}pointOnLine(e,t){let n=1/0,r,i,a,o;for(let s=0;s<e.length-1;s++){let c=e[s][0],l=e[s][1],u=this.wrap(e[s+1][0]-c)*this.kx,d=(e[s+1][1]-l)*this.ky,f=0;(u!==0||d!==0)&&(f=(this.wrap(t[0]-c)*this.kx*u+(t[1]-l)*this.ky*d)/(u*u+d*d),f>1?(c=e[s+1][0],l=e[s+1][1]):f>0&&(c+=u/this.kx*f,l+=d/this.ky*f)),u=this.wrap(t[0]-c)*this.kx,d=(t[1]-l)*this.ky;let p=u*u+d*d;p<n&&(n=p,r=c,i=l,a=s,o=f);}return {point:[r,i],index:a,t:Math.max(0,Math.min(1,o))}}wrap(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};function Qa(e,t){return t[0]-e[0]}function $a(e){return e[1]-e[0]+1}function eo(e,t){return e[1]>=e[0]&&e[1]<t}function to(e,t){if(e[0]>e[1])return [null,null];let n=$a(e);if(t){if(n===2)return [e,null];let t=Math.floor(n/2);return [[e[0],e[0]+t],[e[0]+t,e[1]]]}if(n===1)return [e,null];let r=Math.floor(n/2)-1;return [[e[0],e[0]+r],[e[0]+r+1,e[1]]]}function no(e,t){if(!eo(t,e.length))return [1/0,1/0,-1/0,-1/0];let n=[1/0,1/0,-1/0,-1/0];for(let r=t[0];r<=t[1];++r)Oa(n,e[r]);return n}function ro(e){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)for(let e of n)Oa(t,e);return t}function io(e){return e[0]!==-1/0&&e[1]!==-1/0&&e[2]!==1/0&&e[3]!==1/0}function ao(e,t,n){if(!io(e)||!io(t))return NaN;let r=0,i=0;return e[2]<t[0]&&(r=t[0]-e[2]),e[0]>t[2]&&(r=e[0]-t[2]),e[1]>t[3]&&(i=e[1]-t[3]),e[3]<t[1]&&(i=t[1]-e[3]),n.distance([0,0],[r,i])}function oo(e,t,n){let r=n.pointOnLine(t,e);return n.distance(e,r.point)}function so(e,t,n,r,i){let a=Math.min(oo(e,[n,r],i),oo(t,[n,r],i)),o=Math.min(oo(n,[e,t],i),oo(r,[e,t],i));return Math.min(a,o)}function co(e,t,n,r,i){if(!(eo(t,e.length)&&eo(r,n.length)))return 1/0;let a=1/0;for(let o=t[0];o<t[1];++o){let t=e[o],s=e[o+1];for(let e=r[0];e<r[1];++e){let r=n[e],o=n[e+1];if(Ma(t,s,r,o))return 0;a=Math.min(a,so(t,s,r,o,i));}}return a}function lo(e,t,n,r,i){if(!(eo(t,e.length)&&eo(r,n.length)))return NaN;let a=1/0;for(let o=t[0];o<=t[1];++o)for(let t=r[0];t<=r[1];++t)if(a=Math.min(a,i.distance(e[o],n[t])),a===0)return a;return a}function uo(e,t,n){if(Pa(e,t,true))return 0;let r=1/0;for(let i of t){let t=i[0],a=i[i.length-1];if(t!==a&&(r=Math.min(r,oo(e,[a,t],n)),r===0))return r;let o=n.pointOnLine(i,e);if(r=Math.min(r,n.distance(e,o.point)),r===0)return r}return r}function fo(e,t,n,r){if(!eo(t,e.length))return NaN;for(let r=t[0];r<=t[1];++r)if(Pa(e[r],n,true))return 0;let i=1/0;for(let a=t[0];a<t[1];++a){let t=e[a],o=e[a+1];for(let e of n)for(let n=0,a=e.length,s=a-1;n<a;s=n++){let a=e[s],c=e[n];if(Ma(t,o,a,c))return 0;i=Math.min(i,so(t,o,a,c,r));}}return i}function po(e,t){for(let n of e)for(let e of n)if(Pa(e,t,true))return true;return false}function mo(e,t,n,r=1/0){let i=ro(e),a=ro(t);if(r!==1/0&&ao(i,a,n)>=r)return r;if(ka(i,a)){if(po(e,t))return 0}else if(po(t,e))return 0;let o=1/0;for(let r of e)for(let e=0,i=r.length,a=i-1;e<i;a=e++){let i=r[a],s=r[e];for(let e of t)for(let t=0,r=e.length,a=r-1;t<r;a=t++){let r=e[a],c=e[t];if(Ma(i,s,r,c))return 0;o=Math.min(o,so(i,s,r,c,n));}}return o}function ho(e,t,n,r,i,a){if(!a)return;let o=ao(no(r,a),i,n);o<t&&e.push([o,a,[0,0]]);}function go(e,t,n,r,i,a,o){if(!a||!o)return;let s=ao(no(r,a),no(i,o),n);s<t&&e.push([s,a,o]);}function _o(e,t,n,r,i=1/0){let a=Math.min(r.distance(e[0],n[0][0]),i);if(a===0)return a;let o=new Ya([[0,[0,e.length-1],[0,0]]],Qa),s=ro(n);for(;o.length>0;){let i=o.pop();if(i[0]>=a)continue;let c=i[1],l=t?50:100;if($a(c)<=l){if(!eo(c,e.length))return NaN;if(t){let t=fo(e,c,n,r);if(isNaN(t)||t===0)return t;a=Math.min(a,t);}else for(let t=c[0];t<=c[1];++t){let i=uo(e[t],n,r);if(a=Math.min(a,i),a===0)return 0}}else {let n=to(c,t);ho(o,a,r,e,s,n[0]),ho(o,a,r,e,s,n[1]);}}return a}function vo(e,t,n,r,i,a=1/0){let o=Math.min(a,i.distance(e[0],n[0]));if(o===0)return o;let s=new Ya([[0,[0,e.length-1],[0,n.length-1]]],Qa);for(;s.length>0;){let a=s.pop();if(a[0]>=o)continue;let c=a[1],l=a[2],u=t?50:100,d=r?50:100;if($a(c)<=u&&$a(l)<=d){if(!eo(c,e.length)&&eo(l,n.length))return NaN;let a;if(t&&r)a=co(e,c,n,l,i),o=Math.min(o,a);else if(t&&!r){let t=e.slice(c[0],c[1]+1);for(let e=l[0];e<=l[1];++e)if(a=oo(n[e],t,i),o=Math.min(o,a),o===0)return o}else if(!t&&r){let t=n.slice(l[0],l[1]+1);for(let n=c[0];n<=c[1];++n)if(a=oo(e[n],t,i),o=Math.min(o,a),o===0)return o}else a=lo(e,c,n,l,i),o=Math.min(o,a);}else {let a=to(c,t),u=to(l,r);go(s,o,i,e,n,a[0],u[0]),go(s,o,i,e,n,a[0],u[1]),go(s,o,i,e,n,a[1],u[0]),go(s,o,i,e,n,a[1],u[1]);}}return o}function yo(e,t){let n=e.geometry(),r=n.flat().map(t=>Ca([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Za(r[0][1]),a=1/0;for(let e of t){switch(e.type){case `Point`:a=Math.min(a,vo(r,false,[e.coordinates],false,i,a));break;case `LineString`:a=Math.min(a,vo(r,false,e.coordinates,true,i,a));break;case `Polygon`:a=Math.min(a,_o(r,false,e.coordinates,i,a));}if(a===0)return a}return a}function bo(e,t){let n=e.geometry(),r=n.flat().map(t=>Ca([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Za(r[0][1]),a=1/0;for(let e of t){switch(e.type){case `Point`:a=Math.min(a,vo(r,true,[e.coordinates],false,i,a));break;case `LineString`:a=Math.min(a,vo(r,true,e.coordinates,true,i,a));break;case `Polygon`:a=Math.min(a,_o(r,true,e.coordinates,i,a));}if(a===0)return a}return a}function xo(e,t){let n=e.geometry();if(n.length===0||n[0].length===0)return NaN;let r=Fi(n,0).map(t=>t.map(t=>t.map(t=>Ca([t.x,t.y],e.canonical)))),i=new Za(r[0][0][0][1]),a=1/0;for(let e of t)for(let t of r){switch(e.type){case `Point`:a=Math.min(a,_o([e.coordinates],false,t,i,a));break;case `LineString`:a=Math.min(a,_o(e.coordinates,true,t,i,a));break;case `Polygon`:a=Math.min(a,mo(t,e.coordinates,i,a));}if(a===0)return a}return a}function So(e){return e.type===`MultiPolygon`?e.coordinates.map(e=>({type:`Polygon`,coordinates:e})):e.type===`MultiLineString`?e.coordinates.map(e=>({type:`LineString`,coordinates:e})):e.type===`MultiPoint`?e.coordinates.map(e=>({type:`Point`,coordinates:e})):[e]}var Co=class e{constructor(e,t){this.type=H,this.geojson=e,this.geometries=t;}static parse(t,n){if(t.length!==2)return n.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(yi(t[1])){let n=t[1];if(n.type===`FeatureCollection`)return new e(n,n.features.map(e=>So(e.geometry)).flat());if(n.type===`Feature`)return new e(n,So(n.geometry));if(`type`in n&&`coordinates`in n)return new e(n,So(n))}return n.error(`'distance' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return yo(e,this.geometries);if(e.geometryType()===`LineString`)return bo(e,this.geometries);if(e.geometryType()===`Polygon`)return xo(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return true}},wo=class e{constructor(e){let t=null;for(let n of e)if(!t)t=n.type;else if(t===n.type)continue;else {t=W;break}this.type=Tr(t??W,e.length),this.arr=e;}static parse(t,n){if(t.length!==2)return n.error(`'semiliteral' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!yi(t[1]))return n.error(`invalid value of type "${typeof t[1]}"`);let r=t[1],i=bi(r);if(i.kind===`array`){let t=r,i=n.concat(1),a=[];for(let e=0;e<t.length;e++){let n=i.parse(t[e],e,W);if(!n)return null;a.push(n);}return new e(a)}return new Si(i,r)}evaluate(e){return this.arr.map(t=>t.evaluate(e))}eachChild(e){this.arr.forEach(e);}outputDefined(){return this.arr.every(e=>e.outputDefined())}},To=class e{constructor(e){this.key=e,this.type=W;}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=t[1];return r==null?n.error(`Global state property must be defined.`):typeof r==`string`?new e(r):n.error(`Global state property must be string, but found ${typeof t[1]} instead.`)}evaluate(e){let t=e.globals?.globalState;return !t||Object.keys(t).length===0?null:Xr(t,this.key)??null}eachChild(){}outputDefined(){return false}};const Eo={"==":da,"!=":fa,">":ma,"<":pa,">=":ga,"<=":ha,array:zi,at:Wi,boolean:zi,case:Ji,coalesce:Xi,collator:_a,format:ji,image:ya,in:Gi,"index-of":Ki,interpolate:Oi,"interpolate-hcl":Oi,"interpolate-lab":Oi,length:ba,let:Hi,literal:Si,match:qi,number:zi,"number-format":va,object:zi,semiliteral:wo,slice:Yi,step:Ei,string:zi,"to-boolean":Vi,"to-color":Vi,"to-number":Vi,"to-string":Vi,var:Ui,within:Ja,distance:Co,"global-state":To};var Do=class extends Error{constructor(e,t){super(t),this.message=t,this.key=e;}},Oo=class e{constructor(e,t=[]){this.parent=e,this.bindings={};for(let[e,n]of t)this.bindings[e]=n;}concat(t){return new e(this,t)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw Error(`${e} not found in scope.`)}has(e){return this.bindings[e]?true:this.parent?this.parent.has(e):false}},ko=class e{constructor(e,t,n=[],r,i=new Oo,a=[]){this.registry=e,this.path=n,this.key=n.map(e=>`[${e}]`).join(``),this.scope=i,this.errors=a,this.expectedType=r,this._isConstant=t;}parse(e,t,n,r,i={}){return t==null?this._parse(e,i):this.concat(t,n,r)._parse(e,i)}_parse(e,t){(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`)&&(e=[`literal`,e]);let n=this.key;function r(e,t,r){return r===`assert`?new zi(t,[e],n):r===`coerce`?new Vi(t,[e],n):e}if(Array.isArray(e)){if(e.length===0)return this.error(`Expected an array with at least one element. If you wanted a literal array, use ["literal", []].`);let n=e[0];if(typeof n!=`string`)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;let i=this.registry[n];if(i){let n=i.parse(e,this);if(!n)return null;if(this.expectedType){let e=this.expectedType,i=n.type;if((e.kind===`string`||e.kind===`number`||e.kind===`boolean`||e.kind===`object`||e.kind===`array`)&&i.kind===`value`)n=r(n,e,t.typeAnnotation||`assert`);else if(e.kind===`projectionDefinition`&&[`string`,`array`,`value`].includes(i.kind)||[`color`,`formatted`,`resolvedImage`].includes(e.kind)&&[`value`,`string`].includes(i.kind)||[`padding`,`numberArray`].includes(e.kind)&&[`value`,`number`,`array`].includes(i.kind)||e.kind===`colorArray`&&[`value`,`string`,`array`].includes(i.kind)||e.kind===`variableAnchorOffsetCollection`&&[`value`,`array`].includes(i.kind))n=r(n,e,t.typeAnnotation||`coerce`);else if(this.checkSubtype(e,i))return null}if(!(n instanceof Si)&&n.type.kind!==`resolvedImage`&&this._isConstant(n)){let e=new wi;try{n=new Si(n.type,n.evaluate(e));}catch(e){return this.error(e.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return e===void 0?this.error(`'undefined' value invalid. Use null instead.`):typeof e==`object`?this.error(`Bare objects invalid. Use ["literal", {...}] instead.`):this.error(`Expected an array, but found ${typeof e} instead.`)}concat(t,n,r){let i=typeof t==`number`?this.path.concat(t):this.path,a=r?this.scope.concat(r):this.scope;return new e(this.registry,this._isConstant,i,n||null,a,this.errors)}error(e,...t){let n=`${this.key}${t.map(e=>`[${e}]`).join(``)}`;this.errors.push(new Do(n,e));}checkSubtype(e,t){let n=Or(e,t);return n&&this.error(n),n}},Ao=class e{constructor(e,t,n,r,i){this.name=e,this.type=t,this._evaluate=n,this.args=r,this.key=i;}evaluate(e){return this._evaluate(e,this.args,this.key)}eachChild(e){this.args.forEach(e);}outputDefined(){return false}static parse(t,n){let r=t[0],i=e.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);let a=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,s=o.filter(([e])=>!Array.isArray(e)||e.length===t.length-1),c=null;for(let[i,o]of s){c=new ko(n.registry,Lo,n.path,null,n.scope);let s=[],l=false;for(let e=1;e<t.length;e++){let n=t[e],r=Array.isArray(i)?i[e-1]:i.type,a=c.parse(n,1+s.length,r);if(!a){l=true;break}s.push(a);}if(!l){if(Array.isArray(i)&&i.length!==s.length)c.error(`Expected ${i.length} arguments, but found ${s.length} instead.`);else {for(let e=0;e<s.length;e++){let t=Array.isArray(i)?i[e]:i.type,n=s[e];c.concat(e+1).checkSubtype(t,n.type);}if(c.errors.length===0)return new e(r,a,o,s,n.key)}}}if(s.length===1)n.errors.push(...c.errors);else {let e=(s.length?s:o).map(([e])=>Io(e)).join(` | `),r=[];for(let e=1;e<t.length;e++){let i=n.parse(t[e],1+r.length);if(!i)return null;r.push(Er(i.type));}n.error(`Expected arguments of type ${e}, but found (${r.join(`, `)}) instead.`);}return null}static register(t,n){e.definitions=n;for(let r in n)t[r]=e;}};function jo(e,[t,n,r,i],a){t=t.evaluate(e),n=n.evaluate(e),r=r.evaluate(e);let o=i?i.evaluate(e):1,s=vi(t,n,r,o);if(s)throw new fi(s,a);return new G(t/255,n/255,r/255,o,false)}function Mo(e,t){return e in t&&t[e]!==void 0}function No(e,t){let n=t[e];return n===void 0?null:n}function Po(e,t,n,r){for(;n<=r;){let i=n+r>>1;if(t[i]===e)return true;t[i]>e?r=i-1:n=i+1;}return false}function Fo(e){return {type:e}}Ao.register(Eo,{error:[_r,[U],(e,[t],n)=>{throw new fi(t.evaluate(e),n)}],typeof:[U,[W],(e,[t])=>Er(bi(t.evaluate(e)))],"to-rgba":[Tr(H,4),[mr],(e,[t])=>{let[n,r,i,a]=t.evaluate(e).rgb;return [n*255,r*255,i*255,a]}],rgb:[mr,[H,H,H],jo],rgba:[mr,[H,H,H,H],jo],has:{type:pr,overloads:[[[U],(e,[t])=>Mo(t.evaluate(e),e.properties())],[[U,gr],(e,[t,n])=>Mo(t.evaluate(e),n.evaluate(e))]]},get:{type:W,overloads:[[[U],(e,[t])=>No(t.evaluate(e),e.properties())],[[U,gr],(e,[t,n])=>No(t.evaluate(e),n.evaluate(e))]]},"feature-state":[W,[U],(e,[t])=>No(t.evaluate(e),e.featureState||{})],properties:[gr,[],e=>e.properties()],"geometry-type":[U,[],e=>e.geometryType()],id:[W,[],e=>e.id()],zoom:[H,[],e=>e.globals.zoom],"heatmap-density":[H,[],e=>e.globals.heatmapDensity||0],elevation:[H,[],e=>e.globals.elevation||0],"line-progress":[H,[],e=>e.globals.lineProgress||0],accumulated:[W,[],e=>e.globals.accumulated===void 0?null:e.globals.accumulated],"+":[H,Fo(H),(e,t)=>{let n=0;for(let r of t)n+=r.evaluate(e);return n}],"*":[H,Fo(H),(e,t)=>{let n=1;for(let r of t)n*=r.evaluate(e);return n}],"-":{type:H,overloads:[[[H,H],(e,[t,n])=>t.evaluate(e)-n.evaluate(e)],[[H],(e,[t])=>-t.evaluate(e)]]},"/":[H,[H,H],(e,[t,n])=>t.evaluate(e)/n.evaluate(e)],"%":[H,[H,H],(e,[t,n])=>t.evaluate(e)%n.evaluate(e)],ln2:[H,[],()=>Math.LN2],pi:[H,[],()=>Math.PI],e:[H,[],()=>Math.E],"^":[H,[H,H],(e,[t,n])=>t.evaluate(e)**+n.evaluate(e)],sqrt:[H,[H],(e,[t])=>Math.sqrt(t.evaluate(e))],log10:[H,[H],(e,[t])=>Math.log(t.evaluate(e))/Math.LN10],ln:[H,[H],(e,[t])=>Math.log(t.evaluate(e))],log2:[H,[H],(e,[t])=>Math.log(t.evaluate(e))/Math.LN2],sin:[H,[H],(e,[t])=>Math.sin(t.evaluate(e))],cos:[H,[H],(e,[t])=>Math.cos(t.evaluate(e))],tan:[H,[H],(e,[t])=>Math.tan(t.evaluate(e))],asin:[H,[H],(e,[t])=>Math.asin(t.evaluate(e))],acos:[H,[H],(e,[t])=>Math.acos(t.evaluate(e))],atan:[H,[H],(e,[t])=>Math.atan(t.evaluate(e))],min:[H,Fo(H),(e,t)=>Math.min(...t.map(t=>t.evaluate(e)))],max:[H,Fo(H),(e,t)=>Math.max(...t.map(t=>t.evaluate(e)))],abs:[H,[H],(e,[t])=>Math.abs(t.evaluate(e))],round:[H,[H],(e,[t])=>{let n=t.evaluate(e);return n<0?-Math.round(-n):Math.round(n)}],floor:[H,[H],(e,[t])=>Math.floor(t.evaluate(e))],ceil:[H,[H],(e,[t])=>Math.ceil(t.evaluate(e))],"filter-==":[pr,[U,W],(e,[t,n])=>e.properties()[t.value]===n.value],"filter-id-==":[pr,[W],(e,[t])=>e.id()===t.value],"filter-type-==":[pr,[U],(e,[t])=>e.geometryType()===t.value],"filter-<":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<i}],"filter-id-<":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<r}],"filter->":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>r}],"filter-<=":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<=r}],"filter->=":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>=r}],"filter-has":[pr,[W],(e,[t])=>{let n=t.value,r=e.properties();return n in r&&r[n]!==void 0}],"filter-has-id":[pr,[],e=>e.id()!==null&&e.id()!==void 0],"filter-type-in":[pr,[Tr(U)],(e,[t])=>t.value.indexOf(e.geometryType())>=0],"filter-id-in":[pr,[Tr(W)],(e,[t])=>t.value.indexOf(e.id())>=0],"filter-in-small":[pr,[U,Tr(W)],(e,[t,n])=>n.value.indexOf(e.properties()[t.value])>=0],"filter-in-large":[pr,[U,Tr(W)],(e,[t,n])=>Po(e.properties()[t.value],n.value,0,n.value.length-1)],all:{type:pr,overloads:[[[pr,pr],(e,[t,n])=>t.evaluate(e)&&n.evaluate(e)],[Fo(pr),(e,t)=>{for(let n of t)if(!n.evaluate(e))return false;return true}]]},any:{type:pr,overloads:[[[pr,pr],(e,[t,n])=>t.evaluate(e)||n.evaluate(e)],[Fo(pr),(e,t)=>{for(let n of t)if(n.evaluate(e))return true;return false}]]},"!":[pr,[pr],(e,[t])=>!t.evaluate(e)],"is-supported-script":[pr,[U],(e,[t])=>{let n=e.globals&&e.globals.isSupportedScript;return !n||n(t.evaluate(e))}],upcase:[U,[U],(e,[t])=>t.evaluate(e).toUpperCase()],downcase:[U,[U],(e,[t])=>t.evaluate(e).toLowerCase()],concat:[U,Fo(W),(e,t)=>t.map(t=>xi(t.evaluate(e))).join(``)],split:[Tr(U),[U,U],(e,[t,n])=>t.evaluate(e).split(n.evaluate(e))],join:[U,[Tr(U),U],(e,[t,n])=>t.evaluate(e).join(n.evaluate(e))],"resolved-locale":[U,[vr],(e,[t])=>t.evaluate(e).resolvedLocale()]});function Io(e){return Array.isArray(e)?`(${e.map(Er).join(`, `)})`:`(${Er(e.type)}...)`}function Lo(e){if(e instanceof Ui)return Lo(e.boundExpression);if(e instanceof Ao&&e.name===`error`||e instanceof _a||e instanceof Ja||e instanceof Co||e instanceof To)return false;let t=e instanceof Vi||e instanceof zi,n=true;return e.eachChild(e=>{n&&=t?Lo(e):e instanceof Si;}),n?Ro(e)&&Bo(e,[`zoom`,`heatmap-density`,`elevation`,`line-progress`,`accumulated`,`is-supported-script`]):false}function Ro(e){if(e instanceof Ao&&(e.name===`get`&&e.args.length===1||e.name===`feature-state`||e.name===`has`&&e.args.length===1||e.name===`properties`||e.name===`geometry-type`||e.name===`id`||/^filter-/.test(e.name))||e instanceof Ja||e instanceof Co)return false;let t=true;return e.eachChild(e=>{t&&!Ro(e)&&(t=false);}),t}function zo(e){if(e instanceof Ao&&e.name===`feature-state`)return false;let t=true;return e.eachChild(e=>{t&&!zo(e)&&(t=false);}),t}function Bo(e,t){if(e instanceof Ao&&t.indexOf(e.name)>=0)return false;let n=true;return e.eachChild(e=>{n&&!Bo(e,t)&&(n=false);}),n}function Vo(e){return e[`property-type`]===`data-driven`||e[`property-type`]===`cross-faded-data-driven`}function Uo(e){return !!e.expression&&e.expression.interpolated}function Go(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function Ko(e){return e instanceof Number?`number`:e instanceof String?`string`:e instanceof Boolean?`boolean`:Array.isArray(e)?`array`:e===null?`null`:typeof e}function qo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&bi(e)===gr}function Jo(e){return e}function Yo(e){switch(e.type){case `color`:return G.parse;case `padding`:return li.parse;case `numberArray`:return ui.parse;case `colorArray`:return di.parse;default:return null}}function Xo(e){switch(e){case `exponential`:return ts;case `interval`:return es;case `categorical`:return $o;case `identity`:return ns;default:throw Error(`Unknown function type "${e}"`)}}function Zo(e,t){let n=e.stops&&typeof e.stops[0][0]==`object`,r=n||e.property!==void 0,i=n||!r,a=e.type||(Uo(t)?`exponential`:`interval`),o=Yo(t);if(o&&(e=Go({},e),e.stops&&(e.stops=e.stops.map(e=>[e[0],o(e[1])])),e.default?e.default=o(e.default):e.default=o(t.default)),e.colorSpace&&!ai(e.colorSpace))throw Error(`Unknown color space: "${e.colorSpace}"`);let s=Xo(a),c,l;if(a===`categorical`){c=Object.create(null);for(let t of e.stops)c[t[0]]=t[1];l=typeof e.stops[0][0];}if(n){let n={},r=[];for(let t=0;t<e.stops.length;t++){let i=e.stops[t],a=i[0].zoom;n[a]===void 0&&(n[a]={zoom:a,type:e.type,property:e.property,default:e.default,stops:[]},r.push(a)),n[a].stops.push([i[0].value,i[1]]);}let i=[];for(let e of r)i.push([n[e].zoom,Zo(n[e],t)]);let a={name:`linear`};return {kind:`composite`,interpolationType:a,interpolationFactor:Oi.interpolationFactor.bind(void 0,a),zoomStops:i.map(e=>e[0]),evaluate({zoom:n},r){return ts({stops:i,base:e.base},t,n).evaluate(n,r)}}}if(i){let n=a===`exponential`?{name:`exponential`,base:e.base===void 0?1:e.base}:null;return {kind:`camera`,interpolationType:n,interpolationFactor:Oi.interpolationFactor.bind(void 0,n),zoomStops:e.stops.map(e=>e[0]),evaluate:({zoom:n})=>s(e,t,n,c,l)}}return {kind:`source`,evaluate(n,r){let i=r&&r.properties?r.properties[e.property]:void 0;return i===void 0?Qo(e.default,t.default):s(e,t,i,c,l)}}}function Qo(e,t,n){if(e!==void 0)return e;if(t!==void 0)return t;if(n!==void 0)return n}function $o(e,t,n,r,i){return Qo(typeof n===i?r[n]:void 0,e.default,t.default)}function es(e,t,n){if(Ko(n)!==`number`)return Qo(e.default,t.default);let r=e.stops.length;if(r===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[r-1][0])return e.stops[r-1][1];let i=Ti(e.stops.map(e=>e[0]),n,``);return e.stops[i][1]}function ts(e,t,n){let r=e.base===void 0?1:e.base;if(Ko(n)!==`number`)return Qo(e.default,t.default);let i=e.stops.length;if(i===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[i-1][0])return e.stops[i-1][1];let a=Ti(e.stops.map(e=>e[0]),n,``),o=rs(n,r,e.stops[a][0],e.stops[a+1][0]),s=e.stops[a][1],c=e.stops[a+1][1],l=Ai[t.type]||Jo;return typeof s.evaluate==`function`?{evaluate(...t){let n=s.evaluate.apply(void 0,t),r=c.evaluate.apply(void 0,t);if(n!==void 0&&r!==void 0)return l(n,r,o,e.colorSpace)}}:l(s,c,o,e.colorSpace)}function ns(e,t,n){switch(t.type){case `color`:n=G.parse(n);break;case `formatted`:n=ci.fromString(n.toString());break;case `resolvedImage`:n=hi.fromString(n.toString());break;case `padding`:n=li.parse(n);break;case `colorArray`:n=di.parse(n);break;case `numberArray`:n=ui.parse(n);break;default:Ko(n)!==t.type&&(t.type!==`enum`||!t.values[n])&&(n=void 0);}return Qo(n,e.default,t.default)}function rs(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}function is(e){return {result:`success`,value:e}}function as(e){return {result:`error`,value:e}}var os=class{constructor(e,t,n,r){this.expression=e,this._warningHistory={},this._evaluator=new wi,this._defaultValue=n?bs(n):null,this._enumValues=n&&n.type===`enum`?n.values:null,this._globalState=r,this._rootKey=t;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)}evaluate(e,t,n,r,i,a){this._globalState&&(e=xs(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{let e=this.expression.evaluate(this._evaluator);if(e==null||typeof e==`number`&&e!==e)return this._defaultValue;if(this._enumValues&&!(e in this._enumValues))throw new fi(`Expected value to be one of ${Object.keys(this._enumValues).map(e=>JSON.stringify(e)).join(`, `)}, but found ${JSON.stringify(e)} instead.`,``);return e}catch(e){let t=e instanceof fi?e.path:``,n=`${t}|${e.message}`;return this._warningHistory[n]||(this._warningHistory[n]=true,typeof console<`u`&&console.warn(ss(this._rootKey,t,e.message,this._defaultValue))),this._defaultValue}}};function ss(e,t,n,r){return `${e}${t}: ${n}${r==null?``:` Falling back to ${String(r)}.`}`}function cs(e){if(!e)throw Error(`rootKey must identify the location of the expression in the style JSON, e.g. "layers[3].paint.line-width".`)}function us(e,t,n,r){cs(t);let i=new ko(Eo,Lo,[],n?ys(n):void 0),a=i.parse(e,void 0,void 0,void 0,n&&n.type===`string`?{typeAnnotation:`coerce`}:void 0);return a?is(new os(a,t,n,r)):as(i.errors)}var ds=class{constructor(e,t,n){this.kind=e,this._styleExpression=t,this.isStateDependent=e!==`constant`&&!zo(t.expression),this.globalStateRefs=vs(t.expression),this._globalState=n;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}},fs=class{constructor(e,t,n,r,i){this.kind=e,this.zoomStops=n,this._styleExpression=t,this.isStateDependent=e!==`camera`&&!zo(t.expression),this.globalStateRefs=vs(t.expression),this.interpolationType=r,this._globalState=i;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}interpolationFactor(e,t,n){return this.interpolationType?Oi.interpolationFactor(this.interpolationType,e,t,n):0}};var hs=class e{constructor(e,t,n){this.isStateDependent=false,this.globalStateRefs=/* @__PURE__ */ new Set,this._globalState=null,cs(t),this._parameters=e,this._specification=n,this._rootKey=t,this._defaultValue=bs(n),this._warningHistory={};let r=Zo(this._parameters,this._specification);this.kind=r.kind,this.interpolationFactor=r.interpolationFactor,this.zoomStops=r.zoomStops,this.interpolationType=r.interpolationType,this._innerEvaluate=r.evaluate;}evaluate(e,t){try{return this._innerEvaluate(e,t)}catch(e){let t=e instanceof Error?e.message:String(e),n=`|${t}`;return this._warningHistory[n]||(this._warningHistory[n]=true,typeof console<`u`&&console.warn(ss(this._rootKey,``,t,this._defaultValue))),this._defaultValue}}static deserialize(t){return new e(t._parameters,t._rootKey,t._specification)}static serialize(e){return {_parameters:e._parameters,_specification:e._specification,_rootKey:e._rootKey}}};function vs(e,t=/* @__PURE__ */ new Set){return e instanceof To&&t.add(e.key),e.eachChild(e=>{vs(e,t);}),t}function ys(e){let t={color:mr,string:U,number:H,enum:U,boolean:pr,formatted:yr,padding:br,numberArray:Sr,colorArray:xr,projectionDefinition:hr,resolvedImage:Cr,variableAnchorOffsetCollection:wr};return e.type===`array`?Tr(t[e.value]||W,e.length):t[e.type]}function bs(e){if(e.type===`color`&&qo(e.default))return new G(0,0,0,0);switch(e.type){case `color`:return G.parse(e.default)||null;case `padding`:return li.parse(e.default)||null;case `numberArray`:return ui.parse(e.default)||null;case `colorArray`:return di.parse(e.default)||null;case `variableAnchorOffsetCollection`:return mi.parse(e.default)||null;case `projectionDefinition`:return gi.parse(e.default)||null;default:return e.default===void 0?null:e.default}}function xs(e,t){let{zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s}=e??{};return {zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s,globalState:t}}function Ss(e){let t=false;for(let n of e){let e=Cs(n);if(e===`expression`)return `expression`;e===`legacy`&&(t=true);}return t?`legacy`:`neutral`}function Cs(e){if(typeof e==`boolean`)return `neutral`;if(!Array.isArray(e)||e.length===0)return `legacy`;switch(e[0]){case `has`:return e.length<2||e[1]===`$id`||e[1]===`$type`?`legacy`:e.length===2?`neutral`:`expression`;case `in`:return e.length>=3&&(typeof e[1]!=`string`||Array.isArray(e[2]))?`expression`:`legacy`;case `!in`:case `!has`:return `legacy`;case `==`:case `!=`:case `>`:case `>=`:case `<`:case `<=`:return e.length!==3||Array.isArray(e[1])||Array.isArray(e[2])?`expression`:`legacy`;case `none`:return `legacy`;case `any`:case `all`:return Ss(e.slice(1));default:return `expression`}}function ws(e){return Cs(e)!==`legacy`}function Ts(e){return e===`$type`?[`geometry-type`]:e===`$id`?[`id`]:[`get`,e]}function Es(e){switch(e[0]){case `==`:case `!=`:case `<`:case `<=`:case `>`:case `>=`:return e.length!==3||typeof e[1]!=`string`?null:[e[0],Ts(e[1]),e[2]];case `in`:case `!in`:{if(e.length<2||typeof e[1]!=`string`)return null;let t=[`in`,Ts(e[1]),[`literal`,e.slice(2)]];return e[0]===`!in`?[`!`,t]:t}case `has`:case `!has`:{if(e.length!==2||typeof e[1]!=`string`||e[1]===`$type`||e[1]===`$id`)return null;let t=[`has`,e[1]];return e[0]===`!has`?[`!`,t]:t}default:return null}}function Ds(e){if((e[0]===`<`||e[0]===`<=`||e[0]===`>`||e[0]===`>=`)&&e[1]===`$type`)return `"$type" cannot be use with operator "${e[0]}"`;let t=Es(e);return t?`Mixing deprecated filter syntax with expression syntax is not supported. Replace ${JSON.stringify(e)} with ${JSON.stringify(t)}.`:`Mixing deprecated filter syntax with expression syntax is not supported. Convert ${JSON.stringify(e)} to expression syntax.`}function Os(e,t,n){let r=n[e];return Array.isArray(r)?ws(r)?ks(r,t.concat(e)):{path:t.concat(e),legacyFilter:r}:null}function ks(e,t=[]){if(!Array.isArray(e)||e.length<1)return null;switch(e[0]){case `all`:case `any`:case `none`:for(let n=1;n<e.length;n++){let r=Os(n,t,e);if(r)return r}break;case `!`:{let n=Os(1,t,e);if(n)return n;break}case `case`:for(let n=1;n<e.length-1;n+=2){let r=Os(n,t,e);if(r)return r}}return null}function As(e,t){let n=ks(e);if(!n||typeof console>`u`)return;let r=n.path.map(e=>`[${e}]`).join(``);console.warn(`${t}${r}: ${Ds(n.legacyFilter)}`);}const js={type:`boolean`,default:false,transition:false,"property-type":`data-driven`,expression:{interpolated:false,parameters:[`zoom`,`feature`]}};function Ms(e,t,n){if(e==null)return {filter:()=>true,needGeometry:false,getGlobalStateRefs:()=>/* @__PURE__ */ new Set};ws(e)?As(e,t):e=Fs(e);let r=us(e,t,js,n);if(r.result===`error`)throw Error(r.value.map(e=>`${e.key}: ${e.message}`).join(`, `));return {filter:(e,t,n)=>r.value.evaluate(e,t,{},n),needGeometry:Ps(e),getGlobalStateRefs:()=>vs(r.value.expression)}}function Ns(e,t){return e<t?-1:+(e>t)}function Ps(e){if(!Array.isArray(e))return false;if(e[0]===`within`||e[0]===`distance`)return true;for(let t=1;t<e.length;t++)if(Ps(e[t]))return true;return false}function Fs(e){if(!e)return true;let t=e[0];return e.length<=1?t!==`any`:t===`==`?Is(e[1],e[2],`==`):t===`!=`?Bs(Is(e[1],e[2],`==`)):t===`<`||t===`>`||t===`<=`||t===`>=`?Is(e[1],e[2],t):t===`any`?Ls(e.slice(1)):t===`all`?[`all`].concat(e.slice(1).map(Fs)):t===`none`?[`all`].concat(e.slice(1).map(Fs).map(Bs)):t===`in`?Rs(e[1],e.slice(2)):t===`!in`?Bs(Rs(e[1],e.slice(2))):t===`has`?zs(e[1]):t!==`!has`||Bs(zs(e[1]))}function Is(e,t,n){switch(e){case `$type`:return [`filter-type-${n}`,t];case `$id`:return [`filter-id-${n}`,t];default:return [`filter-${n}`,e,t]}}function Ls(e){return [`any`].concat(e.map(Fs))}function Rs(e,t){if(t.length===0)return false;switch(e){case `$type`:return [`filter-type-in`,[`literal`,t]];case `$id`:return [`filter-id-in`,[`literal`,t]];default:return t.length>200&&!t.some(e=>typeof e!=typeof t[0])?[`filter-in-large`,e,[`literal`,t.sort(Ns)]]:[`filter-in-small`,e,[`literal`,t]]}}function zs(e){switch(e){case `$type`:return true;case `$id`:return [`filter-has-id`];default:return [`filter-has`,e]}}function Bs(e){return [`!`,e]}function Vs(){let e={},t=B.$version;for(let n in B.$root){let r=B.$root[n];if(r.required){let i=null;i=n===`version`?t:r.type===`array`?[]:{},i!=null&&(e[n]=i);}}return e}const Hc={};function K(e,t,n={}){if(Hc[e])throw Error(`${e} is already registered.`);Object.defineProperty(t,"_classRegistryKey",{value:e,writeable:false}),Hc[e]={klass:t,omit:n.omit||[],shallow:n.shallow||[]};}K(`Object`,Object),K(`Set`,Set),K(`TransferableGridIndex`,Jn),K(`Color`,G),K(`Error`,Error),K(`AJAXError`,Pn),K(`ResolvedImage`,hi),K(`StylePropertyFunction`,hs),K(`StyleExpression`,os,{omit:[`_evaluator`]}),K(`ZoomDependentExpression`,fs),K(`ZoomConstantExpression`,ds),K(`CompoundExpression`,Ao,{omit:[`_evaluate`]});for(let e in Eo)Eo[e]._classRegistryKey||K(`Expression_${e}`,Eo[e]);const cl=Math.floor(_n.hardwareConcurrency/2);Wt(globalThis)?Math.max(Math.min(cl,3),1):1;let gl;((function(e){let t,n,r,i;e.resetRequestQueue=()=>{t=[],n=0,r=0,i={};},e.addThrottleControl=e=>{let t=r++;return i[t]=e,t},e.removeThrottleControl=e=>{delete i[e],l();};let a=()=>{for(let e of Object.keys(i))if(i[e]())return true;return false};async function o(e,t,n,r,i=true,a){let o=await e.transformRequest(t,n);return pn(r.signal),gl.getImage(o,r,i,a)}e.transformAndGetImage=o,e.getImage=(e,n,r=true,i)=>new Promise((a,o)=>{e.headers||={},e.headers.accept=`image/webp,*/*`,I(e,{type:`image`});let s={abortController:n,requestParameters:e,supportImageRefresh:r,imageBitmapOptions:i,state:`queued`,onError:e=>{o(e);},onSuccess:e=>{a(e);}};t.push(s),l();});let s=(e,t)=>typeof createImageBitmap==`function`?Kt(e,t):qt(e),c=async e=>{e.state=`running`;let{requestParameters:t,supportImageRefresh:r,imageBitmapOptions:i,onError:a,onSuccess:o,abortController:c}=e,d=r===false&&!i&&!Vt(self)&&!An(t.url)&&(!t.headers||Object.keys(t.headers).reduce((e,t)=>e&&t===`accept`,true));n++;let f=d?u(t,c):zn(t,c);try{let t=await f;delete e.abortController,e.state=`completed`,t.data instanceof HTMLImageElement||Gt(t.data)?o(t):!t.data||t.data.byteLength===0?o({data:null,cacheControl:t.cacheControl,expires:t.expires}):o({data:await s(t.data,i),cacheControl:t.cacheControl,expires:t.expires});}catch(t){delete e.abortController,a(rt(t));}finally{n--,l();}},l=()=>{let e=a()?kn.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:kn.MAX_PARALLEL_IMAGE_REQUESTS;for(let r=n;r<e&&t.length>0;r++){let e=t.shift();e.abortController.signal.aborted?r--:c(e);}},u=(e,t)=>new Promise((n,r)=>{let i=new Image,a=e.url,o=e.credentials;o&&o===`include`?i.crossOrigin=`use-credentials`:(o&&o===`same-origin`||!Hn(a))&&(i.crossOrigin=`anonymous`),t.signal.addEventListener(`abort`,()=>{i.src=``,r(new dn(t.signal.reason));}),i.fetchPriority=`high`,i.onload=()=>{i.onerror=i.onload=null,n({data:i});},i.onerror=()=>{i.onerror=i.onload=null,!t.signal.aborted&&r(/* @__PURE__ */ Error(`Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));},i.src=a;});}))(gl||={}),gl.resetRequestQueue();new Set(Object.keys(B).filter(e=>e.startsWith(`source_`)).map(e=>e.slice(7).replaceAll(`_`,`-`)));var Il=class{constructor(){this.first=true;}update(e,t){let n=Math.floor(e);return this.first?(this.first=false,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=e,this.lastFloorZoom=n,true):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=t):this.lastFloorZoom<n&&(this.lastIntegerZoom=n,this.lastIntegerZoomTime=t),e!==this.lastZoom&&(this.lastZoom=e,this.lastFloorZoom=n,true))}},Ll=class{constructor(e,t){this.zoom=e,t?(this.now=t.now||0,this.fadeDuration=t.fadeDuration||0,this.zoomHistory=t.zoomHistory||new Il,this.transition=t.transition||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Il,this.transition={});}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let e=this.zoom,t=e-Math.floor(e),n=this.crossFadingFactor();return e>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:t+(1-t)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*t}}},Wl=class{constructor(e,t,n){this.property=e,this.value=t,this.parameters=n;}isConstant(){return this.value.kind===`constant`}constantOr(e){return this.value.kind===`constant`?this.value.value:e}evaluate(e,t,n,r){return this.property.evaluate(this.value,this.parameters,e,t,n,r)}},Gl=class{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues);}get(e){return this._values[e]}};function Kl(e){if(Array.isArray(e))return e.length;let t=e?.values;return Array.isArray(t)?t.length:void 0}function ql(e,t){let n=Kl(e),r=Kl(t);return n!==void 0&&r!==void 0&&n!==r}var J=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t){if(e.isDataDriven())throw Error(`Value should not be data driven`);return e.expression.evaluate(t)}interpolate(e,t,n){if(ql(e,t))return L$1(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=this.specification.type,i=Ai[r];return i?i(e,t,n):e}},Y=class{constructor(e,t,n){this.specification=e,this.name=t,this.overrides=n;}possiblyEvaluate(e,t,n,r){return e.expression.kind===`constant`||e.expression.kind===`camera`?new Wl(this,{kind:`constant`,value:e.expression.evaluate(t,null,{},n,r)},t):new Wl(this,e.expression,t)}interpolate(e,t,n){if(e.value.kind!==`constant`||t.value.kind!==`constant`)return e;if(e.value.value===void 0||t.value.value===void 0)return new Wl(this,{kind:`constant`,value:void 0},e.parameters);if(ql(e.value.value,t.value.value))return L$1(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=this.specification.type,i=Ai[r];if(i){let r=i(e.value.value,t.value.value,n);return new Wl(this,{kind:`constant`,value:r},e.parameters)}return e}evaluate(e,t,n,r,i,a){return e.kind===`constant`?e.value:e.evaluate(t,n,r,i,a)}},Jl=class extends Y{possiblyEvaluate(e,t,n,r){if(e.value===void 0)return new Wl(this,{kind:`constant`,value:void 0},t);if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r),a=e.property.specification.type===`resolvedImage`&&typeof i!=`string`?i.name:i,o=this._calculate(a,a,a,t);return new Wl(this,{kind:`constant`,value:o},t)}if(e.expression.kind===`camera`){let n=this._calculate(e.expression.evaluate({zoom:t.zoom-1}),e.expression.evaluate({zoom:t.zoom}),e.expression.evaluate({zoom:t.zoom+1}),t);return new Wl(this,{kind:`constant`,value:n},t)}return new Wl(this,e.expression,t)}evaluate(e,t,n,r,i,a){if(e.kind===`source`){let o=e.evaluate(t,n,r,i,a);return this._calculate(o,o,o,t)}return e.kind===`composite`?this._calculate(e.evaluate({zoom:Math.floor(t.zoom)-1},n,r),e.evaluate({zoom:Math.floor(t.zoom)},n,r),e.evaluate({zoom:Math.floor(t.zoom)+1},n,r),t):e.value}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},Yl=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t,n,r){if(e.value!==void 0){if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r);return this._calculate(i,i,i,t)}return this._calculate(e.expression.evaluate(new Ll(Math.floor(t.zoom-1),t)),e.expression.evaluate(new Ll(Math.floor(t.zoom),t)),e.expression.evaluate(new Ll(Math.floor(t.zoom+1),t)),t)}}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},Xl=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t,n,r){return !!e.expression.evaluate(t,null,{},n,r)}interpolate(){return false}};K(`DataDrivenProperty`,Y),K(`DataConstantProperty`,J),K(`CrossFadedDataDrivenProperty`,Jl),K(`CrossFadedProperty`,Yl),K(`ColorRampProperty`,Xl);const ou={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};var su=class{constructor(e,t){this._structArray=e,this._pos1=t*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8;}},cu=class{constructor(){this.isTransferred=false,this.capacity=-1,this.resize(0);}static serialize(e,t){return e._trim(),t&&(e.isTransferred=true,t.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){let t=Object.create(this.prototype);return t.arrayBuffer=e.arrayBuffer,t.length=e.length,t.capacity=e.arrayBuffer.byteLength/t.bytesPerElement,t._refreshViews(),t}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());}clear(){this.length=0;}resize(e){this.reserve(e),this.length=e;}reserve(e){if(e>this.capacity){this.capacity=Math.max(e,Math.floor(this.capacity*5),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let t=this.uint8;this._refreshViews(),t&&this.uint8.set(t);}}_refreshViews(){throw Error(`_refreshViews() must be implemented by each concrete StructArray layout`)}freeBufferAfterUpload(){this.arrayBuffer=/* @__PURE__ */ new ArrayBuffer(0),this._refreshViews();}};function lu(e,t=1){let n=0,r=0;return {members:e.map(e=>{let i=uu(e.type),a=n=du(n,Math.max(t,i)),o=e.components||1;return r=Math.max(r,i),n+=i*o,{name:e.name,type:e.type,components:o,offset:a}}),size:du(n,Math.max(r,t)),alignment:t}}function uu(e){return ou[e].BYTES_PER_ELEMENT}function du(e,t){return Math.ceil(e/t)*t}var fu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.int16[r+0]=t,this.int16[r+1]=n,e}};fu.prototype.bytesPerElement=4,K(`StructArrayLayout2i4`,fu);var pu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.int16[i+0]=t,this.int16[i+1]=n,this.int16[i+2]=r,e}};pu.prototype.bytesPerElement=6,K(`StructArrayLayout3i6`,pu);var mu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.int16[a+0]=t,this.int16[a+1]=n,this.int16[a+2]=r,this.int16[a+3]=i,e}};mu.prototype.bytesPerElement=8,K(`StructArrayLayout4i8`,mu);var hu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};hu.prototype.bytesPerElement=12,K(`StructArrayLayout2i4i12`,hu);var gu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.int8=new Int8Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*5,u=e*10;return this.int16[l+0]=t,this.int16[l+1]=n,this.uint8[u+4]=r,this.uint8[u+5]=i,this.uint8[u+6]=a,this.uint8[u+7]=o,this.int8[u+8]=s,this.int8[u+9]=c,e}};gu.prototype.bytesPerElement=10,K(`StructArrayLayout2i4ub2b10`,gu);var _u=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.float32[r+0]=t,this.float32[r+1]=n,e}};_u.prototype.bytesPerElement=8,K(`StructArrayLayout2f8`,_u);var vu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l){let u=this.length;return this.resize(u+1),this.emplace(u,e,t,n,r,i,a,o,s,c,l)}emplace(e,t,n,r,i,a,o,s,c,l,u){let d=e*10;return this.uint16[d+0]=t,this.uint16[d+1]=n,this.uint16[d+2]=r,this.uint16[d+3]=i,this.uint16[d+4]=a,this.uint16[d+5]=o,this.uint16[d+6]=s,this.uint16[d+7]=c,this.uint16[d+8]=l,this.uint16[d+9]=u,e}};vu.prototype.bytesPerElement=20,K(`StructArrayLayout10ui20`,vu);var yu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*8;return this.uint16[l+0]=t,this.uint16[l+1]=n,this.uint16[l+2]=r,this.uint16[l+3]=i,this.uint16[l+4]=a,this.uint16[l+5]=o,this.uint16[l+6]=s,this.uint16[l+7]=c,e}};yu.prototype.bytesPerElement=16,K(`StructArrayLayout8ui16`,yu);var bu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=this.length;return this.resize(p+1),this.emplace(p,e,t,n,r,i,a,o,s,c,l,u,d,f)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=e*14,h=e*7;return this.int16[m+0]=t,this.int16[m+1]=n,this.int16[m+2]=r,this.int16[m+3]=i,this.uint16[m+4]=a,this.uint16[m+5]=o,this.uint16[m+6]=s,this.uint16[m+7]=c,this.int16[m+8]=l,this.int16[m+9]=u,this.int16[m+10]=d,this.int16[m+11]=f,this.float32[h+6]=p,e}};bu.prototype.bytesPerElement=28,K(`StructArrayLayout4i4ui4i1f28`,bu);var xu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.float32[i+0]=t,this.float32[i+1]=n,this.float32[i+2]=r,e}};xu.prototype.bytesPerElement=12,K(`StructArrayLayout3f12`,xu);var Su=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint32[n+0]=t,e}};Su.prototype.bytesPerElement=4,K(`StructArrayLayout1ul4`,Su);var Cu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c){let l=this.length;return this.resize(l+1),this.emplace(l,e,t,n,r,i,a,o,s,c)}emplace(e,t,n,r,i,a,o,s,c,l){let u=e*10,d=e*5;return this.int16[u+0]=t,this.int16[u+1]=n,this.int16[u+2]=r,this.int16[u+3]=i,this.int16[u+4]=a,this.int16[u+5]=o,this.uint32[d+3]=s,this.uint16[u+8]=c,this.uint16[u+9]=l,e}};Cu.prototype.bytesPerElement=20,K(`StructArrayLayout6i1ul2ui20`,Cu);var wu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};wu.prototype.bytesPerElement=12,K(`StructArrayLayout2i2i2i12`,wu);var Tu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i){let a=this.length;return this.resize(a+1),this.emplace(a,e,t,n,r,i)}emplace(e,t,n,r,i,a){let o=e*4,s=e*8;return this.float32[o+0]=t,this.float32[o+1]=n,this.float32[o+2]=r,this.int16[s+6]=i,this.int16[s+7]=a,e}};Tu.prototype.bytesPerElement=16,K(`StructArrayLayout2f1f2i16`,Tu);var Eu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*16,c=e*4,l=e*8;return this.uint8[s+0]=t,this.uint8[s+1]=n,this.float32[c+1]=r,this.float32[c+2]=i,this.int16[l+6]=a,this.int16[l+7]=o,e}};Eu.prototype.bytesPerElement=16,K(`StructArrayLayout2ub2f2i16`,Eu);var Du=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.uint16[i+0]=t,this.uint16[i+1]=n,this.uint16[i+2]=r,e}};Du.prototype.bytesPerElement=6,K(`StructArrayLayout3ui6`,Du);var Ou=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=this.length;return this.resize(v+1),this.emplace(v,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){let y=e*26,b=e*13,x=e*52;return this.int16[y+0]=t,this.int16[y+1]=n,this.uint16[y+2]=r,this.uint16[y+3]=i,this.uint32[b+2]=a,this.uint32[b+3]=o,this.uint32[b+4]=s,this.uint16[y+10]=c,this.uint16[y+11]=l,this.uint16[y+12]=u,this.float32[b+7]=d,this.float32[b+8]=f,this.uint8[x+36]=p,this.uint8[x+37]=m,this.uint8[x+38]=h,this.uint32[b+10]=g,this.int16[y+22]=_,this.float32[b+12]=v,e}};Ou.prototype.bytesPerElement=52,K(`StructArrayLayout2i2ui3ul3ui2f3ub1ul1i1f52`,Ou);var ku=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O){let k=this.length;return this.resize(k+1),this.emplace(k,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k){let A=e*34,j=e*17;return this.int16[A+0]=t,this.int16[A+1]=n,this.int16[A+2]=r,this.int16[A+3]=i,this.int16[A+4]=a,this.int16[A+5]=o,this.int16[A+6]=s,this.int16[A+7]=c,this.uint16[A+8]=l,this.uint16[A+9]=u,this.uint16[A+10]=d,this.uint16[A+11]=f,this.uint16[A+12]=p,this.uint16[A+13]=m,this.uint16[A+14]=h,this.uint16[A+15]=g,this.uint16[A+16]=_,this.uint16[A+17]=v,this.uint16[A+18]=y,this.uint16[A+19]=b,this.uint16[A+20]=x,this.uint16[A+21]=S,this.uint16[A+22]=C,this.uint32[j+12]=w,this.float32[j+13]=T,this.float32[j+14]=E,this.uint16[A+30]=D,this.uint16[A+31]=O,this.float32[j+16]=k,e}};ku.prototype.bytesPerElement=68,K(`StructArrayLayout8i15ui1ul2f2ui1f68`,ku);var Au=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.float32[n+0]=t,e}};Au.prototype.bytesPerElement=4,K(`StructArrayLayout1f4`,Au);var ju=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*6,a=e*3;return this.uint16[i+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,e}};ju.prototype.bytesPerElement=12,K(`StructArrayLayout1ui2f12`,ju);var Mu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*2,a=e*4;return this.uint32[i+0]=t,this.uint16[a+2]=n,this.uint16[a+3]=r,e}};Mu.prototype.bytesPerElement=8,K(`StructArrayLayout1ul2ui8`,Mu);var Nu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.uint16[r+0]=t,this.uint16[r+1]=n,e}};Nu.prototype.bytesPerElement=4,K(`StructArrayLayout2ui4`,Nu);var Pu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint16[n+0]=t,e}};Pu.prototype.bytesPerElement=2,K(`StructArrayLayout1ui2`,Pu);var Fu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.float32[a+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,this.float32[a+3]=i,e}};Fu.prototype.bytesPerElement=16,K(`StructArrayLayout4f16`,Fu);var Iu=class extends su{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new u(this.anchorPointX,this.anchorPointY)}};Iu.prototype.size=20;var Lu=class extends Cu{get(e){return new Iu(this,e)}};K(`CollisionBoxArray`,Lu);var Ru=class extends su{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(e){this._structArray.uint8[this._pos1+37]=e;}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(e){this._structArray.uint8[this._pos1+38]=e;}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(e){this._structArray.uint32[this._pos4+10]=e;}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}get heightOffset(){return this._structArray.float32[this._pos4+12]}};Ru.prototype.size=52;var zu=class extends Ou{get(e){return new Ru(this,e)}};K(`PlacedSymbolArray`,zu);var Bu=class extends su{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(e){this._structArray.uint32[this._pos4+12]=e;}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}get heightOffset(){return this._structArray.float32[this._pos4+16]}};Bu.prototype.size=68;var Vu=class extends ku{get(e){return new Bu(this,e)}};K(`SymbolInstanceArray`,Vu);var Hu=class extends Au{getoffsetX(e){return this.float32[e*1+0]}};K(`GlyphOffsetArray`,Hu);var Uu=class extends pu{getx(e){return this.int16[e*3+0]}gety(e){return this.int16[e*3+1]}gettileUnitDistanceFromAnchor(e){return this.int16[e*3+2]}};K(`SymbolLineVertexArray`,Uu);var Wu=class extends su{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}};Wu.prototype.size=12;var Gu=class extends ju{get(e){return new Wu(this,e)}};K(`TextAnchorOffsetArray`,Gu);var Ku=class extends su{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}};Ku.prototype.size=8;var qu=class extends Mu{get(e){return new Ku(this,e)}};K(`FeatureIndexArray`,qu);var Ju=class extends fu{},Zu=class extends fu{},Qu=class extends fu{},$u=class extends hu{},ed=class extends gu{},td=class extends _u{},nd=class extends vu{},rd=class extends yu{},id=class extends bu{},ad=class extends xu{},od=class extends Su{},sd=class extends wu{},ld=class extends Eu{},dd=class extends Du{},fd=class extends Nu{};const md=lu([{name:`a_pos`,components:2,type:`Int16`}],4),hd=md.members;var gd=class e{constructor(e=[]){this._forceNewSegmentOnNextPrepare=false,this.segments=e;}prepareSegment(t,n,r,i){let a=this.segments[this.segments.length-1];return t>e.MAX_VERTEX_ARRAY_LENGTH&&L$1(`Max vertices per segment is ${e.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${e.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!a||a.vertexLength+t>e.MAX_VERTEX_ARRAY_LENGTH||a.sortKey!==i?this.createNewSegment(n,r,i):a}createNewSegment(e,t,n){let r={vertexOffset:e.length,primitiveOffset:t.length,vertexLength:0,primitiveLength:0,vaos:{}};return n!==void 0&&(r.sortKey=n),this._forceNewSegmentOnNextPrepare=false,this.segments.push(r),r}getOrCreateLatestSegment(e,t,n){return this.prepareSegment(0,e,t,n)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=true;}get(){return this.segments}destroy(){for(let e of this.segments)for(let t in e.vaos)e.vaos[t].destroy();}static simpleSegment(t,n,r,i){return new e([{vertexOffset:t,primitiveOffset:n,vertexLength:r,primitiveLength:i,vaos:{},sortKey:0}])}};gd.MAX_VERTEX_ARRAY_LENGTH=2**16-1,K(`SegmentVector`,gd);function _d(e,t){return e=F(Math.floor(e),0,255),t=F(Math.floor(t),0,255),256*e+t}const vd=lu([{name:`a_pattern_from`,components:4,type:`Uint16`},{name:`a_pattern_to`,components:4,type:`Uint16`},{name:`a_pixel_ratio_from`,components:1,type:`Uint16`},{name:`a_pixel_ratio_to`,components:1,type:`Uint16`}]),yd=lu([{name:`a_dasharray_from`,components:4,type:`Uint16`},{name:`a_dasharray_to`,components:4,type:`Uint16`}]);var bd=/* @__PURE__ */ o(((e,t)=>{function n(e,t){for(var n=e.length&3,r=e.length-n,i=t,a,o=3432918353,s=461845907,c,l=0;l<r;)c=e.charCodeAt(l)&255|(e.charCodeAt(++l)&255)<<8|(e.charCodeAt(++l)&255)<<16|(e.charCodeAt(++l)&255)<<24,++l,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)|0,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)|0,i^=c,i=i<<13|i>>>19,a=(i&65535)*5+(((i>>>16)*5&65535)<<16)|0,i=(a&65535)+27492+(((a>>>16)+58964&65535)<<16);switch(c=0,n){case 3:c^=(e.charCodeAt(l+2)&255)<<16;case 2:c^=(e.charCodeAt(l+1)&255)<<8;case 1:c^=e.charCodeAt(l)&255,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)|0,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)|0,i^=c;}return i^=e.length,i^=i>>>16,i=(i&65535)*2246822507+(((i>>>16)*2246822507&65535)<<16)|0,i^=i>>>13,i=(i&65535)*3266489909+(((i>>>16)*3266489909&65535)<<16)|0,i^=i>>>16,i>>>0}t!==void 0&&(t.exports=n);})),xd=/* @__PURE__ */ o(((e,t)=>{function n(e,t){for(var n=e.length,r=t^n,i=0,a;n>=4;)a=e.charCodeAt(i)&255|(e.charCodeAt(++i)&255)<<8|(e.charCodeAt(++i)&255)<<16|(e.charCodeAt(++i)&255)<<24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),a^=a>>>24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16)^a,n-=4,++i;switch(n){case 3:r^=(e.charCodeAt(i+2)&255)<<16;case 2:r^=(e.charCodeAt(i+1)&255)<<8;case 1:r^=e.charCodeAt(i)&255,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16);}return r^=r>>>13,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16),r^=r>>>15,r>>>0}t.exports=n;})),Sd=/* @__PURE__ */ c((/* @__PURE__ */ o(((e,t)=>{var n=bd(),r=xd();t.exports=n,t.exports.murmur3=n,t.exports.murmur2=r;})))()),Cd=class e{constructor(){this.ids=[],this.positions=[],this.indexed=false;}add(e,t,n,r){this.ids.push(wd(e)),this.positions.push(t,n,r);}getPositions(e){if(!this.indexed)throw Error(`Trying to get index, but feature positions are not indexed`);let t=wd(e),n=0,r=this.ids.length-1;for(;n<r;){let e=n+r>>1;this.ids[e]>=t?r=e:n=e+1;}let i=[];for(;this.ids[n]===t;){let e=this.positions[3*n],t=this.positions[3*n+1],r=this.positions[3*n+2];i.push({index:e,start:t,end:r}),n++;}return i}static serialize(e,t){let n=new Float64Array(e.ids),r=new Uint32Array(e.positions);return Td(n,r,0,n.length-1),t&&t.push(n.buffer,r.buffer),{ids:n,positions:r}}static deserialize(t){let n=new e;return n.ids=t.ids,n.positions=t.positions,n.indexed=true,n}};function wd(e){let t=+e;return !isNaN(t)&&t<=2**53-1?t:(0, Sd.default)(String(e))}function Td(e,t,n,r){for(;n<r;){let i=e[n+r>>1],a=n-1,o=r+1;for(;;){do a++;while(e[a]<i);do o--;while(e[o]>i);if(a>=o)break;Ed(e,a,o),Ed(t,3*a,3*o),Ed(t,3*a+1,3*o+1),Ed(t,3*a+2,3*o+2);}o-n<r-o?(Td(e,t,n,o),n=o+1):(Td(e,t,o+1,r),r=o);}}function Ed(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}K(`FeaturePositionMap`,Cd);var Dd=class{constructor(e,t){this.gl=e.gl,this.location=t;}},Z=class extends Dd{constructor(e,t){super(e,t),this.current=0;}set(e){this.current!==e&&(this.current=e,this.gl.uniform1f(this.location,e));}},Ad=class extends Dd{constructor(e,t){super(e,t),this.current=[0,0,0,0];}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1]||e[2]!==this.current[2]||e[3]!==this.current[3])&&(this.current=e,this.gl.uniform4f(this.location,e[0],e[1],e[2],e[3]));}},jd=class extends Dd{constructor(e,t){super(e,t),this.current=G.transparent;}set(e){(e.r!==this.current.r||e.g!==this.current.g||e.b!==this.current.b||e.a!==this.current.a)&&(this.current=e,this.gl.uniform4f(this.location,e.r,e.g,e.b,e.a));}};function Id(e){return [_d(255*e.r,255*e.g),_d(255*e.b,255*e.a)]}var Ld=class{constructor(e,t,n){this.value=e,this.uniformNames=t.map(e=>`u_${e}`),this.type=n;}setUniform(e,t,n){e.set(n.constantOr(this.value));}getBinding(e,t,n){return this.type===`color`?new jd(e,t):new Z(e,t)}},Rd=class{constructor(e,t){this.uniformNames=t.map(e=>`u_${e}`),this.patternFrom=null,this.patternTo=null,this.dashFrom=null,this.dashTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1;}setConstantPatternPositions(e,t){this.pixelRatioFrom=t.pixelRatio,this.pixelRatioTo=e.pixelRatio,this.patternFrom=t.tlbr,this.patternTo=e.tlbr;}setConstantDashPositions(e,t){this.dashTo=[0,e.y,e.height,e.width],this.dashFrom=[0,t.y,t.height,t.width];}setUniform(e,t,n,r){let i=null;r===`u_pattern_to`?i=this.patternTo:r===`u_pattern_from`?i=this.patternFrom:r===`u_dasharray_to`?i=this.dashTo:r===`u_dasharray_from`?i=this.dashFrom:r===`u_pixel_ratio_to`?i=this.pixelRatioTo:r===`u_pixel_ratio_from`&&(i=this.pixelRatioFrom),i!==null&&e.set(i);}getBinding(e,t,n){return n.startsWith(`u_pattern`)||n.startsWith(`u_dasharray_`)?new Ad(e,t):new Z(e,t)}},zd=class{constructor(e,t,n,r){this.expression=e,this.type=n,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?2:1,offset:0})),this.paintVertexArray=new r;}populatePaintArray(e,t,n){let r=this.paintVertexArray.length,i=this.expression.evaluate(new Ll(0,n),t,{},n.canonical,[],n.formattedSection);this.paintVertexArray.resize(e),this._setPaintValue(r,e,i);}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new Ll(0,i),n,r);this._setPaintValue(e,t,a);}_setPaintValue(e,t,n){if(this.type===`color`){let r=Id(n);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,r[0],r[1]);}else {for(let r=e;r<t;r++)this.paintVertexArray.emplace(r,n);this.maxValue=Math.max(this.maxValue,Math.abs(n));}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}},Bd=class{constructor(e,t,n,r,i,a){this.expression=e,this.uniformNames=t.map(e=>`u_${e}_t`),this.type=n,this.useIntegerZoom=r,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?4:2,offset:0})),this.paintVertexArray=new a;}populatePaintArray(e,t,n){let r=this.expression.evaluate(new Ll(this.zoom,n),t,{},n.canonical,[],n.formattedSection),i=this.expression.evaluate(new Ll(this.zoom+1,n),t,{},n.canonical,[],n.formattedSection),a=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(a,e,r,i);}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new Ll(this.zoom,i),n,r),o=this.expression.evaluate(new Ll(this.zoom+1,i),n,r);this._setPaintValue(e,t,a,o);}_setPaintValue(e,t,n,r){if(this.type===`color`){let i=Id(n),a=Id(r);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,i[0],i[1],a[0],a[1]);}else {for(let i=e;i<t;i++)this.paintVertexArray.emplace(i,n,r);this.maxValue=Math.max(this.maxValue,Math.abs(n),Math.abs(r));}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}setUniform(e,t){let n=this.useIntegerZoom?Math.floor(t.zoom):t.zoom,r=F(this.expression.interpolationFactor(n,this.zoom,this.zoom+1),0,1);e.set(r);}getBinding(e,t,n){return new Z(e,t)}},Vd=class{constructor(e,t,n,r,i,a){this.expression=e,this.type=t,this.useIntegerZoom=n,this.zoom=r,this.layerId=a,this.zoomInPaintVertexArray=new i,this.zoomOutPaintVertexArray=new i;}populatePaintArray(e,t,n){let r=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(e),this.zoomOutPaintVertexArray.resize(e),this._setPaintValues(r,e,this.getPositionIds(t),n);}updatePaintArray(e,t,n,r,i){this._setPaintValues(e,t,this.getPositionIds(n),i);}_setPaintValues(e,t,n,r){let i=this.getPositions(r);if(!i||!n)return;let a=i[n.min],o=i[n.mid],s=i[n.max];if(a&&o&&s)for(let n=e;n<t;n++)this.emplace(this.zoomInPaintVertexArray,n,a,o),this.emplace(this.zoomOutPaintVertexArray,n,s,o);}upload(e){if(this.zoomInPaintVertexArray?.arrayBuffer.byteLength&&this.zoomOutPaintVertexArray?.arrayBuffer.byteLength){let t=this.getVertexAttributes();this.zoomInPaintVertexBuffer=e.createVertexBuffer(this.zoomInPaintVertexArray,t,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=e.createVertexBuffer(this.zoomOutPaintVertexArray,t,this.expression.isStateDependent);}}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy();}},Hd=class extends Vd{getPositions(e){return e.imagePositions}getPositionIds(e){return e.patterns?.[this.layerId]}getVertexAttributes(){return vd.members}emplace(e,t,n,r){e.emplace(t,n.tlbr[0],n.tlbr[1],n.tlbr[2],n.tlbr[3],r.tlbr[0],r.tlbr[1],r.tlbr[2],r.tlbr[3],n.pixelRatio,r.pixelRatio);}},Ud=class extends Vd{getPositions(e){return e.dashPositions}getPositionIds(e){return e.dashes?.[this.layerId]}getVertexAttributes(){return yd.members}emplace(e,t,n,r){e.emplace(t,0,n.y,n.height,n.width,0,r.y,r.height,r.width);}},Wd=class{constructor(e,t,n){this.binders={},this._buffers=[];let r=[];for(let i in e.paint._values){if(!n(i))continue;let a=e.paint.get(i);if(!(a instanceof Wl)||!Vo(a.property.specification))continue;let o=Kd(i,e.type),s=a.value,c=a.property.specification.type,l=a.property.useIntegerZoom,u=a.property.specification[`property-type`],d=u===`cross-faded`||u===`cross-faded-data-driven`;if(s.kind===`constant`)this.binders[i]=d?new Rd(s.value,o):new Ld(s.value,o,c),r.push(`/u_${i}`);else if(s.kind===`source`||d){let n=Jd(i,c,`source`);this.binders[i]=d?i===`line-dasharray`?new Ud(s,c,l,t,n,e.id):new Hd(s,c,l,t,n,e.id):new zd(s,o,c,n),r.push(`/a_${i}`);}else {let e=Jd(i,c,`composite`);this.binders[i]=new Bd(s,o,c,l,t,e),r.push(`/z_${i}`);}}this.cacheKey=r.sort().join(``);}getMaxValue(e){let t=this.binders[e];return t instanceof zd||t instanceof Bd?t.maxValue:0}populatePaintArrays(e,t,n){for(let r in this.binders){let i=this.binders[r];(i instanceof zd||i instanceof Bd||i instanceof Vd)&&i.populatePaintArray(e,t,n);}}setConstantPatternPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof Rd&&r.setConstantPatternPositions(e,t);}}setConstantDashPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof Rd&&r.setConstantDashPositions(e,t);}}updatePaintArrays(e,t,n,r,i){let a=false;for(let o of e){let e=t.getPositions(o.id);for(let t of e){let e=n.feature(t.index);for(let n in this.binders){let s=this.binders[n];(s instanceof zd||s instanceof Bd||s instanceof Vd)&&s.expression.isStateDependent===true&&(s.expression=r.paint.get(n).value,s.updatePaintArray(t.start,t.end,e,o.state,i),a=true);}}}return a}defines(){let e=[];for(let t in this.binders){let n=this.binders[t];(n instanceof Ld||n instanceof Rd)&&e.push(...n.uniformNames.map(e=>`#define HAS_UNIFORM_${e}`));}return e}getBinderAttributes(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof zd||n instanceof Bd)for(let t of n.paintVertexAttributes)e.push(t.name);else if(n instanceof Vd){let t=n.getVertexAttributes();for(let n of t)e.push(n.name);}}return e}getBinderUniforms(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof Ld||n instanceof Rd||n instanceof Bd)for(let t of n.uniformNames)e.push(t);}return e}getPaintVertexBuffers(){return this._buffers}getUniforms(e,t){let n=[];for(let r in this.binders){let i=this.binders[r];if(i instanceof Ld||i instanceof Rd||i instanceof Bd){for(let a of i.uniformNames)if(t[a]){let o=i.getBinding(e,t[a],a);n.push({name:a,property:r,binding:o});}}}return n}setUniforms(e,t,n,r){for(let{name:e,property:i,binding:a}of t)this.binders[i].setUniform(a,r,n.get(i),e);}updatePaintBuffers(e){this._buffers=[];for(let t in this.binders){let n=this.binders[t];if(e&&n instanceof Vd){let t=e.fromScale===2?n.zoomInPaintVertexBuffer:n.zoomOutPaintVertexBuffer;t&&this._buffers.push(t);}else (n instanceof zd||n instanceof Bd)&&n.paintVertexBuffer&&this._buffers.push(n.paintVertexBuffer);}}upload(e){for(let t in this.binders){let n=this.binders[t];(n instanceof zd||n instanceof Bd||n instanceof Vd)&&n.upload(e);}this.updatePaintBuffers();}destroy(){for(let e in this.binders){let t=this.binders[e];(t instanceof zd||t instanceof Bd||t instanceof Vd)&&t.destroy();}}},Gd=class{constructor(e,t,n=()=>true){this.programConfigurations={};for(let r of e)this.programConfigurations[r.id]=new Wd(r,t,n);this.needsUpload=false,this._featureMap=new Cd,this._bufferOffset=0;}populatePaintArrays(e,t,n,r){for(let n in this.programConfigurations)this.programConfigurations[n].populatePaintArrays(e,t,r);t.id!==void 0&&this._featureMap.add(t.id,n,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=true;}updatePaintArrays(e,t,n,r){for(let i of n)this.needsUpload=this.programConfigurations[i.id].updatePaintArrays(e,this._featureMap,t,i,r)||this.needsUpload;}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(let t in this.programConfigurations)this.programConfigurations[t].upload(e);this.needsUpload=false;}}destroy(){for(let e in this.programConfigurations)this.programConfigurations[e].destroy();}};function Kd(e,t){return {"text-opacity":[`opacity`],"icon-opacity":[`opacity`],"text-color":[`fill_color`],"icon-color":[`fill_color`],"text-halo-color":[`halo_color`],"icon-halo-color":[`halo_color`],"text-halo-blur":[`halo_blur`],"icon-halo-blur":[`halo_blur`],"text-halo-width":[`halo_width`],"icon-halo-width":[`halo_width`],"line-gap-width":[`gapwidth`],"line-dasharray":[`dasharray_to`,`dasharray_from`],"line-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`],"fill-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`],"fill-extrusion-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`]}[e]||[e.replace(`${t}-`,``).replace(/-/g,`_`)]}function qd(e){return {"line-pattern":{source:nd,composite:nd},"fill-pattern":{source:nd,composite:nd},"fill-extrusion-pattern":{source:nd,composite:nd},"line-dasharray":{source:rd,composite:rd}}[e]}function Jd(e,t,n){let r={color:{source:_u,composite:Fu},number:{source:Au,composite:_u}};return qd(e)?.[n]||r[t][n]}K(`ConstantBinder`,Ld),K(`CrossFadedConstantBinder`,Rd),K(`SourceExpressionBinder`,zd),K(`CrossFadedPatternBinder`,Hd),K(`CrossFadedDasharrayBinder`,Ud),K(`CompositeExpressionBinder`,Bd),K(`ProgramConfiguration`,Wd,{omit:[`_buffers`]}),K(`ProgramConfigurationSet`,Gd);const Yd=2**14-1,Xd=-Yd-1;function Zd(e){let t=P/e.extent,n=e.loadGeometry();for(let e of n)for(let n of e){let e=Math.round(n.x*t),r=Math.round(n.y*t);n.x=F(e,Xd,Yd),n.y=F(r,Xd,Yd),(e<n.x||e>n.x+1||r<n.y||r>n.y+1)&&L$1(`Geometry exceeds allowed extent, reduce your vector tile buffer size`);}return n}function Qd(e,t){return {type:e.type,id:e.id,properties:e.properties,geometry:t?Zd(e):[]}}var $d=class e{constructor(){this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0;}extend(e){return this.minX=Math.min(this.minX,e.x),this.minY=Math.min(this.minY,e.y),this.maxX=Math.max(this.maxX,e.x),this.maxY=Math.max(this.maxY,e.y),this}expandBy(e){return this.minX-=e,this.minY-=e,this.maxX+=e,this.maxY+=e,(this.minX>this.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(e){return this.expandBy(-e)}map(t){let n=new e;return n.extend(t(new u(this.minX,this.minY))),n.extend(t(new u(this.maxX,this.minY))),n.extend(t(new u(this.minX,this.maxY))),n.extend(t(new u(this.maxX,this.maxY))),n}static fromPoints(t){let n=new e;for(let e of t)n.extend(e);return n}contains(e){return e.x>=this.minX&&e.x<=this.maxX&&e.y>=this.minY&&e.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(e){return !this.empty()&&!e.empty()&&e.minX>=this.minX&&e.maxX<=this.maxX&&e.minY>=this.minY&&e.maxY<=this.maxY}intersects(e){return !this.empty()&&!e.empty()&&e.minX<=this.maxX&&e.maxX>=this.minX&&e.minY<=this.maxY&&e.maxY>=this.minY}};$d.fromPoints([new u(0,0),new u(P,P)]);function tf(e,t){return e.x===t.x&&(e.x<0||e.x>8192)||e.y===t.y&&(e.y<0||e.y>8192)}function nf(e){return e.every(e=>e.x<0)||e.every(e=>e.x>8192)||e.every(e=>e.y<0)||e.every(e=>e.y>8192)}function rf(e){return e.x<0||e.x>=8192||e.y<0||e.y>=8192}const af=-32768;function of(e,t,n,r,i){e.emplaceBack(af+t*8+r,af+n*8+i);}var sf=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.layoutVertexArray=new Zu,this.indexArray=new dd,this.segments=new gd,this.programConfigurations=new Gd(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){let r=this.layers[0],i=[],a=null,o=false,s=r.type===`heatmap`;if(r.type===`circle`){let e=r;a=e.layout.get(`circle-sort-key`),o=!a.isConstant(),s||=e.paint.get(`circle-pitch-alignment`)===`map`;}let c=s?t.subdivisionGranularity.circle:1,l=new Ll(this.zoom),u=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:r,index:s,sourceLayerIndex:c}of e){let e=Qd(t,u);if(!this.layers[0]._featureFilter.filter(l,e,n))continue;let d=o?a.evaluate(e,{},n):void 0,f={id:r,properties:t.properties,type:t.type,sourceLayerIndex:c,index:s,geometry:u?e.geometry:Zd(t),patterns:{},sortKey:d};i.push(f);}o&&i.sort((e,t)=>e.sortKey-t.sortKey);for(let r of i){let{geometry:i,index:a,sourceLayerIndex:o}=r,s=e[a].feature;this.addFeature(r,i,a,n,c),t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}addFeatures(e){}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hd),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}addFeature(e,t,n,r,i=1){let a;switch(i){case 1:a=[0,7];break;case 3:a=[0,2,5,7];break;case 5:a=[0,1,3,4,6,7];break;case 7:a=[0,1,2,3,4,5,6,7];break;default:throw Error(`Invalid circle bucket granularity: ${i}; valid values are 1, 3, 5, 7.`)}let o=a.length;for(let n of t)for(let t of n){let n=t.x,r=t.y;if(rf(t))continue;let i=this.segments.prepareSegment(o*o,this.layoutVertexArray,this.indexArray,e.sortKey),s=i.vertexLength;for(let e=0;e<o;e++)for(let t=0;t<o;t++)of(this.layoutVertexArray,n,r,a[t],a[e]);for(let e=0;e<o-1;e++)for(let t=0;t<o-1;t++){let n=s+e*o+t,r=s+(e+1)*o+t;this.indexArray.emplaceBack(n,r+1,n+1),this.indexArray.emplaceBack(n,r,r+1);}i.vertexLength+=o*o,i.primitiveLength+=(o-1)*(o-1)*2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:{},canonical:r});}};K(`CircleBucket`,sf,{omit:[`layers`]});function gf(e,t,n){let r=t.distSqr(n);if(r===0)return e.distSqr(t);let i=((e.x-t.x)*(n.x-t.x)+(e.y-t.y)*(n.y-t.y))/r;return i<0?e.distSqr(t):i>1?e.distSqr(n):e.distSqr(n.sub(t)._mult(i)._add(t))}function vf(e,t){let n=false;for(let r=0,i=e.length-1;r<e.length;i=r++){let a=e[r],o=e[i];a.y>t.y!=o.y>t.y&&t.x<(o.x-a.x)*(t.y-a.y)/(o.y-a.y)+a.x&&(n=!n);}return n}function yf(e,t,n,r,i){for(let a of e)if(t<=a.x&&n<=a.y&&r>=a.x&&i>=a.y)return true;let a=[new u(t,n),new u(t,i),new u(r,i),new u(r,n)];if(e.length>2){for(let t of a)if(vf(e,t))return true}for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];if(bf(n,r,a))return true}return false}function bf(e,t,n){let r=n[0],i=n[2];if(e.x<r.x&&t.x<r.x||e.x>i.x&&t.x>i.x||e.y<r.y&&t.y<r.y||e.y>i.y&&t.y>i.y)return false;let a=Rt(e,t,n[0]);return a!==Rt(e,t,n[1])||a!==Rt(e,t,n[2])||a!==Rt(e,t,n[3])}var Bf=class extends sf{};K(`HeatmapBucket`,Bf,{omit:[`layers`]});function Wf(e,{width:t,height:n},r,i){if(!i)i=new Uint8Array(t*n*r);else if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==t*n*r)throw RangeError(`mismatched image size. expected: ${i.length} but got: ${t*n*r}`);return e.width=t,e.height=n,e.data=i,e}function Gf(e,{width:t,height:n},r){if(t===e.width&&n===e.height)return;let i=Wf({},{width:t,height:n},r);Kf(e,i,{x:0,y:0},{x:0,y:0},{width:Math.min(e.width,t),height:Math.min(e.height,n)},r),e.width=t,e.height=n,e.data=i.data;}function Kf(e,t,n,r,i,a){if(i.width===0||i.height===0)return t;if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw RangeError(`out of range source coordinates for image copy`);if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw RangeError(`out of range destination coordinates for image copy`);let o=e.data,s=t.data;if(o===s)throw Error(`srcData equals dstData, so image is already copied`);for(let c=0;c<i.height;c++){let l=((n.y+c)*e.width+n.x)*a,u=((r.y+c)*t.width+r.x)*a;for(let e=0;e<i.width*a;e++)s[u+e]=o[l+e];}return t}var qf=class e{constructor(e,t){Wf(this,e,1,t);}resize(e){Gf(this,e,1);}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){Kf(e,t,n,r,i,1);}},Jf=class e{constructor(e,t){Wf(this,e,4,t);}resize(e){Gf(this,e,4);}replace(e,t){t?this.data.set(e):this.data=e instanceof Uint8ClampedArray?new Uint8Array(e.buffer):e;}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){Kf(e,t,n,r,i,4);}setPixel(e,t,n){let r=(e*this.width+t)*4;this.data[r+0]=Math.round(n.r*255/n.a),this.data[r+1]=Math.round(n.g*255/n.a),this.data[r+2]=Math.round(n.b*255/n.a),this.data[r+3]=Math.round(n.a*255);}};K(`AlphaImage`,qf),K(`RGBAImage`,Jf);var up=class e{static{this.byteViewCache=/* @__PURE__ */ new WeakMap;}constructor(t,n,r,i=1,a=1,o=1,s=0){if(this.uid=t,n.height!==n.width)throw RangeError(`DEM tiles must be square`);if(r&&![`mapbox`,`terrarium`,`custom`].includes(r)){L$1(`"${r}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);return}this.stride=n.height;let c=this.dim=n.height-4;switch(this.data=new Uint32Array(n.data.buffer),e.byteViewCache.set(this,new Uint8Array(this.data.buffer)),r){case `terrarium`:this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case `custom`:this.redFactor=i,this.greenFactor=a,this.blueFactor=o,this.baseShift=s;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4;}for(let e=-2;e<c+2;e++){let t=this._idx(0,Math.max(0,Math.min(c-1,e)));(e<0||e>=c)&&this.data.copyWithin(this._idx(0,e),t,t+c),this.data.fill(this.data[t],this._idx(-2,e),this._idx(0,e)),this.data.fill(this.data[t+c-1],this._idx(c,e),this._idx(c+1,e)+1);}let l=this._getByteView();this.min=2**53-1,this.max=-9007199254740991;for(let e=0;e<c;e++)for(let t=0;t<c;t++){let n=this._idx(e,t)*4,r=this._unpackAtIndex(l,n);r>this.max&&(this.max=r),r<this.min&&(this.min=r);}}get(e,t){let n=this._getByteView(),r=this._idx(e,t)*4;return this._unpackAtIndex(n,r)}sampleBilinear(e,t){let n=Math.floor(e),r=Math.floor(t);if(n<-1||n>=this.dim||r<-1||r>=this.dim)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);let i=this._getByteView(),a=((r+2)*this.stride+n+2)*4,o=this.stride*4,s=e-n,c=t-r,l=this._unpackAtIndex(i,a),u=this._unpackAtIndex(i,a+4),d=this._unpackAtIndex(i,a+o),f=this._unpackAtIndex(i,a+o+4);return l*(1-s)*(1-c)+u*s*(1-c)+d*(1-s)*c+f*s*c}getUnpackVector(){return [this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(e,t){if(e<-2||e>=this.dim+2||t<-2||t>=this.dim+2)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);return (t+2)*this.stride+(e+2)}unpack(e,t,n){return e*this.redFactor+t*this.greenFactor+n*this.blueFactor-this.baseShift}pack(e){return dp(e,this.getUnpackVector())}getPixels(){return new Jf({width:this.stride,height:this.stride},this._getByteView())}backfillBorder(e,t,n){if(this.dim!==e.dim)throw Error(`dem dimension mismatch`);let r=t*this.dim,i=t*this.dim+this.dim,a=n*this.dim,o=n*this.dim+this.dim;switch(t){case -1:r=i-2;break;case 1:i=r+2;}switch(n){case -1:a=o-2;break;case 1:o=a+2;}let s=-t*this.dim,c=-n*this.dim;for(let t=a;t<o;t++)for(let n=r;n<i;n++)this.data[this._idx(n,t)]=e.data[this._idx(n+s,t+c)];}_getByteView(){let t=e.byteViewCache.get(this);return t?.buffer!==this.data.buffer&&(t=new Uint8Array(this.data.buffer),e.byteViewCache.set(this,t)),t}_unpackAtIndex(e,t){return this.unpack(e[t],e[t+1],e[t+2])}};function dp(e,t){let n=t[0],r=t[1],i=t[2],a=t[3],o=[n,r,i].filter(e=>e!==0);if(o.length===0)return {r:0,g:0,b:0};let s=Math.min(...o),c=Math.round((e+a)/s),l=e=>e===0?0:Math.floor(c*s/e)%256;return {r:l(n),g:l(r),b:l(i)}}K(`DEMData`,up);const mp=lu([{name:`a_pos`,components:2,type:`Int16`}],4),hp=mp.members;function gp(e,t,n){let r=n.patternDependencies,i=false;for(let n of t){let t=n.paint.get(`${e}-pattern`);t.isConstant()||(i=true);let a=t.constantOr(null);a&&(i=true,r[a.to]=true,r[a.from]=true);}return i}function _p(e,t,n,r,i){let{zoom:a}=r,o=i.patternDependencies;for(let r of t){let t=r.paint.get(`${e}-pattern`).value;if(t.kind!==`constant`){let e=t.evaluate({zoom:a-1},n,{},i.availableImages),s=t.evaluate({zoom:a},n,{},i.availableImages),c=t.evaluate({zoom:a+1},n,{},i.availableImages);e=e?.name?e.name:e,s=s?.name?s.name:s,c=c?.name?c.name:c,o[e]=true,o[s]=true,o[c]=true,n.patterns[r.id]={min:e,mid:s,max:c};}}return n}const vp=/* @__PURE__ */ new Set;let yp=false;function bp(e,t,n=2){let r=t&&t.length,i=r?t[0]*n:e.length;vp.size&&vp.clear();let a=xp(e,0,i,n,true),o=[];if(!a||a.next===a.prev)return o;let s=0,c=0,l=0;if(r&&(a=kp(e,t,a,n)),e.length>80*n){s=e[0],c=e[1];let t=s,r=c;for(let a=n;a<i;a+=n){let n=e[a],i=e[a+1];n<s&&(s=n),i<c&&(c=i),n>t&&(t=n),i>r&&(r=i);}l=Math.max(t-s,r-c),l=l===0?0:32767/l;}return Cp(a,o,s,c,l),o}function xp(e,t,n,r,i){let a=null;if(i===fm(e,t,n,r)>0)for(let i=t;i<n;i+=r)a=lm(i/r|0,e[i],e[i+1],a);else for(let i=n-r;i>=t;i-=r)a=lm(i/r|0,e[i],e[i+1],a);return a&&nm(a,a.next)&&(um(a),a=a.next),a}function Sp(e,t=e){let n=t===e,r=e,i;do i=false,r!==r.next&&(vp.size===0||!vp.has(r))&&(nm(r,r.next)||tm(r.prev,r,r.next)===0)?((n||r===t)&&(t=r.prev),yp=true,um(r),r=r.prev,i=true):(n||r!==t)&&(r=r.next,i=!n);while(i||r!==t);return t}function Cp(e,t,n,r,i){i&&Jp(e,n,r,i);let a=e,o=false;for(;e.prev!==e.next;){let s=e.prev,c=e.next;if(tm(s,e,c)<0&&(i?Tp(e,n,r,i):wp(e)))t.push(s.i,e.i,c.i),um(e),e=c,a=c;else if(e=c,e===a){if(yp=false,e=Sp(e),yp){a=e;continue}if(!o){e=Ep(e,t),a=e,o=true;continue}Dp(e,t,n,r,i);break}}}function wp(e){let t=e.prev,n=e,r=e.next,i=t.x,a=n.x,o=r.x,s=t.y,c=n.y,l=r.y,u=Math.min(i,a,o),d=Math.min(s,c,l),f=Math.max(i,a,o),p=Math.max(s,c,l),m=r.next;for(;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&(i!==m.x||s!==m.y)&&$p(i,s,a,c,o,l,m.x,m.y)&&tm(m.prev,m,m.next)>=0)return false;m=m.next;}return true}function Tp(e,t,n,r){let i=e.prev,a=e,o=e.next,s=i.x,c=a.x,l=o.x,u=i.y,d=a.y,f=o.y,p=Math.min(s,c,l),m=Math.min(u,d,f),h=Math.max(s,c,l),g=Math.max(u,d,f),_=Zp(p,m,t,n,r),v=Zp(h,g,t,n,r),y=e.prevZ;for(;y&&y.z>=_;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==o&&(s!==y.x||u!==y.y)&&$p(s,u,c,d,l,f,y.x,y.y)&&tm(y.prev,y,y.next)>=0)return false;y=y.prevZ;}let b=e.nextZ;for(;b&&b.z<=v;){if(b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==o&&(s!==b.x||u!==b.y)&&$p(s,u,c,d,l,f,b.x,b.y)&&tm(b.prev,b,b.next)>=0)return false;b=b.nextZ;}return true}function Ep(e,t){let n=e,r=false;do{let i=n.prev,a=n.next.next;rm(i,n,n.next,a,false)&&om(i,a)&&om(a,i)&&(t.push(i.i,n.i,a.i),um(n),um(n.next),n=e=a,r=true),n=n.next;}while(n!==e);return r?Sp(n):n}function Dp(e,t,n,r,i){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&em(a,e)){let o=cm(a,e);a=Sp(a,a.next),o=Sp(o,o.next),Cp(a,t,n,r,i),Cp(o,t,n,r,i);return}e=e.next;}a=a.next;}while(a!==e)}let Op=false;function kp(e,t,n,r){let i=[];for(let n=0,a=t.length;n<a;n++){let o=xp(e,t[n]*r,n<a-1?t[n+1]*r:e.length,r,false);o===o.next&&vp.add(o),i.push(Qp(o));}i.sort(Ap),Ip(e.length/r,t.length),Lp(n,n),Op=true;for(let e=0;e<i.length;e++)n=jp(i[e],n);return Op=false,Sp(n)}function Ap(e,t){return e.x-t.x||e.y-t.y||(e.next.y-e.y)/(e.next.x-e.x)-(t.next.y-t.y)/(t.next.x-t.x)}function jp(e,t){let n=Vp(e,t);if(!n)return t;let r=cm(n,e),i=r.next;return Lp(n,i.next),Sp(r,r.next),Sp(n,n.next)}let Mp=/* @__PURE__ */ new Float64Array,Np=0;const Pp=[],Fp=[];function Ip(e,t){let n=Math.ceil((e+2*t)/16)+t+2;Mp.length<n*4&&(Mp=new Float64Array(n*4)),Np=0;}function Lp(e,t){let n=e;do{let e=Np++;Pp[e]=n;let r=n.x,i=n.y,a=n.x,o=n.y,s=0;do{let t=n.next;n.z=e,t.x<r&&(r=t.x),t.x>a&&(a=t.x),t.y<i&&(i=t.y),t.y>o&&(o=t.y),n=t;}while(++s<16&&n!==t);Fp[e]=n;let c=e*4;Mp[c]=r,Mp[c+1]=i,Mp[c+2]=a,Mp[c+3]=o;}while(n!==t)}function Rp(e,t){let n=e.z*4;t.x<Mp[n]&&(Mp[n]=t.x),t.y<Mp[n+1]&&(Mp[n+1]=t.y),t.x>Mp[n+2]&&(Mp[n+2]=t.x),t.y>Mp[n+3]&&(Mp[n+3]=t.y);}function zp(e){let t=Fp[e];for(;t.prev.next!==t;)t=t.next;return Fp[e]=t,t}function Bp(e){let t=Pp[e];for(;t.prev.next!==t;)t=t.next;return Pp[e]=t,t}function Vp(e,t){let n=t,r=e.x,i=e.y,a=-1/0,o;if(nm(e,n))return n;for(let t=0,s=0;t<Np;t++,s+=4){if(i<Mp[s+1]||i>Mp[s+3]||Mp[s]>r||Mp[s+2]<=a)continue;let c=zp(t);n=Bp(t);do{if(n.prev.next===n){if(nm(e,n.next))return n.next;if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let e=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=r&&e>a&&(a=e,o=n.x<n.next.x?n:n.next,e===r))return o}}n=n.next;}while(n!==c)}if(!o)return null;let s=o.x,c=o.y,l=Math.min(i,c),u=Math.max(i,c),d=1/0;for(let t=0,f=0;t<Np;t++,f+=4){if(Mp[f+2]<s||Mp[f]>r||Mp[f+3]<l||Mp[f+1]>u)continue;let p=zp(t);n=Bp(t);do{if(n.prev.next===n&&r>=n.x&&n.x>=s&&r!==n.x&&$p(i<c?r:a,i,s,c,i<c?a:r,i,n.x,n.y)){let t=Math.abs(i-n.y)/(r-n.x);(om(n,e)||n.y===i&&n.next.y===i&&n.next.x>r)&&(t<d||t===d&&(n.x>o.x||n.x===o.x&&Hp(o,n)))&&(o=n,d=t);}n=n.next;}while(n!==p)}return o}function Hp(e,t){return tm(e.prev,e,t.prev)<0&&tm(t.next,e,e.next)<0}const Up=[];let Wp=[],Gp=/* @__PURE__ */ new Uint32Array,Kp=/* @__PURE__ */ new Uint32Array;const qp=/* @__PURE__ */ new Uint32Array(256);function Jp(e,t,n,r){let i=e,a=0;do i.z=Zp(i.x,i.y,t,n,r),Up[a++]=i,i=i.next;while(i!==e);Yp(a);let o=null;for(let e=0;e<a;e++){let t=Up[e];t.prevZ=o,o&&(o.nextZ=t),o=t;}o.nextZ=null,Up.fill(null,0,a),Wp.fill(null,0,a);}function Yp(e){if(e<=32)for(let t=1;t<e;t++){let e=Up[t],n=e.z,r=t-1;for(;r>=0&&Up[r].z>n;)Up[r+1]=Up[r],r--;Up[r+1]=e;}else {Gp.length<e&&(Gp=new Uint32Array(e),Kp=new Uint32Array(e),Wp=Array(e));for(let t=0;t<e;t++)Gp[t]=Up[t].z;Xp(e,Up,Gp,Wp,Kp,0),Xp(e,Wp,Kp,Up,Gp,8),Xp(e,Up,Gp,Wp,Kp,16),Xp(e,Wp,Kp,Up,Gp,24);}}function Xp(e,t,n,r,i,a){qp.fill(0);for(let t=0;t<e;t++)qp[n[t]>>>a&255]++;let o=0;for(let e=0;e<256;e++){let t=qp[e];qp[e]=o,o+=t;}for(let o=0;o<e;o++){let e=n[o],s=qp[e>>>a&255]++;r[s]=t[o],i[s]=e;}}function Zp(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function Qp(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function $p(e,t,n,r,i,a,o,s){return (i-o)*(t-s)>=(e-o)*(a-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(a-s)>=(i-o)*(r-s)}function em(e,t){let n=nm(e,t)&&tm(e.prev,e,e.next)>0&&tm(t.prev,t,t.next)>0;return e.next.i!==t.i&&(n||om(e,t)&&om(t,e)&&(tm(e.prev,e,t.prev)!==0||tm(e,t.prev,t)!==0))&&!am(e,t)&&(n||sm(e,t))}function tm(e,t,n){return (t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function nm(e,t){return e.x===t.x&&e.y===t.y}function rm(e,t,n,r,i=true){let a=tm(e,t,n),o=tm(e,t,r),s=tm(n,r,e),c=tm(n,r,t);return (a>0&&o<0||a<0&&o>0)&&(s>0&&c<0||s<0&&c>0)?true:i?!!(a===0&&im(e,n,t)||o===0&&im(e,r,t)||s===0&&im(n,e,r)||c===0&&im(n,t,r)):false}function im(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function am(e,t){let n=Math.min(e.x,t.x),r=Math.max(e.x,t.x),i=Math.min(e.y,t.y),a=Math.max(e.y,t.y),o=e;do{let s=o.next;if(o.x>r&&s.x>r||o.x<n&&s.x<n||o.y>a&&s.y>a||o.y<i&&s.y<i)o=s;else {if(o.i!==e.i&&s.i!==e.i&&o.i!==t.i&&s.i!==t.i&&rm(o,s,e,t))return true;o=s;}}while(o!==e);return false}function om(e,t){return tm(e.prev,e,e.next)<0?tm(e,t,e.next)>=0&&tm(e,e.prev,t)>=0:tm(e,t,e.prev)<0||tm(e,e.next,t)<0}function sm(e,t){let n=e,r=false,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{let e=n.next;n.y>a!=e.y>a&&i<(e.x-n.x)*(a-n.y)/(e.y-n.y)+n.x&&(r=!r),n=e;}while(n!==e);return r}function cm(e,t){let n=dm(e.i,e.x,e.y),r=dm(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function lm(e,t,n,r){let i=dm(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function um(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ),Op&&Rp(e.prev,e.next);}function dm(e,t,n){return {i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function fm(e,t,n,r){let i=0;for(let a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}var pm=class{constructor(e,t){if(t>e)throw Error(`Min granularity must not be greater than base granularity.`);this._baseZoomGranularity=e,this._minGranularity=t;}getGranularityForZoomLevel(e){let t=1<<e;return Math.max(Math.floor(this._baseZoomGranularity/t),this._minGranularity,1)}},mm=class e{constructor(e){this.fill=e.fill,this.line=e.line,this.tile=e.tile,this.stencil=e.stencil,this.circle=e.circle;}static{this.noSubdivision=new e({fill:new pm(0,0),line:new pm(0,0),tile:new pm(0,0),stencil:new pm(0,0),circle:1});}};K(`SubdivisionGranularityExpression`,pm),K(`SubdivisionGranularitySetting`,mm);const hm=-32768,gm=32767;var _m=class{constructor(e,t){this._vertexBuffer=[],this._vertexDictionary=/* @__PURE__ */ new Map,this._used=false,this._granularity=e,this._granularityCellSize=P/e,this._canonical=t;}_getKey(e,t){return e+=32768,t+=32768,e<<16|t}_vertexToIndex(e,t){if(e<-32768||t<-32768||e>32767||t>32767)throw Error(`Vertex coordinates are out of signed 16 bit integer range.`);let n=Math.round(e)|0,r=Math.round(t)|0,i=this._getKey(n,r),a=this._vertexDictionary.get(i);if(a!==void 0)return a;let o=this._vertexBuffer.length/2;return this._vertexDictionary.set(i,o),this._vertexBuffer.push(n,r),o}_subdivideTrianglesScanline(e,t){if(this._granularity<2)return Cm(this._vertexBuffer,Sm(e,t));let n=[],r=e.length;for(let i=0;i<r;i+=3){let r=[t[e[i+0]],t[e[i+1]],t[e[i+2]]],a=[this._vertexBuffer[r[0]*2+0],this._vertexBuffer[r[0]*2+1],this._vertexBuffer[r[1]*2+0],this._vertexBuffer[r[1]*2+1],this._vertexBuffer[r[2]*2+0],this._vertexBuffer[r[2]*2+1]],o=1/0,s=1/0,c=-1/0,l=-1/0;for(let e=0;e<3;e++){let t=a[e*2],n=a[e*2+1];o=Math.min(o,t),c=Math.max(c,t),s=Math.min(s,n),l=Math.max(l,n);}if(o===c||s===l)continue;let u=Math.floor(o/this._granularityCellSize),d=Math.ceil(c/this._granularityCellSize),f=Math.floor(s/this._granularityCellSize),p=Math.ceil(l/this._granularityCellSize);if(u===d&&f===p)n.push(...r);else for(let e=f;e<p;e++){let t=this._scanlineGenerateVertexRingForCellRow(e,a,r);wm(this._vertexBuffer,t,n);}}return n}_scanlineGenerateVertexRingForCellRow(e,t,n){let r=e*this._granularityCellSize,i=r+this._granularityCellSize,a=[];for(let e=0;e<3;e++){let o=t[e*2],s=t[e*2+1],c=t[(e+1)*2%6],l=t[((e+1)*2+1)%6],u=t[(e+2)*2%6],d=t[((e+2)*2+1)%6],f=c-o,p=l-s,m=f===0,h=p===0,g=(r-s)/p,_=(i-s)/p,v=Math.min(g,_),y=Math.max(g,_);if(!h&&(v>=1||y<=0)||h&&(s<r||s>i)){l>=r&&l<=i&&a.push(n[(e+1)%3]);continue}if(!h&&v>0){let e=o+f*v,t=s+p*v;a.push(this._vertexToIndex(e,t));}let b=o+f*Math.max(v,0),x=o+f*Math.min(y,1);if(m||this._generateIntraEdgeVertices(a,o,s,c,l,b,x),!h&&y<1){let e=o+f*y,t=s+p*y;a.push(this._vertexToIndex(e,t));}(h||l>=r&&l<=i)&&a.push(n[(e+1)%3]),!h&&(l<=r||l>=i)&&this._generateInterEdgeVertices(a,o,s,c,l,u,d,x,r,i);}return a}_generateIntraEdgeVertices(e,t,n,r,i,a,o){let s=r-t,c=i-n,l=c===0,u=l?Math.min(t,r):Math.min(a,o),d=l?Math.max(t,r):Math.max(a,o),f=Math.floor(u/this._granularityCellSize)+1,p=Math.ceil(d/this._granularityCellSize)-1;if(l?t<r:a<o)for(let r=f;r<=p;r++){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a));}else for(let r=p;r>=f;r--){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a));}}_generateInterEdgeVertices(e,t,n,r,i,a,o,s,c,l){let u=i-n,d=a-r,f=o-i,p=(c-i)/f,m=(l-i)/f,h=Math.min(p,m),g=Math.max(p,m),_=r+d*h,v=Math.floor(Math.min(_,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(_,s)/this._granularityCellSize)-1,b=s<_,x=f===0;if(x&&(o===c||o===l))return;if(x||h>=1||g<=0){let e=t-a,r=n-o,i=(c-o)/r,u=(l-o)/r,d=a+e*Math.min(i,u);v=Math.floor(Math.min(d,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(d,s)/this._granularityCellSize)-1,b=s<d;}let S=u>0?l:c;if(b)for(let t=v;t<=y;t++){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S));}else for(let t=y;t>=v;t--){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S));}}_generateOutline(e,t){let n=[],r=0;for(let i of e){let e=this._granularity<2?this._ringPathIndices(i,r,t):this._pointArrayToIndices(ym(i,this._granularity,true));r+=i.length;let a=[];for(let t=1;t<e.length;t++)a.push(e[t-1]),a.push(e[t]);n.push(a);}return n}_ringPathIndices(e,t,n){let r=n.slice(t,t+e.length);return r.length>=2&&bm(e)&&r.push(r[0]),r}_handlePoles(e){let t=false,n=false;this._canonical&&(this._canonical.y===0&&(t=true),this._canonical.y===(1<<this._canonical.z)-1&&(n=true)),(t||n)&&this._fillPoles(e,t,n);}_ensureNoPoleVertices(){let e=this._vertexBuffer;for(let t=0;t<e.length;t+=2){let n=e[t+1];n===-32768&&(e[t+1]=-32767),n===32767&&(e[t+1]=32766);}}_generatePoleQuad(e,t,n,r,i,a){r>i==(a===-32768)?(e.push(n),e.push(t),e.push(this._vertexToIndex(r,a)),e.push(this._vertexToIndex(i,a)),e.push(n),e.push(this._vertexToIndex(r,a))):(e.push(t),e.push(n),e.push(this._vertexToIndex(r,a)),e.push(n),e.push(this._vertexToIndex(i,a)),e.push(this._vertexToIndex(r,a)));}_fillPoles(e,t,n){let r=this._vertexBuffer,i=P,a=e.length;for(let o=2;o<a;o+=3){let a=e[o-2],s=e[o-1],c=e[o],l=r[a*2],u=r[a*2+1],d=r[s*2],f=r[s*2+1],p=r[c*2],m=r[c*2+1];t&&(u===0&&f===0&&this._generatePoleQuad(e,a,s,l,d,hm),f===0&&m===0&&this._generatePoleQuad(e,s,c,d,p,hm),m===0&&u===0&&this._generatePoleQuad(e,c,a,p,l,hm)),n&&(u===i&&f===i&&this._generatePoleQuad(e,a,s,l,d,gm),f===i&&m===i&&this._generatePoleQuad(e,s,c,d,p,gm),m===i&&u===i&&this._generatePoleQuad(e,c,a,p,l,gm));}}_initializeVertices(e){let t=[];for(let n=0;n<e.length;n+=2)t.push(this._vertexToIndex(e[n],e[n+1]));return t}subdividePolygonInternal(e,t){if(this._used)throw Error(`Subdivision: multiple use not allowed.`);this._used=true;let{flattened:n,holeIndices:r}=xm(e),i=this._initializeVertices(n),a;try{let e=bp(n,r);a=this._subdivideTrianglesScanline(e,i);}catch(e){console.error(e);}let o=[];return t&&(o=this._generateOutline(e,i)),this._ensureNoPoleVertices(),this._handlePoles(a),this._granularity>=2&&this._canonical?.z===0&&(a=this._removeTrianglesOutsideTileX(a),o=o.map(e=>this._removeLinesOutsideTileX(e))),{verticesFlattened:this._vertexBuffer,indicesTriangles:a,indicesLineList:o}}_vertexOutsideTileX(e){let t=this._vertexBuffer[e*2];return t<0||t>8192}_removeTrianglesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=3)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||this._vertexOutsideTileX(e[n+2])||t.push(e[n],e[n+1],e[n+2]);return t}_removeLinesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=2)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||t.push(e[n],e[n+1]);return t}_pointArrayToIndices(e){let t=[];for(let n of e)t.push(this._vertexToIndex(n.x,n.y));return t}};function vm(e,t,n,r=true){return new _m(n,t).subdividePolygonInternal(e,r)}function ym(e,t,n=false){if(!e||e.length<1||e.length<2)return [];let r=n&&bm(e);if(t<2)return r?[...e,e[0]]:[...e];let i=Math.floor(P/t),a=[];a.push(new u(e[0].x,e[0].y));let o=e.length,s=r?o:o-1;for(let t=0;t<s;t++){let n=e[t],r=t<o-1?e[t+1]:e[0],s=n.x,c=n.y,l=r.x,d=r.y,f=s!==l,p=c!==d;if(!f&&!p)continue;let m=l-s,h=d-c,g=Math.abs(m),_=Math.abs(h),v=s,y=c;for(;;){let e=m>0?(Math.floor(v/i)+1)*i:(Math.ceil(v/i)-1)*i,t=h>0?(Math.floor(y/i)+1)*i:(Math.ceil(y/i)-1)*i,n=Math.abs(v-e),r=Math.abs(y-t),o=Math.abs(v-l),s=Math.abs(y-d),c=f?n/g:1/0,b=p?r/_:1/0;if((o<=n||!f)&&(s<=r||!p))break;if(c<b&&f||!p){v=e,y+=h*c;let t=new u(v,Math.round(y));(a[a.length-1].x!==t.x||a[a.length-1].y!==t.y)&&a.push(t);}else {v+=m*b,y=t;let e=new u(Math.round(v),y);(a[a.length-1].x!==e.x||a[a.length-1].y!==e.y)&&a.push(e);}}let b=new u(l,d);(a[a.length-1].x!==b.x||a[a.length-1].y!==b.y)&&a.push(b);}return a}function bm(e){return !e[0].equals(e[e.length-1])}function xm(e){let t=[],n=[];for(let r of e)if(r.length!==0){r!==e[0]&&t.push(n.length/2);for(let e of r)n.push(e.x),n.push(e.y);}return {flattened:n,holeIndices:t}}function Sm(e,t){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=t[e[r]];return n}function Cm(e,t){let n=[];for(let r=0;r<t.length;r+=3){let i=t[r],a=t[r+1],o=t[r+2],s=e[i*2],c=e[i*2+1],l=e[a*2],u=e[a*2+1],d=e[o*2],f=e[o*2+1],p=l-s,m=u-c,h=d-s;p*(f-c)-m*h>0?(n.push(i),n.push(o),n.push(a)):(n.push(i),n.push(a),n.push(o));}return n}function wm(e,t,n){if(t.length===0)throw Error(`Subdivision vertex ring is empty.`);let r=0,i=e[t[0]*2];for(let n=1;n<t.length;n++){let a=e[t[n]*2];a<i&&(i=a,r=n);}let a=t.length,o=r,s=(o+1)%a;for(;;){let r=o-1>=0?o-1:a-1,i=(s+1)%a,c=e[t[r]*2],l=e[t[r]*2+1],u=e[t[i]*2],d=e[t[i]*2+1],f=e[t[o]*2],p=e[t[o]*2+1],m=e[t[s]*2],h=e[t[s]*2+1],g=false;if(c<u)g=true;else if(c>u)g=false;else {let e=h-p,t=-(m-f),n=p<h?1:-1;((c-f)*e+(l-p)*t)*n>((u-f)*e+(d-p)*t)*n&&(g=true);}if(g){let e=t[r],i=t[o],c=t[s];e!==i&&e!==c&&i!==c&&n.push(c,i,e),o--,o<0&&(o=a-1);}else {let e=t[i],r=t[o],c=t[s];e!==r&&e!==c&&r!==c&&n.push(c,r,e),s++,s>=a&&(s=0);}if(r===i)break}}function Tm(e,t,n,r,i,a,o,s,c){let l=i.length/2,u=o&&s&&c;if(l<gd.MAX_VERTEX_ARRAY_LENGTH){let d=t.prepareSegment(l,n,r),f=d.vertexLength;for(let e=0;e<a.length;e+=3)r.emplaceBack(f+a[e],f+a[e+1],f+a[e+2]);d.vertexLength+=l,d.primitiveLength+=a.length/3;let p,m;u&&(m=o.prepareSegment(l,n,s),p=m.vertexLength,m.vertexLength+=l);for(let t=0;t<i.length;t+=2)e(i[t],i[t+1]);if(u)for(let e of c){for(let t=1;t<e.length;t+=2)s.emplaceBack(p+e[t-1],p+e[t]);m.primitiveLength+=e.length/2;}}else Dm(t,n,r,i,a,e),u&&Om(o,n,s,i,c,e),t.forceNewSegmentOnNextPrepare(),o?.forceNewSegmentOnNextPrepare();}function Em(e,t,n,r,i,a,o){if(a){let a=r.count;return n(t[i*2],t[i*2+1]),e[i]=r.count,r.count++,o.vertexLength++,a}return e[i]}function Dm(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d=2;d<i.length;d+=3){let f=i[d-2],p=i[d-1],m=i[d],h=o[f]<c,g=o[p]<c,_=o[m]<c,v=+!!h+ +!!g+ +!!_;l.vertexLength+v>gd.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,h=true,g=true,_=true,u=0);let y=Em(o,r,a,s,f,h,l),b=Em(o,r,a,s,p,g,l),x=Em(o,r,a,s,m,_,l);n.emplaceBack(u+y-c,u+b-c,u+x-c),l.primitiveLength++;}}function Om(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d of i)for(let i=1;i<d.length;i+=2){let f=d[i-1],p=d[i],m=o[f]<c,h=o[p]<c,g=+!!m+ +!!h;l.vertexLength+g>gd.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,m=true,h=true,u=0);let _=Em(o,r,a,s,f,m,l),v=Em(o,r,a,s,p,h,l);n.emplaceBack(u+_-c,u+v-c),l.primitiveLength++;}}var km=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.sdfPatterns={},this.patternFeatures=[],this.layoutVertexArray=new Qu,this.indexArray=new dd,this.indexArray2=new fd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.segments2=new gd,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.hasDependencies=gp(`fill`,this.layers,t);let r=this.layers[0].layout.get(`fill-sort-key`),i=!r.isConstant(),a=[],o=new Ll(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:c,id:l,index:u,sourceLayerIndex:d}of e){let e=Qd(c,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let f=i?r.evaluate(e,{},n,t.availableImages):void 0,p={id:l,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:s?e.geometry:Zd(c),patterns:{},sortKey:f};a.push(p);}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;if(this.hasDependencies){let e=_p(`fill`,this.layers,r,{zoom:this.zoom},t);this.patternFeatures.push(e);}else this.addFeature(r,i,a,n,{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}addFeatures({options:e,canonical:t,patternPositions:n,patternMap:r}){this.detectSdfPatterns(r);for(let r of this.patternFeatures)this.addFeature(r,r.geometry,r.index,t,n,e.subdivisionGranularity);}detectSdfPatterns(e){for(let t of this.patternFeatures)for(let n in t.patterns){let r=t.patterns[n];this.recordSdfPattern(n,e[r.min]),this.recordSdfPattern(n,e[r.mid]),this.recordSdfPattern(n,e[r.max]);}for(let t of this.layers){let n=t.paint.get(`fill-pattern`).constantOr(null);n&&(this.recordSdfPattern(t.id,e[n.from.toString()]),this.recordSdfPattern(t.id,e[n.to.toString()]));}}recordSdfPattern(e,t){if(!t)return;let n=t.sdf===true,r=this.sdfPatterns[e];r===void 0?this.sdfPatterns[e]=n:r!==n&&L$1(`Style sheet warning: Cannot mix SDF and non-SDF fill patterns in layer "${e}"`);}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hp),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(e,t,n,r,i,a){for(let e of Fi(t,500)){let t=vm(e,r,a.fill.getGranularityForZoomLevel(r.z)),n=this.layoutVertexArray;Tm((e,t)=>{n.emplaceBack(e,t);},this.segments,this.layoutVertexArray,this.indexArray,t.verticesFlattened,t.indicesTriangles,this.segments2,this.indexArray2,t.indicesLineList);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r});}};K(`FillBucket`,km,{omit:[`layers`,`patternFeatures`]});const Lm=lu([{name:`a_pos`,components:2,type:`Int16`},{name:`a_normal_ed`,components:4,type:`Int16`}],4),Rm=lu([{name:`a_centroid`,components:2,type:`Int16`}],4),zm=Lm.members;var Bm=class{constructor(e,t,n,r,i){for(this.properties=Object.create(null),this.extent=n,this.type=0,this.id=void 0,this._pbf=e,this._geometry=-1,this._keys=r,this._values=i;e.pos<t;){let t=e.readVarint();if(t===8)this.id=e.readVarint();else if(t===18){let t=e.readVarint()+e.pos;for(;e.pos<t;){let t=r[e.readVarint()],n=i[e.readVarint()];this.properties[t]=n;}}else t===24?this.type=e.readVarint():(t===34&&(this._geometry=e.pos),e.skip(t));}}loadGeometry(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=[],r,i=1,a=0,o=0,s=0;for(;e.pos<t;){if(a<=0){let t=e.readVarint();if(i=t&7,a=t>>3,a===0)continue}if(a--,i===1)o+=e.readSVarint(),s+=e.readSVarint(),r&&n.push(r),r=[new u(o,s)];else if(i===2)o+=e.readSVarint(),s+=e.readSVarint(),r&&r.push(new u(o,s));else if(i===7)r&&r.push(r[0].clone());else throw Error(`unknown command ${i}`)}return r&&n.push(r),n}bbox(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=1,r=0,i=0,a=0,o=1/0,s=-1/0,c=1/0,l=-1/0;for(;e.pos<t;){if(r<=0){let t=e.readVarint();if(n=t&7,r=t>>3,r===0)continue}if(r--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),i<o&&(o=i),i>s&&(s=i),a<c&&(c=a),a>l&&(l=a);else if(n!==7)throw Error(`unknown command ${n}`)}return [o,c,s,l]}toGeoJSON(e,t,n){let r=this.extent*2**n,i=this.extent*e,a=this.extent*t,o=this.loadGeometry();function s(e){return [(e.x+i)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+a)*2/r)*Math.PI))-90]}function c(e){return e.map(s)}let l;if(this.type===1){let e=[];for(let t of o)e.push(t[0]);let t=c(e);l=e.length===1?{type:`Point`,coordinates:t[0]}:{type:`MultiPoint`,coordinates:t};}else if(this.type===2){let e=o.map(c);l=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};}else if(this.type===3){let e=Vm(o),t=[];for(let n of e)t.push(n.map(c));l=t.length===1?{type:`Polygon`,coordinates:t[0]}:{type:`MultiPolygon`,coordinates:t};}else throw Error(`unknown feature type`);let u={type:`Feature`,geometry:l,properties:this.properties};return this.id!=null&&(u.id=this.id),u}};Bm.types=[`Unknown`,`Point`,`LineString`,`Polygon`];function Vm(e){let t=e.length;if(t<=1)return [e];let n=[],r,i;for(let a=0;a<t;a++){let t=Hm(e[a]);t!==0&&(i===void 0&&(i=t<0),i===t<0?(r&&n.push(r),r=[e[a]]):r&&r.push(e[a]));}return r&&n.push(r),n}function Hm(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}var Um=class{constructor(e,t){for(this.version=1,this.name=``,this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],t===void 0&&(t=e.length);e.pos<t;){let t=e.readVarint();t===10?this.name=e.readString():t===18?(this._features.push(e.pos),e.skip(t)):t===26?this._keys.push(e.readString()):t===34?this._values.push(Wm(e)):t===40?this.extent=e.readVarint():t===120?this.version=e.readVarint():e.skip(t);}this.length=this._features.length;}feature(e){if(e<0||e>=this._features.length)throw Error(`feature index out of bounds`);this._pbf.pos=this._features[e];let t=this._pbf.readVarint()+this._pbf.pos;return new Bm(this._pbf,t,this.extent,this._keys,this._values)}};function Wm(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let n=e.readVarint();t=n===10?e.readString():n===21?e.readFloat():n===25?e.readDouble():n===32?e.readVarint(true):n===40?e.readVarint():n===48?e.readSVarint():n===56?e.readBoolean():(e.skip(n),null);}if(t==null)throw Error(`unknown feature value`);return t}var Gm=class{constructor(e,t=e.length){let n=Object.create(null);for(;e.pos<t;){let t=e.readVarint();if(t===26){let t=new Um(e,e.readVarint()+e.pos);t.length&&(n[t.name]=t);}else e.skip(t);}this.layers=n;}};const Km=6371008.8;var Q=class e{constructor(e,t){if(isNaN(e)||isNaN(t))throw Error(`Invalid LngLat object: (${e}, ${t})`);if(this.lng=+e,this.lat=+t,this.lat>90||this.lat<-90)throw Error(`Invalid LngLat latitude value: must be between -90 and 90`)}wrap(){return new e(wt(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(e){let t=Math.PI/180,n=this.lat*t,r=e.lat*t,i=Math.sin(n)*Math.sin(r)+Math.cos(n)*Math.cos(r)*Math.cos((e.lng-this.lng)*t);return Km*Math.acos(Math.min(i,1))}static convert(t){if(t instanceof e)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new e(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t==`object`&&t)return new e(Number(`lng`in t?t.lng:t.lon),Number(t.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")}};const qm=6378137,Jm={origin:[-Math.PI*qm,Math.PI*qm],extentAtZoom0:2*Math.PI*qm},Ym=2*Math.PI*Km;function Xm(e){return Ym*Math.cos(e*Math.PI/180)}function Zm(e){return (180+e)/360}function Qm(e){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function $m(e,t){return e/Xm(t)}function eh(e){return e*360-180}function th(e){let t=180-e*360;return 360/Math.PI*Math.atan(Math.exp(t*Math.PI/180))-90}function nh(e,t){return e*Xm(th(t))}function rh(e){return 1/Math.cos(e*Math.PI/180)}var ih=class e{constructor(e,t,n=0){this.x=+e,this.y=+t,this.z=+n;}static fromLngLat(t,n=0){let r=Q.convert(t);return new e(Zm(r.lng),Qm(r.lat),$m(n,r.lat))}toLngLat(){return new Q(eh(this.x),th(this.y))}toAltitude(){return nh(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Ym*rh(th(this.y))}};const ah=new class{constructor(){this.name=`mercator`,this.wraps=true,this.tileMatrixSet=Jm;}worldFromLngLat(e,t,n){return new ih(Zm(e),Qm(t),n===void 0?0:$m(n,t))}lngLatFromWorld(e,t){return new Q(eh(e),th(t))}hasLngLat(e,t){return true}metersPerWorldUnit(e,t){return 1/(1/Ym*rh(th(t)))}worldZFromAltitude(e,t){return $m(e,t.lat)}};function sh(e,t,n){let r=1/(1<<n.z);return new ih(e/P*r+n.x*r,t/P*r+n.y*r)}function ch(e,t,n){return sh(e,t,n).toLngLat()}function xh(e,t){return t<=0||!e||e.length===0?e:e.map(e=>Eh(e,t))}function Sh(e,t){let n=ch(P/2,P/2,t),r=ih.fromLngLat(n).meterInMercatorCoordinateUnits(),i=(1<<t.z)*P;return e*r*i}const Ch=Math.cos(35*Math.PI/180);function wh(e){let t=[null];for(let n=1;n<e.length;n++){let r=e[n].sub(e[n-1]),i=!tf(e[n],e[n-1])&&r.mag()>0;t.push(i?r._perp():null);}let n=e.length-1,r=n>1&&e[0].equals(e[n]),i=[null];for(let e=1;e<=n;e++){let a=t[e];if(!a){i.push(null);continue}let o=r&&e===1?t[n]:t[e-1],s=r&&e===n?t[1]:t[e+1];i.push({start:Th(a,o),end:Th(a,s)});}return i}function Th(e,t){if(!t)return e.unit();let n=e.mag(),r=t.mag();return e.x*t.x+e.y*t.y<Ch*n*r||n>=2*r?e.unit():r>=2*n?t.unit():e.add(t)._unit()}function Eh(e,t){if(!e||e.length<3)return e;let n=e[0].x===e[e.length-1].x&&e[0].y===e[e.length-1].y,r=n?e.length-1:e.length;if(r<3)return e;let i=[],a=tf(e[r-1],e[0]);for(let n=0;n<r;n++){let o=e[(n-1+r)%r],s=e[n],c=e[(n+1)%r],l=tf(s,c);a||l?i.push(s.clone()):Oh(i,o,s,c,t),a=l;}let o=Dh(i);return o.length<3?e:(n&&o.push(o[0].clone()),o)}function Dh(e){let t=[];for(let n of e){let e=n.round(),r=t[t.length-1];(r?.x!==e.x||r?.y!==e.y)&&t.push(e);}for(;t.length>1&&t[0].x===t[t.length-1].x&&t[0].y===t[t.length-1].y;)t.pop();return t}function Oh(e,t,n,r,i){let a=t.sub(n),o=r.sub(n),s=a.mag(),c=o.mag();if(s<1e-6||c<1e-6){e.push(n.clone());return}a._div(s),o._div(c);let l=a.x*o.x+a.y*o.y;if(Math.abs(l)>Math.cos(5*Math.PI/180)){e.push(n.clone());return}let u=.2,d=Math.min(i,s*u,c*u),f=n.add(a.mult(d)),p=n.add(o.mult(d)),m=Math.sqrt((1+l)/2),h=n.add(a.add(o)._unit()._mult(d/m)),g=f.sub(h).angleWith(p.sub(h)),_=Math.max(2,Math.ceil(Math.abs(g)/(Math.PI/6)-1e-6));for(let t=0;t<=_;t++)e.push(f.rotateAround(t/_*g,h));}const kh=8192;function Ah(e,t,n,r,i,a,o,s){e.emplaceBack(t,n,Math.floor(r*kh)*2+o,i*kh*2,a*kh*2,Math.round(s));}var jh=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.layoutVertexArray=new $u,this.centroidVertexArray=new Ju,this.indexArray=new dd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.features=[],this.hasDependencies=gp(`fill-extrusion`,this.layers,t);let r=new Ll(this.zoom),i=this.layers[0],a=i.layout.get(`fill-extrusion-rounded-corner-distance`),o=a>0?Sh(a,n):0,s=i._featureFilter.needGeometry;for(let{feature:a,id:c,index:l,sourceLayerIndex:u}of e){let e=Qd(a,s);if(!i._featureFilter.filter(r,e,n))continue;let d={id:c,sourceLayerIndex:u,index:l,geometry:xh(s?e.geometry:Zd(a),o),properties:a.properties,type:a.type,patterns:{}};this.hasDependencies?this.features.push(_p(`fill-extrusion`,this.layers,d,{zoom:this.zoom},t)):this.addFeature(d,d.geometry,l,n,{},t.subdivisionGranularity),t.featureIndex.insert(a,d.geometry,l,u,this.index,true);}}addFeatures({options:e,canonical:t,patternPositions:n}){for(let r of this.features){let{geometry:i}=r;this.addFeature(r,i,r.index,t,n,e.subdivisionGranularity);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,zm),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,Rm.members,true),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy());}addFeature(e,t,n,r,i,a){for(let n of Fi(t,500)){let t={x:0,y:0,sampleCount:0},i=this.layoutVertexArray.length;this.processPolygon(t,r,e,n,a);let o=this.layoutVertexArray.length-i,s=Math.floor(t.x/t.sampleCount),c=Math.floor(t.y/t.sampleCount);for(let e=0;e<o;e++)this.centroidVertexArray.emplaceBack(s,c);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r});}processPolygon(e,t,n,r,i){if(r.length<1||nf(r[0]))return;for(let t of r)t.length!==0&&Mh(e,t);let a={segment:this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray)},o=i.fill.getGranularityForZoomLevel(t.z),s=Bm.types[n.type]===`Polygon`;for(let e of r){if(e.length===0||nf(e))continue;let t=ym(e,o,s);this._generateSideFaces(t,a);}if(!s)return;let c=vm(r,t,o,false),l=this.layoutVertexArray;Tm((e,t)=>{Ah(l,e,t,0,0,1,1,0);},this.segments,this.layoutVertexArray,this.indexArray,c.verticesFlattened,c.indicesTriangles);}_generateSideFaces(e,t){let n=0,r=this.layers[0].layout.get(`fill-extrusion-rounded-corner-distance`)>0?wh(e):null;for(let i=1;i<e.length;i++){let a=e[i],o=e[i-1];if(tf(a,o)||r&&!r[i])continue;t.segment.vertexLength+4>gd.MAX_VERTEX_ARRAY_LENGTH&&(t.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let s=a.sub(o)._perp()._unit(),{start:c,end:l}=r?r[i]:{start:s,end:s},u=o.dist(a);n+u>32768&&(n=0),Ah(this.layoutVertexArray,a.x,a.y,l.x,l.y,0,0,n),Ah(this.layoutVertexArray,a.x,a.y,l.x,l.y,0,1,n),n+=u,Ah(this.layoutVertexArray,o.x,o.y,c.x,c.y,0,0,n),Ah(this.layoutVertexArray,o.x,o.y,c.x,c.y,0,1,n);let d=t.segment.vertexLength;this.indexArray.emplaceBack(d,d+2,d+1),this.indexArray.emplaceBack(d+1,d+2,d+3),t.segment.vertexLength+=4,t.segment.primitiveLength+=2;}}};function Mh(e,t){for(let n=0;n<t.length;n++){let r=t[n];(n!==t.length-1||t[0].x!==r.x||t[0].y!==r.y)&&(e.x+=r.x,e.y+=r.y,e.sampleCount++);}}K(`FillExtrusionBucket`,jh,{omit:[`layers`,`features`]});const qh=lu([{name:`a_pos_normal`,components:2,type:`Int16`},{name:`a_data`,components:4,type:`Uint8`},{name:`a_offset_normal`,components:2,type:`Int8`}],2),Jh=qh.members;const Yh=lu([{name:`a_uv_x`,components:1,type:`Float32`},{name:`a_split_index`,components:1,type:`Float32`}]),Xh=Yh.members;const Zh=Math.cos(75/2*(Math.PI/180)),Qh=1/2,$h=2**14/Qh;var eg=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={};for(let e of this.layers)this.gradients[e.id]={};this.layoutVertexArray=new ed,this.layoutVertexArray2=new td,this.indexArray=new dd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.hasDependencies=gp(`line`,this.layers,t)||this.hasLineDasharray(this.layers);let r=this.layers[0].layout.get(`line-sort-key`),i=!r.isConstant(),a=[],o=new Ll(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:c,index:l,sourceLayerIndex:u}of e){let e=Qd(t,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let d=i?r.evaluate(e,{},n):void 0,f={id:c,properties:t.properties,type:t.type,sourceLayerIndex:u,index:l,geometry:s?e.geometry:Zd(t),patterns:{},dashes:{},sortKey:d};a.push(f);}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;this.hasDependencies?(gp(`line`,this.layers,t)?_p(`line`,this.layers,r,{zoom:this.zoom},t):this.hasLineDasharray(this.layers)&&this.addLineDashDependencies(this.layers,r,this.zoom,t),this.patternFeatures.push(r)):this.addFeature(r,i,a,n,{},{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n,dashPositions:r});}addFeatures({options:e,canonical:t,patternPositions:n,dashPositions:r}){for(let i of this.patternFeatures)this.addFeature(i,i.geometry,i.index,t,n,r,e.subdivisionGranularity);}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=e.createVertexBuffer(this.layoutVertexArray2,Xh)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Jh),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(e){if(e.properties&&Object.hasOwn(e.properties,`geojsonvt_clip_start`)&&Object.hasOwn(e.properties,`geojsonvt_clip_end`))return {start:+e.properties.geojsonvt_clip_start,end:+e.properties.geojsonvt_clip_end}}addFeature(e,t,n,r,i,a,o){let s=this.layers[0].layout,c=s.get(`line-join`).evaluate(e,{}),l=s.get(`line-cap`).evaluate(e,{}),u=s.get(`line-miter-limit`).evaluate(e,{}),d=s.get(`line-round-limit`).evaluate(e,{});this.lineClips=this.lineFeatureClips(e);for(let n of t)this.addLine(n,e,c,l,u,d,r,o);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,dashPositions:a,canonical:r});}addLine(e,t,n,r,i,a,o,s){this.distance=0,this.scaledDistance=0,this.totalDistance=0;let c=o?s.line.getGranularityForZoomLevel(o.z):1;if(e=ym(e,c),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let t=0;t<e.length-1;t++)this.totalDistance+=e[t].dist(e[t+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance);}let l=Bm.types[t.type]===`Polygon`,u=e.length;for(;u>=2&&e[u-1].equals(e[u-2]);)u--;let d=0;for(;d<u-1&&e[d].equals(e[d+1]);)d++;if(u-d<(l?3:2))return;n===`bevel`&&(i=1.05);let f=this.overscaling<=16?15*P/(512*this.overscaling):0,p=this.segments.prepareSegment(u*10,this.layoutVertexArray,this.indexArray),m,h,g,_,v;this.e1=this.e2=-1,l&&(m=e[u-2],v=e[d].sub(m)._unit()._perp());for(let t=d;t<u;t++){if(g=t===u-1?l?e[d+1]:void 0:e[t+1],g&&e[t].equals(g))continue;v&&(_=v),m&&(h=m),m=e[t],v=g?g.sub(m)._unit()._perp():_,_||=v;let o=_.add(v);(o.x!==0||o.y!==0)&&o._unit();let s=_.x*v.x+_.y*v.y,c=o.x*v.x+o.y*v.y,y=c===0?1/0:1/c,b=2*Math.sqrt(2-2*c),x=c<Zh&&h&&g,S=_.x*v.y-_.y*v.x>0,C=o.mult(Math.min(y,2)),w=F((y-3)/5,0,1);if(x&&t>d){let e=m.dist(h);if(e>2*f){let t=m.sub(m.sub(h)._mult(f/e)._round());this.updateDistance(h,t),this.addCurrentVertex(t,_,0,0,p),h=t;}}let T=h&&g,E=T?n:l?`butt`:r;if(T&&E===`round`&&(y<a?E=`miter`:y<=2&&(E=`fakeround`)),E===`miter`&&y>i&&(E=`bevel`),E===`bevel`&&(y>2&&(E=`flipbevel`),y<i&&(E=`miter`)),h&&this.updateDistance(h,m),E===`miter`)o._mult(y),this.addCurrentVertex(m,o,0,0,p,false,C);else if(E===`flipbevel`){if(y>100)o=v.mult(-1);else {let e=y*_.add(v).mag()/_.sub(v).mag();o._perp()._mult(e*(S?-1:1));}this.addCurrentVertex(m,o,0,0,p,false,C,w),this.addCurrentVertex(m,o.mult(-1),0,0,p,false,C,w);}else if(E===`bevel`||E===`fakeround`){let e=-Math.sqrt(y*y-1),t=S?e:0,n=S?0:e;if(h&&this.addCurrentVertex(m,_,t,n,p,false,C),E===`fakeround`){let e=Math.round(b*180/Math.PI/20);for(let t=1;t<e;t++){let n=t/e;if(n!==.5){let e=n-.5,t=1.0904+s*(-3.2452+s*(3.55645-s*1.43519)),r=.848013+s*(-1.06021+s*.215638);n+=n*e*(n-1)*(t*e*e+r);}let r=v.sub(_)._mult(n)._add(_)._unit()._mult(S?-1:1);this.addHalfVertex(m,r.x,r.y,S?-C.x:C.x,S?-C.y:C.y,false,S,p);}}g&&this.addCurrentVertex(m,v,-t,-n,p,false,C);}else if(E===`butt`)this.addCurrentVertex(m,o,0,0,p,false,C);else if(E===`square`){let e=h?1:-1;this.addCurrentVertex(m,o,e,e,p,false,C);}else E===`round`&&(h&&(this.addCurrentVertex(m,_,0,0,p,false,C,w),this.addCurrentVertex(m,_,1,1,p,true,C,w)),g&&(this.addCurrentVertex(m,v,-1,-1,p,true,C,w),this.addCurrentVertex(m,v,0,0,p,false,C,w)));if(x&&t<u-1){let e=m.dist(g);if(e>2*f){let t=m.add(g.sub(m)._mult(f/e)._round());this.updateDistance(m,t),this.addCurrentVertex(t,v,0,0,p),m=t;}}}}addCurrentVertex(e,t,n,r,i,a=false,o=t,s=0){let c=t.x+t.y*n,l=t.y-t.x*n,u=-t.x+t.y*r,d=-t.y-t.x*r,f=o.x+(t.x-o.x)*s,p=o.y+(t.y-o.y)*s;this.addHalfVertex(e,c,l,f,p,a,false,i),this.addHalfVertex(e,u,d,-f,-p,a,true,i),this.distance>$h/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,t,n,r,i,a,o,s));}addHalfVertex({x:e,y:t},n,r,i,a,o,s,c){let l=(this.lineClips?this.scaledDistance*($h-1):this.scaledDistance)*Qh;if(this.layoutVertexArray.emplaceBack((e<<1)+ +!!o,(t<<1)+ +!!s,Math.round(63*n)+128,Math.round(63*r)+128,(l&63)<<2,l>>6,Math.round(63*i),Math.round(63*a)),this.lineClips){let e=(this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start);this.layoutVertexArray2.emplaceBack(e,this.lineClipsArray.length);}let u=c.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,u,this.e2),c.primitiveLength++),s?this.e2=u:this.e1=u;}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance;}updateDistance(e,t){this.distance+=e.dist(t),this.updateScaledDistance();}hasLineDasharray(e){for(let t of e){let e=t.paint.get(`line-dasharray`);if(e&&!e.isConstant())return true}return false}addLineDashDependencies(e,t,n,r){for(let i of e){let e=i.paint.get(`line-dasharray`);if(!e||e.value.kind===`constant`)continue;let a=i.layout.get(`line-cap`).evaluate(t,{})===`round`,o={dasharray:e.value.evaluate({zoom:n-1},t,{}),round:a},s={dasharray:e.value.evaluate({zoom:n},t,{}),round:a},c={dasharray:e.value.evaluate({zoom:n+1},t,{}),round:a},l=`${o.dasharray.join(`,`)},${o.round}`,u=`${s.dasharray.join(`,`)},${s.round}`,d=`${c.dasharray.join(`,`)},${c.round}`;r.dashDependencies[l]=o,r.dashDependencies[u]=s,r.dashDependencies[d]=c,t.dashes[i.id]={min:l,mid:u,max:d};}}};K(`LineBucket`,eg,{omit:[`layers`,`patternFeatures`]});const dg=lu([{name:`a_pos_offset`,components:4,type:`Int16`},{name:`a_data`,components:4,type:`Uint16`},{name:`a_pixeloffset`,components:4,type:`Int16`},{name:`a_height_offset`,components:1,type:`Float32`}],4),fg=lu([{name:`a_projected_pos`,components:3,type:`Float32`}],4);lu([{name:`a_fade_opacity`,components:1,type:`Uint32`}],4);const pg=lu([{name:`a_placed`,components:2,type:`Uint8`},{name:`a_shift`,components:2,type:`Float32`},{name:`a_box_real`,components:2,type:`Int16`}]);lu([{type:`Int16`,name:`anchorPointX`},{type:`Int16`,name:`anchorPointY`},{type:`Int16`,name:`x1`},{type:`Int16`,name:`y1`},{type:`Int16`,name:`x2`},{type:`Int16`,name:`y2`},{type:`Uint32`,name:`featureIndex`},{type:`Uint16`,name:`sourceLayerIndex`},{type:`Uint16`,name:`bucketIndex`}]);const mg=lu([{name:`a_pos`,components:2,type:`Int16`},{name:`a_anchor_pos`,components:2,type:`Int16`},{name:`a_extrude`,components:2,type:`Int16`}],4);lu([{name:`a_pos`,components:2,type:`Float32`},{name:`a_radius`,components:1,type:`Float32`},{name:`a_flags`,components:2,type:`Int16`}],4);lu([{name:`triangle`,components:3,type:`Uint16`}]),lu([{type:`Int16`,name:`anchorX`},{type:`Int16`,name:`anchorY`},{type:`Uint16`,name:`glyphStartIndex`},{type:`Uint16`,name:`numGlyphs`},{type:`Uint32`,name:`vertexStartIndex`},{type:`Uint32`,name:`lineStartIndex`},{type:`Uint32`,name:`lineLength`},{type:`Uint16`,name:`segment`},{type:`Uint16`,name:`lowerSize`},{type:`Uint16`,name:`upperSize`},{type:`Float32`,name:`lineOffsetX`},{type:`Float32`,name:`lineOffsetY`},{type:`Uint8`,name:`writingMode`},{type:`Uint8`,name:`placedOrientation`},{type:`Uint8`,name:`hidden`},{type:`Uint32`,name:`crossTileID`},{type:`Int16`,name:`associatedIconIndex`},{type:`Float32`,name:`heightOffset`}]);const gg=lu([{type:`Int16`,name:`anchorX`},{type:`Int16`,name:`anchorY`},{type:`Int16`,name:`rightJustifiedTextSymbolIndex`},{type:`Int16`,name:`centerJustifiedTextSymbolIndex`},{type:`Int16`,name:`leftJustifiedTextSymbolIndex`},{type:`Int16`,name:`verticalPlacedTextSymbolIndex`},{type:`Int16`,name:`placedIconSymbolIndex`},{type:`Int16`,name:`verticalPlacedIconSymbolIndex`},{type:`Uint16`,name:`key`},{type:`Uint16`,name:`textBoxStartIndex`},{type:`Uint16`,name:`textBoxEndIndex`},{type:`Uint16`,name:`verticalTextBoxStartIndex`},{type:`Uint16`,name:`verticalTextBoxEndIndex`},{type:`Uint16`,name:`iconBoxStartIndex`},{type:`Uint16`,name:`iconBoxEndIndex`},{type:`Uint16`,name:`verticalIconBoxStartIndex`},{type:`Uint16`,name:`verticalIconBoxEndIndex`},{type:`Uint16`,name:`featureIndex`},{type:`Uint16`,name:`numHorizontalGlyphVertices`},{type:`Uint16`,name:`numVerticalGlyphVertices`},{type:`Uint16`,name:`numIconVertices`},{type:`Uint16`,name:`numVerticalIconVertices`},{type:`Uint16`,name:`useRuntimeCollisionCircles`},{type:`Uint32`,name:`crossTileID`},{type:`Float32`,name:`textBoxScale`},{type:`Float32`,name:`collisionCircleDiameter`},{type:`Uint16`,name:`textAnchorOffsetStartIndex`},{type:`Uint16`,name:`textAnchorOffsetEndIndex`},{type:`Float32`,name:`heightOffset`}]);lu([{type:`Float32`,name:`offsetX`}]),lu([{type:`Int16`,name:`x`},{type:`Int16`,name:`y`},{type:`Int16`,name:`tileUnitDistanceFromAnchor`}]),lu([{type:`Uint16`,name:`textAnchor`},{type:`Float32`,components:2,name:`textOffset`}]);const _g=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus=`unavailable`,this.pluginURL=null,this.loadScriptResolve=()=>{};}setState(e){this.pluginStatus=e.pluginStatus,this.pluginURL=e.pluginURL;}getState(){return {pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(e){if(_g.isParsed())throw Error(`RTL text plugin already registered.`);this.applyArabicShaping=e.applyArabicShaping,this.processBidirectionalText=e.processBidirectionalText,this.processStyledBidirectionalText=e.processStyledBidirectionalText,this.loadScriptResolve();}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}async syncState(e,t){if(this.isParsed())return this.getState();if(e.pluginStatus!==`loading`)return this.setState(e),e;let n=e.pluginURL,r=new Promise(e=>{this.loadScriptResolve=e;}),i=new Promise(e=>setTimeout(()=>e(),this.TIMEOUT));if(await t(n),await Promise.race([r,i]),this.isParsed()){let e={pluginStatus:`loaded`,pluginURL:n};return this.setState(e),e}throw this.setState({pluginStatus:`error`,pluginURL:``}),Error(`RTL Text Plugin failed to import scripts from ${n}`)}};function vg(e){return /[\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u070D\u070F-\u074A\u074D-\u077F\u07C0-\u07FA\u07FD-\u07FF\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u08E1\u08E3-\u08FF\u1800\u1801\u1804\u1806-\u1819\u1820-\u1878\u1880-\u18AA\uA840-\uA877\uFB50-\uFD3D\uFD40-\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC]|\uD802[\uDEC0-\uDEE6\uDEEB-\uDEF6\uDF80-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDD00-\uDD27\uDD30-\uDD39\uDE60-\uDE7E\uDEC2-\uDEC7\uDED0-\uDED8\uDEFA-\uDEFF\uDF30-\uDF59\uDF70-\uDF89\uDFB0-\uDFCB]|\uD805[\uDE60-\uDE6C]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C-\uDC9F]|\uD83A[\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]/gim.test(String.fromCodePoint(e))}function yg(e){return /[\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u070D\u070F-\u074A\u074D-\u07B1\u07C0-\u07FA\u07FD-\u082D\u0830-\u083E\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u08E1\u08E3-\u08FF\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFD3D\uFD40-\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC57-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD1F-\uDD39\uDD3F-\uDD59\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE50-\uDE58\uDE60-\uDE9F\uDEC0-\uDEE6\uDEEB-\uDEF6\uDF00-\uDF35\uDF39-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD85\uDD8E\uDD8F\uDE60-\uDE7E\uDE80-\uDEA9\uDEAB-\uDEAD\uDEB0\uDEB1\uDEC2-\uDEC7\uDED0-\uDED8\uDEFA-\uDF27\uDF30-\uDF59\uDF70-\uDF89\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]/gim.test(String.fromCodePoint(e))}function Sg(e){return /[\u02EA\u02EB\u2E80-\u2FDF\u2FF0-\u303F\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FD-\u30FF\u3105-\u312F\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(e))}function Cg(e){return /[\u02EA\u02EB\u1100-\u11FF\u1401-\u167F\u18B0-\u18FF\u2065\u20DD-\u20E0\u20E2-\u20E4\u2B97\u2BF0-\u2BFF\u2E50\u2E51\u2E80-\u3007\u3012\u3013\u3020-\u302F\u3031-\u30FB\u30FD-\uA4CF\uA960-\uA97F\uAC00-\uD7FF\uF900-\uFAFF\uFE10-\uFE1F\uFE30-\uFE48\uFE50-\uFE57\uFE5F-\uFE62\uFE67-\uFE6F\uFF00-\uFF07\uFF0A-\uFF0C\uFF0E-\uFF19\uFF1F-\uFF3A\uFF3C\uFF3E\uFF40-\uFF5A\uFFE0-\uFFE2\uFFE4-\uFFE7\uFFF0-\uFFF8]|\uD802[\uDD80-\uDD9F]|\uD805[\uDD80-\uDDFF]|\uD806[\uDE00-\uDEBF]|[\uD80C-\uD810\uD81C-\uD822\uD83C\uD83D\uD840-\uD87E\uD880-\uD8BE][\uDC00-\uDFFF]|\uD811[\uDC00-\uDE7F]|\uD81B[\uDFE0-\uDFFF]|\uD823[\uDC00-\uDDFF]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFF]|\uD833[\uDEC0-\uDFCF]|\uD834[\uDC00-\uDDFF\uDEE0-\uDF7F]|\uD836[\uDC00-\uDEAF]|\uD83E[\uDD00-\uDEFF]|[\uD87F\uD8BF][\uDC00-\uDFFD]/gim.test(String.fromCodePoint(e))}function wg(e){return /[\xA7\xA9\xAE\xB1\xBC-\xBE\xD7\xF7\u2016\u2020\u2021\u2030\u2031\u203B\u203C\u2042\u2047-\u2049\u2051\u2100-\u218F\u221E\u2234\u2235\u2300-\u2307\u230C-\u231F\u2324-\u2328\u232B\u237D-\u239A\u23BE-\u23CD\u23CF\u23D1-\u23DB\u23E2-\u2422\u2424-\u24FF\u25A0-\u2619\u2620-\u2767\u2776-\u2793\u2B12-\u2B2F\u2B50-\u2B59\u2BB8-\u2BEB\u3000-\u303F\u30A0-\u30FF\uE000-\uF8FF\uFE30-\uFE6F\uFF00-\uFFEF\uFFFC\uFFFD]|[\uDB80-\uDBFF][\uDC00-\uDFFF]/gim.test(String.fromCodePoint(e))}function Tg(e){return /[\r\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0600-\u0605\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DD\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0890\u0891\u0897-\u089F\u08CA-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E33-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB3-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1037\u1039-\u103E\u1056-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1084-\u1086\u108D\u109D\u1100-\u11FF\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60\u1A62\u1A65-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA960-\uA97C\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD69-\uDD6D\uDEAB\uDEAC\uDEFA-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCBD\uDCC2\uDCCD\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC2\uDDC3\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDE41\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDFB8-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD2\uDFE1\uDFE2]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF1F\uDF22-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE84-\uDE99\uDF60-\uDF67]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6\uDF00-\uDF03\uDF34-\uDF3A\uDF3E-\uDF42\uDF5A]|\uD80D[\uDC40\uDC47-\uDC55]|\uD818[\uDD1E-\uDD2F]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDD63\uDD67-\uDD6A\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF\uDDEE\uDDEF\uDEE3\uDEE6\uDEEE\uDEEF\uDEF5]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDDE6-\uDDFF\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF]/.test(e)}function Eg(e){return /[\u0E01-\u0E3A\u0E40-\u0E4E\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0EDC-\u0EDF\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FD4\u0FD9\u0FDA\u1000-\u103F\u1050-\u108F\u109A-\u109F\u1780-\u17D3\u17D7\u17DC\u17DD\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19DE\u19DF\u1A20-\u1A5E\u1A60-\u1A7C\u1AA0-\u1AAD\u1B00-\u1B4C\u1B4E-\u1B7F\uA980-\uA9CD\uA9D0-\uA9D9\uA9DE-\uA9EF\uA9FA-\uA9FE\uAA60-\uAAC2\uAADB-\uAADF]|\uD805[\uDF00-\uDF1A\uDF1D-\uDF2B\uDF3A\uDF3B\uDF3F-\uDF46]/gim.test(String.fromCodePoint(e))}function Dg(e,t){return /(?:[\u1039\u17D2\u1A60\u1BAB\u200D\uAAF6]|\uD802\uDE3F|\uD804[\uDD33\uDFD0]|\uD806[\uDD3E\uDE47\uDE99]|\uD807[\uDD45\uDD97\uDF42])$/.test(e)||/^\p{gc=Mc}/u.test(t)}const Og={C:`18g,1;g2,3;4nb,1`,D:`17k,1;5,1;1,1;1,5;4,d;1,7;1,2;z,2;8,g;i,12;1,2;9,1;1,1;1,2;14,3;2,1;28,9;3,f;2,4;1,1;2,3;2,6;7a,1;2,5;1,1;g,a;5,2;2,6;1,f`,R:`17m,4;1,1;1,1;5,4;l,1;14,3;1,3;g,i;12,1;2,9;1,1;1,1;2,2;1,1;o,2;2x,3;f,2;4,1;1,2;3,2;6u,j;b,1;r,3;1,1;2,2;6,1`,T:`174,b;1,1;1a,l;g,1;2t,7;2,6;2,2;1,4;bt,9;16,o;1,t;1clb,1`},kg={1569:[65152,0,0,0],1570:[65153,65154,0,0],1571:[65155,65156,0,0],1572:[65157,65158,0,0],1573:[65159,65160,0,0],1574:[65161,65162,65163,65164],1575:[65165,65166,0,0],1576:[65167,65168,65169,65170],1577:[65171,65172,0,0],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194,0,0],1584:[65195,65196,0,0],1585:[65197,65198,0,0],1586:[65199,65200,0,0],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262,0,0],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1611:[65136,0,0,65137],1612:[65138,0,0,0],1613:[65140,0,0,0],1614:[65142,0,0,65143],1615:[65144,0,0,65145],1616:[65146,0,0,65147],1617:[65148,0,0,65149],1618:[65150,0,0,65151],1649:[64336,64337,0,0],1655:[64477,0,0,0],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393,0,0],1676:[64388,64389,0,0],1677:[64386,64387,0,0],1678:[64390,64391,0,0],1681:[64396,64397,0,0],1688:[64394,64395,0,0],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415,0,0],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421,0,0],1729:[64422,64423,64424,64425],1733:[64480,64481,0,0],1734:[64473,64474,0,0],1735:[64471,64472,0,0],1736:[64475,64476,0,0],1737:[64482,64483,0,0],1739:[64478,64479,0,0],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431,0,0],1747:[64432,64433,0,0]},Ag={لآ:[65269,65270],لأ:[65271,65272],لإ:[65273,65274],لا:[65275,65276]},jg=1604,Mg=/[\u0600-\u06ff\u0750-\u077f\u0870-\u089f\u08a0-\u08ff\ufb50-\ufdff\ufe70-\ufeff]/;function Ng(e,t,n){let r=0;for(let i of e.split(`;`)){let[e,a]=i.split(`,`).map(e=>parseInt(e,36)),o=r+e;for(let e=o;e<o+a;e++)n.set(e,t);r=o+a;}}const Pg=/* @__PURE__ */ new Map;for(let[e,t]of Object.entries(Og))Ng(t,e,Pg);function Fg(e){return Pg.get(e)??`U`}function Ig(e){return e===`D`||e===`L`||e===`C`}function Lg(e){return e===`D`||e===`R`||e===`C`}function Rg(e,t,n){return e===`D`?t&&n?3:t?1:n?2:0:e===`R`?+!!t:e===`L`?n?2:0:null}function zg(e){return [...e].map(e=>{let t=e.codePointAt(0);return {codePoint:t,type:Fg(t),form:null}})}function Bg(e){let t=e.filter(e=>e.type!==`T`);for(let e=0;e<t.length;e++){let n=t[e],r=e>0&&Ig(t[e-1].type),i=e+1<t.length&&Lg(t[e+1].type);n.form=Rg(n.type,r,i);}}function Vg(e){let t=false;for(let n of e)n.type===`T`?n.form=t?3:0:t=n.form===2||n.form===3;}function Hg(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r.codePoint!==jg){t.push(r);continue}let i=n+1;for(;i<e.length&&e[i].type===`T`;)i++;let a=e[i],o=a&&Ag[String.fromCodePoint(jg,a.codePoint)];if(!o){t.push(r);continue}let s=r.form===3||r.form===1;t.push({codePoint:o[+!!s],type:`R`,form:0}),t.push(...e.slice(n+1,i)),n=i;}return t}function Ug(e){if(e.form===null)return e.codePoint;let t=kg[e.codePoint];return t&&(t[e.form]||t[0])||e.codePoint}function Wg(e){if(!Mg.test(e))return e;let t=zg(e);return Bg(t),Vg(t),Hg(t).map(e=>String.fromCodePoint(Ug(e))).join(``)}function Gg(e,t,n){let r=t.layout.get(`text-transform`).evaluate(n,{});return r===`uppercase`?e=e.toLocaleUpperCase():r===`lowercase`&&(e=e.toLocaleLowerCase()),(_g.applyArabicShaping??Wg)(e)}function Kg(e,t,n){for(let r of e.sections)r.text=Gg(r.text,t,n);return e}function qg(e,t,n){let r=n?t.last.points:t.first.points,i=n?r[r.length-1]:r[0];return `${e}:${i.x}:${i.y}`}function Jg(e){let t=e.first.points,n=t.length;for(let t=e.first.next;t;t=t.next)n+=t.points.length-1;let r=Array(n);for(let e=0;e<t.length;e++)r[e]=t[e];let i=t.length;for(let t=e.first.next;t;t=t.next){let e=t.points;for(let t=1;t<e.length;t++)r[i++]=e[t];}return r}function Yg(e,t,n,r,i){let a=t[n];delete t[n],t[r]=a;let o=e[a];return o.last.next=i.first,o.last=i.last,a}function Xg(e,t,n,r,i){let a=t[r];delete t[r],t[n]=a;let o=e[a];return i.last.next=o.first,o.first=i.first,a}function Zg(e){let t={},n={},r=[];for(let i of e){let e=i.text?i.text.toString():null,a={points:i.geometry[0],next:null},o={feature:i,first:a,last:a};if(!e){r.push(o);continue}let s=qg(e,o),c=qg(e,o,true);if(s in n&&c in t&&n[s]!==t[c]){let i=Xg(r,t,s,c,o),a=Yg(r,n,s,c,r[i]);delete t[s],delete n[c],n[qg(e,r[a],true)]=a,r[i].feature.geometry=null;}else if(s in n)Yg(r,n,s,c,o);else if(c in t)Xg(r,t,s,c,o);else {let e=r.push(o)-1;t[s]=e,n[c]=e;}}let i=[];for(let e of r){let t=e.feature;t.geometry&&(e.first.next&&(t.geometry[0]=Jg(e)),i.push(t));}return i}const Qg=typeof Intl<`u`&&`Segmenter`in Intl;let $g,e_;function t_(e){if(!Qg||!Tg(e))return [...e];$g??=new Intl.Segmenter(void 0,{granularity:`grapheme`});let t=[];for(let{segment:n}of $g.segment(e)){let e=t.length-1;e>=0&&Dg(t[e],n)?t[e]+=n:t.push(n);}return t}function n_(e){let t=/* @__PURE__ */ new Set;if(Qg){e_??=new Intl.Segmenter(void 0,{granularity:`word`});for(let{index:n}of e_.segment(e))t.add(n);return t}let n=0;for(let r of e.split(/\b|(?=\p{Ideo})/u))t.add(n),n+=r.length;return t}function r_(e){let t=e.codePointAt(0);return e.length>(t>65535?2:1)}function i_(e){return /\s/u.test(String.fromCodePoint(e))}function a_(e){return /[\p{P}\p{S}]/u.test(String.fromCodePoint(e))}function o_(e){for(let t of e)if(Cg(t.codePointAt(0)))return true;return false}function s_(e){for(let t of e)if(!c_(t.codePointAt(0)))return false;return true}function c_(e){return !vg(e)}function l_(e){return !(Cg(e)||wg(e))}function u_(e){return /\p{sc=Arab}/u.test(String.fromCodePoint(e))}function d_(e){return yg(e)}function f_(e){for(let t of e)if(d_(t.codePointAt(0)))return true;return false}const p_={"!":`︕`,"#":`#`,$:`$`,"%":`%`,"&":`&`,"(":`︵`,")":`︶`,"*":`*`,"+":`+`,",":`︐`,"-":`︲`,".":`・`,"/":`/`,":":`︓`,";":`︔`,"<":`︿`,"=":`=`,">":`﹀`,"?":`︖`,"@":`@`,"[":`﹇`,"\\":`\`,"]":`﹈`,"^":`^`,_:`︳`,"`":```,"{":`︷`,"|":`―`,"}":`︸`,"~":`~`,"¢":`¢`,"£":`£`,"¥":`¥`,"¦":`¦`,"¬":`¬`,"¯":` ̄`,"–":`︲`,"—":`︱`,"‘":`﹃`,"’":`﹄`,"“":`﹁`,"”":`﹂`,"…":`︙`,"⋯":`︙`,"‧":`・`,"₩":`₩`,"、":`︑`,"。":`︒`,"〈":`︿`,"〉":`﹀`,"《":`︽`,"》":`︾`,"「":`﹁`,"」":`﹂`,"『":`﹃`,"』":`﹄`,"【":`︻`,"】":`︼`,"〔":`︹`,"〕":`︺`,"〖":`︗`,"〗":`︘`,"!":`︕`,"(":`︵`,")":`︶`,",":`︐`,"-":`︲`,".":`・`,":":`︓`,";":`︔`,"<":`︿`,">":`﹀`,"?":`︖`,"[":`﹇`,"]":`﹈`,"_":`︳`,"{":`︷`,"|":`―`,"}":`︸`,"⦅":`︵`,"⦆":`︶`,"。":`︒`,"「":`﹁`,"」":`﹂`};function m_(e){let t=``,n={premature:true,value:void 0},r=e[Symbol.iterator](),i=r.next(),a=e[Symbol.iterator]();a.next();let o=a.next();for(;!i.done;)(o.done||!l_(o.value.codePointAt(0))||p_[o.value])&&(n.premature||!l_(n.value.codePointAt(0))||p_[n.value])&&p_[i.value]?t+=p_[i.value]:t+=i.value,n={value:i.value,premature:false},i=r.next(),o=a.next();return t}const h_={10:true,13:true,32:true,38:true,41:true,43:true,45:true,47:true,173:true,183:true,8203:true,8208:true,8211:true,8231:true},g_={40:true};function __(e,t,n,r,i,a){if(`fontStack`in t){let r=n[t.fontStack]?.default,a=r?.[e];if(a)return a.metrics.advance*t.scale+i;let o=0;for(let n of e){let e=r?.[n];e&&(o+=e.metrics.advance*t.scale+i);}return o}{let e=r[t.imageName];return e?e.displaySize[0]*t.scale*24/a+i:0}}function v_(e,t,n,r){let i=(e-t)**2;return r?e<t?i/2:i*2:i+Math.abs(n)*n}function y_(e){return /^\s+$/u.test(e)}function b_(e,t,n){let r=0;return (e===10||e===13)&&(r-=1e4),n&&(r+=150),(e===40||e===65288)&&(r+=50),(t===41||t===65289)&&(r+=50),r}function x_(e,t,n,r,i,a){let o=null,s=v_(t,n,i,a);for(let e of r){let r=v_(t-e.x,n,i,a)+e.badness;r<=s&&(o=e,s=r);}return {index:e,x:t,priorBreak:o,badness:s}}function S_(e){return e?S_(e.priorBreak).concat(e.index):[]}var C_=class e{constructor(e=``,t=[],n=[]){this.text=e,this.sections=t,this.sectionIndex=n,this.imageSectionID=null,this.cachedGraphemes=null;}graphemes(){return this.cachedGraphemes??=t_(this.text),this.cachedGraphemes}static fromFeature(t,n,r,i){let a=new e;for(let e of t.sections)e.image?a.addImageSection(e):a.addTextSection(e,n);return r&&a.verticalizePunctuation(i),a}length(){return this.graphemes().length}getSection(e){return this.sections[this.sectionIndex[e]]}getSectionIndex(e){return this.sectionIndex[e]}verticalizePunctuation(e={},t){let n=m_(this.text),r=0;this.cachedGraphemes=this.graphemes().map((i,a)=>{let o=n.slice(r,r+i.length);r+=i.length;let s=this.getSection(a);return t?.[a]!==false&&`fontStack`in s&&e[s.fontStack]?.vertical?.[i]?i:o}),this.text=this.cachedGraphemes.join(``);}hasZeroWidthSpaces(){return this.text.includes(``)}trim(){let e=this.graphemes(),t=0;for(;t<e.length&&y_(e[t]);)t++;let n=e.length;for(;n>t&&y_(e[n-1]);)n--;this.text=e.slice(t,n).join(``),this.sectionIndex=this.sectionIndex.slice(t,n),this.cachedGraphemes=null;}substring(t,n){let r=this.graphemes().slice(t,n).join(``),i=this.sectionIndex.slice(t,n);return new e(r,this.sections,i)}toCodeUnitIndex(e){return this.graphemes().slice(0,e).join(``).length}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((e,t)=>Math.max(e,this.sections[t].scale),0)}getMaxImageSize(e){let t=0,n=0;for(let r=0;r<this.length();r++){let i=this.getSection(r);if(`imageName`in i){let r=e[i.imageName];if(!r)continue;let a=r.displaySize;t=Math.max(t,a[0]),n=Math.max(n,a[1]);}}return {maxImageWidth:t,maxImageHeight:n}}_appendSection(e,t){let n=this.graphemes(),r=n.length>0?n[n.length-1]:``,i=t_(r+e);this.text+=e,this.cachedGraphemes=n.slice(0,r?-1:void 0).concat(i);let a=i.length-+!!r;for(let e=0;e<a;e++)this.sectionIndex.push(t);}addTextSection(e,t){this.sections.push({scale:e.scale||1,verticalAlign:e.verticalAlign||`bottom`,fontStack:e.fontStack||t}),this._appendSection(e.text,this.sections.length-1);}addImageSection(e){let t=e.image?e.image.name:``;if(t.length===0){L$1(`Can't add FormattedSection with an empty image.`);return}let n=this.getNextImageSectionCharCode();n?(this.sections.push({scale:1,verticalAlign:e.verticalAlign||`bottom`,imageName:t}),this._appendSection(String.fromCharCode(n),this.sections.length-1)):L$1(`Reached maximum number of images 6401`);}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}determineLineBreaks(e,t,n,r,i){let a=this.determineTotalWidth(e,n,r,i);if(e>=0&&a>0&&a<=t&&!/[\n\r]/.test(this.text))return [this.length()];let o=[],s=a/Math.max(1,Math.ceil(a/t)),c=this.hasZeroWidthSpaces(),l=this.graphemes(),u=null,d=0,f=0;for(let t=0;t<l.length;t++){let a=l[t];if(t>0){let e=l[t-1].codePointAt(0),n=a.codePointAt(0),r=Sg(e),i=Eg(e)&&Eg(n);(h_[e]||r||`imageName`in this.getSection(t-1)||l[t+1]!==void 0&&g_[n]||i&&(u??=n_(this.text)).has(f))&&o.push(x_(t,d,s,o,b_(e,n,r&&c),false));}i_(a.codePointAt(0))||(d+=__(a,this.getSection(t),n,r,e,i)),f+=a.length;}return S_(x_(this.length(),d,s,o,0,true))}determineTotalWidth(e,t,n,r){let i=0,a=0;for(let o of this.graphemes()){let s=this.getSection(a);i+=__(o,s,t,n,e,r),a++;}return i}};function w_(){return (function(e){var t={R:`13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73`,EN:`1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9`,ES:`17,2,6dp+1,f+1,av,16vr,mx+1,4o,2`,ET:`z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj`,AN:`16o+5,2j+9,2+1,35,ed,1ff2+9,87+u`,CS:`18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b`,B:`a,3,f+2,2v,690`,S:`9,2,k`,WS:`c,k,4f4,1vk+a,u,1j,335`,ON:`x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i`,BN:`0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1`,NSM:`lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n`,AL:`16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d`,LRO:`6ct`,RLO:`6cu`,LRE:`6cq`,RLE:`6cr`,PDF:`6cs`,LRI:`6ee`,RLI:`6ef`,FSI:`6eg`,PDI:`6eh`},n={},r={};n.L=1,r[1]=`L`,Object.keys(t).forEach(function(e,t){n[e]=1<<t+1,r[n[e]]=e;}),Object.freeze(n);var i=n.LRI|n.RLI|n.FSI,a=n.L|n.R|n.AL,o=n.B|n.S|n.WS|n.ON|n.FSI|n.LRI|n.RLI|n.PDI,s=n.BN|n.RLE|n.LRE|n.RLO|n.LRO|n.PDF,c=n.S|n.WS|n.B|i|n.PDI|s,l=null;function u(){if(!l){l=/* @__PURE__ */ new Map;var e=0;for(var r in t)if(t.hasOwnProperty(r))for(var i=t[r],a=``,o=void 0,s=false,c=0,u=0;u<=i.length+1;u+=1){var d=i[u];if(d!==`,`&&u!==i.length)d===`+`?(s=true,c=e=c+parseInt(a,36),a=``):a+=d;else {s?o=e+parseInt(a,36):(c=e=c+parseInt(a,36),o=e),s=false,a=``,c=o;for(var f=e;f<o+1;f+=1)l.set(f,n[r]);}}}}function d(e){return u(),l.get(e.codePointAt(0))||n.L}function f(e){return r[d(e)]}var p={pairs:`14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1`,canonical:`6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye`};function m(e,t){var n=0,r=/* @__PURE__ */ new Map,i=t&&/* @__PURE__ */ new Map,a;return e.split(`,`).forEach(function e(o){if(o.indexOf(`+`)!==-1)for(var s=+o;s--;)e(a);else {a=o;var c=o.split(`>`),l=c[0],u=c[1];l=String.fromCodePoint(n+=parseInt(l,36)),u=String.fromCodePoint(n+=parseInt(u,36)),r.set(l,u),t&&i.set(u,l);}}),{map:r,reverseMap:i}}var h,g,_;function v(){if(!h){var e=m(p.pairs,true),t=e.map,n=e.reverseMap;h=t,g=n,_=m(p.canonical,false).map;}}function y(e){return v(),h.get(e)||null}function b(e){return v(),g.get(e)||null}function x(e){return v(),_.get(e)||null}var S=n.L,C=n.R,w=n.EN,T=n.ES,E=n.ET,D=n.AN,O=n.CS,k=n.B,A=n.S,j=n.ON,ee=n.BN,te=n.NSM,ne=n.AL,re=n.LRO,ie=n.RLO,ae=n.LRE,oe=n.RLE,se=n.PDF,ce=n.LRI,le=n.RLI,ue=n.FSI,de=n.PDI;function fe(e,t){for(var n=125,r=new Uint32Array(e.length),l=0;l<e.length;l++)r[l]=d(e[l]);var u=/* @__PURE__ */ new Map;function f(e,t){var n=r[e];r[e]=t,u.set(n,u.get(n)-1),n&o&&u.set(o,u.get(o)-1),u.set(t,(u.get(t)||0)+1),t&o&&u.set(o,(u.get(o)||0)+1);}for(var p=new Uint8Array(e.length),m=/* @__PURE__ */ new Map,h=[],g=null,_=0;_<e.length;_++)g||h.push(g={start:_,end:e.length-1,level:t===`rtl`?1:t===`ltr`?0:rn(_,false)}),r[_]&k&&(g.end=_,g=null);for(var v=oe|ae|ie|re|i|de|se|k,fe=function(e){return e+(e&1?1:2)},pe=function(e){return e+(e&1?2:1)},me=0;me<h.length;me++){g=h[me];var he=[{_level:g.level,_override:0,_isolate:0}],ge=void 0,M=0,_e=0,ve=0;u.clear();for(var ye=g.start;ye<=g.end;ye++){var be=r[ye];if(ge=he[he.length-1],u.set(be,(u.get(be)||0)+1),be&o&&u.set(o,(u.get(o)||0)+1),be&v){if(be&(oe|ae)){p[ye]=ge._level;var xe=(be===oe?pe:fe)(ge._level);xe<=n&&!M&&!_e?he.push({_level:xe,_override:0,_isolate:0}):M||_e++;}else if(be&(ie|re)){p[ye]=ge._level;var Se=(be===ie?pe:fe)(ge._level);Se<=n&&!M&&!_e?he.push({_level:Se,_override:be&ie?C:S,_isolate:0}):M||_e++;}else if(be&i){be&ue&&(be=rn(ye+1,true)===1?le:ce),p[ye]=ge._level,ge._override&&f(ye,ge._override);var Ce=(be===le?pe:fe)(ge._level);Ce<=n&&M===0&&_e===0?(ve++,he.push({_level:Ce,_override:0,_isolate:1,_isolInitIndex:ye})):M++;}else if(be&de){if(M>0)M--;else if(ve>0){for(_e=0;!he[he.length-1]._isolate;)he.pop();var we=he[he.length-1]._isolInitIndex;we!=null&&(m.set(we,ye),m.set(ye,we)),he.pop(),ve--;}ge=he[he.length-1],p[ye]=ge._level,ge._override&&f(ye,ge._override);}else be&se?(M===0&&(_e>0?_e--:!ge._isolate&&he.length>1&&(he.pop(),ge=he[he.length-1])),p[ye]=ge._level):be&k&&(p[ye]=g.level);}else p[ye]=ge._level,ge._override&&be!==ee&&f(ye,ge._override);}for(var Te=[],Ee=null,De=g.start;De<=g.end;De++){var Oe=r[De];if(!(Oe&s)){var ke=p[De],Ae=Oe&i,je=Oe===de;Ee&&ke===Ee._level?(Ee._end=De,Ee._endsWithIsolInit=Ae):Te.push(Ee={_start:De,_end:De,_level:ke,_startsWithPDI:je,_endsWithIsolInit:Ae});}}for(var Me=[],Ne=0;Ne<Te.length;Ne++){var Pe=Te[Ne];if(!Pe._startsWithPDI||Pe._startsWithPDI&&!m.has(Pe._start)){for(var Fe=[Ee=Pe],Ie=void 0;Ee&&Ee._endsWithIsolInit&&(Ie=m.get(Ee._end))!=null;)for(var Le=Ne+1;Le<Te.length;Le++)if(Te[Le]._start===Ie){Fe.push(Ee=Te[Le]);break}for(var Re=[],ze=0;ze<Fe.length;ze++)for(var Be=Fe[ze],Ve=Be._start;Ve<=Be._end;Ve++)Re.push(Ve);for(var He=p[Re[0]],Ue=g.level,We=Re[0]-1;We>=0;We--)if(!(r[We]&s)){Ue=p[We];break}var Ge=Re[Re.length-1],Ke=p[Ge],qe=g.level;if(!(r[Ge]&i)){for(var Je=Ge+1;Je<=g.end;Je++)if(!(r[Je]&s)){qe=p[Je];break}}Me.push({_seqIndices:Re,_sosType:Math.max(Ue,He)%2?C:S,_eosType:Math.max(qe,Ke)%2?C:S});}}for(var Ye=0;Ye<Me.length;Ye++){var Xe=Me[Ye],N=Xe._seqIndices,Ze=Xe._sosType,Qe=Xe._eosType,$e=p[N[0]]&1?C:S;if(u.get(te))for(var et=0;et<N.length;et++){var tt=N[et];if(r[tt]&te){for(var P=Ze,nt=et-1;nt>=0;nt--)if(!(r[N[nt]]&s)){P=r[N[nt]];break}f(tt,P&(i|de)?j:P);}}if(u.get(w))for(var rt=0;rt<N.length;rt++){var it=N[rt];if(r[it]&w)for(var at=rt-1;at>=-1;at--){var ot=at===-1?Ze:r[N[at]];if(ot&a){ot===ne&&f(it,D);break}}}if(u.get(ne))for(var st=0;st<N.length;st++){var ct=N[st];r[ct]&ne&&f(ct,C);}if(u.get(T)||u.get(O))for(var lt=1;lt<N.length-1;lt++){var ut=N[lt];if(r[ut]&(T|O)){for(var dt=0,ft=0,pt=lt-1;pt>=0&&(dt=r[N[pt]],dt&s);pt--);for(var mt=lt+1;mt<N.length&&(ft=r[N[mt]],ft&s);mt++);dt===ft&&(r[ut]===T?dt===w:dt&(w|D))&&f(ut,dt);}}if(u.get(w)){for(var ht=0;ht<N.length;ht++)if(r[N[ht]]&w){for(var gt=ht-1;gt>=0&&r[N[gt]]&(E|s);gt--)f(N[gt],w);for(ht++;ht<N.length&&r[N[ht]]&(E|s|w);ht++)r[N[ht]]!==w&&f(N[ht],w);}}if(u.get(E)||u.get(T)||u.get(O))for(var _t=0;_t<N.length;_t++){var vt=N[_t];if(r[vt]&(E|T|O)){f(vt,j);for(var yt=_t-1;yt>=0&&r[N[yt]]&s;yt--)f(N[yt],j);for(var bt=_t+1;bt<N.length&&r[N[bt]]&s;bt++)f(N[bt],j);}}if(u.get(w))for(var xt=0,St=Ze;xt<N.length;xt++){var Ct=N[xt],F=r[Ct];F&w?St===S&&f(Ct,S):F&a&&(St=F);}if(u.get(o)){for(var wt=C|w|D,I=wt|S,Tt=[],Et=[],Dt=0;Dt<N.length;Dt++)if(r[N[Dt]]&o){var Ot=e[N[Dt]],kt=void 0;if(y(Ot)!==null){if(Et.length<63)Et.push({char:Ot,seqIndex:Dt});else break}else if((kt=b(Ot))!==null)for(var At=Et.length-1;At>=0;At--){var jt=Et[At].char;if(jt===kt||jt===b(x(Ot))||y(x(jt))===Ot){Tt.push([Et[At].seqIndex,Dt]),Et.length=At;break}}}Tt.sort(function(e,t){return e[0]-t[0]});for(var Mt=0;Mt<Tt.length;Mt++){for(var Nt=Tt[Mt],Pt=Nt[0],Ft=Nt[1],It=false,Lt=0,L=Pt+1;L<Ft;L++){var Rt=N[L];if(r[Rt]&I){It=true;var zt=r[Rt]&wt?C:S;if(zt===$e){Lt=zt;break}}}if(It&&!Lt){Lt=Ze;for(var Bt=Pt-1;Bt>=0;Bt--){var Vt=N[Bt];if(r[Vt]&I){var Ht=r[Vt]&wt?C:S;Lt=Ht===$e?$e:Ht;break}}}if(Lt){if(r[N[Pt]]=r[N[Ft]]=Lt,Lt!==$e){for(var Ut=Pt+1;Ut<N.length;Ut++)if(!(r[N[Ut]]&s)){d(e[N[Ut]])&te&&(r[N[Ut]]=Lt);break}}if(Lt!==$e){for(var Wt=Ft+1;Wt<N.length;Wt++)if(!(r[N[Wt]]&s)){d(e[N[Wt]])&te&&(r[N[Wt]]=Lt);break}}}}for(var Gt=0;Gt<N.length;Gt++)if(r[N[Gt]]&o){for(var Kt=Gt,qt=Gt,Jt=Ze,Yt=Gt-1;Yt>=0;Yt--)if(r[N[Yt]]&s)Kt=Yt;else {Jt=r[N[Yt]]&wt?C:S;break}for(var Xt=Qe,Zt=Gt+1;Zt<N.length;Zt++)if(r[N[Zt]]&(o|s))qt=Zt;else {Xt=r[N[Zt]]&wt?C:S;break}for(var Qt=Kt;Qt<=qt;Qt++)r[N[Qt]]=Jt===Xt?Jt:$e;Gt=qt;}}}for(var $t=g.start;$t<=g.end;$t++){var en=p[$t],tn=r[$t];if(en&1?tn&(S|w|D)&&p[$t]++:tn&C?p[$t]++:tn&(D|w)&&(p[$t]+=2),tn&s&&(p[$t]=$t===0?g.level:p[$t-1]),$t===g.end||d(e[$t])&(A|k))for(var nn=$t;nn>=0&&d(e[nn])&c;nn--)p[nn]=g.level;}}return {levels:p,paragraphs:h};function rn(t,n){for(var a=t;a<e.length;a++){var o=r[a];if(o&(C|ne))return 1;if(o&(k|S)||n&&o===de)return 0;if(o&i){var s=an(a);a=s===-1?e.length:s;}}return 0}function an(t){for(var n=1,a=t+1;a<e.length;a++){var o=r[a];if(o&k)break;if(o&de){if(--n===0)return a}else o&i&&n++;}return -1}}var pe=`14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1`,me;function he(){if(!me){var e=m(pe,true),t=e.map;e.reverseMap.forEach(function(e,n){t.set(n,e);}),me=t;}}function ge(e){return he(),me.get(e)||null}function M(e,t,n,r){var i=e.length;n=Math.max(0,n==null?0:+n),r=Math.min(i-1,r==null?i-1:+r);for(var a=/* @__PURE__ */ new Map,o=n;o<=r;o++)if(t[o]&1){var s=ge(e[o]);s!==null&&a.set(o,s);}return a}function _e(e,t,n,r){var i=e.length;n=Math.max(0,n==null?0:+n),r=Math.min(i-1,r==null?i-1:+r);var a=[];return t.paragraphs.forEach(function(i){var o=Math.max(n,i.start),s=Math.min(r,i.end);if(o<s){for(var l=t.levels.slice(o,s+1),u=s;u>=o&&d(e[u])&c;u--)l[u]=i.level;for(var f=i.level,p=1/0,m=0;m<l.length;m++){var h=l[m];h>f&&(f=h),h<p&&(p=h|1);}for(var g=f;g>=p;g--)for(var _=0;_<l.length;_++)if(l[_]>=g){for(var v=_;_+1<l.length&&l[_+1]>=g;)_++;_>v&&a.push([v+o,_+o]);}}}),a}function ve(e,t,n,r){var i=ye(e,t,n,r),a=[].concat(e);return i.forEach(function(n,r){a[r]=(t.levels[n]&1?ge(e[n]):null)||e[n];}),a.join(``)}function ye(e,t,n,r){for(var i=_e(e,t,n,r),a=[],o=0;o<e.length;o++)a[o]=o;return i.forEach(function(e){for(var t=e[0],n=e[1],r=a.slice(t,n+1),i=r.length;i--;)a[n-i]=r[i];}),a}return e.closingToOpeningBracket=b,e.getBidiCharType=d,e.getBidiCharTypeName=f,e.getCanonicalBracket=x,e.getEmbeddingLevels=fe,e.getMirroredCharacter=ge,e.getMirroredCharactersMap=M,e.getReorderSegments=_e,e.getReorderedIndices=ye,e.getReorderedString=ve,e.openingToClosingBracket=y,Object.defineProperty(e,"__esModule",{value:true}),e})({})}const T_=w_(),E_=/[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/,D_=/* @__PURE__ */ new Set([`WS`,`FSI`,`LRI`,`RLI`,`PDI`]),O_=/* @__PURE__ */ new Set([`S`,`B`]);function k_(e,t,n,r){let i=[],a=n;for(let o of t_(e.slice(n,r)))i.push({index:a,text:o,level:t[a]}),a+=o.length;return i}function A_(e,t){let n=true;for(let r=e.length-1;r>=0;r--){let i=T_.getBidiCharTypeName(e[r].text[0]);O_.has(i)?(e[r].level=t,n=true):n&&D_.has(i)?e[r].level=t:n=false;}}function j_(e,t){let n=t,r=1/0;for(let{level:t}of e)t>n&&(n=t),(t|1)<r&&(r=t|1);let i=e.slice();for(let e=n;e>=r;e--)for(let t=0;t<i.length;t++){if(i[t].level<e)continue;let n=t;for(;n+1<i.length&&i[n+1].level>=e;)n++;for(let e=t,r=n;e<r;e++,r--)[i[e],i[r]]=[i[r],i[e]];t=n;}return i}function M_(e){return e.level%2==0?e.text:T_.getMirroredCharacter(e.text)??e.text}function N_(e,t){return e.find(e=>t>=e.start&&t<=e.end)?.level??0}function P_(e,t,n,r,i){let a=k_(e,t,r,i);A_(a,n);let o=``,s=[];for(let e of j_(a,n)){if(E_.test(e.text))continue;let t=M_(e);o+=t,s.push(...Array(t.length).fill(e.index));}return {text:o,sourceIndices:s}}function F_(e,t){let n=t.filter(t=>t>0&&t<e.length),r=[.../* @__PURE__ */ new Set([0,...n,e.length])].sort((e,t)=>e-t),i=[];for(let e=0;e+1<r.length;e++)i.push([r[e],r[e+1]]);return i}function I_(e,t){let{levels:n,paragraphs:r}=T_.getEmbeddingLevels(e);return F_(e,t.concat(r.map(e=>e.start))).map(([t,i])=>P_(e,n,N_(r,t),t,i))}function L_(e,t){return I_(e,t).map(e=>e.text)}function R_(e,t,n){return I_(e,n).map(e=>[e.text,e.sourceIndices.map(e=>t[e]??0)])}const z_=4294967296,B_=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`);var V_=class{constructor(e){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length;}readFields(e,t,n=this.length){let r;for(;r=this.nextField(n);)e(r,t,this);return t}readMessage(e,t){return this.readFields(e,t,this.readVarint()+this.pos)}readFixed32(){let e=this.dataView.getUint32(this.pos,true);return this.pos+=4,e}readSFixed32(){let e=this.dataView.getInt32(this.pos,true);return this.pos+=4,e}readFixed64(){let e=this.dataView.getUint32(this.pos,true)+this.dataView.getUint32(this.pos+4,true)*z_;return this.pos+=8,e}readSFixed64(){let e=this.dataView.getUint32(this.pos,true)+this.dataView.getInt32(this.pos+4,true)*z_;return this.pos+=8,e}readFloat(){let e=this.dataView.getFloat32(this.pos,true);return this.pos+=4,e}readDouble(){let e=this.dataView.getFloat64(this.pos,true);return this.pos+=8,e}readVarint(e){let t=this.buf,n=t[this.pos++];if(n<128)return n;let r=n&127,i;return i=t[this.pos++],r|=(i&127)<<7,i<128||(i=t[this.pos++],r|=(i&127)<<14,i<128)||(i=t[this.pos++],r|=(i&127)<<21,i<128)?r:(i=t[this.pos],r|=(i&15)<<28,H_(r,e,this))}readSVarint(){let e=this.readVarint();return e%2==1?(e+1)/-2:e/2}readBoolean(){return !!this.readVarint()}readString(){let e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=12&&B_?B_.decode(this.buf.subarray(t,e)):W_(this.buf,t,e)}readBytes(){let e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t}readPackedVarint(e=[],t){let n=this.readPackedEnd();for(;this.pos<n;)e.push(this.readVarint(t));return e}readPackedSVarint(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSVarint());return e}readPackedBoolean(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readBoolean());return e}readPackedFloat(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFloat());return e}readPackedDouble(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readDouble());return e}readPackedFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed32());return e}readPackedSFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed32());return e}readPackedFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed64());return e}readPackedSFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed64());return e}readPackedEnd(){return this.type===2?this.readVarint()+this.pos:this.pos+1}nextField(e=this.length){if(this.pos===this._valueStart&&this.skip(this.type),this.pos>=e)return 0;let t=this.readVarint();return this.type=t&7,this._valueStart=this.pos,t>>>3}skip(e){let t=e&7;if(t===0)for(;this.buf[this.pos++]>127;);else if(t===2)this.pos=this.readVarint()+this.pos;else if(t===5)this.pos+=4;else if(t===1)this.pos+=8;else throw Error(`Unimplemented type: ${t}`)}};function H_(e,t,n){let r=n.buf,i,a;if(a=r[n.pos++],i=(a&112)>>4,a<128||(a=r[n.pos++],i|=(a&127)<<3,a<128)||(a=r[n.pos++],i|=(a&127)<<10,a<128)||(a=r[n.pos++],i|=(a&127)<<17,a<128)||(a=r[n.pos++],i|=(a&127)<<24,a<128)||(a=r[n.pos++],i|=(a&1)<<31,a<128))return U_(e,i,t);throw Error(`Expected varint not more than 10 bytes`)}function U_(e,t,n){return n?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function W_(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o;}return r}function Y_(e){return typeof e?.renderWithWebGL==`function`}function Z_(e){let t=0,n=0;for(let r of e)t+=r.w*r.h,n=Math.max(n,r.w);e.sort((e,t)=>t.h-e.h);let r=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),n),h:1/0}],i=0,a=0;for(let t of e)for(let e=r.length-1;e>=0;e--){let n=r[e];if(!(t.w>n.w||t.h>n.h)){if(t.x=n.x,t.y=n.y,a=Math.max(a,t.y+t.h),i=Math.max(i,t.x+t.w),t.w===n.w&&t.h===n.h){let t=r.pop();t&&e<r.length&&(r[e]=t);}else t.h===n.h?(n.x+=t.w,n.w-=t.w):t.w===n.w?(n.y+=t.h,n.h-=t.h):(r.push({x:n.x+t.w,y:n.y,w:n.w-t.w,h:t.h}),n.y+=t.h,n.h-=t.h);break}}return {w:i,h:a,fill:t/(i*a)||0}}var Q_=class{constructor(e,{pixelRatio:t,version:n,isWebGLImage:r=false,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c}){this.paddedRect=e,this.pixelRatio=t,this.stretchX=i,this.stretchY=a,this.content=o,this.version=n,this.needsFirstWebGLRender=r,this.textFitWidth=s,this.textFitHeight=c;}get tl(){return [this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return [this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return [(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}},$_=class{constructor(e,t){let n={},r={};this.haveRenderCallbacks=[],this.patchedUpdateVersion=-1;let i=[];this.addImages(e,n,i),this.addImages(t,r,i);let{w:a,h:o}=Z_(i),s=new Jf({width:a||1,height:o||1});for(let t in e){let r=e[t];if(r.isWebGLImage)continue;let i=n[t].paddedRect;Jf.copy(r.data,s,{x:0,y:0},{x:i.x+1,y:i.y+1},r.data);}for(let e in t){let n=t[e],i=r[e].paddedRect,a=i.x+1,o=i.y+1,c=n.data.width,l=n.data.height;Jf.copy(n.data,s,{x:0,y:0},{x:a,y:o},n.data),Jf.copy(n.data,s,{x:0,y:l-1},{x:a,y:o-1},{width:c,height:1}),Jf.copy(n.data,s,{x:0,y:0},{x:a,y:o+l},{width:c,height:1}),Jf.copy(n.data,s,{x:c-1,y:0},{x:a-1,y:o},{width:1,height:l}),Jf.copy(n.data,s,{x:0,y:0},{x:a+c,y:o},{width:1,height:l});}this.image=s,this.iconPositions=n,this.patternPositions=r;}addImages(e,t,n){for(let r in e){let i=e[r],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};n.push(a),t[r]=new Q_(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(r);}}patchUpdatedImages(e,t){if(e.dispatchRenderCallbacks(this.haveRenderCallbacks),this.patchedUpdateVersion!==e.updateVersion){this.patchedUpdateVersion=e.updateVersion;for(let n in this.iconPositions)this.patchUpdatedImage(this.iconPositions[n],e.getImage(n),t);for(let n in this.patternPositions)this.patchUpdatedImage(this.patternPositions[n],e.getImage(n),t);}}patchUpdatedImage(e,t,n){if(!e||!t||!e.needsFirstWebGLRender&&e.version===t.version)return;e.needsFirstWebGLRender=false,e.version=t.version;let[r,i]=e.tl,a=t.userImage?.data;if(!Y_(a)){n.update(t.data,void 0,{x:r,y:i});return}let{width:o,height:s}=t.data;n.context.setCustomLayerDefaults(),a.renderWithWebGL({gl:n.context.gl,texture:n.texture,x:r,y:i,width:o,height:s}),n.context.setDirty();}};K(`ImagePosition`,Q_),K(`ImageAtlas`,$_);var ev=/* @__PURE__ */ function(e){return e[e.none=0]=`none`,e[e.horizontal=1]=`horizontal`,e[e.vertical=2]=`vertical`,e[e.horizontalOnly=3]=`horizontalOnly`,e}(ev||{});function tv(e){for(let t of e)if(t.positionedGlyphs.length!==0)return false;return true}function nv(e,t){let n=[],r=0;for(let i of t)n.push(e.substring(r,i)),r=i;return r<e.length()&&n.push(e.substring(r,e.length())),n}const rv=/^\p{gc=M}$/u;function iv(e){let t=[],n=0;for(;n<e.length;){if(!rv.test(e[n])){t.push(n),n++;continue}let r=n;for(;r<e.length&&rv.test(e[r]);)r++;let i=e[r];if(i!==void 0&&d_(i.codePointAt(0))){t.push(r);for(let e=r-1;e>=n;e--)t.push(e);n=r+1;}else {for(let e=n;e<r;e++)t.push(e);n=r;}}return t}function av(e){let t=[],n=0;for(let r of e.graphemes())t.push(...Array(r.length).fill(e.sectionIndex[n])),n++;return t}function ov(e,t){let n=t.map(t=>e.toCodeUnitIndex(t)),r=_g.isParsed()?_g:null;if(e.sections.length===1)return r?r.processBidirectionalText(e.toString(),n).map(t=>lv(t,e.sections,[...t].map(()=>0))):L_(e.toString(),n).map(t=>sv([...t],e.sections,[...t].map(()=>0)));let i=av(e);return r?r.processStyledBidirectionalText(e.text,i,n).map(([t,n])=>lv(t,e.sections,n)):R_(e.text,i,n).map(([t,n])=>{let r=[...t];return sv(r,e.sections,cv(r).map(e=>n[e]??0))})}function sv(e,t,n){let r=new C_(e.join(``),t,[]),i=0;for(let e of r.graphemes())r.sectionIndex.push(n[i]??0),i+=[...e].length;return r}function cv(e){let t=[],n=0;for(let r of e)t.push(n),n+=r.length;return t}function lv(e,t,n){let r=[...e],i=cv(r),a=iv(r);return sv(a.map(e=>r[e]),t,a.map(e=>n[i[e]]??0))}function uv(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){let h=C_.fromFeature(e,i,d===2,t),g=h.determineLineBreaks(l,a,t,r,p),_=f_(h.text)?ov(h,g):nv(h,g),v=[],y={positionedLines:v,text:h.toString(),top:u[1],bottom:u[1],left:u[0],right:u[0],writingMode:d,iconsInText:false,verticalizable:false};return wv(y,t,n,r,_,o,s,c,d,l,f,m),!tv(v)&&y}function dv(e){let t=.5,n=.5;switch(e){case `right`:case `top-right`:case `bottom-right`:t=1;break;case `left`:case `top-left`:case `bottom-left`:t=0;}switch(e){case `bottom`:case `bottom-right`:case `bottom-left`:n=1;break;case `top`:case `top-right`:case `top-left`:n=0;}return {horizontalAlign:t,verticalAlign:n}}function fv(e,t,n){let r=t.getMaxScale()*24,{maxImageWidth:i,maxImageHeight:a}=t.getMaxImageSize(e),o=Math.max(r,a*n);return {verticalLineContentWidth:Math.max(r,i*n),horizontalLineContentHeight:o}}function pv(e){switch(e){case `top`:return 0;case `center`:return .5;default:return 1}}function mv(e,t){return e?.rect?e:t?{rect:null,metrics:t.metrics}:null}function hv(e,t,n){return !(e===1||!t&&!Cg(n)||t&&(i_(n)||u_(n)))}function gv(e){return /\p{Nd}/u.test(String.fromCodePoint(e))}function _v(e){return /\p{Lu}/u.test(String.fromCodePoint(e))}function vv(e){let t=e.some(gv)&&e.every(e=>gv(e)||a_(e)),n=e.length<=3&&e.every(e=>_v(e)||gv(e));return t||n}function yv(e){return (gv(e)||_v(e))&&!u_(e)}function bv(e,t){return t?hv(2,true,e):!l_(e)||yv(e)||a_(e)}function xv(e,t,n){let r=false;for(let i=0;i<e.length;i++){if(t[i])continue;let a=p_[e[i]];if(a&&(i===0||t[i-1])&&(i===e.length-1||t[i+1])){if(t[i]=true,n[i])continue;e[i]=a,r=true;}}return r}function Sv(e,t,n){for(;t>=0&&t<e.length&&i_(e[t]);)t+=n;let r=[];for(;t>=0&&t<e.length&&!Cg(e[t])&&!i_(e[t]);)r.push(e[t]),t+=n;return !vv(r)&&!r.every(a_)&&r.some(l_)}function Cv(e,t){let n=e.graphemes().slice(),r=n.map(e=>e.codePointAt(0)),i=n.map((n,r)=>{let i=e.getSection(r);return `fontStack`in i&&!!t[i.fontStack]?.vertical?.[n]}),a=r.map(Cg),o=t=>!a[t]&&!i_(r[t])&&!(`imageName`in e.getSection(t));for(let e=0;e<r.length;e++){if(!o(e))continue;let t=e;for(;t+1<r.length&&o(t+1);)t++;let n=r.slice(e,t+1),s=vv(n),c=n.every(a_),l=c&&(Sv(r,e-1,-1)||Sv(r,t+1,1)),u=!s&&n.some(l_);for(let n=e;n<=t;n++)a[n]=s&&yv(r[n])||i[n]&&!l&&(c||!u&&!l_(r[n]));e=t;}if(i.some((e,t)=>e&&!a[t])){let n=e.text;if(e.verticalizePunctuation(t,a),e.text!==n)return Cv(e,t)}return xv(n,a,i)&&(e.text=n.join(``),e.cachedGraphemes=n),a}function wv(e,t,n,r,i,a,o,s,c,l,u,d){let f=0,p=0,m=0,h=0,g=s===`right`?1:s===`left`?0:.5,_=24/d,v=0;for(let o of i){o.trim();let i=o.getMaxScale(),s={positionedGlyphs:[],lineOffset:0};e.positionedLines[v]=s;let d=s.positionedGlyphs,y=0;if(!o.length()){p+=a,++v;continue}let b=fv(r,o,_),x=c===2&&!u?Cv(o,t):null,S=o.graphemes();for(let a=0;a<S.length;a++){let s=o.getSection(a),m=S[a],h=m.codePointAt(0),g=x?x[a]:hv(c,u,h),v=`fontStack`in s&&r_(m)&&!t[s.fontStack]?.default?.[m]?[...m]:[m];for(let c of v){let u={glyph:c.codePointAt(0),grapheme:c,imageName:null,x:f,y:p+-17,vertical:g,scale:1,fontStack:``,sectionIndex:o.getSectionIndex(a),metrics:null,rect:null},m;if(`fontStack`in s){if(m=Tv(s,c,g,b,t,n),!m)continue;u.fontStack=s.fontStack;}else {if(e.iconsInText=true,s.scale*=_,m=Ev(s,g,i,b,r),!m)continue;y=Math.max(y,m.imageOffset),u.imageName=s.imageName;}let{rect:h,metrics:v,baselineOffset:x}=m;if(u.y+=x,u.scale=s.scale,u.metrics=v,u.rect=h,d.push(u),!g)f+=v.advance*s.scale+l;else {e.verticalizable=true;let t=`imageName`in s?v.advance:24;f+=t*s.scale+l;}}}if(d.length!==0){let e=f-l;m=Math.max(e,m),Dv(d,0,d.length-1,g);}f=0;let C=(i-1)*24;s.lineOffset=Math.max(y,C);let w=a*i+y;p+=w,h=Math.max(w,h),++v;}let{horizontalAlign:y,verticalAlign:b}=dv(o);Ov(e.positionedLines,g,y,b,m,h,a,p,i.length),e.top+=-b*p,e.bottom=e.top+p,e.left+=-y*m,e.right=e.left+m;}function Tv(e,t,n,r,i,a){let o=n&&i[e.fontStack]?.vertical?.[t]?`vertical`:`default`,s=a[e.fontStack]?.[o]?.[t],c=i[e.fontStack]?.[o]?.[t],l=mv(s,c);if(l===null)return null;let u;if(n)u=r.verticalLineContentWidth-e.scale*24;else {let t=pv(e.verticalAlign);u=(r.horizontalLineContentHeight-e.scale*24)*t;}return {rect:l.rect,metrics:l.metrics,baselineOffset:u}}function Ev(e,t,n,r,i){let a=i[e.imageName];if(!a)return null;let o=a.paddedRect,s=a.displaySize,c={width:s[0],height:s[1],left:1,top:-3,advance:t?s[1]:s[0]},l;if(t)l=r.verticalLineContentWidth-s[1]*e.scale;else {let t=pv(e.verticalAlign);l=(r.horizontalLineContentHeight-s[1]*e.scale)*t;}let u=(t?s[0]:s[1])*e.scale-24*n;return {rect:o,metrics:c,baselineOffset:l,imageOffset:u}}function Dv(e,t,n,r){if(r===0)return;let i=e[n],a=i.metrics.advance*i.scale,o=(e[n].x+a)*r;for(let r=t;r<=n;r++)e[r].x-=o;}function Ov(e,t,n,r,i,a,o,s,c){let l=(t-n)*i,u=0;u=a===o?-r*c*o+.5*o:-s*r- -17;for(let t of e)for(let e of t.positionedGlyphs)e.x+=l,e.y+=u;}function kv(e,t,n){let{horizontalAlign:r,verticalAlign:i}=dv(n),a=t[0],o=t[1],s=a-e.displaySize[0]*r,c=s+e.displaySize[0],l=o-e.displaySize[1]*i;return {image:e,top:l,bottom:l+e.displaySize[1],left:s,right:c}}function Av(e){let t=e.left,n=e.top,r=e.right-t,i=e.bottom-n,a=e.image.content[2]-e.image.content[0],o=e.image.content[3]-e.image.content[1],s=e.image.textFitWidth??`stretchOrShrink`,c=e.image.textFitHeight??`stretchOrShrink`,l=a/o;if(c===`proportional`){if(s===`stretchOnly`&&r/i<l||s===`proportional`){let e=Math.ceil(i*l);t*=e/r,r=e;}}else if(s===`proportional`&&c===`stretchOnly`&&l!==0&&r/i>l){let e=Math.ceil(r/l);n*=e/i,i=e;}return {x1:t,y1:n,x2:t+r,y2:n+i}}function jv(e,t,n,r,i,a){let o=e.image,s;if(o.content){let e=o.content,t=o.pixelRatio||1;s=[e[0]/t,e[1]/t,o.displaySize[0]-e[2]/t,o.displaySize[1]-e[3]/t];}let c=t.left*a,l=t.right*a,u,d,f,p;n===`width`||n===`both`?(p=i[0]+c-r[3],d=i[0]+l+r[1]):(p=i[0]+(c+l-o.displaySize[0])/2,d=p+o.displaySize[0]);let m=t.top*a,h=t.bottom*a;return n===`height`||n===`both`?(u=i[1]+m-r[0],f=i[1]+h+r[2]):(u=i[1]+(m+h-o.displaySize[1])/2,f=u+o.displaySize[1]),{image:o,top:u,right:d,bottom:f,left:p,collisionPadding:s}}const Mv=32640;function Nv(e,t){let{expression:n}=t;if(n.kind===`constant`)return {kind:`constant`,layoutSize:n.evaluate(new Ll(e+1))};if(n.kind===`source`)return {kind:`source`};if(n.kind===`composite`){let{minZoom:t,maxZoom:r}=Pv(n.zoomStops,e);return {kind:`composite`,minZoom:t,maxZoom:r,interpolationType:n.interpolationType}}{let t=Fv(n),r=n.evaluate(new Ll(e+1));return {kind:`camera`,zoomStops:n.zoomStops,sizes:t,layoutSize:r,interpolationType:n.interpolationType}}}function Pv(e,t){let n=0;for(;n<e.length&&e[n]<=t;)n++;n=Math.max(0,n-1);let r=n;for(;r<e.length&&e[r]<t+1;)r++;return r=Math.min(e.length-1,r),{minZoom:e[n],maxZoom:e[r]}}function Fv(e){return e.zoomStops.map(t=>e.evaluate(new Ll(t===-1/0?e.zoomStops[1]-1:t)))}var Bv=class e extends u{constructor(e,t,n,r){super(e,t),this.angle=n,r!==void 0&&(this.segment=r);}clone(){return new e(this.x,this.y,this.angle,this.segment)}};K(`Anchor`,Bv);function Vv(e,t,n,r,i){if(t.segment===void 0||n===0)return true;let a=t,o=t.segment+1,s=0;for(;s>-n/2;){if(o--,o<0)return false;s-=e[o].dist(a),a=e[o];}s+=e[o].dist(e[o+1]),o++;let c=[],l=0;for(;s<n/2;){let t=e[o-1],n=e[o],a=e[o+1];if(!a)return false;let u=t.angleTo(n)-n.angleTo(a);for(u=Math.abs((u+3*Math.PI)%(Math.PI*2)-Math.PI),c.push({distance:s,angleDelta:u}),l+=u;s-c[0].distance>r;)l-=c.shift().angleDelta;if(l>i)return false;o++,s+=n.dist(a);}return true}function Hv(e){let t=0;for(let n=0;n<e.length-1;n++)t+=e[n].dist(e[n+1]);return t}function Uv(e,t,n){return e?3/5*t*n:0}function Wv(e,t){return Math.max(e?e.right-e.left:0,t?t.right-t.left:0)}function Gv(e,t,n,r,i,a){let o=Uv(n,i,a),s=Wv(n,r)*a,c=0,l=Hv(e)/2;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1],a=r.dist(i);if(c+a>l){let u=(l-c)/a,d=new Bv(Ai.number(r.x,i.x,u),Ai.number(r.y,i.y,u),i.angleTo(r),n);return d._round(),!o||Vv(e,d,s,o,t)?d:void 0}c+=a;}}function Kv(e,t,n,r,i,a,o,s,c){let l=Uv(r,a,o),u=Wv(r,i),d=u*o,f=e[0].x===0||e[0].x===c||e[0].y===0||e[0].y===c;t-d<t/4&&(t=d+t/4);let p=a*2;return qv(e,f?t/2*s%t:(u/2+p)*o*s%t,t,l,n,d,f,false,c)}function qv(e,t,n,r,i,a,o,s,c){let l=a/2,u=Hv(e),d=0,f=t-n,p=[];for(let t=0;t<e.length-1;t++){let o=e[t],s=e[t+1],m=o.dist(s),h=s.angleTo(o);for(;f+n<d+m;){f+=n;let g=(f-d)/m,_=Ai.number(o.x,s.x,g),v=Ai.number(o.y,s.y,g);if(_>=0&&_<c&&v>=0&&v<c&&f-l>=0&&f+l<=u){let n=new Bv(_,v,h,t);n._round(),(!r||Vv(e,n,a,r,i))&&p.push(n);}}d+=m;}return !s&&!p.length&&!o&&(p=qv(e,d/2,n,r,i,a,o,true,c)),p}function Jv(e,t,n,r,i){let a=[];for(let o of e){let e;for(let s=0;s<o.length-1;s++){let c=o[s],l=o[s+1];c.x<t&&l.x<t||(c.x<t?c=new u(t,c.y+(l.y-c.y)*((t-c.x)/(l.x-c.x)))._round():l.x<t&&(l=new u(t,c.y+(l.y-c.y)*((t-c.x)/(l.x-c.x)))._round()),!(c.y<n&&l.y<n)&&(c.y<n?c=new u(c.x+(l.x-c.x)*((n-c.y)/(l.y-c.y)),n)._round():l.y<n&&(l=new u(c.x+(l.x-c.x)*((n-c.y)/(l.y-c.y)),n)._round()),!(c.x>=r&&l.x>=r)&&(c.x>=r?c=new u(r,c.y+(l.y-c.y)*((r-c.x)/(l.x-c.x)))._round():l.x>=r&&(l=new u(r,c.y+(l.y-c.y)*((r-c.x)/(l.x-c.x)))._round()),!(c.y>=i&&l.y>=i)&&(c.y>=i?c=new u(c.x+(l.x-c.x)*((i-c.y)/(l.y-c.y)),i)._round():l.y>=i&&(l=new u(c.x+(l.x-c.x)*((i-c.y)/(l.y-c.y)),i)._round()),(!e||!c.equals(e[e.length-1]))&&(e=[c],a.push(e)),e.push(l)))));}}return a}function Yv(e,t,n,r){let i=[],a=e.image,o=a.pixelRatio,s=a.paddedRect.w-2,c=a.paddedRect.h-2,l={x1:e.left,y1:e.top,x2:e.right,y2:e.bottom},d=a.stretchX||[[0,s]],f=a.stretchY||[[0,c]],p=(e,t)=>e+t[1]-t[0],m=d.reduce(p,0),h=f.reduce(p,0),g=s-m,_=c-h,v=0,y=m,b=0,x=h,S=0,C=g,w=0,T=_;if(a.content&&r){let t=a.content,n=t[2]-t[0],r=t[3]-t[1];(a.textFitWidth||a.textFitHeight)&&(l=Av(e)),v=Xv(d,0,t[0]),b=Xv(f,0,t[1]),y=Xv(d,t[0],t[2]),x=Xv(f,t[1],t[3]),S=t[0]-v,w=t[1]-b,C=n-y,T=r-x;}let E=l.x1,D=l.y1,O=l.x2-E,k=l.y2-D,A=(e,r,i,s)=>{let c=Qv(e.stretch-v,y,O,E),l=$v(e.fixed-S,C,e.stretch,m),d=Qv(r.stretch-b,x,k,D),f=$v(r.fixed-w,T,r.stretch,h),p=Qv(i.stretch-v,y,O,E),g=$v(i.fixed-S,C,i.stretch,m),_=Qv(s.stretch-b,x,k,D),A=$v(s.fixed-w,T,s.stretch,h),j=new u(c,d),ee=new u(p,d),te=new u(p,_),ne=new u(c,_),re=new u(l/o,f/o),ie=new u(g/o,A/o),ae=t*Math.PI/180;if(ae){let e=Math.sin(ae),t=Math.cos(ae),n=[t,-e,e,t];j._matMult(n),ee._matMult(n),ne._matMult(n),te._matMult(n);}let oe=e.stretch+e.fixed,se=i.stretch+i.fixed,ce=r.stretch+r.fixed,le=s.stretch+s.fixed;return {tl:j,tr:ee,bl:ne,br:te,tex:{x:a.paddedRect.x+1+oe,y:a.paddedRect.y+1+ce,w:se-oe,h:le-ce},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:re,pixelOffsetBR:ie,minFontScaleX:C/o/O,minFontScaleY:T/o/k,isSDF:n}};if(!r||!a.stretchX&&!a.stretchY)i.push(A({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:s+1},{fixed:0,stretch:c+1}));else {let e=Zv(d,g,m),t=Zv(f,_,h);for(let n=0;n<e.length-1;n++){let r=e[n],a=e[n+1];for(let e=0;e<t.length-1;e++){let n=t[e],o=t[e+1];i.push(A(r,n,a,o));}}}return i}function Xv(e,t,n){let r=0;for(let i of e)r+=Math.max(t,Math.min(n,i[1]))-Math.max(t,Math.min(n,i[0]));return r}function Zv(e,t,n){let r=[{fixed:-1,stretch:0}];for(let[t,n]of e){let e=r[r.length-1];r.push({fixed:t-e.stretch,stretch:e.stretch}),r.push({fixed:t-e.stretch,stretch:e.stretch+(n-t)});}return r.push({fixed:t+1,stretch:n}),r}function Qv(e,t,n,r){return e/t*n+r}function $v(e,t,n,r){return e-t*n/r}function ey(e,t,n,r,i,a,o,s){let c=r.layout.get(`text-rotate`).evaluate(a,{})*Math.PI/180,l=[];for(let e of t.positionedLines)for(let r of e.positionedGlyphs){if(!r.rect)continue;let a=r.rect||{},d=4,f=true,p=1,m=0,h=(i||s)&&r.vertical,g=r.metrics.advance*r.scale/2;if(s&&t.verticalizable){let t=(r.scale-1)*24,n=(24-r.metrics.width*r.scale)/2;m=e.lineOffset/2-(r.imageName?-n:t);}if(r.imageName){let e=o[r.imageName];f=e.sdf,p=e.pixelRatio,d=1/p;}let _=i?[r.x+g,r.y]:[0,0],v=i?[0,0]:[r.x+g+n[0],r.y+n[1]-m],y=[0,0];h&&(y=v,v=[0,0]);let b=r.metrics.isDoubleResolution?2:1,x=(r.metrics.left-d)*r.scale-g+v[0],S=(-r.metrics.top-d)*r.scale+v[1],C=x+a.w/b*r.scale/p,w=S+a.h/b*r.scale/p,T=new u(x,S),E=new u(C,S),D=new u(x,w),O=new u(C,w);if(h){let e=new u(-g,g- -17),t=-Math.PI/2,n=12-g,i=r.imageName?n:0,a=new u(22-n,-i),o=new u(...y);T._rotateAround(t,e)._add(a)._add(o),E._rotateAround(t,e)._add(a)._add(o),D._rotateAround(t,e)._add(a)._add(o),O._rotateAround(t,e)._add(a)._add(o);}if(c){let e=Math.sin(c),t=Math.cos(c),n=[t,-e,e,t];T._matMult(n),E._matMult(n),D._matMult(n),O._matMult(n);}let k=new u(0,0),A=new u(0,0);l.push({tl:T,tr:E,bl:D,br:O,tex:a,writingMode:t.writingMode,glyphOffset:_,sectionIndex:r.sectionIndex,isSDF:f,pixelOffsetTL:k,pixelOffsetBR:A,minFontScaleX:0,minFontScaleY:0});}return l}var ty=class{constructor(e,t,n,r,i,a,o,s,c,l){if(this.boxStartIndex=e.length,c){let e=a.top,t=a.bottom,n=a.collisionPadding;n&&(e-=n[1],t+=n[3]);let r=t-e;r>0&&(r=Math.max(10,r),this.circleDiameter=r);}else {let c=a.image?.content&&(a.image.textFitWidth||a.image.textFitHeight)?Av(a):{x1:a.left,y1:a.top,x2:a.right,y2:a.bottom};c.y1=c.y1*o-s[0],c.y2=c.y2*o+s[2],c.x1=c.x1*o-s[3],c.x2=c.x2*o+s[1];let d=a.collisionPadding;if(d&&(c.x1-=d[0]*o,c.y1-=d[1]*o,c.x2+=d[2]*o,c.y2+=d[3]*o),l){let e=new u(c.x1,c.y1),t=new u(c.x2,c.y1),n=new u(c.x1,c.y2),r=new u(c.x2,c.y2),i=l*Math.PI/180;e._rotate(i),t._rotate(i),n._rotate(i),r._rotate(i),c.x1=Math.min(e.x,t.x,n.x,r.x),c.x2=Math.max(e.x,t.x,n.x,r.x),c.y1=Math.min(e.y,t.y,n.y,r.y),c.y2=Math.max(e.y,t.y,n.y,r.y);}e.emplaceBack(t.x,t.y,c.x1,c.y1,c.x2,c.y2,n,r,i);}this.boxEndIndex=e.length;}},ny=class{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e);}push(e){this.data.push(e),this._up(this.length++);}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return --this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i;}t[e]=r;}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r;}t[e]=i;}};function ry(e,t=1){let n=$d.fromPoints(e[0]),r=Math.min(n.width(),n.height()),i=r/2,a=new ny([],iy),{minX:o,minY:s,maxX:c,maxY:l}=n;if(r===0)return new u(o,s);for(let t=o;t<c;t+=r)for(let n=s;n<l;n+=r)a.push(new ay(t+i,n+i,i,e));let d=sy(e),f=d;for(;a.length;){let n=a.pop();(n.d>f.d||!f.d)&&(f=n),!(n.max-f.d<=t)&&(i=n.h/2,a.push(new ay(n.p.x-i,n.p.y-i,i,e)),a.push(new ay(n.p.x+i,n.p.y-i,i,e)),a.push(new ay(n.p.x-i,n.p.y+i,i,e)),a.push(new ay(n.p.x+i,n.p.y+i,i,e)));}return d.d>0&&f.d-d.d<=t?d.p:f.p}function iy(e,t){return t.max-e.max}var ay=class{constructor(e,t,n,r){this.p=new u(e,t),this.h=n,this.d=oy(this.p,r),this.max=this.d+this.h*Math.SQRT2;}};function oy(e,t){let n=false,r=1/0;for(let i of t)for(let t=0,a=i.length,o=a-1;t<a;o=t++){let a=i[t],s=i[o];a.y>e.y!=s.y>e.y&&e.x<(s.x-a.x)*(e.y-a.y)/(s.y-a.y)+a.x&&(n=!n),r=Math.min(r,gf(e,a,s));}return (n?1:-1)*Math.sqrt(r)}function sy(e){let t=0,n=0,r=0,i=e[0];for(let e=0,a=i.length,o=a-1;e<a;o=e++){let a=i[e],s=i[o],c=a.x*s.y-s.x*a.y;n+=(a.x+s.x)*c,r+=(a.y+s.y)*c,t+=c*3;}return new ay(n/t,r/t,0,e)}let cy=/* @__PURE__ */ function(e){return e[e.center=1]=`center`,e[e.left=2]=`left`,e[e.right=3]=`right`,e[e.top=4]=`top`,e[e.bottom=5]=`bottom`,e[e[`top-left`]=6]=`top-left`,e[e[`top-right`]=7]=`top-right`,e[e[`bottom-left`]=8]=`bottom-left`,e[e[`bottom-right`]=9]=`bottom-right`,e}({});const ly=1/0;function uy(e,t){function n(e,t){let n=0,r=0;t<0&&(t=0);let i=t/Math.SQRT2;switch(e){case `top-right`:case `top-left`:r=i-7;break;case `bottom-right`:case `bottom-left`:r=-i+7;break;case `bottom`:r=-t+7;break;case `top`:r=t-7;}switch(e){case `top-right`:case `bottom-right`:n=-i;break;case `top-left`:case `bottom-left`:n=i;break;case `left`:n=t;break;case `right`:n=-t;}return [n,r]}function r(e,t,n){let r=0,i=0;switch(t=Math.abs(t),n=Math.abs(n),e){case `top-right`:case `top-left`:case `top`:i=n-7;break;case `bottom-right`:case `bottom-left`:case `bottom`:i=-n+7;}switch(e){case `top-right`:case `bottom-right`:case `right`:r=-t;break;case `top-left`:case `bottom-left`:case `left`:r=t;}return [r,i]}return t[1]===ly?n(e,t[0]):r(e,t[0],t[1])}function dy(e,t,n){let r=e.layout,i=r.get(`text-variable-anchor-offset`)?.evaluate(t,{},n);if(i){let e=i.values,t=[];for(let n=0;n<e.length;n+=2){let r=t[n]=e[n],i=e[n+1].map(e=>e*24);r.startsWith(`top`)?i[1]-=7:r.startsWith(`bottom`)&&(i[1]+=7),t[n+1]=i;}return new mi(t)}let a=r.get(`text-variable-anchor`);if(a){let i;i=e._unevaluatedLayout.getValue(`text-radial-offset`)===void 0?r.get(`text-offset`).evaluate(t,{},n).map(e=>e*24):[r.get(`text-radial-offset`).evaluate(t,{},n)*24,ly];let o=[];for(let e of a)o.push(e,uy(e,i));return new mi(o)}return null}function fy(e){e.bucket.createArrays();let t=512*e.bucket.overscaling;e.bucket.tilePixelRatio=P/t,e.bucket.compareText={},e.bucket.iconsNeedLinear=false;let n=e.bucket.layers[0],r=n.layout,i=n._unevaluatedLayout._values,a={layoutIconSize:i[`icon-size`].possiblyEvaluate(new Ll(e.bucket.zoom+1),e.canonical),layoutTextSize:i[`text-size`].possiblyEvaluate(new Ll(e.bucket.zoom+1),e.canonical),textMaxSize:i[`text-size`].possiblyEvaluate(new Ll(18))};if(e.bucket.textSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.bucket.textSizeData;a.compositeTextSizes=[i[`text-size`].possiblyEvaluate(new Ll(t),e.canonical),i[`text-size`].possiblyEvaluate(new Ll(n),e.canonical)];}if(e.bucket.iconSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.bucket.iconSizeData;a.compositeIconSizes=[i[`icon-size`].possiblyEvaluate(new Ll(t),e.canonical),i[`icon-size`].possiblyEvaluate(new Ll(n),e.canonical)];}let o=r.get(`text-line-height`)*24,s=r.get(`text-rotation-alignment`)!==`viewport`&&r.get(`symbol-placement`)!==`point`,c=r.get(`text-keep-upright`),l=r.get(`text-size`);for(let t of e.bucket.features){let i=r.get(`text-font`).evaluate(t,{},e.canonical).join(`,`),u=l.evaluate(t,{},e.canonical),d=a.layoutTextSize.evaluate(t,{},e.canonical),f=a.layoutIconSize.evaluate(t,{},e.canonical),p={horizontal:{},vertical:void 0},m=t.text,h=[0,0];if(m){let a=m.toString(),l=r.get(`text-letter-spacing`).evaluate(t,{},e.canonical)*24,f=s_(a)?l:0,g=r.get(`text-anchor`).evaluate(t,{},e.canonical),_=dy(n,t,e.canonical);if(!_){let n=r.get(`text-radial-offset`).evaluate(t,{},e.canonical);h=n?uy(g,[n*24,ly]):r.get(`text-offset`).evaluate(t,{},e.canonical).map(e=>e*24);}let v=s?`center`:r.get(`text-justify`).evaluate(t,{},e.canonical),y=r.get(`symbol-placement`)===`point`?r.get(`text-max-width`).evaluate(t,{},e.canonical)*24:1/0,b=()=>{e.bucket.allowVerticalPlacement&&o_(a)&&(p.vertical=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,`left`,f,h,2,true,d,u));};if(!s&&_){let t=/* @__PURE__ */ new Set;if(v===`auto`)for(let e=0;e<_.values.length;e+=2)t.add(py(_.values[e]));else t.add(v);let n=false;for(let r of t)if(!p.horizontal[r]){if(n)p.horizontal[r]=p.horizontal[0];else {let t=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,`center`,r,f,h,1,false,d,u);t&&(p.horizontal[r]=t,n=t.positionedLines.length===1);}}b();}else {v===`auto`&&(v=py(g));let t=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,v,f,h,1,false,d,u);t&&(p.horizontal[v]=t),b(),o_(a)&&s&&c&&(p.vertical=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,v,f,h,2,false,d,u));}}let g,_=false;if(t.icon?.name){let n=e.imageMap[t.icon.name];n&&(g=kv(e.imagePositions[t.icon.name],r.get(`icon-offset`).evaluate(t,{},e.canonical),r.get(`icon-anchor`).evaluate(t,{},e.canonical)),_=!!n.sdf,e.bucket.sdfIcons===void 0?e.bucket.sdfIcons=_:e.bucket.sdfIcons!==_&&L$1(`Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer`),n.pixelRatio===e.bucket.pixelRatio?r.get(`icon-rotate`).constantOr(1)!==0&&(e.bucket.iconsNeedLinear=true):e.bucket.iconsNeedLinear=true);}let v=_y(p.horizontal)||p.vertical;e.bucket.iconsInText||=v?v.iconsInText:false,(v||g)&&my(e.bucket,t,p,g,e.imageMap,a,d,f,h,_,e.canonical,e.subdivisionGranularity,e.hasPromoteId);}e.showCollisionBoxes&&e.bucket.generateCollisionDebugBuffers();}function py(e){switch(e){case `right`:case `top-right`:case `bottom-right`:return `right`;case `left`:case `top-left`:case `bottom-left`:return `left`}return `center`}function my(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=a.textMaxSize.evaluate(t,{});p===void 0&&(p=o);let m=e.layers[0].layout,h=m.get(`icon-offset`).evaluate(t,{},u),g=_y(n.horizontal),_=o/24,v=e.tilePixelRatio*_,y=e.tilePixelRatio*p/24,b=e.tilePixelRatio*s,x=e.tilePixelRatio*m.get(`symbol-spacing`),S=m.get(`text-padding`)*e.tilePixelRatio,C=zy(m,t,u,e.tilePixelRatio),w=m.get(`text-max-angle`)/180*Math.PI,T=m.get(`text-rotation-alignment`)!==`viewport`&&m.get(`symbol-placement`)!==`point`,E=m.get(`icon-rotation-alignment`).constantOr(`viewport`)===`map`&&m.get(`symbol-placement`)!==`point`,D=m.get(`symbol-placement`),O=x/2,k=m.get(`icon-text-fit`),A;r&&k!==`none`&&(e.allowVerticalPlacement&&n.vertical&&(A=jv(r,n.vertical,k,m.get(`icon-text-fit-padding`),h,_)),g&&(r=jv(r,g,k,m.get(`icon-text-fit-padding`),h,_)));let j=u?d.line.getGranularityForZoomLevel(u.z):1,ee=(s,d)=>{rf(d)||vy(e,d,s,n,r,i,A,e.layers[0],e.collisionBoxArray,t.index,t.sourceLayerIndex,e.index,v,[S,S,S,S],T,c,b,C,E,h,t,a,l,u,o,f);};if(D===`line`)for(let i of Jv(t.geometry,0,0,P,P)){let t=ym(i,j),a=Kv(t,x,w,n.vertical||g,r,24,y,e.overscaling,P);for(let n of a){let r=g;(!r||!yy(e,r.text,O,n))&&ee(t,n);}}else if(D===`line-center`){for(let e of t.geometry)if(e.length>1){let t=ym(e,j),i=Gv(t,w,n.vertical||g,r,24,y);i&&ee(t,i);}}else if(t.type===`Polygon`)for(let e of Fi(t.geometry,0)){let t=ry(e,16);ee(ym(e[0],j,true),new Bv(t.x,t.y,0));}else if(t.type===`LineString`)for(let e of t.geometry){let t=ym(e,j);ee(t,new Bv(t[0].x,t[0].y,0));}else if(t.type===`Point`)for(let e of t.geometry)for(let t of e)ee([t],new Bv(t.x,t.y,0));}function hy(e,t){let n=e.length,r=t?.values;if(r?.length>0)for(let t=0;t<r.length;t+=2){let n=cy[r[t]],i=r[t+1];e.emplaceBack(n,i[0],i[1]);}return [n,e.length]}function gy(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){let g=ey(t,n,s,i,a,o,r,e.allowVerticalPlacement),_=e.textSizeData,v=null;_.kind===`source`?(v=[128*i.layout.get(`text-size`).evaluate(o,{})],v[0]>32640&&L$1(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):_.kind===`composite`&&(v=[128*m.compositeTextSizes[0].evaluate(o,{},h),128*m.compositeTextSizes[1].evaluate(o,{},h)],(v[0]>32640||v[1]>32640)&&L$1(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),e.addSymbols(e.text,g,v,s,a,o,u,t,l.lineStartIndex,l.lineLength,p,h,c);for(let t of d)f[t]=e.text.placedSymbolArray.length-1;return g.length*4}function _y(e){for(let t in e)return e[t];return null}function vy(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T){let E=e.addToLineVertexArray(t,n),D=s.layout.get(`symbol-height-offset`).evaluate(b,{},C);D>e.maxHeightOffset&&(e.maxHeightOffset=D);let O,k,A,j,ee=0,te=0,ne=0,re=0,ie=-1,ae=-1,oe={},se=(0, Sd.default)(``);if(e.allowVerticalPlacement&&r.vertical){let e=s.layout.get(`text-rotate`).evaluate(b,{},C)+90,n=r.vertical;A=new ty(c,t,l,u,d,n,f,p,m,e),o&&(j=new ty(c,t,l,u,d,o,g,_,m,e));}if(i){let n=s.layout.get(`icon-rotate`).evaluate(b,{}),r=s.layout.get(`icon-text-fit`)!==`none`,a=Yv(i,n,S,r),f=o?Yv(o,n,S,r):void 0;k=new ty(c,t,l,u,d,i,g,_,false,n),ee=a.length*4;let p=e.iconSizeData,m=null;p.kind===`source`?(m=[128*s.layout.get(`icon-size`).evaluate(b,{})],m[0]>32640&&L$1(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):p.kind===`composite`&&(m=[128*x.compositeIconSizes[0].evaluate(b,{},C),128*x.compositeIconSizes[1].evaluate(b,{},C)],(m[0]>32640||m[1]>32640)&&L$1(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),e.addSymbols(e.icon,a,m,y,v,b,0,t,E.lineStartIndex,E.lineLength,-1,C,D),ie=e.icon.placedSymbolArray.length-1,f&&(te=f.length*4,e.addSymbols(e.icon,f,m,y,v,b,2,t,E.lineStartIndex,E.lineLength,-1,C,D),ae=e.icon.placedSymbolArray.length-1);}let ce=Object.keys(r.horizontal);for(let n of ce){let i=r.horizontal[n];O||=(se=(0, Sd.default)(i.text),new ty(c,t,l,u,d,i,f,p,m,s.layout.get(`text-rotate`).evaluate(b,{},C)));let o=i.positionedLines.length===1;if(ne+=gy(e,t,i,a,s,m,b,h,D,E,r.vertical?1:3,o?ce:[n],oe,ie,x,C),o)break}r.vertical&&(re+=gy(e,t,r.vertical,a,s,m,b,h,D,E,2,[`vertical`],oe,ae,x,C));let le=O?O.boxStartIndex:e.collisionBoxArray.length,ue=O?O.boxEndIndex:e.collisionBoxArray.length,de=A?A.boxStartIndex:e.collisionBoxArray.length,fe=A?A.boxEndIndex:e.collisionBoxArray.length,pe=k?k.boxStartIndex:e.collisionBoxArray.length,me=k?k.boxEndIndex:e.collisionBoxArray.length,he=j?j.boxStartIndex:e.collisionBoxArray.length,ge=j?j.boxEndIndex:e.collisionBoxArray.length,M=-1,_e=(e,t)=>e?.circleDiameter?Math.max(e.circleDiameter,t):t;M=_e(O,M),M=_e(A,M),M=_e(k,M),M=_e(j,M);let ve=+(M>-1);ve&&(M*=w/24),e.glyphOffsetArray.length>=e.maxGlyphs&&L$1(`Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907`),b.sortKey!==void 0&&e.addToSortKeyRanges(e.symbolInstances.length,b.sortKey);let ye=dy(s,b,C),[be,xe]=hy(e.textAnchorOffsets,ye);T&&(se=by(se,b)),e.symbolInstances.emplaceBack(t.x,t.y,oe.right>=0?oe.right:-1,oe.center>=0?oe.center:-1,oe.left>=0?oe.left:-1,oe.vertical||-1,ie,ae,se,le,ue,de,fe,pe,me,he,ge,l,ne,re,ee,te,ve,0,f,M,be,xe,D);}function yy(e,t,n,r){let i=e.compareText;if(!(t in i))i[t]=[];else {let e=i[t];for(let t=e.length-1;t>=0;t--)if(r.dist(e[t])<n)return true}return i[t].push(r),false}function by(e,t){return t.id==null||t.properties?.cluster?e:(0, Sd.default)(String(t.id),e)}function xy(e,t,n){let r=`never`,i=e.get(t);return i?r=i:e.get(n)&&(r=`always`),r}const Sy=[{name:`a_fade_opacity`,components:1,type:`Uint8`,offset:0}];function Cy(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=s?Math.min(Mv,Math.round(s[0])):0,h=s?Math.min(Mv,Math.round(s[1])):0;e.emplaceBack(t,n,Math.round(r*32),Math.round(i*32),a,o,(m<<1)+ +!!c,h,l*16,u*16,d*256,f*256,p);}function wy(e,t,n){e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n);}function Ty(e){for(let t of e.sections)if(f_(t.text))return true;return false}var Ey=class{constructor(e){this.layoutVertexArray=new id,this.indexArray=new dd,this.programConfigurations=e,this.segments=new gd,this.dynamicLayoutVertexArray=new ad,this.opacityVertexArray=new od,this.hasVisibleVertices=false,this.placedSymbolArray=new zu;}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,t,n,r){this.isEmpty()||(n&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,dg.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,t),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,fg.members,true),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,Sy,true),this.opacityVertexBuffer.itemSize=1),(n||r)&&this.programConfigurations.upload(e));}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy());}};K(`SymbolBuffers`,Ey);var Dy=class{constructor(e,t,n){this.layoutVertexArray=new e,this.layoutAttributes=t,this.indexArray=new n,this.segments=new gd,this.collisionVertexArray=new ld;}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,pg.members,true);}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy());}};K(`CollisionBuffers`,Dy);var Oy=class{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasDependencies=true,this.hasRTLText=false,this.maxHeightOffset=0,this.sortKeyRanges=[],this.collisionCircleArray=[],this.maxGlyphs=65535;let t=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Nv(this.zoom,t[`text-size`]),this.iconSizeData=Nv(this.zoom,t[`icon-size`]);let n=this.layers[0].layout,r=n.get(`symbol-sort-key`),i=n.get(`symbol-z-order`);this.canOverlap=xy(n,`text-overlap`,`text-allow-overlap`)!==`never`||xy(n,`icon-overlap`,`icon-allow-overlap`)!==`never`||n.get(`text-ignore-placement`)||n.get(`icon-ignore-placement`),this.sortFeaturesByKey=i!==`viewport-y`&&!r.isConstant();let a=i===`viewport-y`||i===`auto`&&!this.sortFeaturesByKey;this.sortFeaturesByY=a&&this.canOverlap,n.get(`symbol-placement`)===`point`&&(this.writingModes=n.get(`text-writing-mode`).map(e=>ev[e])),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id),this.sourceID=e.sourceID;}createArrays(){this.text=new Ey(new Gd(this.layers,this.zoom,e=>e.startsWith(`text`))),this.icon=new Ey(new Gd(this.layers,this.zoom,e=>e.startsWith(`icon`))),this.glyphOffsetArray=new Hu,this.lineVertexArray=new Uu,this.symbolInstances=new Vu,this.textAnchorOffsets=new Gu;}calculateGlyphDependencies(e,t,n,r){let i=C_.fromFeature(e,n,false),a=i.graphemes();for(let e=0;e<a.length;e++){let n=i.getSection(e);if(`imageName`in n)continue;t[n.fontStack]||={default:{},vertical:{}};let o=t[n.fontStack],s=a[e],c=r&&bv(s.codePointAt(0),this.allowVerticalPlacement);r_(s)&&(o.default[s]=true),c&&(o.vertical[s]=true);for(let e of s){if(o.default[e]=true,!r)continue;c&&r_(s)&&(o.vertical[e]=true);let t=p_[e];t&&(o.default[t]=true);}}}populate(e,t,n){let r=this.layers[0],i=r.layout,a=i.get(`text-font`),o=i.get(`text-field`),s=i.get(`icon-image`),c=(o.value.kind!==`constant`||o.value.value instanceof ci&&!o.value.value.isEmpty()||o.value.value.toString().length>0)&&(a.value.kind!==`constant`||a.value.value.length>0),l=s.value.kind!==`constant`||!!s.value.value||Object.keys(s.parameters).length>0,u=i.get(`symbol-sort-key`),d=i.get(`symbol-placement`)===`point`;if(this.features=[],!c&&!l)return;let f=t.iconDependencies,p=t.glyphDependencies,m=t.availableImages,h=new Ll(this.zoom),g=i.get(`text-keep-upright`);for(let{feature:t,id:o,index:s,sourceLayerIndex:_}of e){let e=r._featureFilter.needGeometry,v=Qd(t,e);if(!r._featureFilter.filter(h,v,n)||(e||(v.geometry=Zd(t)),d&&t.type===1&&ky(v.geometry)))continue;let y;if(c){let e=r.getValueAndResolveTokens(`text-field`,v,n,m),t=ci.factory(e);this.hasRTLText||=Ty(t),y=Kg(t,r,v);}let b;if(l){let e=r.getValueAndResolveTokens(`icon-image`,v,n,m);b=e instanceof hi?e:hi.fromString(e);}if(!y&&!b)continue;let x=this.sortFeaturesByKey?u.evaluate(v,{},n):void 0,S={id:o,text:y,icon:b,index:s,sourceLayerIndex:_,geometry:v.geometry,properties:t.properties,type:Bm.types[t.type],sortKey:x};if(this.features.push(S),b&&(f[b.name]=true),y){let e=a.evaluate(v,{},n).join(`,`),t=i.get(`text-rotation-alignment`)!==`viewport`&&i.get(`symbol-placement`)!==`point`;this.allowVerticalPlacement=this.writingModes?.includes(2);let r=(t&&g||this.allowVerticalPlacement)&&o_(y.toString());this.calculateGlyphDependencies(y,p,e,r);for(let e of y.sections)e.image&&(f[e.image.name]=true);}}i.get(`symbol-placement`)===`line`&&(this.features=Zg(this.features)),this.sortFeaturesByKey&&this.features.sort((e,t)=>e.sortKey-t.sortKey);}update(e,t,n){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}),this.icon.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}));}addFeatures({options:e,canonical:t,glyphMap:n,glyphPositions:r,iconMap:i,iconPositions:a,showCollisionBoxes:o}){fy({bucket:this,glyphMap:n,glyphPositions:r,imageMap:i,imagePositions:a,showCollisionBoxes:o,canonical:t,subdivisionGranularity:e.subdivisionGranularity,hasPromoteId:e.featureIndex.promoteId!=null});}isEmpty(){return this.symbolInstances.length===0}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(e){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(e),this.iconCollisionBox.upload(e)),this.text.upload(e,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(e,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=true;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(e,t){let n=this.lineVertexArray.length;if(e.segment!==void 0){let n=e.dist(t[e.segment+1]),r=e.dist(t[e.segment]),i={};for(let r=e.segment+1;r<t.length;r++)i[r]={x:t[r].x,y:t[r].y,tileUnitDistanceFromAnchor:n},r<t.length-1&&(n+=t[r+1].dist(t[r]));for(let n=e.segment||0;n>=0;n--)i[n]={x:t[n].x,y:t[n].y,tileUnitDistanceFromAnchor:r},n>0&&(r+=t[n-1].dist(t[n]));for(let e=0;e<t.length;e++){let t=i[e];this.lineVertexArray.emplaceBack(t.x,t.y,t.tileUnitDistanceFromAnchor);}}return {lineStartIndex:n,lineLength:this.lineVertexArray.length-n}}addSymbols(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=e.indexArray,m=e.layoutVertexArray,h=e.segments.prepareSegment(4*t.length,m,p,this.canOverlap?a.sortKey:void 0),g=this.glyphOffsetArray.length,_=h.vertexLength,v=this.allowVerticalPlacement&&o===2?Math.PI/2:0,y=a.text&&a.text.sections;for(let r=0;r<t.length;r++){let{tl:i,tr:o,bl:c,br:l,tex:u,pixelOffsetTL:g,pixelOffsetBR:_,minFontScaleX:b,minFontScaleY:x,glyphOffset:S,isSDF:C,sectionIndex:w}=t[r],T=h.vertexLength,E=S[1];Cy(m,s.x,s.y,i.x,E+i.y,u.x,u.y,n,C,g.x,g.y,b,x,f),Cy(m,s.x,s.y,o.x,E+o.y,u.x+u.w,u.y,n,C,_.x,g.y,b,x,f),Cy(m,s.x,s.y,c.x,E+c.y,u.x,u.y+u.h,n,C,g.x,_.y,b,x,f),Cy(m,s.x,s.y,l.x,E+l.y,u.x+u.w,u.y+u.h,n,C,_.x,_.y,b,x,f),wy(e.dynamicLayoutVertexArray,s,v),p.emplaceBack(T,T+2,T+1),p.emplaceBack(T+1,T+2,T+3),h.vertexLength+=4,h.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(S[0]),(r===t.length-1||w!==t[r+1].sectionIndex)&&e.programConfigurations.populatePaintArrays(m.length,a,a.index,{imagePositions:{},canonical:d,formattedSection:y?.[w]});}e.placedSymbolArray.emplaceBack(s.x,s.y,g,this.glyphOffsetArray.length-g,_,c,l,s.segment,n?n[0]:0,n?n[1]:0,r[0],r[1],o,0,false,0,u,f);}_addCollisionDebugVertex(e,t,n,r,i,a){return t.emplaceBack(0,0),e.emplaceBack(n.x,n.y,r,i,Math.round(a.x),Math.round(a.y))}addCollisionDebugVertices(e,t,n,r,i,a,o){let s=i.segments.prepareSegment(4,i.layoutVertexArray,i.indexArray),c=s.vertexLength,l=i.layoutVertexArray,d=i.collisionVertexArray,f=o.anchorX,p=o.anchorY;this._addCollisionDebugVertex(l,d,a,f,p,new u(e,t)),this._addCollisionDebugVertex(l,d,a,f,p,new u(n,t)),this._addCollisionDebugVertex(l,d,a,f,p,new u(n,r)),this._addCollisionDebugVertex(l,d,a,f,p,new u(e,r)),s.vertexLength+=4;let m=i.indexArray;m.emplaceBack(c,c+1),m.emplaceBack(c+1,c+2),m.emplaceBack(c+2,c+3),m.emplaceBack(c+3,c),s.primitiveLength+=4;}addDebugCollisionBoxes(e,t,n,r){for(let i=e;i<t;i++){let e=this.collisionBoxArray.get(i),t=e.x1,a=e.y1,o=e.x2,s=e.y2;this.addCollisionDebugVertices(t,a,o,s,r?this.textCollisionBox:this.iconCollisionBox,e.anchorPoint,n);}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Dy(sd,mg.members,fd),this.iconCollisionBox=new Dy(sd,mg.members,fd);for(let e=0;e<this.symbolInstances.length;e++){let t=this.symbolInstances.get(e);this.addDebugCollisionBoxes(t.textBoxStartIndex,t.textBoxEndIndex,t,true),this.addDebugCollisionBoxes(t.verticalTextBoxStartIndex,t.verticalTextBoxEndIndex,t,true),this.addDebugCollisionBoxes(t.iconBoxStartIndex,t.iconBoxEndIndex,t,false),this.addDebugCollisionBoxes(t.verticalIconBoxStartIndex,t.verticalIconBoxEndIndex,t,false);}}_deserializeCollisionBoxesForSymbol(e,t,n,r,i,a,o,s,c){let l={};for(let r=t;r<n;r++){let t=e.get(r);l.textBox={x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,anchorPointX:t.anchorPointX,anchorPointY:t.anchorPointY},l.textFeatureIndex=t.featureIndex;break}for(let t=r;t<i;t++){let n=e.get(t);l.verticalTextBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalTextFeatureIndex=n.featureIndex;break}for(let t=a;t<o;t++){let n=e.get(t);l.iconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.iconFeatureIndex=n.featureIndex;break}for(let t=s;t<c;t++){let n=e.get(t);l.verticalIconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalIconFeatureIndex=n.featureIndex;break}return l}deserializeCollisionBoxes(e){this.collisionArrays=[];for(let t=0;t<this.symbolInstances.length;t++){let n=this.symbolInstances.get(t);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(e,n.textBoxStartIndex,n.textBoxEndIndex,n.verticalTextBoxStartIndex,n.verticalTextBoxEndIndex,n.iconBoxStartIndex,n.iconBoxEndIndex,n.verticalIconBoxStartIndex,n.verticalIconBoxEndIndex));}}hasTextData(){return this.text.segments.get().length>0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(e,t){let n=e.placedSymbolArray.get(t),r=n.vertexStartIndex+n.numGlyphs*4;for(let t=n.vertexStartIndex;t<r;t+=4)e.indexArray.emplaceBack(t,t+2,t+1),e.indexArray.emplaceBack(t+1,t+2,t+3);}getSortedSymbolIndexes(e){if(this.sortedAngle===e&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;let t=Math.sin(e),n=Math.cos(e),r=[],i=[],a=[];for(let e=0;e<this.symbolInstances.length;++e){a.push(e);let o=this.symbolInstances.get(e);r.push(Math.round(t*o.anchorX+n*o.anchorY)|0),i.push(o.featureIndex);}return a.sort((e,t)=>r[e]-r[t]||i[t]-i[e]),a}addToSortKeyRanges(e,t){let n=this.sortKeyRanges[this.sortKeyRanges.length-1];n?.sortKey===t?n.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:t,symbolInstanceStart:e,symbolInstanceEnd:e+1});}sortFeatures(e){if(this.sortFeaturesByY&&this.sortedAngle!==e&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(e),this.sortedAngle=e,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let e of this.symbolInstanceIndexes){let t=this.symbolInstances.get(e);this.featureSortOrder.push(t.featureIndex);let n=[t.rightJustifiedTextSymbolIndex,t.centerJustifiedTextSymbolIndex,t.leftJustifiedTextSymbolIndex];for(let e=0;e<n.length;e++){let t=n[e];t>=0&&n.indexOf(t)===e&&this.addIndicesForPlacedSymbol(this.text,t);}t.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,t.verticalPlacedTextSymbolIndex),t.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.placedIconSymbolIndex),t.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.verticalPlacedIconSymbolIndex);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}};function ky(e){return e.every(e=>e.every(rf))}K(`SymbolBucket`,Oy,{omit:[`layers`,`collisionBoxArray`,`features`,`compareText`]});var Iy=class{constructor(e){if(e.property.overrides===void 0)throw Error(`overrides must be provided to instantiate FormatSectionOverride class`);this.type=e.property.overrides?e.property.overrides.runtimeType:fr,this.defaultValue=e;}evaluate(e){if(e.formattedSection){let t=this.defaultValue.property.overrides;if(t?.hasOverride(e.formattedSection))return t.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){if(!this.defaultValue.isConstant()){let t=this.defaultValue.value;e(t._styleExpression.expression);}}outputDefined(){return false}serialize(){return null}};K(`FormatSectionOverride`,Iy,{omit:[`defaultValue`]});function zy(e,t,n,r=1){let i=e.get(`icon-padding`).evaluate(t,{},n)?.values;return [i[0]*r,i[1]*r,i[2]*r,i[3]*r]}const lb=/* @__PURE__ */ new Float64Array(256);for(let e=0;e<256;e++){let t=.5-(e/255)**(1/2.2);lb[e]=t*Math.abs(t);}lb[255]=-1e20;B.layout_symbol[`text-font`].default.join(`,`);function Hb(e,t,n){return !(e<0||e>25||n<0||n>=2**e||t<0||t>=2**e)}var Wb=class{constructor(e,t,n){if(!Hb(e,t,n))throw Error(`x=${t}, y=${n}, z=${e} outside of bounds. 0<=x<${2**e}, 0<=y<${2**e} 0<=z<=25 `);this.z=e,this.x=t,this.y=n,this.key=qb(0,e,e,t,n);}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,t,n,r=Jm){let i=Yb(this.z,this.x,this.y);return e[(this.x+this.y)%e.length].replace(/{prefix}/g,(this.x%16).toString(16)+(this.y%16).toString(16)).replace(/{z}/g,String(this.z)).replace(/{x}/g,String(this.x)).replace(/{y}/g,String(n===`tms`?2**this.z-this.y-1:this.y)).replace(/{ratio}/g,t>1?`@2x`:``).replace(/{quadkey}/g,i).replace(/{bbox-epsg-3857}/g,()=>Jb(this.x,this.y,this.z,Jm)).replace(/{bbox}/g,()=>Jb(this.x,this.y,this.z,r))}isChildOf(e){let t=this.z-e.z;return t>0&&e.x===this.x>>t&&e.y===this.y>>t}getTilePoint(e){let t=2**this.z;return new u((e.x*t-this.x)*P,(e.y*t-this.y)*P)}toString(){return `${this.z}/${this.x}/${this.y}`}},Gb=class{constructor(e,t){this.wrap=e,this.canonical=t,this.key=qb(e,t.z,t.z,t.x,t.y);}},Kb=class e{constructor(e,t,n,r,i){if(this.terrainRttPosMatrix32f=null,e<n)throw Error(`overscaledZ should be >= z; overscaledZ = ${e}; z = ${n}`);this.overscaledZ=e,this.wrap=t,this.canonical=new Wb(n,+r,+i),this.key=qb(t,e,n,r,i);}clone(){return new e(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(e){return this.overscaledZ===e.overscaledZ&&this.wrap===e.wrap&&this.canonical.equals(e.canonical)}scaledTo(t){if(t>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-t;return t>this.canonical.z?new e(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new e(t,this.wrap,t,this.canonical.x>>n,this.canonical.y>>n)}isOverscaled(){return this.overscaledZ>this.canonical.z}calculateScaledKey(e,t){if(e>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-e;return e>this.canonical.z?qb(this.wrap*+t,e,this.canonical.z,this.canonical.x,this.canonical.y):qb(this.wrap*+t,e,e,this.canonical.x>>n,this.canonical.y>>n)}isChildOf(e){if(e.wrap!==this.wrap||this.overscaledZ-e.overscaledZ<=0)return false;if(e.overscaledZ===0)return this.overscaledZ>0;let t=this.canonical.z-e.canonical.z;return t<0?false:e.canonical.x===this.canonical.x>>t&&e.canonical.y===this.canonical.y>>t}children(t){if(this.overscaledZ>=t)return [new e(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let n=this.canonical.z+1,r=this.canonical.x*2,i=this.canonical.y*2;return [new e(n,this.wrap,n,r,i),new e(n,this.wrap,n,r+1,i),new e(n,this.wrap,n,r,i+1),new e(n,this.wrap,n,r+1,i+1)]}isLessThan(e){return this.wrap<e.wrap?true:this.wrap>e.wrap?false:this.overscaledZ<e.overscaledZ?true:this.overscaledZ>e.overscaledZ?false:this.canonical.x<e.canonical.x?true:this.canonical.x>e.canonical.x?false:this.canonical.y<e.canonical.y}wrapped(){return new e(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(t){return new e(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return 2**(this.overscaledZ-this.canonical.z)}toUnwrapped(){return new Gb(this.wrap,this.canonical)}toString(){return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(e){return this.canonical.getTilePoint(new ih(e.x-this.wrap,e.y))}normalizeCoordinates(t,n,r=P){if(t>=0&&t<r&&n>=0&&n<r)return {tileID:this,x:t,y:n};let i=Math.floor(t/r),a=Math.floor(n/r),o=t-i*r,s=n-a*r,c=this.canonical.z,l=1<<c,u=this.canonical.y+a;if(u<0||u>=l)return null;let d=this.canonical.x+i,f=this.wrap;return d<0?(f-=Math.ceil(-d/l),d=(d%l+l)%l):d>=l&&(f+=Math.floor(d/l),d%=l),{tileID:new e(this.overscaledZ,f,c,d,u),x:o,y:s}}};function qb(e,t,n,r,i){e*=2,e<0&&(e=e*-1-1);let a=1<<n;return (a*a*e+a*i+r).toString(36)+n.toString(36)+t.toString(36)}function Jb(e,t,n,r){let i=2**n,a=r.extentAtZoom0/i,[o,s]=r.origin,c=s-r.extentAtZoom0,l=i-t-1;return `${o+e*a},${c+l*a},${o+(e+1)*a},${c+(l+1)*a}`}function Yb(e,t,n){let r=``;for(let i=e;i>0;i--){let e=1<<i-1;r+=(t&e?1:0)+(n&e?2:0);}return r}K(`CanonicalTileID`,Wb),K(`OverscaledTileID`,Kb,{omit:[`terrainRttPosMatrix32f`]});var fx=class{forward(e){return [e[0],e[1]]}inverse(e){return [e[0],e[1]]}};const px=new class{constructor(){this.name=`identity`,this.projection=new fx,this.tileMatrixSet={origin:[-90,90],extentAtZoom0:180};}};/* @__PURE__ */ new Map([[px.name,px]]);lu([{name:`a_pos`,type:`Int16`,components:2}]);const Ux=`_geojsonTileLayer`;var Wx=class{constructor(e){this._stringToNumber={},this._numberToString=[];for(let t=0;t<e.length;t++){let n=e[t];this._stringToNumber[n]=t,this._numberToString[t]=n;}}encode(e){return this._stringToNumber[e]}decode(e){if(e>=this._numberToString.length)throw Error(`Out of bounds. Index requested n=${e} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[e]}},Gx=class e{static{this.worldCoordinateHelpers=/* @__PURE__ */ new WeakMap;}constructor(t,n,r,i,a,o){this.type=`Feature`,this._vectorTileFeature=t,this._x=r,this._y=i,this._z=n,o!==ah&&e.worldCoordinateHelpers.set(this,o);for(let e in t.properties)typeof t.properties[e]==`string`&&t.properties[e].startsWith(`__$json__:`)&&(t.properties[e]=JSON.parse(t.properties[e].slice(10)));this.properties=t.properties,this.id=a;}projectPoint(e,t,n,r,i){if(i){let a=i.lngLatFromWorld((e.x+t)/r,(e.y+n)/r);return [a.lng,a.lat]}return [(e.x+t)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+n)*2/r)*Math.PI))-90]}projectLine(e,t,n,r,i){return e.map(e=>this.projectPoint(e,t,n,r,i))}get geometry(){if(this._geometry)return this._geometry;let t=this._vectorTileFeature,n=e.worldCoordinateHelpers.get(this),r=t.extent*2**this._z,i=t.extent*this._x,a=t.extent*this._y,o=t.loadGeometry();switch(t.type){case 1:{let e=[];for(let t of o)e.push(t[0]);let t=this.projectLine(e,i,a,r,n);this._geometry=e.length===1?{type:`Point`,coordinates:t[0]}:{type:`MultiPoint`,coordinates:t};break}case 2:{let e=o.map(e=>this.projectLine(e,i,a,r,n));this._geometry=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};break}case 3:{let e=Vm(o),t=[];for(let o of e)t.push(o.map(e=>this.projectLine(e,i,a,r,n)));this._geometry=t.length===1?{type:`Polygon`,coordinates:t[0]}:{type:`MultiPolygon`,coordinates:t};break}default:throw Error(`unknown feature type: ${t.type}`)}return this._geometry}set geometry(e){this._geometry=e;}toJSON(){let e={geometry:this.geometry};for(let t in this)t!==`_geometry`&&t!==`_vectorTileFeature`&&t!==`_x`&&t!==`_y`&&t!==`_z`&&(e[t]=this[t]);return e}},Kx=class{constructor(e,t,n){this._name=e,this.dataBuffer=t,typeof n==`number`?this._size=n:(this.nullabilityBuffer=n,this._size=n.size());}getValue(e){return this.nullabilityBuffer&&!this.nullabilityBuffer.get(e)?null:this.getValueFromBuffer(e)}has(e){return this.nullabilityBuffer?.get(e)||!this.nullabilityBuffer}get name(){return this._name}get size(){return this._size}},qx=class extends Kx{},Jx=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Yx=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Xx=class extends Kx{constructor(e,t,n,r){super(e,t,r),this.delta=n;}},Zx=class extends Xx{constructor(e,t,n,r,i){super(e,i?Int32Array.of(t):Uint32Array.of(t),n,r);}getValueFromBuffer(e){return this.dataBuffer[0]+e*this.delta}},Qx=class extends Kx{constructor(e,t,n,r){super(e,r?Int32Array.of(t):Uint32Array.of(t),n);}getValueFromBuffer(e){return this.dataBuffer[0]}},$x=class{constructor(e,t,n,r,i=4096){if(this._name=e,this._geometryVector=t,this._idVector=n,this._propertyVectors=r,this._extent=i,e.length===0)throw Error(`Missing layer name`)}get name(){return this._name}get idVector(){return this._idVector}get geometryVector(){return this._geometryVector}get propertyVectors(){return this._propertyVectors??[]}getPropertyVector(e){return this.propertyVectorsMap||=new Map(this.propertyVectors.map(e=>[e.name,e])),this.propertyVectorsMap.get(e)}get numFeatures(){return this.geometryVector.numGeometries}get extent(){return this._extent}getFeatures(){let e=[],t=this.geometryVector.getGeometries();for(let n=0;n<this.numFeatures;n++){let r;if(this.idVector){let e=this.idVector.getValue(n);e!==null&&(r=this.containsMaxSafeIntegerValues(this.idVector)?Number(e):e);}let i={coordinates:t[n],type:this.geometryVector.geometryType(n)},a={};for(let e of this.propertyVectors){if(!e)continue;let t=e.name,r=e.getValue(n);r!==null&&(a[t]=r);}e.push({id:r,geometry:i,properties:a});}return e}containsMaxSafeIntegerValues(e){return e instanceof Jx||e instanceof Qx||e instanceof Zx||e instanceof Yx}};const eS={FEATURE:0},tS={BOOLEAN:0,INT_8:1,UINT_8:2,INT_32:3,UINT_32:4,INT_64:5,UINT_64:6,FLOAT:7,DOUBLE:8,STRING:9},nS={GEOMETRY:0,STRUCT:1,MAP:2},rS={ID:0};var iS=class{constructor(e){this.value=e;}get(){return this.value}set(e){this.value=e;}increment(){return this.value++}add(e){this.value+=e;}},$;(function(e){e.NONE=`NONE`,e.DELTA=`DELTA`,e.COMPONENTWISE_DELTA=`COMPONENTWISE_DELTA`,e.RLE=`RLE`,e.MORTON=`MORTON`;})($||={});var aS;(function(e){e.NONE=`NONE`,e.FAST_PFOR=`FAST_PFOR`,e.VARINT=`VARINT`;})(aS||={});const oS=/* @__PURE__ */ new Uint32Array(33);oS[0]=0;for(let e=1;e<=32;e++)oS[e]=e===32?4294967295:4294967295>>>32-e;const sS=oS,cS=65536;function lS(e,t){return e-e%t}function uS(e){return lS(e+31,32)}function dS(e){if(!Number.isFinite(e)||e<=0)return cS;let t=lS(Math.floor(e),256);return t===0?256:t}function fS(e){let t=e>>>0;return ((t&255)<<24|(t&65280)<<8|t>>>8&65280|t>>>24&255)>>>0}function pS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0;n[i++]=a>>>0&3,n[i++]=a>>>2&3,n[i++]=a>>>4&3,n[i++]=a>>>6&3,n[i++]=a>>>8&3,n[i++]=a>>>10&3,n[i++]=a>>>12&3,n[i++]=a>>>14&3,n[i++]=a>>>16&3,n[i++]=a>>>18&3,n[i++]=a>>>20&3,n[i++]=a>>>22&3,n[i++]=a>>>24&3,n[i++]=a>>>26&3,n[i++]=a>>>28&3,n[i++]=a>>>30&3,n[i++]=o>>>0&3,n[i++]=o>>>2&3,n[i++]=o>>>4&3,n[i++]=o>>>6&3,n[i++]=o>>>8&3,n[i++]=o>>>10&3,n[i++]=o>>>12&3,n[i++]=o>>>14&3,n[i++]=o>>>16&3,n[i++]=o>>>18&3,n[i++]=o>>>20&3,n[i++]=o>>>22&3,n[i++]=o>>>24&3,n[i++]=o>>>26&3,n[i++]=o>>>28&3,n[i]=o>>>30&3;}function mS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0;n[i++]=a>>>0&7,n[i++]=a>>>3&7,n[i++]=a>>>6&7,n[i++]=a>>>9&7,n[i++]=a>>>12&7,n[i++]=a>>>15&7,n[i++]=a>>>18&7,n[i++]=a>>>21&7,n[i++]=a>>>24&7,n[i++]=a>>>27&7,n[i++]=(a>>>30|(o&1)<<2)&7,n[i++]=o>>>1&7,n[i++]=o>>>4&7,n[i++]=o>>>7&7,n[i++]=o>>>10&7,n[i++]=o>>>13&7,n[i++]=o>>>16&7,n[i++]=o>>>19&7,n[i++]=o>>>22&7,n[i++]=o>>>25&7,n[i++]=o>>>28&7,n[i++]=(o>>>31|(s&3)<<1)&7,n[i++]=s>>>2&7,n[i++]=s>>>5&7,n[i++]=s>>>8&7,n[i++]=s>>>11&7,n[i++]=s>>>14&7,n[i++]=s>>>17&7,n[i++]=s>>>20&7,n[i++]=s>>>23&7,n[i++]=s>>>26&7,n[i]=s>>>29&7;}function hS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0;n[i++]=a>>>0&15,n[i++]=a>>>4&15,n[i++]=a>>>8&15,n[i++]=a>>>12&15,n[i++]=a>>>16&15,n[i++]=a>>>20&15,n[i++]=a>>>24&15,n[i++]=a>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15,n[i++]=c>>>0&15,n[i++]=c>>>4&15,n[i++]=c>>>8&15,n[i++]=c>>>12&15,n[i++]=c>>>16&15,n[i++]=c>>>20&15,n[i++]=c>>>24&15,n[i]=c>>>28&15;}function gS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0;n[i++]=a>>>0&31,n[i++]=a>>>5&31,n[i++]=a>>>10&31,n[i++]=a>>>15&31,n[i++]=a>>>20&31,n[i++]=a>>>25&31,n[i++]=(a>>>30|(o&7)<<2)&31,n[i++]=o>>>3&31,n[i++]=o>>>8&31,n[i++]=o>>>13&31,n[i++]=o>>>18&31,n[i++]=o>>>23&31,n[i++]=(o>>>28|(s&1)<<4)&31,n[i++]=s>>>1&31,n[i++]=s>>>6&31,n[i++]=s>>>11&31,n[i++]=s>>>16&31,n[i++]=s>>>21&31,n[i++]=s>>>26&31,n[i++]=(s>>>31|(c&15)<<1)&31,n[i++]=c>>>4&31,n[i++]=c>>>9&31,n[i++]=c>>>14&31,n[i++]=c>>>19&31,n[i++]=c>>>24&31,n[i++]=(c>>>29|(l&3)<<3)&31,n[i++]=l>>>2&31,n[i++]=l>>>7&31,n[i++]=l>>>12&31,n[i++]=l>>>17&31,n[i++]=l>>>22&31,n[i]=l>>>27&31;}function _S(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0;n[i++]=a>>>0&63,n[i++]=a>>>6&63,n[i++]=a>>>12&63,n[i++]=a>>>18&63,n[i++]=a>>>24&63,n[i++]=(a>>>30|(o&15)<<2)&63,n[i++]=o>>>4&63,n[i++]=o>>>10&63,n[i++]=o>>>16&63,n[i++]=o>>>22&63,n[i++]=(o>>>28|(s&3)<<4)&63,n[i++]=s>>>2&63,n[i++]=s>>>8&63,n[i++]=s>>>14&63,n[i++]=s>>>20&63,n[i++]=s>>>26&63,n[i++]=c>>>0&63,n[i++]=c>>>6&63,n[i++]=c>>>12&63,n[i++]=c>>>18&63,n[i++]=c>>>24&63,n[i++]=(c>>>30|(l&15)<<2)&63,n[i++]=l>>>4&63,n[i++]=l>>>10&63,n[i++]=l>>>16&63,n[i++]=l>>>22&63,n[i++]=(l>>>28|(u&3)<<4)&63,n[i++]=u>>>2&63,n[i++]=u>>>8&63,n[i++]=u>>>14&63,n[i++]=u>>>20&63,n[i]=u>>>26&63;}function vS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0;n[i++]=a>>>0&127,n[i++]=a>>>7&127,n[i++]=a>>>14&127,n[i++]=a>>>21&127,n[i++]=(a>>>28|(o&7)<<4)&127,n[i++]=o>>>3&127,n[i++]=o>>>10&127,n[i++]=o>>>17&127,n[i++]=o>>>24&127,n[i++]=(o>>>31|(s&63)<<1)&127,n[i++]=s>>>6&127,n[i++]=s>>>13&127,n[i++]=s>>>20&127,n[i++]=(s>>>27|(c&3)<<5)&127,n[i++]=c>>>2&127,n[i++]=c>>>9&127,n[i++]=c>>>16&127,n[i++]=c>>>23&127,n[i++]=(c>>>30|(l&31)<<2)&127,n[i++]=l>>>5&127,n[i++]=l>>>12&127,n[i++]=l>>>19&127,n[i++]=(l>>>26|(u&1)<<6)&127,n[i++]=u>>>1&127,n[i++]=u>>>8&127,n[i++]=u>>>15&127,n[i++]=u>>>22&127,n[i++]=(u>>>29|(d&15)<<3)&127,n[i++]=d>>>4&127,n[i++]=d>>>11&127,n[i++]=d>>>18&127,n[i]=d>>>25&127;}function yS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0;n[i++]=a>>>0&255,n[i++]=a>>>8&255,n[i++]=a>>>16&255,n[i++]=a>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255,n[i++]=f>>>0&255,n[i++]=f>>>8&255,n[i++]=f>>>16&255,n[i]=f>>>24&255;}function bS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0;n[i++]=a>>>0&511,n[i++]=a>>>9&511,n[i++]=a>>>18&511,n[i++]=(a>>>27|(o&15)<<5)&511,n[i++]=o>>>4&511,n[i++]=o>>>13&511,n[i++]=o>>>22&511,n[i++]=(o>>>31|(s&255)<<1)&511,n[i++]=s>>>8&511,n[i++]=s>>>17&511,n[i++]=(s>>>26|(c&7)<<6)&511,n[i++]=c>>>3&511,n[i++]=c>>>12&511,n[i++]=c>>>21&511,n[i++]=(c>>>30|(l&127)<<2)&511,n[i++]=l>>>7&511,n[i++]=l>>>16&511,n[i++]=(l>>>25|(u&3)<<7)&511,n[i++]=u>>>2&511,n[i++]=u>>>11&511,n[i++]=u>>>20&511,n[i++]=(u>>>29|(d&63)<<3)&511,n[i++]=d>>>6&511,n[i++]=d>>>15&511,n[i++]=(d>>>24|(f&1)<<8)&511,n[i++]=f>>>1&511,n[i++]=f>>>10&511,n[i++]=f>>>19&511,n[i++]=(f>>>28|(p&31)<<4)&511,n[i++]=p>>>5&511,n[i++]=p>>>14&511,n[i]=p>>>23&511;}function xS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0;n[i++]=a>>>0&1023,n[i++]=a>>>10&1023,n[i++]=a>>>20&1023,n[i++]=(a>>>30|(o&255)<<2)&1023,n[i++]=o>>>8&1023,n[i++]=o>>>18&1023,n[i++]=(o>>>28|(s&63)<<4)&1023,n[i++]=s>>>6&1023,n[i++]=s>>>16&1023,n[i++]=(s>>>26|(c&15)<<6)&1023,n[i++]=c>>>4&1023,n[i++]=c>>>14&1023,n[i++]=(c>>>24|(l&3)<<8)&1023,n[i++]=l>>>2&1023,n[i++]=l>>>12&1023,n[i++]=l>>>22&1023,n[i++]=u>>>0&1023,n[i++]=u>>>10&1023,n[i++]=u>>>20&1023,n[i++]=(u>>>30|(d&255)<<2)&1023,n[i++]=d>>>8&1023,n[i++]=d>>>18&1023,n[i++]=(d>>>28|(f&63)<<4)&1023,n[i++]=f>>>6&1023,n[i++]=f>>>16&1023,n[i++]=(f>>>26|(p&15)<<6)&1023,n[i++]=p>>>4&1023,n[i++]=p>>>14&1023,n[i++]=(p>>>24|(m&3)<<8)&1023,n[i++]=m>>>2&1023,n[i++]=m>>>12&1023,n[i]=m>>>22&1023;}function SS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0;n[i++]=a>>>0&2047,n[i++]=a>>>11&2047,n[i++]=(a>>>22|(o&1)<<10)&2047,n[i++]=o>>>1&2047,n[i++]=o>>>12&2047,n[i++]=(o>>>23|(s&3)<<9)&2047,n[i++]=s>>>2&2047,n[i++]=s>>>13&2047,n[i++]=(s>>>24|(c&7)<<8)&2047,n[i++]=c>>>3&2047,n[i++]=c>>>14&2047,n[i++]=(c>>>25|(l&15)<<7)&2047,n[i++]=l>>>4&2047,n[i++]=l>>>15&2047,n[i++]=(l>>>26|(u&31)<<6)&2047,n[i++]=u>>>5&2047,n[i++]=u>>>16&2047,n[i++]=(u>>>27|(d&63)<<5)&2047,n[i++]=d>>>6&2047,n[i++]=d>>>17&2047,n[i++]=(d>>>28|(f&127)<<4)&2047,n[i++]=f>>>7&2047,n[i++]=f>>>18&2047,n[i++]=(f>>>29|(p&255)<<3)&2047,n[i++]=p>>>8&2047,n[i++]=p>>>19&2047,n[i++]=(p>>>30|(m&511)<<2)&2047,n[i++]=m>>>9&2047,n[i++]=m>>>20&2047,n[i++]=(m>>>31|(h&1023)<<1)&2047,n[i++]=h>>>10&2047,n[i]=h>>>21&2047;}function CS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0;n[i++]=a>>>0&4095,n[i++]=a>>>12&4095,n[i++]=(a>>>24|(o&15)<<8)&4095,n[i++]=o>>>4&4095,n[i++]=o>>>16&4095,n[i++]=(o>>>28|(s&255)<<4)&4095,n[i++]=s>>>8&4095,n[i++]=s>>>20&4095,n[i++]=c>>>0&4095,n[i++]=c>>>12&4095,n[i++]=(c>>>24|(l&15)<<8)&4095,n[i++]=l>>>4&4095,n[i++]=l>>>16&4095,n[i++]=(l>>>28|(u&255)<<4)&4095,n[i++]=u>>>8&4095,n[i++]=u>>>20&4095,n[i++]=d>>>0&4095,n[i++]=d>>>12&4095,n[i++]=(d>>>24|(f&15)<<8)&4095,n[i++]=f>>>4&4095,n[i++]=f>>>16&4095,n[i++]=(f>>>28|(p&255)<<4)&4095,n[i++]=p>>>8&4095,n[i++]=p>>>20&4095,n[i++]=m>>>0&4095,n[i++]=m>>>12&4095,n[i++]=(m>>>24|(h&15)<<8)&4095,n[i++]=h>>>4&4095,n[i++]=h>>>16&4095,n[i++]=(h>>>28|(g&255)<<4)&4095,n[i++]=g>>>8&4095,n[i]=g>>>20&4095;}function wS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0,_=e[t+12]>>>0,v=e[t+13]>>>0,y=e[t+14]>>>0,b=e[t+15]>>>0;n[i++]=a>>>0&65535,n[i++]=a>>>16&65535,n[i++]=o>>>0&65535,n[i++]=o>>>16&65535,n[i++]=s>>>0&65535,n[i++]=s>>>16&65535,n[i++]=c>>>0&65535,n[i++]=c>>>16&65535,n[i++]=l>>>0&65535,n[i++]=l>>>16&65535,n[i++]=u>>>0&65535,n[i++]=u>>>16&65535,n[i++]=d>>>0&65535,n[i++]=d>>>16&65535,n[i++]=f>>>0&65535,n[i++]=f>>>16&65535,n[i++]=p>>>0&65535,n[i++]=p>>>16&65535,n[i++]=m>>>0&65535,n[i++]=m>>>16&65535,n[i++]=h>>>0&65535,n[i++]=h>>>16&65535,n[i++]=g>>>0&65535,n[i++]=g>>>16&65535,n[i++]=_>>>0&65535,n[i++]=_>>>16&65535,n[i++]=v>>>0&65535,n[i++]=v>>>16&65535,n[i++]=y>>>0&65535,n[i++]=y>>>16&65535,n[i++]=b>>>0&65535,n[i]=b>>>16&65535;}function TS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0;n[i++]=t>>>0&1,n[i++]=t>>>1&1,n[i++]=t>>>2&1,n[i++]=t>>>3&1,n[i++]=t>>>4&1,n[i++]=t>>>5&1,n[i++]=t>>>6&1,n[i++]=t>>>7&1,n[i++]=t>>>8&1,n[i++]=t>>>9&1,n[i++]=t>>>10&1,n[i++]=t>>>11&1,n[i++]=t>>>12&1,n[i++]=t>>>13&1,n[i++]=t>>>14&1,n[i++]=t>>>15&1,n[i++]=t>>>16&1,n[i++]=t>>>17&1,n[i++]=t>>>18&1,n[i++]=t>>>19&1,n[i++]=t>>>20&1,n[i++]=t>>>21&1,n[i++]=t>>>22&1,n[i++]=t>>>23&1,n[i++]=t>>>24&1,n[i++]=t>>>25&1,n[i++]=t>>>26&1,n[i++]=t>>>27&1,n[i++]=t>>>28&1,n[i++]=t>>>29&1,n[i++]=t>>>30&1,n[i++]=t>>>31&1;}}function ES(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0;n[i++]=t>>>0&3,n[i++]=t>>>2&3,n[i++]=t>>>4&3,n[i++]=t>>>6&3,n[i++]=t>>>8&3,n[i++]=t>>>10&3,n[i++]=t>>>12&3,n[i++]=t>>>14&3,n[i++]=t>>>16&3,n[i++]=t>>>18&3,n[i++]=t>>>20&3,n[i++]=t>>>22&3,n[i++]=t>>>24&3,n[i++]=t>>>26&3,n[i++]=t>>>28&3,n[i++]=t>>>30&3,n[i++]=r>>>0&3,n[i++]=r>>>2&3,n[i++]=r>>>4&3,n[i++]=r>>>6&3,n[i++]=r>>>8&3,n[i++]=r>>>10&3,n[i++]=r>>>12&3,n[i++]=r>>>14&3,n[i++]=r>>>16&3,n[i++]=r>>>18&3,n[i++]=r>>>20&3,n[i++]=r>>>22&3,n[i++]=r>>>24&3,n[i++]=r>>>26&3,n[i++]=r>>>28&3,n[i++]=r>>>30&3;}}function DS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0;n[i++]=t>>>0&7,n[i++]=t>>>3&7,n[i++]=t>>>6&7,n[i++]=t>>>9&7,n[i++]=t>>>12&7,n[i++]=t>>>15&7,n[i++]=t>>>18&7,n[i++]=t>>>21&7,n[i++]=t>>>24&7,n[i++]=t>>>27&7,n[i++]=(t>>>30|(r&1)<<2)&7,n[i++]=r>>>1&7,n[i++]=r>>>4&7,n[i++]=r>>>7&7,n[i++]=r>>>10&7,n[i++]=r>>>13&7,n[i++]=r>>>16&7,n[i++]=r>>>19&7,n[i++]=r>>>22&7,n[i++]=r>>>25&7,n[i++]=r>>>28&7,n[i++]=(r>>>31|(o&3)<<1)&7,n[i++]=o>>>2&7,n[i++]=o>>>5&7,n[i++]=o>>>8&7,n[i++]=o>>>11&7,n[i++]=o>>>14&7,n[i++]=o>>>17&7,n[i++]=o>>>20&7,n[i++]=o>>>23&7,n[i++]=o>>>26&7,n[i++]=o>>>29&7;}}function OS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0;n[i++]=t>>>0&15,n[i++]=t>>>4&15,n[i++]=t>>>8&15,n[i++]=t>>>12&15,n[i++]=t>>>16&15,n[i++]=t>>>20&15,n[i++]=t>>>24&15,n[i++]=t>>>28&15,n[i++]=r>>>0&15,n[i++]=r>>>4&15,n[i++]=r>>>8&15,n[i++]=r>>>12&15,n[i++]=r>>>16&15,n[i++]=r>>>20&15,n[i++]=r>>>24&15,n[i++]=r>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15;}}function kS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0;n[i++]=t>>>0&31,n[i++]=t>>>5&31,n[i++]=t>>>10&31,n[i++]=t>>>15&31,n[i++]=t>>>20&31,n[i++]=t>>>25&31,n[i++]=(t>>>30|(r&7)<<2)&31,n[i++]=r>>>3&31,n[i++]=r>>>8&31,n[i++]=r>>>13&31,n[i++]=r>>>18&31,n[i++]=r>>>23&31,n[i++]=(r>>>28|(o&1)<<4)&31,n[i++]=o>>>1&31,n[i++]=o>>>6&31,n[i++]=o>>>11&31,n[i++]=o>>>16&31,n[i++]=o>>>21&31,n[i++]=o>>>26&31,n[i++]=(o>>>31|(s&15)<<1)&31,n[i++]=s>>>4&31,n[i++]=s>>>9&31,n[i++]=s>>>14&31,n[i++]=s>>>19&31,n[i++]=s>>>24&31,n[i++]=(s>>>29|(c&3)<<3)&31,n[i++]=c>>>2&31,n[i++]=c>>>7&31,n[i++]=c>>>12&31,n[i++]=c>>>17&31,n[i++]=c>>>22&31,n[i++]=c>>>27&31;}}function AS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0;n[i++]=t>>>0&63,n[i++]=t>>>6&63,n[i++]=t>>>12&63,n[i++]=t>>>18&63,n[i++]=t>>>24&63,n[i++]=(t>>>30|(r&15)<<2)&63,n[i++]=r>>>4&63,n[i++]=r>>>10&63,n[i++]=r>>>16&63,n[i++]=r>>>22&63,n[i++]=(r>>>28|(o&3)<<4)&63,n[i++]=o>>>2&63,n[i++]=o>>>8&63,n[i++]=o>>>14&63,n[i++]=o>>>20&63,n[i++]=o>>>26&63,n[i++]=s>>>0&63,n[i++]=s>>>6&63,n[i++]=s>>>12&63,n[i++]=s>>>18&63,n[i++]=s>>>24&63,n[i++]=(s>>>30|(c&15)<<2)&63,n[i++]=c>>>4&63,n[i++]=c>>>10&63,n[i++]=c>>>16&63,n[i++]=c>>>22&63,n[i++]=(c>>>28|(l&3)<<4)&63,n[i++]=l>>>2&63,n[i++]=l>>>8&63,n[i++]=l>>>14&63,n[i++]=l>>>20&63,n[i++]=l>>>26&63;}}function jS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0;n[i++]=t>>>0&127,n[i++]=t>>>7&127,n[i++]=t>>>14&127,n[i++]=t>>>21&127,n[i++]=(t>>>28|(r&7)<<4)&127,n[i++]=r>>>3&127,n[i++]=r>>>10&127,n[i++]=r>>>17&127,n[i++]=r>>>24&127,n[i++]=(r>>>31|(o&63)<<1)&127,n[i++]=o>>>6&127,n[i++]=o>>>13&127,n[i++]=o>>>20&127,n[i++]=(o>>>27|(s&3)<<5)&127,n[i++]=s>>>2&127,n[i++]=s>>>9&127,n[i++]=s>>>16&127,n[i++]=s>>>23&127,n[i++]=(s>>>30|(c&31)<<2)&127,n[i++]=c>>>5&127,n[i++]=c>>>12&127,n[i++]=c>>>19&127,n[i++]=(c>>>26|(l&1)<<6)&127,n[i++]=l>>>1&127,n[i++]=l>>>8&127,n[i++]=l>>>15&127,n[i++]=l>>>22&127,n[i++]=(l>>>29|(u&15)<<3)&127,n[i++]=u>>>4&127,n[i++]=u>>>11&127,n[i++]=u>>>18&127,n[i++]=u>>>25&127;}}function MS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0,d=e[a++]>>>0;n[i++]=t>>>0&255,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=r>>>0&255,n[i++]=r>>>8&255,n[i++]=r>>>16&255,n[i++]=r>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255;}}function NS(e,t,n,r){let i=r,a=t;for(let t=0;t<128;t++){let t=e[a++]>>>0;n[i++]=t&65535,n[i++]=t>>>16&65535;}}function PS(e,t,n,r,i){let a=sS[i]>>>0,o=t,s=0,c=e[o]>>>0,l=r;for(let t=0;t<8;t++){for(let t=0;t<32;t++)if(s+i<=32){let r=c>>>s&a;n[l+t]=r|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0));}else {let r=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=i-r,f=-1>>>32-d>>>0,p=(u|(c&f)<<r)&a;n[l+t]=p|0,s=d;}l+=32,s=0,t<7&&(c=e[o]>>>0);}}const FS=dS(cS),IS=3*FS/256+FS|0;function LS(){let e=new Uint8Array(IS);return {dataToBePacked:Array(33),dataPointers:/* @__PURE__ */ new Int32Array(33),byteContainer:e,byteContainerI32:new Int32Array(e.buffer,e.byteOffset,e.byteLength>>>2),exceptionSizes:/* @__PURE__ */ new Int32Array(33)}}function RS(e=16){if(e<0)throw RangeError(`initialEncodedWordCapacity must be >= 0, got ${e}`);let t=Math.max(16,e|0);return {encodedWords:new Uint32Array(t),decoderWorkspace:LS()}}function zS(e,t){if(t<=e.encodedWords.length)return e.encodedWords;let n=new Uint32Array(Math.max(16,t*2));return e.encodedWords=n,n}function BS(e,t,n,r){r.byteContainer.length<n&&(r.byteContainer=new Uint8Array(n*2),r.byteContainerI32=void 0);let i=r.byteContainer,a=n>>>2;if(i.byteOffset&3)for(let n=0;n<a;n=n+1|0){let r=e[t+n|0]|0,a=n<<2;i[a]=r&255,i[a+1|0]=r>>>8&255,i[a+2|0]=r>>>16&255,i[a+3|0]=r>>>24&255;}else {let n=r.byteContainerI32;(!n||n.buffer!==i.buffer||n.byteOffset!==i.byteOffset||n.length<a)&&(n=r.byteContainerI32=new Int32Array(i.buffer,i.byteOffset,i.byteLength>>>2)),n.set(e.subarray(t,t+a));}let o=n&3;if(o>0){let n=e[t+a|0]|0,r=a<<2;for(let e=0;e<o;e=e+1|0)i[r+e|0]=n>>>(e<<3)&255;}return i}function VS(e,t,n){let r=e[t++]|0,i=n.dataToBePacked;for(let a=2;a<=32;a=a+1|0){if(!(r>>>a-1&1))continue;if(t>=e.length)throw Error(`FastPFOR decode: truncated exception stream header (bitWidth=${a}, streamWordIndex=${t}, needWords=1, availableWords=${e.length-t}, encodedWords=${e.length})`);let o=e[t++]>>>0,s=uS(o),c=o*a+31>>>5;if(t+c>e.length)throw Error(`FastPFOR decode: truncated exception stream (bitWidth=${a}, size=${o}, streamWordIndex=${t}, needWords=${c}, availableWords=${e.length-t}, encodedWords=${e.length})`);let l=i[a];(!l||l.length<s)&&(l=i[a]=new Uint32Array(s));let u=0;for(;u<o;u=u+32|0)ZS(e,t,l,u,a),t=t+a|0;let d=u-o|0;t=t-(d*a>>>5)|0,n.exceptionSizes[a]=o;}return t}function HS(e,t,n,r,i){switch(i){case 1:TS(e,t,n,r);break;case 2:ES(e,t,n,r);break;case 3:DS(e,t,n,r);break;case 4:OS(e,t,n,r);break;case 5:kS(e,t,n,r);break;case 6:AS(e,t,n,r);break;case 7:jS(e,t,n,r);break;case 8:MS(e,t,n,r);break;case 16:NS(e,t,n,r);break;default:PS(e,t,n,r,i);}return t+(i<<3)|0}function US(e,t,n,r){if(n+2>t)throw Error(`FastPFOR decode: byteContainer underflow at block=${r} (need 2 bytes for [bitWidth, exceptionCount], bytePos=${n}, byteSize=${t})`);let i=e[n++],a=e[n++];if(i>32)throw Error(`FastPFOR decode: invalid bitWidth=${i} at block=${r} (expected 0..32). This likely indicates corrupted or truncated input.`);return {bitWidth:i,exceptionCount:a,bytePosIn:n}}function WS(e,t,n,r,i,a){if(n+1>t)throw Error(`FastPFOR decode: exception header underflow at block=${a} (need 1 byte for maxBits, bytePos=${n}, byteSize=${t})`);let o=e[n++];if(o<r||o>32)throw Error(`FastPFOR decode: invalid maxBits=${o} at block=${a} (bitWidth=${r}, expected ${r}..32)`);let s=o-r|0;if(s<1||s>32)throw Error(`FastPFOR decode: invalid exceptionBitWidth=${s} at block=${a} (bitWidth=${r}, maxBits=${o})`);if(n+i>t)throw Error(`FastPFOR decode: exception positions underflow at block=${a} (need=${i}, have=${t-n})`);return {maxBits:o,exceptionBitWidth:s,bytePosIn:n}}function GS(e,t,n,r,i,a,o,s,c){let{maxBits:l,exceptionBitWidth:u,bytePosIn:d}=WS(i,a,o,n,r,c);if(o=d,u===1){let a=1<<n;for(let n=0;n<r;n=n+1|0){let n=i[o++];e[n+t|0]|=a;}return o}let f=s.dataToBePacked[u];if(!f)throw Error(`FastPFOR decode: missing exception stream for exceptionBitWidth=${u} (bitWidth=${n}, maxBits=${l}) at block ${c}`);let p=s.dataPointers,m=p[u]|0,h=s.exceptionSizes[u]|0;if(m+r>h)throw Error(`FastPFOR decode: exception stream overflow for exceptionBitWidth=${u} (ptr=${m}, need ${r}, size=${h}) at block ${c}`);for(let a=0;a<r;a=a+1|0){let r=i[o++],a=f[m++]|0;e[r+t|0]|=a<<n;}return p[u]=m,o}function KS(e,t,n,r,i,a,o,s,c,l){let u=n|0,d=0;for(let t=0;t<o;t=t+1|0){let n=US(s,c,d,t);d=n.bytePosIn;let r=n.bitWidth,o=n.exceptionCount,f=a+t*256|0;switch(r){case 0:i.fill(0,f,f+256);break;case 32:for(let t=0;t<256;t=t+1|0)i[f+t|0]=e[u+t|0]|0;u=u+256|0;break;default:u=HS(e,u,i,f,r);}o>0&&(d=GS(i,f,r,o,s,c,d,l,t));}if(u!==r)throw Error(`FastPFOR decode: packed region mismatch (pageStart=${t}, packedStart=${n}, consumedPackedEnd=${u}, expectedPackedEnd=${r}, packedWords=${r-n}, encoded.length=${e.length})`)}function qS(e,t,n,r,i,a){let o=n|0,s=e[o]|0;if(s<=0||o+s>e.length-1)throw Error(`FastPFOR decode: invalid whereMeta=${s} at pageStart=${o} (expected > 0 and pageStart+whereMeta < encoded.length=${e.length})`);let c=o+1|0,l=o+s|0,u=e[l]>>>0,d=u+3>>>2,f=l+1,p=f+d;if(p>=e.length)throw Error(`FastPFOR decode: invalid byteSize=${u} (metaInts=${d}, pageStart=${o}, packedEnd=${l}, byteContainerStart=${f}) causes bitmapPos=${p} out of bounds (encoded.length=${e.length})`);let m=BS(e,f,u,a),h=u,g=VS(e,p,a);return a.dataPointers.fill(0),KS(e,o,c,l,t,r|0,i/256|0,m,h,a),g}function JS(e,t,n,r,i,a){let o=r+lS(i,256),s=r,c=n;for(;s!==o;){let n=Math.min(FS,o-s);c=qS(e,t,c,s,n,a),s=s+n|0;}return c}function YS(e,t,n,r,i,a){if(a===0)return t;let o=0,s=t,c=t+n,l=i,u=i,d=i+a,f=0,p=0;for(;s<c&&u<d;){let t=e[s]>>>o&255;if(o+=8,s+=o>>>5,o&=31,f|=(t&127)<<p,t&128)r[u++]=f|0,f=0,p=0;else if(p+=7,p>28)throw Error(`FastPFOR VByte: unterminated value (expected MSB=1 terminator within 5 bytes; shift=${p}, partial=${f}, decoded=${u-l}/${a}, inPos=${s}, inEnd=${c})`)}if(u!==d)throw Error(`FastPFOR VByte: truncated stream (decoded=${u-l}, expected=${a}, consumedWords=${s-t}/${n}, vbyteStart=${t}, vbyteEnd=${c})`);return s}function XS(e,t,n){let r=0,i=0,a=new Uint32Array(t),o=n??LS();if(e.length>0){let t=e[r]|0;if(r=r+1|0,t&255)throw Error(`FastPFOR decode: invalid alignedLength=${t} (expected multiple of 256)`);if(i+t>a.length)throw Error(`FastPFOR decode: output buffer too small (outPos=${i}, alignedLength=${t}, out.length=${a.length})`);r=JS(e,a,r,i,t,o),i=i+t|0;}let s=e.length-r|0,c=t-i|0;return YS(e,r,s,a,i,c),a}function ZS(e,t,n,r,i){switch(i){case 2:pS(e,t,n,r);return;case 3:mS(e,t,n,r);return;case 4:hS(e,t,n,r);return;case 5:gS(e,t,n,r);return;case 6:_S(e,t,n,r);return;case 7:vS(e,t,n,r);return;case 8:yS(e,t,n,r);return;case 9:bS(e,t,n,r);return;case 10:xS(e,t,n,r);return;case 11:SS(e,t,n,r);return;case 12:CS(e,t,n,r);return;case 16:wS(e,t,n,r);return;case 32:for(let i=0;i<32;i=i+1|0)n[r+i|0]=e[t+i|0]|0;return}let a=sS[i]>>>0,o=t,s=0,c=e[o]>>>0;for(let t=0;t<32;t++)if(s+i<=32){let l=c>>>s&a;n[r+t]=l|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0));}else {let l=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=sS[i-l]>>>0,f=(u|(c&d)<<l)&a;n[r+t]=f|0,s=i-l;}}function QS(e,t,n,r){if(t<0||n<0||t+n>e.length)throw RangeError(`decodeBigEndianInt32sInto: out of bounds (offset=${t}, byteLength=${n}, bytes.length=${e.length})`);let i=Math.floor(n/4),a=n%4!=0,o=a?i+1:i;if(r.length<o)throw RangeError(`decodeBigEndianInt32sInto: out.length=${r.length} < ${o}`);if(i>0){let n=e.byteOffset+t;if(n&3)for(let n=0;n<i;n++){let i=t+n*4;r[n]=e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3];}else {let t=new Uint32Array(e.buffer,n,i);for(let e=0;e<i;e++)r[e]=fS(t[e])|0;}}if(a){let a=t+i*4,o=n-i*4,s=0;for(let t=0;t<o;t++)s|=e[a+t]<<24-t*8;r[i]=s|0;}return o}function $S(e,t,n){let r=new Uint32Array(n),i=0,a=t.get();for(let t=0;t<r.length;t++){let t=e[a++],n=t&127;t<128||(t=e[a++],n|=(t&127)<<7,t<128||(t=e[a++],n|=(t&127)<<14,t<128||(t=e[a++],n|=(t&127)<<21,t<128||(t=e[a++],n|=(t&15)<<28)))),r[i++]=n;}return t.set(a),r}function eC(e,t,n){let r=new BigUint64Array(n);for(let n=0;n<r.length;n++)r[n]=tC(e,t);return r}function tC(e,t){let n=0n,r=0,i=t.get();for(;i<e.length;){let t=e[i++];if(n|=BigInt(t&127)<<BigInt(r),!(t&128))break;if(r+=7,r>=64)throw Error(`Varint too long`)}return t.set(i),n}function nC(e,t,n){let r=new Float64Array(n);for(let i=0;i<n;i++)r[i]=rC(e,t);return r}function rC(e,t){let n,r;return r=e[t.get()],t.increment(),n=r&127,r<128||(r=e[t.get()],t.increment(),n|=(r&127)<<7,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<14,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<21,r<128)?n:(r=e[t.get()],n|=(r&15)<<28,iC(n,e,t))}function iC(e,t,n){let r,i;if(i=t[n.get()],n.increment(),r=(i&112)>>4,i<128||(i=t[n.get()],n.increment(),r|=(i&127)<<3,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<10,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<17,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<24,i<128)||(i=t[n.get()],n.increment(),r|=(i&1)<<31,i<128))return r*4294967296+(e>>>0);throw Error(`Expected varint not more than 10 bytes`)}function aC(e,t,n,r){return oC(e,t,n,r,RS(n>>>2))}function oC(e,t,n,r,i){let a=r.get();if(n&3)throw Error(`FastPFOR: invalid encodedByteLength=${n} at offset=${a} (encodedBytes.length=${e.length}; expected a multiple of 4 bytes for an int32 big-endian word stream)`);let o=n>>>2,s=zS(i,o);QS(e,a,n,s);let c=XS(s.subarray(0,o),t,i.decoderWorkspace);return r.add(n),c}function sC(e){return e>>>1^-(e&1)}function cC(e){return e>>1n^-(e&1n)}function lC(e){return e%2==1?(e+1)/-2:e/2}function uC(e){let t=new Int32Array(e.length);for(let n=0;n<e.length;n++)t[n]=sC(e[n]);return t}function dC(e){let t=new BigInt64Array(e.length);for(let n=0;n<e.length;n++)t[n]=cC(e[n]);return t}function pC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r];}let r=new Uint32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function mC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r]);}let r=new BigUint64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function hC(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function gC(e){let t=new Int32Array(e.length);t[0]=sC(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=sC(n)+t[r-1],t[r+1]=sC(i)+t[r],t[r+2]=sC(a)+t[r+1],t[r+3]=sC(o)+t[r+2];}for(;r!==e.length;++r)t[r]=sC(e[r])+t[r-1];return t}function _C(e){let t=new BigInt64Array(e.length);t[0]=cC(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=cC(n)+t[r-1],t[r+1]=cC(i)+t[r],t[r+2]=cC(a)+t[r+1],t[r+3]=cC(o)+t[r+2];}for(;r!==t.length;++r)t[r]=cC(e[r])+t[r-1];return t}function vC(e){e[0]=lC(e[0]);let t=e.length/4*4,n=1;if(t>=4)for(;n<t-4;n+=4){let t=e[n],r=e[n+1],i=e[n+2],a=e[n+3];e[n]=lC(t)+e[n-1],e[n+1]=lC(r)+e[n],e[n+2]=lC(i)+e[n+1],e[n+3]=lC(a)+e[n+2];}for(;n!==e.length;++n)e[n]=lC(e[n])+e[n-1];}function yC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r];}let r=new Int32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=sC(o),r.fill(o,i,i+a),i+=a;}return r}function bC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r]);}let r=new BigInt64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];o=cC(o),r.fill(o,i,i+a),i+=a;}return r}function xC(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=lC(o),r.fill(o,i,i+a),i+=a;}return r}function SC(e){let t=e.length/4*4,n=1;if(t>=4)for(let r=e[0];n<t-4;n+=4)r=e[n]+=r,r=e[n+1]+=r,r=e[n+2]+=r,r=e[n+3]+=r;for(;n!==e.length;)e[n]+=e[n-1],++n;}function CC(e){let t=0;for(let n=0;n<e.length;n++)e[n]+=t,t=e[n];}function wC(e){if(e.length<2)return new Int32Array(e);let t=new Int32Array(e.length);t[0]=sC(e[0]),t[1]=sC(e[1]);let n=e.length/4*4,r=2;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=sC(n)+t[r-2],t[r+1]=sC(i)+t[r-1],t[r+2]=sC(a)+t[r],t[r+3]=sC(o)+t[r+1];}for(;r!==e.length;r+=2)t[r]=sC(e[r])+t[r-2],t[r+1]=sC(e[r+1])+t[r-1];return t}function DC(e){let t=new Int32Array(e.length+1);t[0]=0,t[1]=sC(e[0]);let n=t[1];for(let r=2;r!==t.length;++r){let i=e[r-1],a=sC(i);n+=a,t[r]=t[r-1]+n;}return new Uint32Array(t)}function OC(e,t,n){let r=new Int32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];s=sC(s);for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o;}return r}function kC(e,t,n){let r=new Uint32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o;}return r}function AC(e,t,n){let r=new Int32Array(n),i=0,a=0;for(let n=0;n<t;n++){let o=e[n],s=e[n+t],c=sC(s);for(let e=0;e<o;e++)a+=c,r[i++]=a;}return r}function jC(e,t,n){let r=new BigInt64Array(n),i=0,a=0n;for(let n=0;n<t;n++){let o=Number(e[n]),s=e[n+t],c=cC(s);for(let e=0;e<o;e++)a+=c,r[i++]=a;}return r}function MC(e){let t=new Uint32Array(e.length);t[0]=sC(e[0])>>>0;for(let n=1;n<e.length;n++)t[n]=t[n-1]+sC(e[n])>>>0;return t}function NC(e){let t=new BigUint64Array(e.length);t[0]=BigInt.asUintN(64,cC(e[0]));for(let n=1;n<e.length;n++)t[n]=BigInt.asUintN(64,t[n-1]+cC(e[n]));return t}function PC(e){if(e.length<2)return new Uint32Array(e);let t=new Uint32Array(e.length);t[0]=sC(e[0])>>>0,t[1]=sC(e[1])>>>0;for(let n=2;n<e.length;n+=2)t[n]=t[n-2]+sC(e[n])>>>0,t[n+1]=t[n-1]+sC(e[n+1])>>>0;return t}function IC(e){return e[1]}function LC(e){return sC(e[1])}function RC(e){if(e.length===2){let t=sC(e[1]);return [t,t]}return [sC(e[2]),sC(e[3])]}function zC(e){return e[1]}function BC(e){return cC(e[1])}function VC(e){if(e.length===2){let t=cC(e[1]);return [t,t]}return [cC(e[2]),cC(e[3])]}var HC;(function(e){e.PRESENT=`PRESENT`,e.DATA=`DATA`,e.OFFSET=`OFFSET`,e.LENGTH=`LENGTH`;})(HC||={});var UC;(function(e){e.NONE=`NONE`,e.SINGLE=`SINGLE`,e.SHARED=`SHARED`,e.VERTEX=`VERTEX`,e.MORTON=`MORTON`,e.FSST=`FSST`;})(UC||={});var WC;(function(e){e.VERTEX=`VERTEX`,e.INDEX=`INDEX`,e.STRING=`STRING`,e.KEY=`KEY`;})(WC||={});var GC;(function(e){e.VAR_BINARY=`VAR_BINARY`,e.GEOMETRIES=`GEOMETRIES`,e.PARTS=`PARTS`,e.RINGS=`RINGS`,e.TRIANGLES=`TRIANGLES`,e.SYMBOL=`SYMBOL`,e.DICTIONARY=`DICTIONARY`;})(GC||={});const KC=[HC.PRESENT,HC.DATA,HC.OFFSET,HC.LENGTH],qC=[$.NONE,$.DELTA,$.COMPONENTWISE_DELTA,$.RLE,$.MORTON],JC=[aS.NONE,aS.FAST_PFOR,aS.VARINT],YC=[UC.NONE,UC.SINGLE,UC.SHARED,UC.VERTEX,UC.MORTON,UC.FSST],XC=[WC.VERTEX,WC.INDEX,WC.STRING,WC.KEY],ZC=[GC.VAR_BINARY,GC.GEOMETRIES,GC.PARTS,GC.RINGS,GC.TRIANGLES,GC.SYMBOL,GC.DICTIONARY];function QC(e,t){let n=tw(e,t);return n.logicalLevelTechnique1===$.MORTON?$C(n,e,t):($.RLE===n.logicalLevelTechnique1||$.RLE===n.logicalLevelTechnique2)&&aS.NONE!==n.physicalLevelTechnique?ew(n,e,t):n}function $C(e,t,n){let r=$S(t,n,2);return {physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:e.decompressedCount,numBits:r[0],coordinateShift:r[1]}}function ew(e,t,n){let r=$S(t,n,2);return {physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:r[1],runs:r[0],numRleValues:r[1]}}function tw(e,t){let n=e[t.get()],r=KC[n>>4],i={};switch(r){case HC.DATA:i={dictionaryType:YC[n&15]};break;case HC.OFFSET:i={offsetType:XC[n&15]};break;case HC.LENGTH:i={lengthType:ZC[n&15]};}t.increment();let a=e[t.get()],o=qC[a>>5],s=qC[a>>2&7],c=JC[a&3];t.increment();let l=$S(e,t,2),u=l[0],d=l[1];return {physicalStreamType:r,logicalStreamType:i,logicalLevelTechnique1:o,logicalLevelTechnique2:s,physicalLevelTechnique:c,numValues:u,byteLength:d,decompressedCount:u}}var nw;(function(e){e[e.FLAT=0]=`FLAT`,e[e.CONST=1]=`CONST`,e[e.SEQUENCE=2]=`SEQUENCE`,e[e.DICTIONARY=3]=`DICTIONARY`,e[e.FSST_DICTIONARY=4]=`FSST_DICTIONARY`;})(nw||={});var rw=class{constructor(e,t){this.values=e,this._size=t;}get(e){let t=Math.floor(e/8),n=e%8;return (this.values[t]>>n&1)==1}set(e,t){let n=Math.floor(e/8),r=e%8;this.values[n]=this.values[n]|+!!t<<r;}getInt(e){let t=Math.floor(e/8),n=e%8;return this.values[t]>>n&1}size(){return this._size}getBuffer(){return this.values}};function iw(e,t,n){if(!t)return e;let r=t.size(),i=e.constructor,a=new i(r),o=0;for(let i=0;i<r;i++)a[i]=t.get(i)?e[o++]:n;return a}function aw(e,t,n){if(!n)return e;let r=n.size(),i=new rw(e,t),a=new rw(new Uint8Array(Math.ceil(r/8)),r),o=0;for(let e=0;e<r;e++){let t=n.get(e)?i.get(o++):false;a.set(e,t);}return a.getBuffer()}function sw(e,t,n,r,i){let a=cw(e,Math.ceil(t/8),n,r);return i?aw(a,t,i):a}function cw(e,t,n,r){let i=new Uint8Array(t),a=0,o=r.get()+n;for(;a<t&&!(r.get()>=o);){let n=e[r.increment()];if(n<=127){let o=n+3,s=e[r.increment()],c=Math.min(a+o,t);i.fill(s,a,c),a=c;}else {let o=256-n;for(let n=0;n<o&&a<t;n++)i[a++]=e[r.increment()];}}return r.set(o),i}function lw(e,t,n,r){let i=t.get(),a=i+n*Float32Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float32Array(o);return t.set(a),r?iw(s,r,0):s}function uw(e,t,n,r){let i=t.get(),a=i+n*Float64Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float64Array(o);return t.set(a),r?iw(s,r,0):s}function dw(e,t,n){let r=t.get(),i=n*Uint32Array.BYTES_PER_ELEMENT,a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=new Uint32Array(n);for(let e=0;e<n;e++)o[e]=a.getUint32(r+e*Uint32Array.BYTES_PER_ELEMENT,true);return t.add(i),o}function fw(e,t,n){let r=t.get(),i=n*BigUint64Array.BYTES_PER_ELEMENT,a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=new BigUint64Array(n);for(let e=0;e<n;e++)o[e]=a.getBigUint64(r+e*BigUint64Array.BYTES_PER_ELEMENT,true);return t.add(i),o}const pw=new TextDecoder;function mw(e,t,n){return n-t>=12?pw.decode(e.subarray(t,n)):hw(e,t,n)}function hw(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o;}return r}function gw(e,t,n,r,i){return jw(yw(e,t,n),n,r,i)}function _w(e,t,n,r,i){return Mw(yw(e,t,n),n,r,i)}function vw(e,t,n){return Iw(yw(e,t,n),n)}function yw(e,t,n){let r=n.physicalLevelTechnique;switch(r){case aS.FAST_PFOR:return aC(e,n.numValues,n.byteLength,t);case aS.VARINT:return $S(e,t,n.numValues);case aS.NONE:return dw(e,t,n.numValues);default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function bw(e,t,n){let r=n.physicalLevelTechnique;switch(r){case aS.VARINT:return eC(e,t,n.numValues);case aS.NONE:return fw(e,t,n.numValues);default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function xw(e,t,n){let r=yw(e,t,n);return r.length===1?sC(r[0]):LC(r)}function Sw(e,t,n){let r=yw(e,t,n);return r.length===1?n.logicalLevelTechnique1===$.DELTA?sC(r[0]):r[0]:IC(r)}function Cw(e,t,n){return RC(yw(e,t,n))}function ww(e,t,n){return VC(eC(e,t,n.numValues))}function Tw(e,t,n,r){return Nw(bw(e,t,n),n,r)}function Ew(e,t,n,r){return Pw(bw(e,t,n),n,r)}function Dw(e,t,n,r){let i=Ow(e,t,n,false);return r?iw(i,r,0):i}function Ow(e,t,n,r){if(n.physicalLevelTechnique===aS.VARINT)return Fw(nC(e,t,n.numValues),n,r);let i=bw(e,t,n),a=Pw(i,n);return Float64Array.from(a,Number)}function kw(e,t,n){let r=bw(e,t,n);return r.length===1?cC(r[0]):BC(r)}function Aw(e,t,n){let r=bw(e,t,n);return r.length===1?n.logicalLevelTechnique1===$.DELTA?cC(r[0]):r[0]:zC(r)}function jw(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;if(!r)return AC(e,n.runs,n.numRleValues);e=pC(e,n.runs,n.numRleValues),i=gC(e);}else i=gC(e);break;case $.RLE:i=yC(e,t.runs,t.numRleValues);break;case $.MORTON:SC(e),i=new Int32Array(e);break;case $.COMPONENTWISE_DELTA:i=wC(e);break;case $.NONE:i=uC(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?iw(i,r,0):i}function Mw(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;i=MC(pC(e,n.runs,n.numRleValues));}else i=MC(e);break;case $.RLE:i=pC(e,t.runs,t.numRleValues);break;case $.MORTON:SC(e),i=e;break;case $.COMPONENTWISE_DELTA:i=PC(e);break;case $.NONE:i=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?iw(i,r,0):i}function Nw(e,t,n){let r;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let i=t;if(!n)return jC(e,i.runs,i.numRleValues);e=mC(e,i.runs,i.numRleValues),r=_C(e);}else r=_C(e);break;case $.RLE:r=bC(e,t.runs,t.numRleValues);break;case $.NONE:r=dC(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?iw(r,n,0n):r}function Pw(e,t,n){let r;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;r=NC(mC(e,n.runs,n.numRleValues));}else r=NC(e);break;case $.RLE:r=mC(e,t.runs,t.numRleValues);break;case $.NONE:r=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?iw(r,n,0n):r}function Fw(e,t,n){switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;e=hC(e,n.runs,n.numRleValues);}return vC(e),e;case $.RLE:return zw(e,t,n);case $.NONE:return e;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}}function Iw(e,t){if(t.logicalLevelTechnique1===$.DELTA&&t.logicalLevelTechnique2===$.NONE)return DC(e);if(t.logicalLevelTechnique1===$.RLE&&t.logicalLevelTechnique2===$.NONE){let n=t;return kC(e,n.runs,n.numRleValues)}if(t.logicalLevelTechnique1===$.NONE&&t.logicalLevelTechnique2===$.NONE){CC(e);let n=new Uint32Array(t.numValues+1);return n[0]=0,n.set(e,1),n}if(t.logicalLevelTechnique1===$.DELTA&&t.logicalLevelTechnique2===$.RLE){let n=t,r=OC(e,n.runs,n.numRleValues);return SC(r),new Uint32Array(r)}throw Error(`Only delta encoding is supported for transforming length to offset streams yet.`)}function Lw(e,t,n,r,i=`int32`){let a=e.logicalLevelTechnique1;if(a===$.RLE)return e.runs===1?nw.CONST:nw.FLAT;if(a!==$.DELTA||e.logicalLevelTechnique2!==$.RLE)return e.numValues===1?nw.CONST:nw.FLAT;let o=t instanceof rw?t.size():t,s=e;if(s.numRleValues!==o)return nw.FLAT;if(s.runs===1)return nw.SEQUENCE;if(s.runs!==2)return e.numValues===1?nw.CONST:nw.FLAT;let c=r.get();if(e.physicalLevelTechnique===aS.VARINT)return Rw(n,r,i)?nw.SEQUENCE:e.numValues===1?nw.CONST:nw.FLAT;let l=r.get(),u=new Int32Array(n.buffer,n.byteOffset+l,4);return r.set(c),u[2]===2&&u[3]===2?nw.SEQUENCE:e.numValues===1?nw.CONST:nw.FLAT}function Rw(e,t,n){let r=new iS(t.get());if(n===`int64`){let t=eC(e,r,4);return t[2]===2n&&t[3]===2n}let i=$S(e,r,4);return i[2]===2&&i[3]===2}function zw(e,t,n){return n?xC(e,t.runs,t.numRleValues):hC(e,t.runs,t.numRleValues)}var Bw=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Vw=class extends Xx{constructor(e,t,n,r,i){super(e,i?BigInt64Array.of(t):BigUint64Array.of(t),n,r);}getValueFromBuffer(e){return this.dataBuffer[0]+BigInt(e)*this.delta}};function Hw(e,t,n){return {x:Uw(e,t)-n,y:Uw(e>>1,t)-n}}function Uw(e,t){let n=0;for(let r=0;r<t;r++)n|=(e&1<<2*r)>>r;return n}var Ww;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`,e[e.MULTIPOINT=3]=`MULTIPOINT`,e[e.MULTILINESTRING=4]=`MULTILINESTRING`,e[e.MULTIPOLYGON=5]=`MULTIPOLYGON`;})(Ww||={});var Gw;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`;})(Gw||={});var Kw;(function(e){e[e.MORTON=0]=`MORTON`,e[e.VEC_2=1]=`VEC_2`,e[e.VEC_3=2]=`VEC_3`;})(Kw||={});function qw(e){let t=Array(e.numGeometries),n=1,r=1,i=1,a=0,o=0,s=0,c=e.mortonSettings,l=e.topologyVector,d=l.geometryOffsets,f=l.partOffsets,p=l.ringOffsets,m=e.vertexOffsets,h=!m||m.length===0,g=e.containsPolygonGeometry(),_=e.vertexBuffer;for(let l=0;l<e.numGeometries;l++){let v=e.geometryType(l);switch(v){case Ww.POINT:{let l,g;if(h)l=_[o++],g=_[o++];else if(e.vertexBufferType===Kw.MORTON){let e=_[m[s++]],t=Hw(e,c.numBits,c.coordinateShift);l=t.x,g=t.y;}else {let e=m[s++]*2;l=_[e],g=_[e+1];}t[a++]=[[new u(l,g)]],d&&i++,f&&n++,p&&r++;}break;case Ww.MULTIPOINT:{let l=d[i]-d[i-1];i++;let f;if(h){f=Array(l);for(let e=0;e<l;e++){let t=_[o++],n=_[o++];f[e]=new u(t,n);}}else f=Jw(e.vertexBufferType,_,m,s,l,false,c),s+=l;t[a++]=f.map(e=>[e]),n+=l,r+=l;}break;case Ww.LINESTRING:{let l;g?(l=p[r]-p[r-1],r++):l=f[n]-f[n-1],n++;let u;h?(u=Yw(_,o,l,false),o+=l*2):(u=Jw(e.vertexBufferType,_,m,s,l,false,c),s+=l),t[a++]=[u],d&&i++;}break;case Ww.POLYGON:{let l=f[n]-f[n-1];n++;let u=Array(l-1),g,v=p[r]-p[r-1];if(r++,h){g=Yw(_,o,v,true),o+=v*2;for(let e=0;e<u.length;e++)v=p[r]-p[r-1],r++,u[e]=Yw(_,o,v,true),o+=v*2;}else {g=Jw(e.vertexBufferType,_,m,s,v,true,c),s+=v;for(let t=0;t<u.length;t++)v=p[r]-p[r-1],r++,u[t]=Jw(e.vertexBufferType,_,m,s,v,true,c),s+=v;}t[a++]=[g].concat(u),d&&i++;}break;case Ww.MULTILINESTRING:{let l=d[i]-d[i-1];i++;let u=Array(l);for(let t=0;t<l;t++){let i;if(g?(i=p[r]-p[r-1],r++):i=f[n]-f[n-1],n++,h)u[t]=Yw(_,o,i,false),o+=i*2;else {let n=Jw(e.vertexBufferType,_,m,s,i,false,c);u[t]=n,s+=i;}}t[a++]=u;}break;case Ww.MULTIPOLYGON:{let l=d[i]-d[i-1];i++;let u=Array(l);for(let t=0;t<l;t++){let i=f[n]-f[n-1];n++;let a,l=Array(i-1),d=p[r]-p[r-1];r++,h?(a=Yw(_,o,d,true),o+=d*2):(a=Jw(e.vertexBufferType,_,m,s,d,true,c),s+=d);for(let t=0;t<l.length;t++){let n=p[r]-p[r-1];r++,h?(l[t]=Yw(_,o,n,true),o+=n*2):(l[t]=Jw(e.vertexBufferType,_,m,s,n,true,c),s+=n);}u[t]=[a].concat(l);}t[a++]=u.flat();}break;default:throw Error(`The specified geometry type (${v}) is currently not supported.`)}}return t}function Jw(e,t,n,r,i,a,o){return e===Kw.MORTON?Zw(t,n,r,i,a,o):Xw(t,n,r,i,a)}function Yw(e,t,n,r){let i=Array(r?n+1:n);for(let r=0;r<n*2;r+=2){let n=e[t+r],a=e[t+r+1];i[r/2]=new u(n,a);}return r&&(i[i.length-1]=i[0]),i}function Xw(e,t,n,r,i){let a=Array(i?r+1:r);for(let i=0;i<r*2;i+=2){let r=t[n+i/2]*2,o=e[r],s=e[r+1];a[i/2]=new u(o,s);}return i&&(a[a.length-1]=a[0]),a}function Zw(e,t,n,r,i,a){let o=Array(i?r+1:r);for(let i=0;i<r;i++){let r=e[t[n+i]],s=Hw(r,a.numBits,a.coordinateShift);o[i]=new u(s.x,s.y);}return i&&(o[o.length-1]=o[0]),o}var Qw=class{constructor(e,t,n,r,i){this._vertexBufferType=e,this._topologyVector=t,this._vertexOffsets=n,this._vertexBuffer=r,this._mortonSettings=i;}get vertexBufferType(){return this._vertexBufferType}get topologyVector(){return this._topologyVector}get vertexOffsets(){return this._vertexOffsets}get vertexBuffer(){return this._vertexBuffer}getSimpleEncodedVertex(e){let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return [this.vertexBuffer[t],this.vertexBuffer[t+1]]}getVertex(e){if(this.vertexOffsets&&this.mortonSettings){let t=this.vertexOffsets[e],n=this.vertexBuffer[t],r=Hw(n,this.mortonSettings.numBits,this.mortonSettings.coordinateShift);return [r.x,r.y]}let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return [this.vertexBuffer[t],this.vertexBuffer[t+1]]}getGeometries(){return qw(this)}get mortonSettings(){return this._mortonSettings}};function $w(e,t,n,r,i){return new tT(e,t,Kw.VEC_2,n,r,i)}function eT(e,t,n,r,i,a){return new tT(e,t,Kw.MORTON,n,r,i,a)}var tT=class extends Qw{constructor(e,t,n,r,i,a,o){super(n,r,i,a,o),this._numGeometries=e,this._geometryType=t;}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsPolygonGeometry(){return this._geometryType===Ww.POLYGON||this._geometryType===Ww.MULTIPOLYGON}containsSingleGeometryType(){return true}};function nT(e,t,n,r){return new iT(Kw.VEC_2,e,t,n,r)}function rT(e,t,n,r,i){return new iT(Kw.MORTON,e,t,n,r,i)}var iT=class extends Qw{constructor(e,t,n,r,i,a){super(e,n,r,i,a),this._geometryTypes=t;}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsPolygonGeometry(){for(let e=0;e<this.numGeometries;e++)if(this.geometryType(e)===Ww.POLYGON||this.geometryType(e)===Ww.MULTIPOLYGON)return true;return false}containsSingleGeometryType(){return false}},aT=class{constructor(e,t,n,r){this._triangleOffsets=e,this._indexBuffer=t,this._vertexBuffer=n,this._topologyVector=r;}get triangleOffsets(){return this._triangleOffsets}get indexBuffer(){return this._indexBuffer}get vertexBuffer(){return this._vertexBuffer}get topologyVector(){return this._topologyVector}getGeometries(){if(!this._topologyVector)throw Error(`Cannot convert GpuVector to coordinates without topology information`);let e=new Uint32Array(this.numGeometries);for(let t=0;t<this.numGeometries;t++)e[t]=this.geometryType(t);return nT(e,this._topologyVector,void 0,this._vertexBuffer).getGeometries()}[Symbol.iterator](){return null}};function oT(e,t,n,r,i,a){return new sT(e,t,n,r,i,a)}var sT=class extends aT{constructor(e,t,n,r,i,a){super(n,r,i,a),this._numGeometries=e,this._geometryType=t;}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsSingleGeometryType(){return true}};function cT(e,t,n,r,i){return new lT(e,t,n,r,i)}var lT=class extends aT{constructor(e,t,n,r,i){super(t,n,r,i),this._geometryTypes=e;}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsSingleGeometryType(){return false}};function uT(e,t,n,r,i){let a=QC(e,n),o=Lw(a,r,e,n),s,c,l,u;if(o===nw.CONST){let o=Sw(e,n,a),d,f,p,m;for(let r=0;r<t-1;r++){let t=QC(e,n);switch(t.physicalStreamType){case HC.LENGTH:switch(t.logicalStreamType.lengthType){case GC.GEOMETRIES:d=vw(e,n,t);break;case GC.PARTS:f=vw(e,n,t);break;case GC.RINGS:p=vw(e,n,t);break;case GC.TRIANGLES:m=vw(e,n,t);}break;case HC.OFFSET:switch(t.logicalStreamType.offsetType){case WC.VERTEX:s=_w(e,n,t);break;case WC.INDEX:u=_w(e,n,t);}break;case HC.DATA:if(UC.VERTEX===t.logicalStreamType.dictionaryType)c=gw(e,n,t,i);else {let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=_w(e,n,t,i);}}}return u?d!==void 0||f!==void 0?oT(r,o,m,u,c,{geometryOffsets:d,partOffsets:f,ringOffsets:p}):oT(r,o,m,u,c):l===void 0?$w(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c):eT(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c,l)}let d=_w(e,n,a),f,p,m,h;for(let r=0;r<t-1;r++){let t=QC(e,n);switch(t.physicalStreamType){case HC.LENGTH:switch(t.logicalStreamType.lengthType){case GC.GEOMETRIES:f=_w(e,n,t);break;case GC.PARTS:p=_w(e,n,t);break;case GC.RINGS:m=_w(e,n,t);break;case GC.TRIANGLES:h=vw(e,n,t);}break;case HC.OFFSET:switch(t.logicalStreamType.offsetType){case WC.VERTEX:s=_w(e,n,t);break;case WC.INDEX:u=_w(e,n,t);}break;case HC.DATA:if(UC.VERTEX===t.logicalStreamType.dictionaryType)c=gw(e,n,t,i);else {let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=_w(e,n,t,i);}}}let g,_,v;return f?(g=dT(d,f,2),p&&m?(_=fT(d,g,p,false),v=mT(d,g,_,m)):p&&(_=pT(d,g,p))):p&&m?(_=dT(d,p,1),v=fT(d,_,m,true)):p&&(_=dT(d,p,0)),u&&!_?cT(d,h,u,c):u?cT(d,h,u,c,{geometryOffsets:g,partOffsets:_,ringOffsets:v}):l===void 0?nT(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c):rT(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c,l)}function dT(e,t,n){let r=new Uint32Array(e.length+1),i=0;r[0]=i;let a=0;for(let o=0;o<e.length;o++)i=r[o+1]=i+(e[o]>n?t[a++]:1);return r}function fT(e,t,n,r){let i=new Uint32Array(t[t.length-1]+1),a=0;i[0]=a;let o=1,s=0;for(let c=0;c<e.length;c++){let l=e[c],u=t[c+1]-t[c];if(l===5||l===2||r&&(l===4||l===1))for(let e=0;e<u;e++)a=i[o++]=a+n[s++];else for(let e=0;e<u;e++)i[o++]=++a;}return i}function pT(e,t,n){let r=new Uint32Array(t[t.length-1]+1),i=0;r[0]=i;let a=1,o=0;for(let s=0;s<e.length;s++){let c=e[s],l=t[s+1]-t[s];if(c===4||c===1)for(let e=0;e<l;e++)i=r[a++]=i+n[o++];else for(let e=0;e<l;e++)r[a++]=++i;}return r}function mT(e,t,n,r){let i=new Uint32Array(n[n.length-1]+1),a=0;i[0]=a;let o=1,s=1,c=0;for(let l=0;l<e.length;l++){let u=e[l],d=t[l+1]-t[l];if(u!==0&&u!==3)for(let e=0;e<d;e++){let e=n[o]-n[o-1];o++;for(let t=0;t<e;t++)a=i[s++]=a+r[c++];}else for(let e=0;e<d;e++)i[s++]=++a,o++;}return i}var hT=class extends Kx{constructor(e,t,n){super(e,t.getBuffer(),n),this.dataVector=t;}getValueFromBuffer(e){return this.dataVector.get(e)}},gT=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},_T=class extends Kx{constructor(e,t,n,r){super(e,r?BigInt64Array.of(t):BigUint64Array.of(t),n);}getValueFromBuffer(e){return this.dataBuffer[0]}},vT=class extends Kx{constructor(e,t,n,r){super(e,n,r),this.offsetBuffer=t;}},yT=class extends vT{constructor(e,t,n,r){super(e,t,n,r??t.length-1);}getValueFromBuffer(e){let t=this.offsetBuffer[e],n=this.offsetBuffer[e+1];return mw(this.dataBuffer,t,n)}},bT=class extends vT{constructor(e,t,n,r,i){super(e,n,r,i??t.length),this.indexBuffer=t,this.indexBuffer=t;}getValueFromBuffer(e){let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return mw(this.dataBuffer,n,r)}};function xT(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];i===255?(n++,r++):n+=e[i];}return n}function ST(e,t,n){let r=new Uint32Array(t.length);for(let e=1;e<t.length;e++)r[e]=r[e-1]+t[e-1];let i=new Uint8Array(xT(t,n)),a=0;for(let o=0;o<n.length;o++){let s=n[o];if(s===255)o++,i[a++]=n[o];else {let n=t[s],o=r[s];for(;n-->0;)i[a++]=e[o++];}}return i}var CT=class extends vT{constructor(e,t,n,r,i,a,o,s){super(e,n,r,o??t.length),this.indexBuffer=t,this.symbolOffsetBuffer=i,this.symbolTableBuffer=a,this.sharedDictionaryCache=s;}getValueFromBuffer(e){this.decodedDictionary??(this.decodedDictionary=this.sharedDictionaryCache?.decodedDictionary,this.decodedDictionary??(this.decodedDictionary=this.decodeDictionary(),this.sharedDictionaryCache&&(this.sharedDictionaryCache.decodedDictionary=this.decodedDictionary)));let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return mw(this.decodedDictionary,n,r)}decodeDictionary(){return this.symbolLengthBuffer??=this.offsetToLengthBuffer(this.symbolOffsetBuffer),ST(this.symbolTableBuffer,this.symbolLengthBuffer,this.dataBuffer)}offsetToLengthBuffer(e){let t=new Uint32Array(e.length-1),n=e[0];for(let r=1;r<e.length;r++){let i=e[r];t[r-1]=i-n,n=i;}return t}};function wT(e,t,n,r,i){let a,o,s,c,l,u=i,d,f;for(let e=0;e<r;e++){let e=QC(t,n);switch(e.physicalStreamType){case HC.PRESENT:{let r=new rw(sw(t,e.numValues,e.byteLength,n),e.numValues);u=i??r;break}case HC.OFFSET:o=_w(t,n,e,void 0,u);break;case HC.LENGTH:{let r=vw(t,n,e);GC.DICTIONARY===e.logicalStreamType.lengthType?a=r:GC.SYMBOL===e.logicalStreamType.lengthType?c=r:d=r;break}case HC.DATA:{let r=t.subarray(n.get(),n.get()+e.byteLength);n.add(e.byteLength);let i=e.logicalStreamType.dictionaryType;UC.FSST===i?l=r:UC.SINGLE===i||UC.SHARED===i?s=r:UC.NONE===i&&(f=r);break}}}return TT(e,l,o,a,s,c,u)??ET(e,s,o,a,u)??DT(e,d,f,o,u)}function TT(e,t,n,r,i,a,o){if(t){if(!n||!r||!i||!a)throw Error(`Incomplete FSST dictionary string column "${e}"`);return new CT(e,n,r,i,a,t,o)}}function ET(e,t,n,r,i){if(t){if(!n||!r)throw Error(`Incomplete dictionary string column "${e}"`);return i?new bT(e,n,r,t,i):new bT(e,n,r,t)}}function DT(e,t,n,r,i){if(t&&n){if(r)return i?new bT(e,r,t,n,i):new bT(e,r,t,n);if(i&&i.size()!==t.length-1){let r=new Uint32Array(i.size()),a=0;for(let e=0;e<i.size();e++)i.get(e)?r[e]=a++:r[e]=0;return new bT(e,r,t,n,i)}return i?new yT(e,t,n,i):new yT(e,t,n)}}function OT(e,t,n,r){let i,a,o,s,c=false;for(;!c;){let n=QC(e,t);switch(n.physicalStreamType){case HC.LENGTH:GC.DICTIONARY===n.logicalStreamType.lengthType?i=vw(e,t,n):o=vw(e,t,n);break;case HC.DATA:UC.SINGLE===n.logicalStreamType.dictionaryType||UC.SHARED===n.logicalStreamType.dictionaryType?(a=e.subarray(t.get(),t.get()+n.byteLength),c=true):s=e.subarray(t.get(),t.get()+n.byteLength),t.add(n.byteLength);}}if(n.type!==`complexType`)throw Error(`Shared dictionary column ${n.name} must be a complex (struct) column.`);if(!i||!a)throw Error(`Incomplete shared dictionary for column "${n.name}"`);let l=n.complexType.children,u=[],d=s?{}:void 0,f=0;for(let c of l){let l=$S(e,t,1)[0];if(l===0)continue;let p=c.name?`${n.name}${c.name}`:n.name;if(c.type!==`scalarField`||c.scalarField.physicalType!==tS.STRING)throw Error(`Currently only scalar string fields are implemented for a struct.`);if(l>1&&!c.nullable||l===1&&c.nullable)throw Error(`The number of streams for the child field ${c.name} does not match its nullability. nullibilty: ${c.nullable}, numStreams: ${l}`);let m;if(c.nullable){let n=QC(e,t);m=new rw(sw(e,n.numValues,n.byteLength,t),n.numValues);}let h=_w(e,t,QC(e,t),void 0,m);if(s){if(!o)throw Error(`Incomplete shared FSST dictionary for column "${p}"`);u[f++]=new CT(p,h,i,a,o,s,m,d);}else u[f++]=new bT(p,h,i,a,m);}return u}var kT=class extends Kx{constructor(e,t,n){super(e,/* @__PURE__ */ new Uint8Array,n??t.length),this.values=t;}getValueFromBuffer(e){return this.values[e]}},AT;(function(e){e[e.STRING=1]=`STRING`,e[e.INT32=2]=`INT32`,e[e.UINT32=4]=`UINT32`,e[e.INT64=8]=`INT64`,e[e.UINT64=16]=`UINT64`,e[e.FLOAT=32]=`FLOAT`,e[e.DOUBLE=64]=`DOUBLE`,e[e.PRESENCE=128]=`PRESENCE`;})(AT||={});var jT;(function(e){e[e.FALSE=0]=`FALSE`,e[e.TRUE=1]=`TRUE`,e[e.START_MAP=2]=`START_MAP`,e[e.START_LIST=3]=`START_LIST`,e[e.COUNT=4]=`COUNT`;})(jT||={});function MT(e,t,n,r){let i=NT(n);if(r===0)return i.map(e=>new kT(e,[]));let a=PT(e,t,r),o=(a.presentStream?a.presentCount:a.lengthStream.length)/i.length,s=[],c=0,l=0;for(let e=0;e<i.length;e++){let t=zT(a,e,o,c,l);s.push(new kT(i[e],t.value,t.nullabilityBuffer)),c=t.countsEnd,l=t.valuesEnd;}return s}function NT(e){let t=e.type===`complexType`?e.complexType.children:void 0;return !t||t.length===0?[e.name]:t.map(t=>e.name+(t.name??``))}function PT(e,t,n){let r=e[t.get()];t.add(1);let i=_w(e,t,QC(e,t)),a=n-1,o=[];r&AT.STRING&&(a-=FT(e,t,o)),a-=IT(e,t,r,o),a-=LT(e,t,r,o);let s,c=0;if(r&AT.PRESENCE){let n=RT(e,t);s=n.value,c=n.count,a--;}let l=/* @__PURE__ */ new Uint32Array;if(a>0&&(l=_w(e,t,QC(e,t)),a--),a!==0)throw Error(`Unexpected number of remaining streams while decoding map column: ${a}`);return {lengthStream:i,dictionary:o,presentStream:s,presentCount:c,flattenedValues:l}}function FT(e,t,n){let r=e[t.get()];t.add(1);let i=wT(``,e,t,r);if(i)for(let e=0;e<i.size;e++)n.push(i.getValue(e));return r}function IT(e,t,n,r){let i=0;return n&AT.INT32?(GT(r,gw(e,t,QC(e,t))),i++):n&AT.INT64&&(GT(r,Tw(e,t,QC(e,t))),i++),n&AT.UINT32?(GT(r,_w(e,t,QC(e,t))),i++):n&AT.UINT64&&(GT(r,Ew(e,t,QC(e,t))),i++),i}function LT(e,t,n,r){let i=0;return n&AT.FLOAT&&(GT(r,lw(e,t,QC(e,t).numValues)),i++),n&AT.DOUBLE&&(GT(r,uw(e,t,QC(e,t).numValues)),i++),i}function RT(e,t){let n=QC(e,t);if(n.physicalStreamType!==HC.PRESENT)throw Error(`Expected PRESENT stream for map column but found: ${n.physicalStreamType}`);let r=n.numValues,i=t.get(),a=new rw(sw(e,r,n.byteLength,t),r);return t.set(i+n.byteLength),{value:a,count:r}}function zT(e,t,n,r,i){let{lengthStream:a,flattenedValues:o,presentStream:s,dictionary:c}=e,l=t*n,u=n,d;if(s){d=new rw(new Uint8Array(Math.ceil(n/8)),n),u=0;for(let e=0;e<n;e++)s.get(l+e)&&(d.set(e,true),u++);}let f=r+u;if(f>a.length)throw Error(`Merged map counts underflow while decoding child streams`);let p=Array(n),m=r,h=i;for(let e=0;e<n;e++){if(s&&!s.get(l+e)){p[e]=null;continue}let t=h+a[m++];if(t>o.length)throw Error(`Map value stream underflow while decoding feature payload`);let n=BT(o,h,t,c);p[e]=n.value,h=n.nextIndex;}let g=0;for(let e=r;e<f;e++)g+=a[e];let _=i+g;if(h!==_)throw Error(`Unused flattened map values remain after decode`);return {value:p,nullabilityBuffer:d,countsEnd:f,valuesEnd:_}}function BT(e,t,n,r){return n-t===1||e[t]===jT.START_LIST?HT(e,t,n,r):VT(e,t,n,r)}function VT(e,t,n,r){let i=Object.create(null),a=t;for(;a<n;){let t=WT(e[a++],r);if(typeof t!=`string`)throw Error(`Map key dictionary index does not resolve to a string: ${t}`);let o=HT(e,a,n,r);i[t]=o.value,a=o.nextIndex;}return {value:i,nextIndex:a}}function HT(e,t,n,r){if(t>=n)throw Error(`Unexpected end of map value stream`);let i=e[t];if(i===jT.FALSE)return {value:false,nextIndex:t+1};if(i===jT.TRUE)return {value:true,nextIndex:t+1};if(i===jT.START_MAP){let i=UT(e,t,n);return {value:VT(e,t+2,i,r).value,nextIndex:i}}if(i===jT.START_LIST){let i=UT(e,t,n),a=[],o=t+2;for(;o<i;){let t=HT(e,o,i,r);a.push(t.value),o=t.nextIndex;}return {value:a,nextIndex:i}}return {value:WT(i,r),nextIndex:t+1}}function UT(e,t,n){if(t+1>=n)throw Error(`Missing length for nested map/list payload`);let r=e[t+1];if(r<2)throw Error(`Invalid nested payload length: ${r}`);let i=t+r;if(i>n)throw Error(`Nested payload exceeds containing payload bounds`);return i}function WT(e,t){let n=e-jT.COUNT;if(n<0||n>=t.length)throw Error(`Scalar dictionary index out of range: ${e}`);return t[n]}function GT(e,t){for(let n of t)e.push(n);}function KT(e,t,n,r,i,a){return n.type===`scalarType`?qT(r,e,t,i,n.scalarType,n):n.complexType?.physicalType===nS.MAP?MT(e,t,n,r):r===0?null:OT(e,t,n)}function qT(e,t,n,r,i,a){let o;if(e===0)return null;if(a.nullable){let e=QC(t,n),r=e.numValues,i=n.get(),a=sw(t,r,e.byteLength,n);n.set(i+e.byteLength),o=new rw(a,e.numValues);}let s=o??r;switch(i.physicalType){case tS.UINT_32:case tS.INT_32:return QT(t,n,a,i,s);case tS.STRING:{let r=a.nullable?e-1:e;return wT(a.name,t,n,r,o)??null}case tS.BOOLEAN:return JT(t,n,a,r,s);case tS.UINT_64:case tS.INT_64:return ZT(t,n,a,s,i);case tS.FLOAT:return YT(t,n,a,s);case tS.DOUBLE:return XT(t,n,a,s);default:throw Error(`The specified data type for the field is currently not supported: ${i}`)}}function JT(e,t,n,r,i){let a=QC(e,t),o=a.numValues,s=t.get(),c=$T(i)?i:void 0,l=sw(e,o,a.byteLength,t,c);t.set(s+a.byteLength);let u=new rw(l,o);return new hT(n.name,u,i)}function YT(e,t,n,r){let i=QC(e,t),a=$T(r)?r:void 0,o=lw(e,t,i.numValues,a);return new gT(n.name,o,r)}function XT(e,t,n,r){let i=QC(e,t),a=$T(r)?r:void 0,o=uw(e,t,i.numValues,a);return new Yx(n.name,o,r)}function ZT(e,t,n,r,i){let a=QC(e,t),o=Lw(a,r,e,t,`int64`),s=i.physicalType===tS.INT_64;if(o===nw.FLAT){let i=$T(r)?r:void 0,o=s?Tw(e,t,a,i):Ew(e,t,a,i);return new Bw(n.name,o,r)}if(o===nw.SEQUENCE){let r=ww(e,t,a);return new Vw(n.name,r[0],r[1],a.numRleValues,s)}let c=s?kw(e,t,a):Aw(e,t,a);return new _T(n.name,c,r,s)}function QT(e,t,n,r,i){let a=QC(e,t),o=Lw(a,i,e,t),s=r.physicalType===tS.INT_32;if(o===nw.FLAT){let r=$T(i)?i:void 0,o=s?gw(e,t,a,void 0,r):_w(e,t,a,void 0,r);return new Jx(n.name,o,i)}if(o===nw.SEQUENCE){let r=Cw(e,t,a);return new Zx(n.name,r[0],r[1],a.numRleValues,s)}let c=s?xw(e,t,a):Sw(e,t,a);return new Qx(n.name,c,i,s)}function $T(e){return e instanceof rw}const eE={ID:0,ID_NULLABLE:1,ID_LONG:2,GEOMETRY:4,SCALAR_BASE:10,STRUCT:30,MAP:31};function tE(e){switch(e){case eE.ID:case eE.ID|eE.ID_NULLABLE:case eE.ID|eE.ID_LONG:case eE.ID|eE.ID_LONG|eE.ID_NULLABLE:return {nullable:(e&eE.ID_NULLABLE)!==0,columnScope:eS.FEATURE,type:`scalarType`,scalarType:{longID:(e&eE.ID_LONG)!==0,type:`logicalType`,logicalType:rS.ID}};case eE.GEOMETRY:return {nullable:false,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.GEOMETRY,children:[]}};case eE.STRUCT:return {nullable:false,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.STRUCT,children:[]}};case eE.MAP:return {nullable:true,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.MAP,children:[]}};default:return sE(e)}}function nE(e){return e>=eE.SCALAR_BASE}function rE(e){return e===eE.STRUCT||e===eE.MAP}function iE(e){if(e.type===`scalarType`){let t=e.scalarType;if(t.type===`physicalType`)switch(t.physicalType){case tS.BOOLEAN:case tS.INT_8:case tS.UINT_8:case tS.INT_32:case tS.UINT_32:case tS.INT_64:case tS.UINT_64:case tS.FLOAT:case tS.DOUBLE:return false;case tS.STRING:return true;default:return false}if(t.type===`logicalType`)return false}else if(e.type===`complexType`){let t=e.complexType;if(t.type===`physicalType`)switch(t.physicalType){case nS.GEOMETRY:case nS.STRUCT:case nS.MAP:return true;default:return false}}return console.warn(`Unexpected column type in hasStreamCount`,e),false}function aE(e){return e.type===`scalarType`&&e.scalarType?.type===`logicalType`&&e.scalarType.logicalType===rS.ID}function oE(e){return e.type===`complexType`&&e.complexType?.type===`physicalType`&&e.complexType.physicalType===nS.GEOMETRY}function sE(e){let t;switch(e){case 10:case 11:t=tS.BOOLEAN;break;case 12:case 13:t=tS.INT_8;break;case 14:case 15:t=tS.UINT_8;break;case 16:case 17:t=tS.INT_32;break;case 18:case 19:t=tS.UINT_32;break;case 20:case 21:t=tS.INT_64;break;case 22:case 23:t=tS.UINT_64;break;case 24:case 25:t=tS.FLOAT;break;case 26:case 27:t=tS.DOUBLE;break;case 28:case 29:t=tS.STRING;break;default:return null}return {nullable:!!(e&1),columnScope:eS.FEATURE,type:`scalarType`,scalarType:{longID:false,type:`physicalType`,physicalType:t}}}const cE=new TextDecoder,lE=`0-3(ID), 4(GEOMETRY), 10-29(scalars), 30(STRUCT), 31(MAP)`;function uE(e,t){let n=$S(e,t,1)[0];if(n===0)return ``;let r=t.get(),i=r+n,a=e.subarray(r,i);return t.add(n),cE.decode(a)}function dE(e){let t=e.name,n=e.nullable;return e.type===`scalarType`?{type:`scalarField`,scalarField:e.scalarType,name:t,nullable:n}:{type:`complexField`,complexField:e.complexType,name:t,nullable:n}}function fE(e,t){let n=$S(e,t,1)[0]>>>0,r=n>=eE.SCALAR_BASE?tE(n):null;if(!r)throw Error(`Unsupported field type code ${n}. Supported: 10-29(scalars), 30(STRUCT), 31(MAP)`);let i={...r,name:uE(e,t)};if(i.type===`complexType`&&rE(n)){let n=i.complexType,r=$S(e,t,1)[0]>>>0;n.children=Array(r);for(let i=0;i<r;i++)n.children[i]=fE(e,t);}return dE(i)}function pE(e,t){let n=$S(e,t,1)[0]>>>0,r=tE(n);if(!r)throw Error(`Unsupported column type code ${n}. Supported: ${lE}`);let i;if(nE(n))i=uE(e,t);else if(n<eE.GEOMETRY)i=`id`;else if(n===eE.GEOMETRY)i=`geometry`;else throw Error(`Unsupported column type code ${n}. Supported: ${lE}`);let a={...r,name:i};if(a.type===`complexType`&&rE(n)){let n=$S(e,t,1)[0]>>>0,r=a.complexType;r.children=Array(n);for(let i=0;i<n;i++)r.children[i]=fE(e,t);}return a}function mE(e,t){let n={};n.featureTables=[];let r={};if(r.name=uE(e,t),r.name.length===0)throw Error(`Missing layer name`);let i=$S(e,t,1)[0]>>>0,a=$S(e,t,1)[0]>>>0;r.columns=Array(a);for(let n=0;n<a;n++)r.columns[n]=pE(e,t);return n.featureTables.push(r),[n,i]}function hE(e,t,n=true){let r=new iS(0),i=[];for(;r.get()<e.length;){let a=$S(e,r,1)[0]>>>0,o=r.get()+a;if(o>e.length)throw Error(`Block overruns tile: ${o} > ${e.length}`);let s=$S(e,r,1)[0]>>>0;if(s!==1&&s!==2){r.set(o);continue}let[c,l]=mE(e,r),u=c.featureTables[0],d=null,f=null,p=[],m=0;for(let i of u.columns){let a=i.name;if(aE(i)){let t=null;if(i.nullable){let n=QC(e,r),i=r.get(),a=sw(e,n.numValues,n.byteLength,r);r.set(i+n.byteLength),t=new rw(a,n.numValues);}let o=QC(e,r);m=t?t.size():o.decompressedCount,d=gE(e,i,r,a,o,t??m,n);}else if(oE(i)){let n=$S(e,r,1)[0];if(m===0){let t=r.get();m=QC(e,r).decompressedCount,r.set(t);}f=uT(e,n,r,m,t);}else {let t=iE(i)?$S(e,r,1)[0]:1;if(t===0)continue;let n=KT(e,r,i,t,m);if(n){if(Array.isArray(n))for(let e of n)p.push(e);else p.push(n);}}}let h=new $x(u.name,f,d,p,l);i.push(h),r.set(o);}return i}function gE(e,t,n,r,i,a,o=false){let s=t.scalarType?.longID?tS.UINT_64:tS.UINT_32,c=typeof a==`number`?void 0:a,l=Lw(i,a,e,n,s===tS.UINT_64?`int64`:`int32`);if(s===tS.UINT_32)switch(l){case nw.FLAT:return new Jx(r,_w(e,n,i,void 0,c),a);case nw.SEQUENCE:{let t=Cw(e,n,i);return new Zx(r,t[0],t[1],i.numRleValues,false)}case nw.CONST:return new Qx(r,Sw(e,n,i),a,false)}switch(l){case nw.FLAT:return o?new Yx(r,Dw(e,n,i,c),a):new Bw(r,Ew(e,n,i,c),a);case nw.SEQUENCE:{let t=ww(e,n,i);return new Vw(r,t[0],t[1],i.numRleValues,false)}case nw.CONST:return new _T(r,Aw(e,n,i),a,false)}throw Error(`Vector type not supported for id column.`)}var vE=class{constructor(e,t){switch(this._featureData=e,this.properties=this._featureData.properties||{},this._featureData.geometry?.type){case Ww.POINT:case Ww.MULTIPOINT:this.type=1;break;case Ww.LINESTRING:case Ww.MULTILINESTRING:this.type=2;break;case Ww.POLYGON:case Ww.MULTIPOLYGON:this.type=3;break;default:this.type=0;}this.extent=t,this.id=Number(this._featureData.id);}loadGeometry(){let e=[];for(let t of this._featureData.geometry.coordinates){let n=[];for(let e of t)n.push(new u(e.x,e.y));e.push(n);}return e}},yE=class{constructor(e){this.features=[],this.featureTable=e,this.name=e.name,this.extent=e.extent,this.version=2,this.features=e.getFeatures(),this.length=this.features.length;}feature(e){return new vE(this.features[e],this.extent)}},bE=class{constructor(e){this.layers={};let t=hE(new Uint8Array(e));this.layers=t.reduce((e,t)=>({...e,[t.name]:new yE(t)}),{});}};K(`FeatureIndex`,class{constructor(e,t){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Jn(P,16,0),this.grid3D=new Jn(P,16,0),this.featureIndexArray=new qu,this.promoteId=t;}insert(e,t,n,r,i,a){let o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(n,r,i);let s=a?this.grid3D:this.grid;for(let e of t){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)t[0]=Math.min(t[0],n.x),t[1]=Math.min(t[1],n.y),t[2]=Math.max(t[2],n.x),t[3]=Math.max(t[3],n.y);t[0]<8192&&t[1]<8192&&t[2]>=0&&t[3]>=0&&s.insert(o,t[0],t[1],t[2],t[3]);}}loadVTLayers(){if(!this.vtLayers){switch(this.encoding){case `mlt`:this.vtLayers=new bE(this.rawTileData).layers;break;default:this.vtLayers=new Gm(new V_(this.rawTileData)).layers;}this.sourceLayerCoder=new Wx(this.vtLayers?Object.keys(this.vtLayers).sort():[Ux]);}return this.vtLayers}query(e,t,n,r){this.loadVTLayers();let i=e.params,a=P/e.tileSize/e.scale,o=Ms(i.filter,`queryRenderedFeatures filter`,i.globalState),s=e.queryGeometry,c=e.queryPadding*a,l=$d.fromPoints(s),u=this.grid.query(l.minX-c,l.minY-c,l.maxX+c,l.maxY+c),d=$d.fromPoints(e.cameraQueryGeometry).expandBy(c),f=this.grid3D.query(d.minX,d.minY,d.maxX,d.maxY,(t,n,r,i)=>yf(e.cameraQueryGeometry,t-c,n-c,r+c,i+c));for(let e of f)u.push(e);u.sort(CE);let p={},m;for(let c of u){if(c===m)continue;m=c;let l=this.featureIndexArray.get(c),u=null;this.loadMatchingFeature(p,l.bucketIndex,l.sourceLayerIndex,l.featureIndex,o,i.layers,i.availableImages,t,n,e.transform.worldCoordinateHelper,r,(t,n,r)=>(u||=Zd(t),n.queryIntersectsFeature({queryGeometry:s,feature:t,featureState:r,geometry:u,zoom:this.z,transform:e.transform,pixelsToTileUnits:a,pixelPosMatrix:e.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:e.getElevation})));}return p}loadMatchingFeature(e,t,n,r,i,a,o,s,c,l,u,d){let f=this.bucketLayerIDs[t];if(a&&!f.some(e=>a.has(e)))return;let p=this.sourceLayerCoder.decode(n),m=this.vtLayers[p].feature(r);if(i.needGeometry){let e=Qd(m,true);if(!i.filter(new Ll(this.tileID.overscaledZ),e,this.tileID.canonical))return}else if(!i.filter(new Ll(this.tileID.overscaledZ),m))return;let h=this.getId(m,p);for(let t of f){if(a&&!a.has(t))continue;let n=s[t];if(!n)continue;let i={};h&&u&&(i=u.getState(n.sourceLayer||`_geojsonTileLayer`,h));let f=I({},c[t]);f.paint=SE(f.paint,n.paint,m,i,o),f.layout=SE(f.layout,n.layout,m,i,o);let p=!d||d(m,n,i);if(!p)continue;let g=new Gx(m,this.z,this.x,this.y,h,l);g.layer=f;let _=e[t];_===void 0&&(_=e[t]=[]),_.push({featureIndex:r,feature:g,intersectionZ:p});}}lookupSymbolFeatures(e,t,n,r,i,a,o,s){let c={};this.loadVTLayers();let l=Ms(i.filterSpec,`queryRenderedFeatures symbol filter`,i.globalState);for(let u of e)this.loadMatchingFeature(c,n,r,u,l,a,o,s,t,i.worldCoordinateHelper);return c}hasLayer(e){for(let t of this.bucketLayerIDs)for(let n of t)if(e===n)return true;return false}getId(e,t){let n=e.id;if(this.promoteId){let r=typeof this.promoteId==`string`?this.promoteId:this.promoteId[t];n=e.properties[r],typeof n==`boolean`&&(n=Number(n)),n===void 0&&e.properties?.cluster&&this.promoteId&&(n=Number(e.properties.cluster_id));}return n}},{omit:[`rawTileData`,`sourceLayerCoder`]});function xE(e){return typeof e==`object`&&!!e&&`evaluate`in e}function SE(e,t,n,r,i){return Nt(e,(e,a)=>{let o=t instanceof Gl?t.get(a):null;return xE(o)?o.evaluate(n,r,void 0,i):o})}function CE(e,t){return t-e}T();gg.members.find(e=>e.name===`crossTileID`).offset/4;var pO=`#ifdef GL_ES
|
|
20207
|
+
precision mediump float;
|
|
20208
|
+
#else
|
|
20209
|
+
#if !defined(lowp)
|
|
20210
|
+
#define lowp
|
|
20211
|
+
#endif
|
|
20212
|
+
#if !defined(mediump)
|
|
20213
|
+
#define mediump
|
|
20214
|
+
#endif
|
|
20215
|
+
#if !defined(highp)
|
|
20216
|
+
#define highp
|
|
20217
|
+
#endif
|
|
20218
|
+
#endif
|
|
20219
|
+
out highp vec4 fragColor;layout(std140) uniform ProjectionUBO {highp mat4 u_projection_matrix;highp mat4 u_projection_fallback_matrix;highp vec4 u_projection_tile_mercator_coords;highp vec4 u_projection_clipping_plane;highp float u_projection_transition;highp int u_projection_clip_antimeridian;};layout(std140) uniform FrameUBO {highp vec2 u_units_to_pixels;highp vec2 u_world_size;highp float u_camera_to_center_distance;highp float u_symbol_fade_change;highp float u_aspect_ratio;highp float u_device_pixel_ratio;highp vec2 u_viewport_size;highp vec2 u_pixel_extrude_scale;highp float u_pitch;};`,mO=`#ifdef GL_ES
|
|
20220
|
+
precision highp float;
|
|
20221
|
+
#else
|
|
20222
|
+
#if !defined(lowp)
|
|
20223
|
+
#define lowp
|
|
20224
|
+
#endif
|
|
20225
|
+
#if !defined(mediump)
|
|
20226
|
+
#define mediump
|
|
20227
|
+
#endif
|
|
20228
|
+
#if !defined(highp)
|
|
20229
|
+
#define highp
|
|
20230
|
+
#endif
|
|
20231
|
+
#endif
|
|
20232
|
+
vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const uint packedOpacity) {return vec2(float(packedOpacity >> 1u)/127.0,float(packedOpacity & 1u));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
|
|
20233
|
+
);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c
|
|
20234
|
+
);}
|
|
20235
|
+
#ifdef TERRAIN3D
|
|
20236
|
+
uniform sampler2D u_terrain;uniform highp sampler2D u_depth;layout(std140) uniform TerrainUBO {highp mat4 u_terrain_matrix;highp vec4 u_terrain_unpack;highp float u_terrain_dim;highp float u_terrain_exaggeration;};
|
|
20237
|
+
#endif
|
|
20238
|
+
const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {
|
|
20239
|
+
#ifdef TERRAIN3D
|
|
20240
|
+
highp float d=unpack(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));
|
|
20241
|
+
#else
|
|
20242
|
+
return 1.0;
|
|
20243
|
+
#endif
|
|
20244
|
+
}float calculate_visibility(vec4 pos) {
|
|
20245
|
+
#ifdef TERRAIN3D
|
|
20246
|
+
vec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;
|
|
20247
|
+
#else
|
|
20248
|
+
return 1.0;
|
|
20249
|
+
#endif
|
|
20250
|
+
}float ele(ivec2 pos) {
|
|
20251
|
+
#ifdef TERRAIN3D
|
|
20252
|
+
vec4 rgb=(texelFetch(u_terrain,pos,0)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
|
|
20253
|
+
#else
|
|
20254
|
+
return 0.0;
|
|
20255
|
+
#endif
|
|
20256
|
+
}float get_elevation(vec2 pos) {
|
|
20257
|
+
#ifdef TERRAIN3D
|
|
20258
|
+
#ifdef GLOBE
|
|
20259
|
+
if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}
|
|
20260
|
+
#endif
|
|
20261
|
+
vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.5;vec2 f=fract(coord);ivec2 c=ivec2(floor(coord));ivec2 hi=textureSize(u_terrain,0)-1;float tl=ele(clamp(c,ivec2(0),hi));float tr=ele(clamp(c+ivec2(1,0),ivec2(0),hi));float bl=ele(clamp(c+ivec2(0,1),ivec2(0),hi));float br=ele(clamp(c+ivec2(1,1),ivec2(0),hi));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;
|
|
20262
|
+
#else
|
|
20263
|
+
return 0.0;
|
|
20264
|
+
#endif
|
|
20265
|
+
}const float PI=3.141592653589793;
|
|
20266
|
+
#define PROJECTION_UBO
|
|
20267
|
+
layout(std140) uniform ProjectionUBO {highp mat4 u_projection_matrix;highp mat4 u_projection_fallback_matrix;highp vec4 u_projection_tile_mercator_coords;highp vec4 u_projection_clipping_plane;highp float u_projection_transition;highp int u_projection_clip_antimeridian;};layout(std140) uniform FrameUBO {highp vec2 u_units_to_pixels;highp vec2 u_world_size;highp float u_camera_to_center_distance;highp float u_symbol_fade_change;highp float u_aspect_ratio;highp float u_device_pixel_ratio;highp vec2 u_viewport_size;highp vec2 u_pixel_extrude_scale;highp float u_pitch;};`,hO=`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;
|
|
20268
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20269
|
+
fragColor=vec4(1.0);
|
|
20270
|
+
#endif
|
|
20271
|
+
}`,gO=`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos,a_pos);}`,_O=`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity;
|
|
20272
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20273
|
+
fragColor=vec4(1.0);
|
|
20274
|
+
#endif
|
|
20275
|
+
}`,vO=`uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}`,yO=`in vec3 v_data;in float v_visibility;
|
|
20276
|
+
#pragma maplibre: define highp vec4 color
|
|
20277
|
+
#pragma maplibre: define mediump float radius
|
|
20278
|
+
#pragma maplibre: define lowp float blur
|
|
20279
|
+
#pragma maplibre: define lowp float opacity
|
|
20280
|
+
#pragma maplibre: define highp vec4 stroke_color
|
|
20281
|
+
#pragma maplibre: define mediump float stroke_width
|
|
20282
|
+
#pragma maplibre: define lowp float stroke_opacity
|
|
20283
|
+
void main() {
|
|
20284
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20285
|
+
#pragma maplibre: initialize mediump float radius
|
|
20286
|
+
#pragma maplibre: initialize lowp float blur
|
|
20287
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20288
|
+
#pragma maplibre: initialize highp vec4 stroke_color
|
|
20289
|
+
#pragma maplibre: initialize mediump float stroke_width
|
|
20290
|
+
#pragma maplibre: initialize lowp float stroke_opacity
|
|
20291
|
+
vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;}
|
|
20292
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20293
|
+
fragColor=vec4(1.0);
|
|
20294
|
+
#endif
|
|
20295
|
+
}`,bO=`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform vec2 u_translate;layout(location=0) in ivec2 a_pos;out vec3 v_data;out float v_visibility;
|
|
20296
|
+
#pragma maplibre: define highp vec4 color
|
|
20297
|
+
#pragma maplibre: define mediump float radius
|
|
20298
|
+
#pragma maplibre: define lowp float blur
|
|
20299
|
+
#pragma maplibre: define lowp float opacity
|
|
20300
|
+
#pragma maplibre: define highp vec4 stroke_color
|
|
20301
|
+
#pragma maplibre: define mediump float stroke_width
|
|
20302
|
+
#pragma maplibre: define lowp float stroke_opacity
|
|
20303
|
+
void main(void) {
|
|
20304
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20305
|
+
#pragma maplibre: initialize mediump float radius
|
|
20306
|
+
#pragma maplibre: initialize lowp float blur
|
|
20307
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20308
|
+
#pragma maplibre: initialize highp vec4 stroke_color
|
|
20309
|
+
#pragma maplibre: initialize mediump float stroke_width
|
|
20310
|
+
#pragma maplibre: initialize lowp float stroke_opacity
|
|
20311
|
+
ivec2 pos_raw=a_pos+32768;vec2 extrude=vec2(pos_raw & 7)/7.0*2.0-1.0;vec2 circle_center=vec2(pos_raw >> 3)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) {
|
|
20312
|
+
#ifdef GLOBE
|
|
20313
|
+
vec3 center_vector=projectToSphere(circle_center);
|
|
20314
|
+
#endif
|
|
20315
|
+
float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else {
|
|
20316
|
+
#ifdef GLOBE
|
|
20317
|
+
vec4 projected_center=interpolateProjection(circle_center,center_vector,ele);
|
|
20318
|
+
#else
|
|
20319
|
+
vec4 projected_center=projectTileWithElevation(circle_center,ele);
|
|
20320
|
+
#endif
|
|
20321
|
+
corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);}
|
|
20322
|
+
#ifdef GLOBE
|
|
20323
|
+
vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);
|
|
20324
|
+
#else
|
|
20325
|
+
gl_Position=projectTileWithElevation(corner_position,ele);
|
|
20326
|
+
#endif
|
|
20327
|
+
} else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`,xO=`void main() {fragColor=vec4(1.0);}`;({prelude:CO(pO,mO),projectionMercator:CO(`
|
|
20328
|
+
void clipAntimeridian() {}`,`float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}`),projectionGlobe:CO(`in highp float v_projection_tile_x;void clipAntimeridian() {if (u_projection_clip_antimeridian !=0 && (v_projection_tile_x < 0.0 || v_projection_tile_x >=8192.0)) {discard;}}`,`#define GLOBE_RADIUS 6371008.8
|
|
20329
|
+
#ifndef PROJECTION_UBO
|
|
20330
|
+
uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;
|
|
20331
|
+
#endif
|
|
20332
|
+
out highp float v_projection_tile_x;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos
|
|
20333
|
+
);}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float t=exp(PI-(mercator_pos_y*PI*2.0));return (2.0*t)/(t*t+1.0);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY);if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;float spherical_x=mercator_pos.x*PI*2.0+PI;float t=exp(PI-(mercator_pos.y*PI*2.0));float t2=t*t;float denom=t2+1.0;float sin_sy=(t2-1.0)/denom;float cos_sy=(2.0*t)/denom;vec3 pos=vec3(sin(spherical_x)*cos_sy,sin_sy,cos(spherical_x)*cos_sy
|
|
20334
|
+
);if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:CO(hO,gO),backgroundPattern:CO(_O,vO),circle:CO(yO,bO),clippingMask:CO(xO,`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos,a_pos);}`),heatmap:CO(`uniform highp float u_intensity;in vec2 v_extrude;
|
|
20335
|
+
#pragma maplibre: define highp float weight
|
|
20336
|
+
#define GAUSS_COEF 0.3989422804014327
|
|
20337
|
+
void main() {
|
|
20338
|
+
#pragma maplibre: initialize highp float weight
|
|
20339
|
+
float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);fragColor=vec4(val,1.0,1.0,1.0);
|
|
20340
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20341
|
+
fragColor=vec4(1.0);
|
|
20342
|
+
#endif
|
|
20343
|
+
}`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;layout(location=0) in ivec2 a_pos;out vec2 v_extrude;
|
|
20344
|
+
#pragma maplibre: define highp float weight
|
|
20345
|
+
#pragma maplibre: define mediump float radius
|
|
20346
|
+
const highp float ZERO=1.0/255.0/16.0;
|
|
20347
|
+
#define GAUSS_COEF 0.3989422804014327
|
|
20348
|
+
void main(void) {
|
|
20349
|
+
#pragma maplibre: initialize highp float weight
|
|
20350
|
+
#pragma maplibre: initialize mediump float radius
|
|
20351
|
+
ivec2 pos_raw=a_pos+32768;vec2 unscaled_extrude=vec2(pos_raw & 7)/7.0*2.0-1.0;float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=vec2(pos_raw >> 3);
|
|
20352
|
+
#ifdef GLOBE
|
|
20353
|
+
vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0);
|
|
20354
|
+
#else
|
|
20355
|
+
gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));
|
|
20356
|
+
#endif
|
|
20357
|
+
}`),heatmapTexture:CO(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity;
|
|
20358
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20359
|
+
fragColor=vec4(0.0);
|
|
20360
|
+
#endif
|
|
20361
|
+
}`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world_size,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),collisionBox:CO(`in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}`,`layout(location=0) in vec2 a_anchor_pos;layout(location=1) in vec2 a_placed;layout(location=2) in vec2 a_box_real;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:CO(`in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}`,`layout(location=0) in vec2 a_pos;layout(location=1) in float a_radius;layout(location=2) in vec2 a_flags;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),colorRelief:CO(`#ifdef GL_ES
|
|
20362
|
+
precision highp float;
|
|
20363
|
+
#endif
|
|
20364
|
+
uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {vec4 data=texelFetch(u_elevation_stops,ivec2(stop,0),0)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else
|
|
20365
|
+
{l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0));
|
|
20366
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20367
|
+
fragColor=vec4(1.0);
|
|
20368
|
+
#endif
|
|
20369
|
+
}`,`uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=2.0/u_dimension;float scale=(u_dimension.x-4.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),debug:CO(`uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}`,`layout(location=0) in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}`),depth:CO(xO,`layout(location=0) in vec2 a_pos;void main() {
|
|
20370
|
+
#ifdef GLOBE
|
|
20371
|
+
gl_Position=projectTileFor3D(a_pos,0.0);
|
|
20372
|
+
#else
|
|
20373
|
+
gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);
|
|
20374
|
+
#endif
|
|
20375
|
+
}`),fill:CO(`#pragma maplibre: define highp vec4 color
|
|
20376
|
+
#pragma maplibre: define lowp float opacity
|
|
20377
|
+
void main() {
|
|
20378
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20379
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20380
|
+
fragColor=color*opacity;
|
|
20381
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20382
|
+
fragColor=vec4(1.0);
|
|
20383
|
+
#endif
|
|
20384
|
+
}`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;
|
|
20385
|
+
#pragma maplibre: define highp vec4 color
|
|
20386
|
+
#pragma maplibre: define lowp float opacity
|
|
20387
|
+
void main() {
|
|
20388
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20389
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20390
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:CO(`in vec2 v_pos;
|
|
20391
|
+
#ifdef GLOBE
|
|
20392
|
+
in float v_depth;
|
|
20393
|
+
#endif
|
|
20394
|
+
#pragma maplibre: define highp vec4 outline_color
|
|
20395
|
+
#pragma maplibre: define lowp float opacity
|
|
20396
|
+
void main() {
|
|
20397
|
+
#pragma maplibre: initialize highp vec4 outline_color
|
|
20398
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20399
|
+
float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);
|
|
20400
|
+
#ifdef GLOBE
|
|
20401
|
+
if (v_depth > 1.0) {discard;}
|
|
20402
|
+
#endif
|
|
20403
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20404
|
+
fragColor=vec4(1.0);
|
|
20405
|
+
#endif
|
|
20406
|
+
}`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos;
|
|
20407
|
+
#ifdef GLOBE
|
|
20408
|
+
out float v_depth;
|
|
20409
|
+
#endif
|
|
20410
|
+
#pragma maplibre: define highp vec4 outline_color
|
|
20411
|
+
#pragma maplibre: define lowp float opacity
|
|
20412
|
+
void main() {
|
|
20413
|
+
#pragma maplibre: initialize highp vec4 outline_color
|
|
20414
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20415
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world_size;
|
|
20416
|
+
#ifdef GLOBE
|
|
20417
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20418
|
+
#endif
|
|
20419
|
+
}`),fillOutlinePattern:CO(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;uniform bool u_sdf_pattern;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos;
|
|
20420
|
+
#ifdef GLOBE
|
|
20421
|
+
in float v_depth;
|
|
20422
|
+
#endif
|
|
20423
|
+
#pragma maplibre: define lowp float opacity
|
|
20424
|
+
#pragma maplibre: define highp vec4 color
|
|
20425
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20426
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20427
|
+
void main() {
|
|
20428
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20429
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20430
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20431
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20432
|
+
vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);if (u_sdf_pattern) {highp float sdf_edge=(256.0-64.0)/256.0;highp float sdf_gamma_a=max(fwidth(color1.a)*0.5,1.0/255.0/16.0);highp float sdf_gamma_b=max(fwidth(color2.a)*0.5,1.0/255.0/16.0);float sdf_alpha_a=smoothstep(sdf_edge-sdf_gamma_a,sdf_edge+sdf_gamma_a,color1.a);float sdf_alpha_b=smoothstep(sdf_edge-sdf_gamma_b,sdf_edge+sdf_gamma_b,color2.a);fragColor=mix(color*sdf_alpha_a,color*sdf_alpha_b,u_fade)*alpha*opacity;} else {fragColor=mix(color1,color2,u_fade)*alpha*opacity;}
|
|
20433
|
+
#ifdef GLOBE
|
|
20434
|
+
if (v_depth > 1.0) {discard;}
|
|
20435
|
+
#endif
|
|
20436
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20437
|
+
fragColor=vec4(1.0);
|
|
20438
|
+
#endif
|
|
20439
|
+
}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos;
|
|
20440
|
+
#ifdef GLOBE
|
|
20441
|
+
out float v_depth;
|
|
20442
|
+
#endif
|
|
20443
|
+
#pragma maplibre: define lowp float opacity
|
|
20444
|
+
#pragma maplibre: define highp vec4 color
|
|
20445
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20446
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20447
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20448
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20449
|
+
void main() {
|
|
20450
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20451
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20452
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20453
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20454
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20455
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20456
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world_size;
|
|
20457
|
+
#ifdef GLOBE
|
|
20458
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20459
|
+
#endif
|
|
20460
|
+
}`),fillPattern:CO(`#ifdef GL_ES
|
|
20461
|
+
precision highp float;
|
|
20462
|
+
#endif
|
|
20463
|
+
uniform vec2 u_texsize;uniform float u_fade;uniform bool u_sdf_pattern;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;
|
|
20464
|
+
#pragma maplibre: define lowp float opacity
|
|
20465
|
+
#pragma maplibre: define highp vec4 color
|
|
20466
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20467
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20468
|
+
void main() {
|
|
20469
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20470
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20471
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20472
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20473
|
+
vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);if (u_sdf_pattern) {highp float sdf_edge=(256.0-64.0)/256.0;highp float sdf_gamma_a=max(fwidth(color1.a)*0.5,1.0/255.0/16.0);highp float sdf_gamma_b=max(fwidth(color2.a)*0.5,1.0/255.0/16.0);float sdf_alpha_a=smoothstep(sdf_edge-sdf_gamma_a,sdf_edge+sdf_gamma_a,color1.a);float sdf_alpha_b=smoothstep(sdf_edge-sdf_gamma_b,sdf_edge+sdf_gamma_b,color2.a);fragColor=mix(color*sdf_alpha_a,color*sdf_alpha_b,u_fade)*opacity;} else {fragColor=mix(color1,color2,u_fade)*opacity;}
|
|
20474
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20475
|
+
fragColor=vec4(1.0);
|
|
20476
|
+
#endif
|
|
20477
|
+
}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;
|
|
20478
|
+
#pragma maplibre: define lowp float opacity
|
|
20479
|
+
#pragma maplibre: define highp vec4 color
|
|
20480
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20481
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20482
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20483
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20484
|
+
void main() {
|
|
20485
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20486
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20487
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20488
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20489
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20490
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20491
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:CO(`in vec4 v_color;void main() {fragColor=v_color;
|
|
20492
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20493
|
+
fragColor=vec4(1.0);
|
|
20494
|
+
#endif
|
|
20495
|
+
}`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;layout(location=1) in ivec4 a_normal_ed;
|
|
20496
|
+
#ifdef TERRAIN3D
|
|
20497
|
+
layout(location=2) in vec2 a_centroid;
|
|
20498
|
+
#endif
|
|
20499
|
+
out vec4 v_color;
|
|
20500
|
+
#pragma maplibre: define highp float base
|
|
20501
|
+
#pragma maplibre: define highp float height
|
|
20502
|
+
#pragma maplibre: define highp vec4 color
|
|
20503
|
+
void main() {
|
|
20504
|
+
#pragma maplibre: initialize highp float base
|
|
20505
|
+
#pragma maplibre: initialize highp float height
|
|
20506
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20507
|
+
vec3 normal=vec3(a_normal_ed.xyz);float gradient_base=max(0.0,base);float gradient_height=max(0.0,height);
|
|
20508
|
+
#ifdef TERRAIN3D
|
|
20509
|
+
float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
|
|
20510
|
+
#else
|
|
20511
|
+
float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
|
|
20512
|
+
#endif
|
|
20513
|
+
base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=float(a_normal_ed.x & 1);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
|
|
20514
|
+
#ifdef GLOBE
|
|
20515
|
+
vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
|
|
20516
|
+
#else
|
|
20517
|
+
gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
|
|
20518
|
+
#endif
|
|
20519
|
+
float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0);
|
|
20520
|
+
#ifdef GLOBE
|
|
20521
|
+
mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);
|
|
20522
|
+
#endif
|
|
20523
|
+
directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.z==0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+gradient_base)*pow(gradient_height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:CO(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting;
|
|
20524
|
+
#pragma maplibre: define lowp float base
|
|
20525
|
+
#pragma maplibre: define lowp float height
|
|
20526
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20527
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20528
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20529
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20530
|
+
void main() {
|
|
20531
|
+
#pragma maplibre: initialize lowp float base
|
|
20532
|
+
#pragma maplibre: initialize lowp float height
|
|
20533
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20534
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20535
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20536
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20537
|
+
vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting;
|
|
20538
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20539
|
+
fragColor=vec4(1.0);
|
|
20540
|
+
#endif
|
|
20541
|
+
}`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;layout(location=0) in vec2 a_pos;layout(location=1) in ivec4 a_normal_ed;
|
|
20542
|
+
#ifdef TERRAIN3D
|
|
20543
|
+
layout(location=2) in vec2 a_centroid;
|
|
20544
|
+
#endif
|
|
20545
|
+
#ifdef GLOBE
|
|
20546
|
+
out vec3 v_sphere_pos;
|
|
20547
|
+
#endif
|
|
20548
|
+
out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;
|
|
20549
|
+
#pragma maplibre: define lowp float base
|
|
20550
|
+
#pragma maplibre: define lowp float height
|
|
20551
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20552
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20553
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20554
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20555
|
+
void main() {
|
|
20556
|
+
#pragma maplibre: initialize lowp float base
|
|
20557
|
+
#pragma maplibre: initialize lowp float height
|
|
20558
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20559
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20560
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20561
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20562
|
+
vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=vec3(a_normal_ed.xyz);float edgedistance=float(a_normal_ed.w);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;float gradient_base=max(0.0,base);float gradient_height=max(0.0,height);
|
|
20563
|
+
#ifdef TERRAIN3D
|
|
20564
|
+
float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
|
|
20565
|
+
#else
|
|
20566
|
+
float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
|
|
20567
|
+
#endif
|
|
20568
|
+
base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=float(a_normal_ed.x & 1);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
|
|
20569
|
+
#ifdef GLOBE
|
|
20570
|
+
vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
|
|
20571
|
+
#else
|
|
20572
|
+
gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
|
|
20573
|
+
#endif
|
|
20574
|
+
vec2 pos=a_normal_ed.x==1 && a_normal_ed.y==0 && a_normal_ed.z==16384
|
|
20575
|
+
? a_pos
|
|
20576
|
+
: vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.z==0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+gradient_base)*pow(gradient_height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:CO(`#ifdef GL_ES
|
|
20577
|
+
precision highp float;
|
|
20578
|
+
#endif
|
|
20579
|
+
uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;uniform float u_log2_world_width;float getElevation(ivec2 texel) {vec4 data=texelFetch(u_image,texel,0)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {ivec2 pos=ivec2(gl_FragCoord.xy)+ivec2(1);float tileSize=u_dimension.x-4.0;float a=getElevation(pos+ivec2(-1,-1));float b=getElevation(pos+ivec2(0,-1));float c=getElevation(pos+ivec2(1,-1));float d=getElevation(pos+ivec2(-1,0));float e=getElevation(pos);float f=getElevation(pos+ivec2(1,0));float g=getElevation(pos+ivec2(-1,1));float h=getElevation(pos+ivec2(0,1));float i=getElevation(pos+ivec2(1,1));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))*tileSize/pow(2.0,exaggeration+(3.0+u_log2_world_width-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+128.0/255.0,deriv.y/8.0+128.0/255.0,1.0,1.0),0.0,1.0);
|
|
20580
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20581
|
+
fragColor=vec4(1.0);
|
|
20582
|
+
#endif
|
|
20583
|
+
}`,`uniform mat4 u_matrix;uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;layout(location=1) in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}`),hillshade:CO(`uniform sampler2D u_image;in highp vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES];
|
|
20584
|
+
#define PI 3.141592653589793
|
|
20585
|
+
#define STANDARD 0
|
|
20586
|
+
#define COMBINED 1
|
|
20587
|
+
#define IGOR 2
|
|
20588
|
+
#define MULTIDIRECTIONAL 3
|
|
20589
|
+
#define BASIC 4
|
|
20590
|
+
float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else
|
|
20591
|
+
{fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else
|
|
20592
|
+
{fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {highp vec2 size=vec2(textureSize(u_image,0));highp vec2 texturePos=(v_pos*(size-2.0)+1.0)/size;vec4 pixel=texture(u_image,texturePos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=(pixel.rg-128.0/255.0)*8.0/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);}
|
|
20593
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20594
|
+
fragColor=vec4(1.0);
|
|
20595
|
+
#endif
|
|
20596
|
+
}`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),line:CO(`in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;
|
|
20597
|
+
#ifdef GLOBE
|
|
20598
|
+
in float v_depth;
|
|
20599
|
+
#endif
|
|
20600
|
+
#pragma maplibre: define highp vec4 color
|
|
20601
|
+
#pragma maplibre: define lowp float blur
|
|
20602
|
+
#pragma maplibre: define lowp float opacity
|
|
20603
|
+
void main() {
|
|
20604
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20605
|
+
#pragma maplibre: initialize lowp float blur
|
|
20606
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20607
|
+
clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);fragColor=color*(alpha*opacity);
|
|
20608
|
+
#ifdef GLOBE
|
|
20609
|
+
if (v_depth > 1.0) {discard;}
|
|
20610
|
+
#endif
|
|
20611
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20612
|
+
fragColor=vec4(1.0);
|
|
20613
|
+
#endif
|
|
20614
|
+
}`,`
|
|
20615
|
+
#define scale 0.015873016
|
|
20616
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar;
|
|
20617
|
+
#ifdef GLOBE
|
|
20618
|
+
out float v_depth;
|
|
20619
|
+
#endif
|
|
20620
|
+
#pragma maplibre: define highp vec4 color
|
|
20621
|
+
#pragma maplibre: define lowp float blur
|
|
20622
|
+
#pragma maplibre: define lowp float opacity
|
|
20623
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20624
|
+
#pragma maplibre: define lowp float offset
|
|
20625
|
+
#pragma maplibre: define mediump float width
|
|
20626
|
+
void main() {
|
|
20627
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20628
|
+
#pragma maplibre: initialize lowp float blur
|
|
20629
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20630
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20631
|
+
#pragma maplibre: initialize lowp float offset
|
|
20632
|
+
#pragma maplibre: initialize mediump float width
|
|
20633
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);v_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*2.0;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20634
|
+
#ifdef GLOBE
|
|
20635
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20636
|
+
#endif
|
|
20637
|
+
#ifdef TERRAIN3D
|
|
20638
|
+
v_gamma_scale=1.0;
|
|
20639
|
+
#else
|
|
20640
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20641
|
+
#endif
|
|
20642
|
+
v_width2=vec2(outset,inset);}`),lineGradient:CO(`uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv;
|
|
20643
|
+
#ifdef GLOBE
|
|
20644
|
+
in float v_depth;
|
|
20645
|
+
#endif
|
|
20646
|
+
#pragma maplibre: define lowp float blur
|
|
20647
|
+
#pragma maplibre: define lowp float opacity
|
|
20648
|
+
void main() {
|
|
20649
|
+
#pragma maplibre: initialize lowp float blur
|
|
20650
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20651
|
+
clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);fragColor=color*(alpha*opacity);
|
|
20652
|
+
#ifdef GLOBE
|
|
20653
|
+
if (v_depth > 1.0) {discard;}
|
|
20654
|
+
#endif
|
|
20655
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20656
|
+
fragColor=vec4(1.0);
|
|
20657
|
+
#endif
|
|
20658
|
+
}`,`
|
|
20659
|
+
#define scale 0.015873016
|
|
20660
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;layout(location=3) in float a_uv_x;layout(location=4) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;
|
|
20661
|
+
#ifdef GLOBE
|
|
20662
|
+
out float v_depth;
|
|
20663
|
+
#endif
|
|
20664
|
+
#pragma maplibre: define lowp float blur
|
|
20665
|
+
#pragma maplibre: define lowp float opacity
|
|
20666
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20667
|
+
#pragma maplibre: define lowp float offset
|
|
20668
|
+
#pragma maplibre: define mediump float width
|
|
20669
|
+
void main() {
|
|
20670
|
+
#pragma maplibre: initialize lowp float blur
|
|
20671
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20672
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20673
|
+
#pragma maplibre: initialize lowp float offset
|
|
20674
|
+
#pragma maplibre: initialize mediump float width
|
|
20675
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20676
|
+
#ifdef GLOBE
|
|
20677
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20678
|
+
#endif
|
|
20679
|
+
#ifdef TERRAIN3D
|
|
20680
|
+
v_gamma_scale=1.0;
|
|
20681
|
+
#else
|
|
20682
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20683
|
+
#endif
|
|
20684
|
+
v_width2=vec2(outset,inset);}`),linePattern:CO(`#ifdef GL_ES
|
|
20685
|
+
precision highp float;
|
|
20686
|
+
#endif
|
|
20687
|
+
uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width;
|
|
20688
|
+
#ifdef GLOBE
|
|
20689
|
+
in float v_depth;
|
|
20690
|
+
#endif
|
|
20691
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20692
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20693
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20694
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20695
|
+
#pragma maplibre: define lowp float blur
|
|
20696
|
+
#pragma maplibre: define lowp float opacity
|
|
20697
|
+
void main() {
|
|
20698
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20699
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20700
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20701
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20702
|
+
#pragma maplibre: initialize lowp float blur
|
|
20703
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20704
|
+
clipAntimeridian();vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity;
|
|
20705
|
+
#ifdef GLOBE
|
|
20706
|
+
if (v_depth > 1.0) {discard;}
|
|
20707
|
+
#endif
|
|
20708
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20709
|
+
fragColor=vec4(1.0);
|
|
20710
|
+
#endif
|
|
20711
|
+
}`,`
|
|
20712
|
+
#define scale 0.015873016
|
|
20713
|
+
#define LINE_DISTANCE_SCALE 2.0
|
|
20714
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width;
|
|
20715
|
+
#ifdef GLOBE
|
|
20716
|
+
out float v_depth;
|
|
20717
|
+
#endif
|
|
20718
|
+
#pragma maplibre: define lowp float blur
|
|
20719
|
+
#pragma maplibre: define lowp float opacity
|
|
20720
|
+
#pragma maplibre: define lowp float offset
|
|
20721
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20722
|
+
#pragma maplibre: define mediump float width
|
|
20723
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20724
|
+
#pragma maplibre: define lowp vec4 pattern_from
|
|
20725
|
+
#pragma maplibre: define lowp vec4 pattern_to
|
|
20726
|
+
#pragma maplibre: define lowp float pixel_ratio_from
|
|
20727
|
+
#pragma maplibre: define lowp float pixel_ratio_to
|
|
20728
|
+
void main() {
|
|
20729
|
+
#pragma maplibre: initialize lowp float blur
|
|
20730
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20731
|
+
#pragma maplibre: initialize lowp float offset
|
|
20732
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20733
|
+
#pragma maplibre: initialize mediump float width
|
|
20734
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20735
|
+
#pragma maplibre: initialize mediump vec4 pattern_from
|
|
20736
|
+
#pragma maplibre: initialize mediump vec4 pattern_to
|
|
20737
|
+
#pragma maplibre: initialize lowp float pixel_ratio_from
|
|
20738
|
+
#pragma maplibre: initialize lowp float pixel_ratio_to
|
|
20739
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20740
|
+
#ifdef GLOBE
|
|
20741
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20742
|
+
#endif
|
|
20743
|
+
#ifdef TERRAIN3D
|
|
20744
|
+
v_gamma_scale=1.0;
|
|
20745
|
+
#else
|
|
20746
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20747
|
+
#endif
|
|
20748
|
+
v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:CO(`uniform lowp float u_lineatlas_width;uniform sampler2D u_image;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;
|
|
20749
|
+
#ifdef GLOBE
|
|
20750
|
+
in float v_depth;
|
|
20751
|
+
#endif
|
|
20752
|
+
#pragma maplibre: define highp vec4 color
|
|
20753
|
+
#pragma maplibre: define lowp float blur
|
|
20754
|
+
#pragma maplibre: define lowp float opacity
|
|
20755
|
+
#pragma maplibre: define mediump float width
|
|
20756
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20757
|
+
#pragma maplibre: define mediump vec4 dasharray_from
|
|
20758
|
+
#pragma maplibre: define mediump vec4 dasharray_to
|
|
20759
|
+
void main() {
|
|
20760
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20761
|
+
#pragma maplibre: initialize lowp float blur
|
|
20762
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20763
|
+
#pragma maplibre: initialize mediump float width
|
|
20764
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20765
|
+
#pragma maplibre: initialize mediump vec4 dasharray_from
|
|
20766
|
+
#pragma maplibre: initialize mediump vec4 dasharray_to
|
|
20767
|
+
clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0/u_device_pixel_ratio)/min(dasharray_from.w,dasharray_to.w);alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);
|
|
20768
|
+
#ifdef GLOBE
|
|
20769
|
+
if (v_depth > 1.0) {discard;}
|
|
20770
|
+
#endif
|
|
20771
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20772
|
+
fragColor=vec4(1.0);
|
|
20773
|
+
#endif
|
|
20774
|
+
}`,`
|
|
20775
|
+
#define scale 0.015873016
|
|
20776
|
+
#define LINE_DISTANCE_SCALE 2.0
|
|
20777
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;
|
|
20778
|
+
#ifdef GLOBE
|
|
20779
|
+
out float v_depth;
|
|
20780
|
+
#endif
|
|
20781
|
+
#pragma maplibre: define highp vec4 color
|
|
20782
|
+
#pragma maplibre: define lowp float blur
|
|
20783
|
+
#pragma maplibre: define lowp float opacity
|
|
20784
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20785
|
+
#pragma maplibre: define lowp float offset
|
|
20786
|
+
#pragma maplibre: define mediump float width
|
|
20787
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20788
|
+
#pragma maplibre: define mediump vec4 dasharray_from
|
|
20789
|
+
#pragma maplibre: define mediump vec4 dasharray_to
|
|
20790
|
+
void main() {
|
|
20791
|
+
#pragma maplibre: initialize highp vec4 color
|
|
20792
|
+
#pragma maplibre: initialize lowp float blur
|
|
20793
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20794
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20795
|
+
#pragma maplibre: initialize lowp float offset
|
|
20796
|
+
#pragma maplibre: initialize mediump float width
|
|
20797
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20798
|
+
#pragma maplibre: initialize mediump vec4 dasharray_from
|
|
20799
|
+
#pragma maplibre: initialize mediump vec4 dasharray_to
|
|
20800
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20801
|
+
#ifdef GLOBE
|
|
20802
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20803
|
+
#endif
|
|
20804
|
+
#ifdef TERRAIN3D
|
|
20805
|
+
v_gamma_scale=1.0;
|
|
20806
|
+
#else
|
|
20807
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20808
|
+
#endif
|
|
20809
|
+
float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),lineGradientSDF:CO(`uniform sampler2D u_image;uniform sampler2D u_image_dash;uniform float u_mix;uniform lowp float u_lineatlas_width;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;in highp vec2 v_uv;
|
|
20810
|
+
#ifdef GLOBE
|
|
20811
|
+
in float v_depth;
|
|
20812
|
+
#endif
|
|
20813
|
+
#pragma maplibre: define lowp float blur
|
|
20814
|
+
#pragma maplibre: define lowp float opacity
|
|
20815
|
+
#pragma maplibre: define mediump float width
|
|
20816
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20817
|
+
#pragma maplibre: define mediump vec4 dasharray_from
|
|
20818
|
+
#pragma maplibre: define mediump vec4 dasharray_to
|
|
20819
|
+
void main() {
|
|
20820
|
+
#pragma maplibre: initialize lowp float blur
|
|
20821
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20822
|
+
#pragma maplibre: initialize mediump float width
|
|
20823
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20824
|
+
#pragma maplibre: initialize mediump vec4 dasharray_from
|
|
20825
|
+
#pragma maplibre: initialize mediump vec4 dasharray_to
|
|
20826
|
+
clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);float sdfdist_a=texture(u_image_dash,v_tex_a).a;float sdfdist_b=texture(u_image_dash,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0)/min(dasharray_from.w,dasharray_to.w);float dash_alpha=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*dash_alpha*opacity);
|
|
20827
|
+
#ifdef GLOBE
|
|
20828
|
+
if (v_depth > 1.0) {discard;}
|
|
20829
|
+
#endif
|
|
20830
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20831
|
+
fragColor=vec4(1.0);
|
|
20832
|
+
#endif
|
|
20833
|
+
}`,`
|
|
20834
|
+
#define scale 0.015873016
|
|
20835
|
+
#define LINE_DISTANCE_SCALE 2.0
|
|
20836
|
+
layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;layout(location=3) in float a_uv_x;layout(location=4) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_image_height;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;out vec2 v_tex_a;out vec2 v_tex_b;
|
|
20837
|
+
#ifdef GLOBE
|
|
20838
|
+
out float v_depth;
|
|
20839
|
+
#endif
|
|
20840
|
+
#pragma maplibre: define lowp float blur
|
|
20841
|
+
#pragma maplibre: define lowp float opacity
|
|
20842
|
+
#pragma maplibre: define mediump float gapwidth
|
|
20843
|
+
#pragma maplibre: define lowp float offset
|
|
20844
|
+
#pragma maplibre: define mediump float width
|
|
20845
|
+
#pragma maplibre: define lowp float floorwidth
|
|
20846
|
+
#pragma maplibre: define mediump vec4 dasharray_from
|
|
20847
|
+
#pragma maplibre: define mediump vec4 dasharray_to
|
|
20848
|
+
void main() {
|
|
20849
|
+
#pragma maplibre: initialize lowp float blur
|
|
20850
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20851
|
+
#pragma maplibre: initialize mediump float gapwidth
|
|
20852
|
+
#pragma maplibre: initialize lowp float offset
|
|
20853
|
+
#pragma maplibre: initialize mediump float width
|
|
20854
|
+
#pragma maplibre: initialize lowp float floorwidth
|
|
20855
|
+
#pragma maplibre: initialize mediump vec4 dasharray_from
|
|
20856
|
+
#pragma maplibre: initialize mediump vec4 dasharray_to
|
|
20857
|
+
if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;float texel_height=1.0/u_image_height;float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
|
|
20858
|
+
#ifdef GLOBE
|
|
20859
|
+
v_depth=gl_Position.z/gl_Position.w;
|
|
20860
|
+
#endif
|
|
20861
|
+
#ifdef TERRAIN3D
|
|
20862
|
+
v_gamma_scale=1.0;
|
|
20863
|
+
#else
|
|
20864
|
+
float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
|
|
20865
|
+
#endif
|
|
20866
|
+
float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),layerOpacity:CO(`uniform sampler2D u_image;uniform float u_opacity;in vec2 v_pos;void main() {fragColor=texture(u_image,v_pos)*u_opacity;
|
|
20867
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20868
|
+
fragColor=vec4(0.0);
|
|
20869
|
+
#endif
|
|
20870
|
+
}`,`layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=vec4(a_pos.x*2.0-1.0,1.0-a_pos.y*2.0,0.0,1.0);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),raster:CO(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec3 v_pos0;in vec3 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture(u_image0,v_pos0.xy/v_pos0.z);vec4 color1=texture(u_image1,v_pos1.xy/v_pos1.z);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
|
|
20871
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20872
|
+
fragColor=vec4(1.0);
|
|
20873
|
+
#endif
|
|
20874
|
+
}`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec3 u_image_warp;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;layout(location=0) in vec2 a_pos;out vec3 v_pos0;out vec3 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 topLeft=u_coords_top.xy;vec2 topRight=u_coords_top.zw;vec2 bottomLeft=u_coords_bottom.xy;vec2 bottomRight=u_coords_bottom.zw;vec2 bilinearPos=mix(mix(topLeft,topRight,fractionalPos.x),mix(bottomLeft,bottomRight,fractionalPos.x),fractionalPos.y);float denominator=dot(u_image_warp.xy,fractionalPos)+1.0;vec2 acrossTop=topRight-topLeft+u_image_warp.x*topRight;vec2 downLeft=bottomLeft-topLeft+u_image_warp.y*bottomLeft;vec2 projectivePos=(acrossTop*fractionalPos.x+downLeft*fractionalPos.y+topLeft)/denominator;vec2 position=mix(projectivePos,bilinearPos,u_image_warp.z);gl_Position=projectTile(position,position);vec2 texturePos=((fractionalPos-0.5)/u_buffer_scale)+0.5;
|
|
20875
|
+
#ifdef GLOBE
|
|
20876
|
+
if (a_pos.y <-32767.5) {texturePos.y=0.0;}if (a_pos.y > 32766.5) {texturePos.y=1.0;}
|
|
20877
|
+
#endif
|
|
20878
|
+
float perspectiveRatio=mix(1.0/denominator,1.0,u_image_warp.z);v_pos0=vec3(texturePos*perspectiveRatio,perspectiveRatio);vec2 parentPos=(texturePos*u_scale_parent)+u_tl_parent;v_pos1=vec3(parentPos*perspectiveRatio,perspectiveRatio);}`),symbolIcon:CO(`uniform sampler2D u_texture;in vec2 v_tex;in float v_total_opacity;void main() {fragColor=texture(u_texture,v_tex)*v_total_opacity;
|
|
20879
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20880
|
+
fragColor=vec4(1.0);
|
|
20881
|
+
#endif
|
|
20882
|
+
}`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in uint a_fade_opacity;layout(location=5) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform bool u_rotate_symbol;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec2 v_tex;out float v_total_opacity;
|
|
20883
|
+
#pragma maplibre: define lowp float opacity
|
|
20884
|
+
void main() {
|
|
20885
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20886
|
+
vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float visibility=calculate_visibility(projectedPoint);v_total_opacity=opacity*max(0.0,min(visibility,fade_opacity[0]+fade_change));if (v_total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
|
|
20887
|
+
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
20888
|
+
u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
|
|
20889
|
+
#ifdef GLOBE
|
|
20890
|
+
if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
|
|
20891
|
+
#endif
|
|
20892
|
+
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;}`),symbolSDF:CO(`#define SDF_PX 8.0
|
|
20893
|
+
uniform bool u_is_halo;uniform bool u_is_plain;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform bool u_is_text;in vec2 v_data0;in vec3 v_data1;
|
|
20894
|
+
#pragma maplibre: define highp vec4 fill_color
|
|
20895
|
+
#pragma maplibre: define highp vec4 halo_color
|
|
20896
|
+
#pragma maplibre: define lowp float halo_width
|
|
20897
|
+
#pragma maplibre: define lowp float halo_blur
|
|
20898
|
+
void main() {
|
|
20899
|
+
#pragma maplibre: initialize highp vec4 fill_color
|
|
20900
|
+
#pragma maplibre: initialize highp vec4 halo_color
|
|
20901
|
+
#pragma maplibre: initialize lowp float halo_width
|
|
20902
|
+
#pragma maplibre: initialize lowp float halo_blur
|
|
20903
|
+
float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float total_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out_text,color_alpha_out_halo;if (u_is_plain){highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);color_alpha_out_text=total_opacity*alpha*fill_color;}if (u_is_halo) {float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);float inner_edge_halo=inner_edge+gamma_halo*gamma_scale;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(inner_edge_halo-gamma_scaled_halo,inner_edge_halo+gamma_scaled_halo,dist);highp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha_halo= min(smoothstep(halo_edge-gamma_scaled_halo,halo_edge+gamma_scaled_halo,dist),1.0-alpha_halo);color_alpha_out_halo=total_opacity*alpha_halo*halo_color;}if (u_is_plain && u_is_halo) {fragColor=color_alpha_out_text+(1.-color_alpha_out_text.a)*color_alpha_out_halo;} else if (u_is_halo){fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out_text;}
|
|
20904
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20905
|
+
fragColor=vec4(1.0);
|
|
20906
|
+
#endif
|
|
20907
|
+
}`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in uint a_fade_opacity;layout(location=5) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform bool u_rotate_symbol;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec2 v_data0;out vec3 v_data1;
|
|
20908
|
+
#pragma maplibre: define highp vec4 fill_color
|
|
20909
|
+
#pragma maplibre: define highp vec4 halo_color
|
|
20910
|
+
#pragma maplibre: define lowp float opacity
|
|
20911
|
+
#pragma maplibre: define lowp float halo_width
|
|
20912
|
+
#pragma maplibre: define lowp float halo_blur
|
|
20913
|
+
void main() {
|
|
20914
|
+
#pragma maplibre: initialize highp vec4 fill_color
|
|
20915
|
+
#pragma maplibre: initialize highp vec4 halo_color
|
|
20916
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20917
|
+
#pragma maplibre: initialize lowp float halo_width
|
|
20918
|
+
#pragma maplibre: initialize lowp float halo_blur
|
|
20919
|
+
vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);vec2 a_pxoffset=a_pixeloffset.xy/16.0;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
|
|
20920
|
+
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
20921
|
+
u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
|
|
20922
|
+
#ifdef GLOBE
|
|
20923
|
+
if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
|
|
20924
|
+
#endif
|
|
20925
|
+
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,total_opacity);}`),symbolTextAndIcon:CO(`#define SDF_PX 8.0
|
|
20926
|
+
#define SDF 1.0
|
|
20927
|
+
#define ICON 0.0
|
|
20928
|
+
uniform bool u_is_halo;uniform bool u_is_text;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;in vec4 v_data0;in vec3 v_data1;in float v_is_sdf;
|
|
20929
|
+
#pragma maplibre: define highp vec4 fill_color
|
|
20930
|
+
#pragma maplibre: define highp vec4 halo_color
|
|
20931
|
+
#pragma maplibre: define lowp float halo_width
|
|
20932
|
+
#pragma maplibre: define lowp float halo_blur
|
|
20933
|
+
void main() {
|
|
20934
|
+
#pragma maplibre: initialize highp vec4 fill_color
|
|
20935
|
+
#pragma maplibre: initialize highp vec4 halo_color
|
|
20936
|
+
#pragma maplibre: initialize lowp float halo_width
|
|
20937
|
+
#pragma maplibre: initialize lowp float halo_blur
|
|
20938
|
+
float total_opacity=v_data1[2];if (v_is_sdf==ICON) {vec2 tex_icon=v_data0.zw;fragColor=texture(u_texture_icon,tex_icon)*total_opacity;
|
|
20939
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20940
|
+
fragColor=vec4(1.0);
|
|
20941
|
+
#endif
|
|
20942
|
+
return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out,color_alpha_out_halo;if (u_is_text) {highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);color_alpha_out=fill_color*(alpha*total_opacity);}if (u_is_halo) {highp float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);lowp float buff_halo=(6.0-halo_width/fontScale)/SDF_PX;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(buff_halo-gamma_scaled_halo,buff_halo+gamma_scaled_halo,dist);color_alpha_out_halo=halo_color*(alpha_halo*total_opacity);}if (u_is_text && u_is_halo) {fragColor=color_alpha_out+(1.-color_alpha_out.a)*color_alpha_out_halo;} else if (u_is_halo) {fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out;}
|
|
20943
|
+
#ifdef OVERDRAW_INSPECTOR
|
|
20944
|
+
fragColor=vec4(1.0);
|
|
20945
|
+
#endif
|
|
20946
|
+
}`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec3 a_projected_pos;layout(location=3) in uint a_fade_opacity;layout(location=4) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec4 v_data0;out vec3 v_data1;out float v_is_sdf;
|
|
20947
|
+
#pragma maplibre: define highp vec4 fill_color
|
|
20948
|
+
#pragma maplibre: define highp vec4 halo_color
|
|
20949
|
+
#pragma maplibre: define lowp float opacity
|
|
20950
|
+
#pragma maplibre: define lowp float halo_width
|
|
20951
|
+
#pragma maplibre: define lowp float halo_blur
|
|
20952
|
+
void main() {
|
|
20953
|
+
#pragma maplibre: initialize highp vec4 fill_color
|
|
20954
|
+
#pragma maplibre: initialize highp vec4 halo_color
|
|
20955
|
+
#pragma maplibre: initialize lowp float opacity
|
|
20956
|
+
#pragma maplibre: initialize lowp float halo_width
|
|
20957
|
+
#pragma maplibre: initialize lowp float halo_blur
|
|
20958
|
+
vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);float is_sdf=float(a_data.z & 1u);float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
|
|
20959
|
+
camera_to_anchor_distance/u_camera_to_center_distance :
|
|
20960
|
+
u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
|
|
20961
|
+
#ifdef GLOBE
|
|
20962
|
+
if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
|
|
20963
|
+
#endif
|
|
20964
|
+
vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec3(gamma_scale,size,total_opacity);v_is_sdf=is_sdf;}`),terrain:CO(`uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && u_fog_ground_blend_opacity > 0.0 && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}`,`layout(location=0) in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}`),terrainDepth:CO(`in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}`,`layout(location=0) in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}`),terrainHeight:CO(`in highp float v_elevation;void main() {fragColor=vec4(v_elevation,0.0,0.0,1.0);}`,`layout(location=0) in vec3 a_pos3d;uniform vec4 u_tile_bounds;out highp float v_elevation;void main() {v_elevation=get_elevation(a_pos3d.xy);vec2 position=u_tile_bounds.xy+a_pos3d.xy/8192.0*u_tile_bounds.zw;gl_Position=vec4(position.x*2.0-1.0,1.0-position.y*2.0,0.0,1.0);}`),atmosphere:CO(`#ifdef GL_ES
|
|
20965
|
+
precision highp float;
|
|
20966
|
+
#endif
|
|
20967
|
+
in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758
|
|
20968
|
+
);color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}`),sky:CO(`uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;in vec3 v_view_direction;const float ATMOSPHERE_HEIGHT_TO_GLOBE_RADIUS=100000.0/6371000.0;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;float opacity=1.0;if (u_sky_blend > 0.0) {vec3 ray=normalize(v_view_direction);float globe_distance=length(u_globe_position);float angle_to_globe_center=acos(clamp(dot(ray,u_globe_position)/globe_distance,-1.0,1.0));float horizon_angle=asin(min(u_globe_radius/globe_distance,1.0));blend=mix(blend,((angle_to_globe_center-horizon_angle)*u_camera_to_center_distance+1.0)*u_device_pixel_ratio,u_sky_blend);float closest_approach=max(dot(ray,u_globe_position),0.0);float lowest_altitude=sqrt(max(globe_distance*globe_distance-closest_approach*closest_approach,0.0))-u_globe_radius;float atmosphere_height=u_globe_radius*ATMOSPHERE_HEIGHT_TO_GLOBE_RADIUS;float inside_atmosphere=1.0-smoothstep(atmosphere_height,10.0*atmosphere_height,globe_distance-u_globe_radius);float through_atmosphere=1.0-smoothstep(0.0,atmosphere_height,lowest_altitude);opacity=inside_atmosphere*through_atmosphere*(1.0-u_atmosphere_blend);}if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor*=mix(1.0,opacity,u_sky_blend);}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 v_view_direction;void main() {v_view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,1.0,1.0);}`)});function CO(e,t){let n=/#pragma maplibre: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,r=t.match(/in ([\w]+) ([\w]+)/g),i=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),a=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),o=a?a.concat(i):i,s=r?r.length:0,c={};return e=e.replace(n,(e,t,n,r,i)=>(c[i]=true,t===`define`?`
|
|
20969
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
20970
|
+
in ${n} ${r} ${i};
|
|
20971
|
+
#else
|
|
20972
|
+
uniform ${n} ${r} u_${i};
|
|
20973
|
+
#endif
|
|
20974
|
+
`:`
|
|
20975
|
+
#ifdef HAS_UNIFORM_u_${i}
|
|
20976
|
+
${n} ${r} ${i} = u_${i};
|
|
20977
|
+
#endif
|
|
20978
|
+
`)),t=t.replace(n,(e,t,n,r,i)=>{let a=r===`float`?`vec2`:`vec4`,o=i.match(/color/)?`color`:a;return c[i]?t===`define`?`
|
|
20979
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
20980
|
+
uniform lowp float u_${i}_t;
|
|
20981
|
+
layout(location = ${s++}) in ${n} ${a} a_${i};
|
|
20982
|
+
out ${n} ${r} ${i};
|
|
20983
|
+
#else
|
|
20984
|
+
uniform ${n} ${r} u_${i};
|
|
20985
|
+
#endif
|
|
20986
|
+
`:o===`vec4`?`
|
|
20987
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
20988
|
+
${i} = a_${i};
|
|
20989
|
+
#else
|
|
20990
|
+
${n} ${r} ${i} = u_${i};
|
|
20991
|
+
#endif
|
|
20992
|
+
`:`
|
|
20993
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
20994
|
+
${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
|
|
20995
|
+
#else
|
|
20996
|
+
${n} ${r} ${i} = u_${i};
|
|
20997
|
+
#endif
|
|
20998
|
+
`:t===`define`?`
|
|
20999
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
21000
|
+
uniform lowp float u_${i}_t;
|
|
21001
|
+
layout(location = ${s++}) in ${n} ${a} a_${i};
|
|
21002
|
+
#else
|
|
21003
|
+
uniform ${n} ${r} u_${i};
|
|
21004
|
+
#endif
|
|
21005
|
+
`:o===`vec4`?`
|
|
21006
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
21007
|
+
${n} ${r} ${i} = a_${i};
|
|
21008
|
+
#else
|
|
21009
|
+
${n} ${r} ${i} = u_${i};
|
|
21010
|
+
#endif
|
|
21011
|
+
`:`
|
|
21012
|
+
#ifndef HAS_UNIFORM_u_${i}
|
|
21013
|
+
${n} ${r} ${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
|
|
21014
|
+
#else
|
|
21015
|
+
${n} ${r} ${i} = u_${i};
|
|
21016
|
+
#endif
|
|
21017
|
+
`}),{fragmentSource:e,vertexSource:t,staticAttributes:r,staticUniforms:o}}new mm({fill:new pm(128,2),line:new pm(512,0),tile:new pm(128,32),stencil:new pm(128,1),circle:3});Vs();lu([{name:`a_pos`,type:`Int16`,components:2},{name:`a_texture_pos`,type:`Int16`,components:2}]);const UA={float:[1,1],int:[1,1],vec2:[2,2],vec4:[4,4],mat4:[16,4]};function WA(e){let t={},n=0;for(let{name:r,type:i}of e){let[e,a]=UA[i];n=Math.ceil(n/a)*a,t[r]=n,n+=e;}return {offsets:t,contentWords:n,sizeWords:Math.ceil(n/4)*4}}WA([{name:`u_projection_matrix`,type:`mat4`},{name:`u_projection_fallback_matrix`,type:`mat4`},{name:`u_projection_tile_mercator_coords`,type:`vec4`},{name:`u_projection_clipping_plane`,type:`vec4`},{name:`u_projection_transition`,type:`float`},{name:`u_projection_clip_antimeridian`,type:`int`}]);WA([{name:`u_units_to_pixels`,type:`vec2`},{name:`u_world_size`,type:`vec2`},{name:`u_camera_to_center_distance`,type:`float`},{name:`u_symbol_fade_change`,type:`float`},{name:`u_aspect_ratio`,type:`float`},{name:`u_device_pixel_ratio`,type:`float`},{name:`u_viewport_size`,type:`vec2`},{name:`u_pixel_extrude_scale`,type:`vec2`},{name:`u_pitch`,type:`float`}]);WA([{name:`u_terrain_matrix`,type:`mat4`},{name:`u_terrain_unpack`,type:`vec4`},{name:`u_terrain_dim`,type:`float`},{name:`u_terrain_exaggeration`,type:`float`}]);var cj=class{constructor(e,t,n){this.blendFunction=e,this.blendColor=t,this.mask=n;}};cj.Replace=[1,0],cj.disabled=new cj(cj.Replace,G.transparent,[false,false,false,false]),cj.unblended=new cj(cj.Replace,G.transparent,[true,true,true,true]),cj.alphaBlended=new cj([1,771],G.transparent,[true,true,true,true]);O(/* @__PURE__ */ new Float32Array(16));new G(1,0,0,1);new G(0,1,0,1);new G(0,0,1,1);new G(1,0,1,1);new G(0,1,1,1);const cP={linearity:.3,easing:St(0,0,.3,1)};I({deceleration:2500,maxSpeed:1400},cP);I({deceleration:20,maxSpeed:1400},cP);I({deceleration:1e3,maxSpeed:360},cP);I({deceleration:1e3,maxSpeed:90},cP);I({deceleration:1e3,maxSpeed:360},cP);lu([{name:`a_pos3d`,type:`Int16`,components:3}]);
|
|
21018
|
+
|
|
21019
|
+
class MapLibreStyleFactory {
|
|
21020
|
+
protocolId = 0;
|
|
21021
|
+
createMapTripStyle(options) {
|
|
21022
|
+
const token = options.token;
|
|
21023
|
+
const factory = VectorTileFactory.createFactory(options);
|
|
21024
|
+
const protocol = `maptrip${++this.protocolId}`;
|
|
21025
|
+
let attributionPromise;
|
|
21026
|
+
jn(protocol, async (params) => {
|
|
21027
|
+
if (params.url === `${protocol}://metadata`) {
|
|
21028
|
+
const attribution = await (attributionPromise ??= VectorTileUtils.getAttribution(token, options.provider, options.attribution, options.releaseDate));
|
|
21029
|
+
return {
|
|
21030
|
+
data: {
|
|
21031
|
+
tilejson: "2.2.0",
|
|
21032
|
+
tileSize: 256,
|
|
21033
|
+
tiles: [`${protocol}://{z}/{x}/{y}`],
|
|
21034
|
+
minzoom: Math.max(options.minZoom ? options.minZoom : MIN_ZOOM, MIN_ZOOM),
|
|
21035
|
+
maxzoom: Math.min(options.maxZoom ? options.maxZoom : MAX_ZOOM, MAX_ZOOM),
|
|
21036
|
+
attribution
|
|
21037
|
+
}
|
|
21038
|
+
};
|
|
19343
21039
|
}
|
|
19344
|
-
|
|
19345
|
-
|
|
19346
|
-
|
|
19347
|
-
|
|
19348
|
-
|
|
19349
|
-
|
|
19350
|
-
|
|
19351
|
-
|
|
19352
|
-
|
|
19353
|
-
|
|
21040
|
+
const match = params.url.match(
|
|
21041
|
+
/^maptrip\d+:\/\/(\d+)\/(\d+)\/(\d+)$/
|
|
21042
|
+
);
|
|
21043
|
+
if (!match) {
|
|
21044
|
+
throw new Error(`Invalid tile URL: ${params.url}`);
|
|
21045
|
+
}
|
|
21046
|
+
const z = Number(match[1]);
|
|
21047
|
+
const x = Number(match[2]);
|
|
21048
|
+
const y = Number(match[3]);
|
|
21049
|
+
const canvas = await this.getTileCanvasAsync(factory, z, x, y, token);
|
|
21050
|
+
return {
|
|
21051
|
+
data: await createImageBitmap(canvas)
|
|
21052
|
+
};
|
|
21053
|
+
});
|
|
21054
|
+
return {
|
|
21055
|
+
version: 8,
|
|
21056
|
+
name: "MapTrip Map",
|
|
21057
|
+
sources: {
|
|
21058
|
+
maptrip: {
|
|
21059
|
+
type: "raster",
|
|
21060
|
+
url: `${protocol}://metadata`
|
|
21061
|
+
}
|
|
21062
|
+
},
|
|
21063
|
+
layers: [
|
|
21064
|
+
{
|
|
21065
|
+
id: "maptrip-layer",
|
|
21066
|
+
type: "raster",
|
|
21067
|
+
source: "maptrip"
|
|
21068
|
+
}
|
|
21069
|
+
]
|
|
21070
|
+
};
|
|
19354
21071
|
}
|
|
19355
|
-
|
|
19356
|
-
|
|
19357
|
-
|
|
19358
|
-
|
|
19359
|
-
|
|
19360
|
-
|
|
19361
|
-
|
|
19362
|
-
|
|
19363
|
-
|
|
19364
|
-
|
|
19365
|
-
|
|
19366
|
-
newProvider = "tomtom";
|
|
19367
|
-
} else if (eventProvider.toLowerCase() === "orbis") {
|
|
19368
|
-
newProvider = "orbis";
|
|
19369
|
-
} else if (eventProvider.toLowerCase() === "here") {
|
|
19370
|
-
newProvider = "here";
|
|
19371
|
-
} else {
|
|
19372
|
-
newProvider = "openstreetmap";
|
|
21072
|
+
getTileCanvasAsync(factory, z, x, y, token) {
|
|
21073
|
+
return new Promise((resolve, reject) => {
|
|
21074
|
+
try {
|
|
21075
|
+
const canvas = factory.getJsonTile(z, x, y, token, () => {
|
|
21076
|
+
resolve(canvas);
|
|
21077
|
+
});
|
|
21078
|
+
if (!canvas) {
|
|
21079
|
+
reject(new Error("getJsonTile returned no canvas"));
|
|
21080
|
+
}
|
|
21081
|
+
} catch (err) {
|
|
21082
|
+
reject(err);
|
|
19373
21083
|
}
|
|
19374
|
-
|
|
19375
|
-
await this.setAttribution();
|
|
19376
|
-
}
|
|
21084
|
+
});
|
|
19377
21085
|
}
|
|
19378
21086
|
}
|
|
19379
21087
|
|
|
@@ -27204,6 +28912,28 @@ class XYZ extends TileImage {
|
|
|
27204
28912
|
}
|
|
27205
28913
|
}
|
|
27206
28914
|
|
|
28915
|
+
class MapTripGoogleMapType {
|
|
28916
|
+
tileSize = new google.maps.Size(256, 256);
|
|
28917
|
+
alt = null;
|
|
28918
|
+
maxZoom = MAX_ZOOM;
|
|
28919
|
+
minZoom = MIN_ZOOM;
|
|
28920
|
+
projection = null;
|
|
28921
|
+
radius = 6378137;
|
|
28922
|
+
name;
|
|
28923
|
+
token;
|
|
28924
|
+
factory;
|
|
28925
|
+
constructor(properties) {
|
|
28926
|
+
this.name = properties.name ? properties.name : "infoware";
|
|
28927
|
+
this.token = properties.token;
|
|
28928
|
+
this.factory = VectorTileFactory.createFactory(properties);
|
|
28929
|
+
}
|
|
28930
|
+
getTile(coord, zoom) {
|
|
28931
|
+
return this.factory.getJsonTile(zoom, coord.x, coord.y, this.token);
|
|
28932
|
+
}
|
|
28933
|
+
releaseTile() {
|
|
28934
|
+
}
|
|
28935
|
+
}
|
|
28936
|
+
|
|
27207
28937
|
class MapTripOpenLayersSource extends XYZ {
|
|
27208
28938
|
token;
|
|
27209
28939
|
factory;
|
|
@@ -27275,5 +29005,5 @@ class MapTripOpenLayersSource extends XYZ {
|
|
|
27275
29005
|
}
|
|
27276
29006
|
}
|
|
27277
29007
|
|
|
27278
|
-
export { MapReleaseFetcher, MapTripGoogleMapType, MapTripLeafletGridLayer, MapTripOpenLayersSource, RENDERING_CONFIG_DEFAULT, RENDERING_CONFIG_GRAYSCALE, RENDERING_CONFIG_TRAFFIC, VectorTileFactory };
|
|
29008
|
+
export { MapLibreStyleFactory, MapReleaseFetcher, MapTripGoogleMapType, MapTripLeafletGridLayer, MapTripOpenLayersSource, RENDERING_CONFIG_DEFAULT, RENDERING_CONFIG_GRAYSCALE, RENDERING_CONFIG_TRAFFIC, VectorTileFactory };
|
|
27279
29009
|
//# sourceMappingURL=map-tiles.js.map
|